数据库范式与关系模式示例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章补充讲义

一、范式举例

BCNF.如:课程号与学号)

例4:R(X,Y,Z),F={XY->Z},R为几范式?

BCNF。

例5:R(X,Y,Z),F={Y->Z,XZ->Y},R为几范式?

3NF。R的候选码为{XZ,XY},(R中所有属性都是主属性,无传递依赖)

二、求闭包

数据库设计人员在对实际应用问题调查中,得到的结论往往是零散的、不规范的(直观问题好办,复杂问题难办了),所以,这对分析数据模型,达到规范化设计要求,还有差距,为此,从规范数据依赖集合的角度入手,找到正确分析数据模型的方法,以确定关系模式的规范化程度。

例1.已知关系模式R(U、F),其中,U={A,B,C,D,E}; F={AB→ C, B→ D, EC → B , AC→B} ,求(AB)+F.

解:设X(0)=AB

○1计算X(1),在F中找出左边为AB子集的FD,其结果是:AB→C,B→D

∴X(1)=X(0)UB=ABUCD=ABCD 显然,X(1)≠X(0)

○2计算X(2),在F中找出左边为ABCD子集的FD,其结果是:C→E,AC→B

∴X(2)=X(1)UB=ABCDUBE=ABCDE 显然,X(2)=U

所以,(AB)+ F=ABCDE.(等于U,所以AB是唯一候选关键字)

例2.设有关系模式R(U、F),其中U={A,B,C,D,E,I};F={A→D,AB→E,B→E,CD→I,E→C},计算(AE)+

解:令X={AE},X(0)=AE

○1在F中找出左边是AE子集的FD,其结果是:A→D,E→C

∴X(1)=X(0)UB=X(0)UDC=ACDE 显然,X(1)≠X(0)

○2在F中找出左边是ACDE子集的FD,其结果是:CD→I

∴X(2)=X(1)UI=ACDEI

显然,X(2)≠X(1),但F中未用过的函数依赖的左边属性已含有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI.

因为,X(3)=X(2),所以,算法结束。

三、求最小依赖集

最小依赖集是对函数依赖集合进行规范的结果,这样才能对一般关系模式进行准确分析。

例1.设函数依赖集F={AB→CE,A→C,GP→B,EP→A,CDE→P,HB→P,D→HG,ABC→PG},求与F等价的最小函数依赖集。

解:○1将F中依赖右部属性单一化:

F1= AB AB→E

HB→P A→C

D→H GP→B

D→G EP→A

ABC→P CDE→P

ABC→G

○2由于有A→C,所以AB→C为多余成份:

所以F2= AB→E HB→P

A→C D→H

GP→B D→G

EP→A ABC→P

CDE→P ABC→G

○3经过分析认为F2中无多余依赖,则:

Fmin=F2为最小函数依赖集。即Fmin={ AB→E ,HB→P, A→C ,D→H, GP→B ,D→G, EP→A , ABC→P,CDE→P,ABC→G}.

例2.已知F={A→B,B→A,B→C,A→C,C→A},求Fmin.

解:○1F1= A→B A→C

B A B→C

C A

○2Fmin1= A→B A→C

B→A C→A

Fmin2= A→B C→A

B→C

例3.已知F={A→C,C→A,B→AC,D→AC},求Fmin。

解:○1将F中依赖的右部属性单一化:

F1= A→C C→A

B→A B→C

D→A D→C

○2由于B→A,A→C,所以B→C是多余成份。

又由于D→A,A→C,所以D→C是多余成份。

所以F2= A→C C→A

B→A D→A

因为F2中所有依赖的左部都是单属性,所以不存在依赖左部的有多余属性。

所以Fmin=A→C C→A

B→A D→A

即Fmin={A→C,C→A,B→A ,D→A}.

例4.设有关系模式R(U,F),其中:U={E,F,G,H},F={E→G,G→E,F→EG,H→EG,FH→E},求F 的最小依赖集。

解:○1将F中依赖右部属性单一化:

F1= E→G H

G→E H

F→E FH

F→G

○2由于有F→E,FH→E为多余成份:(不是因为有H→E,而是,F后面加一个H和不加一样)

所以F2= E→G H→E

G→E H→G

F→E F→G

○3由于F2中,F→E和F→G以及H→E和H→G之一为多余,则:

Fmin1={E→G,G→E,F→G,H→G}

Fmin2={E→G,G→E,F→E,H→E} Fmin3,Fmin4同理。

四、求候选码

1. 候选关键字求解理论

对于给定的关系R(A1,A2,…,An)和函数依赖集F,可将其属性分为四类:

●L类:仅出现在F的函数依赖左部的属性

●R类:仅出现在F的函数依赖右部的属性

●N类:在F的函数依赖左右两边均未出现的属性

●LR类:在F的函数依赖左右两边均出现的属性

定理1:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R 的任一候选关键字成员。

推论1:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,且X包含了R 的全部属性,则X必为R的唯一候选关键字。

定理2:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是R类属性,则X不在任何候选关键字中。

定理3:设有关系模式R及其函数依赖集F,若X是R的N类属性,则X必包含在R的任一候选关键字中。

推论2:对于给定的关系模式R及其函数依赖集F,若X是R的N类和L类组成的属性集,且X+包含了R的全部属性,则X必为R的唯一候选关键字。

2. 单属性依赖集图论求解法(多属性不行)

I:关系模式R,R的单属性函数依赖集F。

O:R的所有候选关键字。

算法:

○1求F的最小依赖集Fmin。

○2构造FDG(函数依赖图)。

○3从图中找出关键属性集X(X可为空)。

○4查看G中有无独立回路,若无则输出X即为R的唯一候选关键字,转○6,若有,则转○5。

○5从各独立回路中各取一结点对应的属性与X组合成一候选关键字,并重复这一过程取尽所有可解的组合,即为R的全部候选关键字。

○6结束。

相关文档
最新文档