1.设有关系模式R(U,F),其中:U={A,B,C,D,E},F={A→B,D→AB,C→AB,BE→A,AE→C }。
解:(1)求出F的最小函数依赖集。
(1) a.先使F中的每个函数依赖的右部属性单一
F’={ A→B,D→A,D→B,C→A ,C→B,BE→A,AE→C }
b.去除冗余的函数依赖
因为 C→A,A→B,所以C→B冗余
又因为D→A,A→B,所以D→B冗余
c.左边不存在冗余的属性
Fmin={ A→B,D→A,C→A ,BE→A,AE→C }
(2)求出R的侯选码。
解:根据Fmin可知,R的L类属性是DE,LR类属性是ABC,
因为(DE)+F = ABCDE=U,所以R具有唯一的候选码为DE。
(3)指出R属于第几范式。
因为码为DE,而D→A,存在非主属性对码的部分依赖,所以R是1NF。(2分)
(4)判断R的一个分解P={R1(DE),R2(AD),R3(ABE),R4(CE)}是否具有无损连接性。)
a. 首先构造原始表格
A
B
C
D
E
R1(DE)
b11
b12
b13
a4
a5
R2(AD)
a1
b22
b23
a4
b25
R3(ABE)
a1
a2
b33
b34
a5
R4(CE)
b41
b42
a3
b44
a5
A→B,D→A,C→A ,BE→A,AE→C
b. 根据A→B,所以把b22改为a2。
根据D→A,所以把b11都改为a1。
C→A ,BE→A,AE→C ,没有相同行,
经过F的一次扫描后,表格变成如下:
A
B
C
D
E
R1(DE)
a1
b12
b13
a4
a5
R2(AD)
a1
a2
b23
a4
b25
R3(ABE)
a1
a2
b33
b34
a5
R4(CE)
b41
b42
a3
b44
a5
因为表格中没有一行全为a,且改动了表中的符号,所以要对F进行第二次扫描。
c.在对F的第二次扫描中:
根据A→B,所以把第一行的b12改为a2。
根据AE→C,所以把第三行的b33改为b13。
表格如下:
A
B
C
D
E
R1(DE)
a1
a2
b13
a4
a5
R2(AD)
a1
a2
b23
a4
b25
R3(ABE)
a1
a2
b13
b34
a5
R4(CE)
b41
b42
a3
b44
a5
因为表格中没有一行全为a,且改动了表中的符号,所以要对F进行第三次扫描。
d. 在对F的第三次扫描中,没有一个符号被改动了,且没有一行全为a,所以该分解不具有无损连接性。
(5)将该关系模式分解为具有无损连接性的BCNF。
解:因为码为DE, ρ= {ABCDE},
A→B,D→A,C→A ,BE→A,AE→C
考虑A→B,ρ= {AB, ACDE}
由于AF+={AB}, CF+={CAB}, DF+={DAB},EF+={E},
ACF+={ACB},ADF+={DAB},AEF+={AEBC},CDF+={CDA},CEF+={CEAB},DEF+={DEAC},ACDF+={ACD},ACEF+={ACE},
πACDE (F)={CA, DA, AEC }
考虑C→A,ρ= {AB, AC,CDE}
由于CF+={CAB}, DF+={DAB},EF+={E},
CDF+={CDA},CEF+={AEBC},DEF+={DEAC}
πCDE (F)={ DEC },此时CDE为BCNF
所以最终分解为ρ= {AB, AC,CDE}
(6)将该关系模式分解为既具有无损连接性,又能保持函数依赖3NF
A→B,D→A,C→A ,BE→A,AE→C
第一步:对Fmin中的FD按照相同左部的原则进行分组,可分为:
U1={ AB },U2={ AD },U3={ AC} ,U4={ ABE },U5={ ACE }
第二步:删除相应的子集,因为U1包含在U4中,所以把U1去掉,因为U3包含在U5中,所以把U3去掉,得到一个分解ρ= {AD,ABE,ACE}
第三步:因为ρ中每个模式都不包含R的候选码DE,所以把候选码作为一个子关系模式并入ρ中,
所以ρ= {AD,ABE,ACE} ∪{DE}= {AD,ABE,ACE,DE}
2.设有关系模式R(U,F),其中:U={A,B,C,D,E},F={ C→D,B→E,C→B,CD→A,A→BE }。
解:(1)求出F的最小函数依赖集。
a,将F中的函数依赖都分解为右部为单属性的函数依赖。
F={ C→D,B→E,C→B,CD→A,A→B, A→E }
b,去掉F中冗余的函数依赖。(2分)
判断C→D是否冗余。
设:G1={B→E,C→B,CD→A,A→B, A→E},
求(C)+G1=CBE
∵D不属于(C)+G1 ∴C→D不冗余
判断B→E是否冗余。
设:G2={C→D, C→B,CD→A,A→B, A→E},
求(B)+G2=B
∵E不属于(B)+G2 ∴ B→E不冗余
判断C→B是否冗余。
设:G3={C→D,B→E, CD→A,A→B, A→E},
求(C)+G3=CDABE
∵B属于(C)+G3 ∴C→B冗余
判断CD→A是否冗余。
设:G4={C→D,B→E,A→B, A→E},
求(CD)+G4=CD
∵A不属于(CD)+G4 ∴ CD→A不冗余
判断A→B是否冗余。
设:G5={C→D,B→E,CD→A, A→E},
求(A)+G5=AE
∵B不属于(A)+G5 ∴A→B不冗余
判断A→E是否冗余。
设:G6={C→D,B→E,CD→A,A→B},
求(A)+G6=ABE
∵E属于(A)+G6 ∴ A→E冗余
F={C→D,B→E,CD→A,A→B}
c.去除左边冗余的属性
(C)+F=CDABE;
(D)+F=D
∴ CD→A可用C→A代替
Fmin={C→D,B→E,C→A,A→B}
(2)解:根据Fmin可知,R的L类属性是C,LR类属性是AB,R类属性是DE
因为(C)+F =ABCDE,所以R具有唯一的候选码为C。
(3)因为码为C,而C→A, A→B,存在非主属性对码的传递依赖,所以R是2NF。
(4)判断R的一个分解P={R1(AB),R2(BE),R3(ACD)}是否具有无损连接性。
a.首先构造原始表格
A
B
C
D
E
R1(AB)
a1
a2
b13
b14
b15
R2(BE)
b21
a2
b23
b24
a5
R3(ACD)
a1
b32
a3
a4
b35
b.然后根据Fmin来改造表格。Fmin={C→D,B→E,C→A,A→B}
根据B→E,所以把b15改为a5。
根据A→B,所以把b32改为a2。
经过F的一次扫描后,表格变成如下:
A
B
C
D
E
R1(AB)
a1
a2
b13
b14
a5
R2(BE)
b21
a2
b23
b24
a5
R3(ACD)
a1
a2
a3
a4
b35
没有一行全为a,必须对表格进行第二遍扫描。
根据B→E,所以把b35改为a5。
A
B
C
D
E
R1(AB)
a1
a2
b13
b14
a5
R2(BE)
b21
a2
b23
b24
a5
R3(ACD)
a1
a2
a3
a4
a5
此时已有一行全为a,所以该分解具有无损连接性。
(5)将该关系模式分解为既具有无损连接性,又能保持函数依赖3NF
Fmin={C→D,B→E,C→A,A→B}
第一步:由于C→D,C→A左部相同,对Fmin中的FD按照相同左部的原则进行分组,可分为:
U1={ CDA},U2={ BE },U3={ AB}
第二步:得到一个分解ρ= {CDA,BE,AB }
第三步:因为ρ中CDA包含R的候选码C,所以最终分解为ρ= {CDA,BE,AB}
3设有关系模式R(U,F),其中:U={A,B,C,D,E},F={AB→C,C→DE,A→B,D→E,A→D }。
解:(1)求出F的最小函数依赖集。
a,将F中的函数依赖都分解为右部为单属性的函数依赖。
F={ AB→C,C→D,C→E ,A→B,D→E,A→D }
b,去掉F中冗余的函数依赖。
判断AB→C是否冗余。
设:G1={C→D, C→E, A→B,D→E,A→D},
求(AB)+G1=ABDE
∵C不属于(AB)+G1 ∴ AB→C不冗余
判断C→D是否冗余。
设:G2={AB→C, C→E, A→B,D→E,A→D},
求(C)+G2=C E
∵D不属于(C)+G2 ∴ C→D不冗余
判断C→E是否冗余。
设:G3={AB→C, C→D, A→B,D→E,A→D},
求(C)+G3=CDE
∵E属于(C)+G3 ∴C→E冗余
判断A→B是否冗余。
设:G4={AB→C, C→D, D→E,A→D},
求(A)+G4=ADE
∵B不属于(A)+G4 ∴ A→B不冗余
判断D→E是否冗余。
设:G5={AB→C, C→D, A→B,A→D},
求(D)+G5=D
∵E属于(D)+G5 ∴ D→E不冗余
判断A→D是否冗余。
设:G6={AB→C, C→D, A→B,D→E},
求(A)+G6=ABCDE
∵D不属于(A)+G6 ∴ A→D冗余
F={AB→C,C→D,A→B,D→E}
c. (B)+F=B;
(A)+F=ABCDE;
∴ AB→C可用A→C代替
Fmin={A→C,C→D,D→E,A→B}
(2)
解:根据Fmin可知,R的L类属性是A,LR类属性是CD,
因为(A)+F =ABCD,所以R具有唯一的候选码为A。
(3)因为码为A,而A→C,C→D,存在非主属性对码的传递依赖,所以R是2NF。(3分)
(4)a.首先构造原始表格
A
B
C
D
E
R1(ABC)
a1
a2
a3
b14
b15
R2(CD)
b21
b22
a3
a4
b25
R3(DE)
b31
b32
b33
a4
a5
b.然后根据Fmin来改造表格。
根据C→D,所以把b14改为a4。
根据D→E,所以把b15、b25改为a5。
经过F的一次扫描后,表格变成如下:
A
B
C
D
E
R1(ABC)
a1
a2
a3
a4
a5
R2(CD)
b21
b22
a3
a4
a5
R3(DE)
b31
b32
b33
a4
a5
此时已有一行全为a,所以该分解具有无损连接性。
(5)将该关系模式分解为既具有无损连接性,又能保持函数依赖3NF
Fmin={A→C,C→D,D→E,A→B}
第一步:由于A→C,A→B左部相同,对Fmin中的FD按照相同左部的原则进行分组,可分为:
U1={ ACB},U2={ CD },U3={ DE}
第二步:得到一个分解ρ= { ACB,CD,DE }
第三步:因为ρ中ACB包含R的候选码A,所以最终分解为ρ= { ACB,CD,DE }
4.设有关系模式R(U,F),其中:U={A,B,C,D,E},F={A→CD,C→D,B→CD,DE→C,CE→A }。
解:(1)求出F的最小函数依赖集。
(1) a.先使F中的每个函数依赖的右部属性单一
F’={A→C,A→D,C→D,B→C,B→D,DE→C,CE→A }
b.去除冗余的函数依赖
因为 A→C,C→D,所以A→D冗余
又因为B→C,C→D,所以B→D冗余
c.左边不存在冗余的属性
Fmin={A→C,C→D,B→C, DE→C,CE→A }
(2)求出R的侯选码。
解:根据Fmin可知,R的L类属性是BE,LR类属性是ACD,
因为(BE)+F = ABCDE=U,所以R具有唯一的候选码为BE。
(3)指出R属于第几范式。
因为码为BE,而B→C,存在非主属性对码的部分依赖,所以R是1NF。
(4)判断R的一个分解P={R1(AD),R2(AB),R3(BC),R4(CDE),R5(AE)}是否具有无损连接性。
b. 首先构造原始表格
A
B
C
D
E
R1(AD)
a1
b12
b13
a4
b15
R2(AB)
a1
a2
b23
b24
b25
R3(BC)
b31
a2
a3
b34
b35
R4(CDE)
b41
b42
a3
a4
a5
R5(AE)
a1
b52
b53
b54
a5
b. 根据A→C,所以把b23和b53都改为b13。
根据C→D,所以把b24、b34和b54都改为a4。
根据B→C,所以把第二行的b13改为a3。
根据DE→C,所以把第五行的b13改为a3。
根据CE→A,所以把b41改为a1。
经过F的一次扫描后,表格变成如下:
A
B
C
D
E
R1(AD)
a1
b12
b13
a4
b15
R2(AB)
a1
a2
a3
a4
b25
R3(BC)
b31
a2
a3
a4
b35
R4(CDE)
a1
b42
a3
a4
a5
R5(AE)
a1
b52
a3
a4
a5
因为表格中没有一行全为a,且改动了表中的符号,所以要对F进行第二次扫描。
c.在对F的第二次扫描中:
根据A→C,所以把第一行的b13改为a3。其它不变。表格如下:
A
B
C
D
E
R1(AD)
a1
b12
a3
a4
b15
R2(AB)
a1
a2
a3
a4
b25
R3(BC)
b31
a2
a3
a4
b35
R4(CDE)
a1
b42
a3
a4
a5
R5(AE)
a1
b52
a3
a4
a5
因为表格中没有一行全为a,且改动了表中的符号,所以要对F进行第三次扫描。
d. 在对F的第三次扫描中,没有一个符号被改动了,且没有一行全为a,所以该分解不具有无损连接性。
(5)将该关系模式分解为既具有无损连接性,又能保持函数依赖3NF
Fmin={A→C,C→D,B→C, DE→C,CE→A }
第一步:对Fmin中的FD按照相同左部的原则进行分组,可分为:
U1={ AC},U2={ CD },U3={ BC} ,U4={ DEC } ,U5={ AEC }
第二步:删除相应的子集,因为U1包含在U5中,所以把U1去掉,因为U2包含在U4中,所以把U2去掉,得到一个分解ρ= { BC,ACE,CDE}
第三步:因为ρ都不包含R的候选码BE,所以最终分解为
ρ= { BC,ACE,CDE} ∪{BE}={ BC,ACE,CDE,BE}
本文档为【第6章关系数据理论练习(订正后)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。