CD→E}的等价性 【参考答案】
∵ A→BC,A→D,CD→E ,∴A→BCE,A→ABD,有F?G? ∵ A→BCE,A→ABD ,∴ A→BC,A→D,CD→E ,有G?F?
所以F和G等价。
4.4 设关系模式R(ABCD),F是R上成立的函数依赖集,F={A→B,C→B},则相对于F,
试写出关系模式R的候选码,并说明理由 【参考答案】
关系模式R的候选码为ACD
在关系F中B只出现在右边,所以B一定不是候选码 在关系F中D没有出现D必然出现在候选码中 在关系F中AC出现在左边 A→B,C→C,A→A
所以A能推出ABC,因此候选码是ACD
4.5 设有关系模式R(A,B,C,D,E),R的函数依赖集F={AB→D,B→CD,DE→B,C
→D,D→A}
++
⑴ 计算(AB)+,(AC),(DE) ⑵ 求R的所有候选码 ⑶ 求F的最小覆盖 【参考答案】
⑴(AB)+={ABCD} (AC)+={ACD}
+
(DE)={ABCDE}
⑵ R属性:E, LR属性:ABCD (AE) +={AE} (BE) +={ABCDE} (CE) +={ABCDE} (DE) +={ABCDE}
R的候选码为:BE, CE, DE
⑶ 右部属性单一化:F1={ AB→D,B→C,B→D,DE→B,C→D,D→A } 去掉多余的函数依赖:F2={B→C, DE→B,C→D,D→A} 去掉冗余的属性:没有冗余属性
所以F的最小覆盖Fmin=F2={B→C, DE→B,C→D,D→A}
4.6 设有关系模式R(A,B,C,D),R的函数依赖集F={A→C,C→A,B→AC,D→AC,
BD→A},求F的最小覆盖 【参考答案】
第一步:将F的所有函数依赖的右部都分解成单一属性: F1={ A→C,C→A,B→A ,B→C,D→A,D→C,BD→A } 第二步:去掉冗余的函数依赖:
+
1考察A→C,令G={C→A,B→A ,B→C,D→A,D→C,BD→A}○,AG={A}
因为C? AG,所以A→C不冗余;
+2考察C→A,令G={A→C, B→A ,B→C,D→A,D→C,BD→A}○,CG={C}
+
因为A ?C+G,所以C→A不冗余;
+3考察B→A,令G={A→C,C→A,B→C,D→A,D→C,BD→A}○,BG={ABC}
因为A? B+G,所以B→A冗余,从F1中删除B→A,F2={A→C,C→A,B→C,D→A,D→C,BD→A};
4考察B→C,令G={A→C,C→A,D→A,D→C,BD→A}○,B+G={B}
因为C? B+G,所以B→C不冗余;
+5考察D→A,令G={A→C,C→A,B→C, D→C,BD→A}○,DG={ACD}
+
因为A? DG,所以D→A冗余,从F2中删除D→A,F3={A→C,C→A,B→C, D→C,BD→A};
+
6考察D→C,令G={A→C,C→A,B→C,BD→A}○,DG={D}
因为C? D+G,所以D→C不冗余;
7考察BD→A,令G={A→C,C→A,B→C, D→C}○,(BD)+G={ABCD}
因为A? (BD)+G,所以BD→A冗余,从F3中删除BD→A,F4={A→C,C→A,B→C,
D→C};
第三步:去掉冗余的属性:
由于左边都是单属性,所以: Fm=F4={A→C,C→A,B→C, D→C}; 但是结果不唯一。
4.7 设关系模式R(ABC),F是R上成立的FD集,F={C→A,B→A},分解ρ={AB,BC},
判断ρ是否具有函数依赖保持性? 【参考答案】
F1 =?(F)= (B→A)
U1F2 =?U2(F)=?
G = F1∪F2 = { B→A } F={ C→A,B→A }
显然,G必定包含于F+。而F不包含于G+。
因此,有G+≠F+,即
∴ρ不具有函数依赖保持性。 4.8 设关系模式R(ABC),F是R上成立的FD集,F={C→A,B→C},ρ={AB,AC},判
断ρ是否具有“无损连接性”和“函数依赖保持”性 【参考答案】
考察“无损连接性”:
①首先构造初始表,结构如表1
表1 初始表
Aj Ri AB AC A a1 a1 B a2 b23 C b13 a3 ②修改表
逐一考察F中的函数依赖: a) C→A,表的结构不变; b) B→C,表的结构不变;
此时,对F中的每个函数依赖,表的结构都不再变化。又因为表中没有出现a1,a2,a3 的行,所以该分解不具有无损连接性。 考察“函数依赖保持”
F1 =?(F)= (B→A)
U1F2 =?U2(F)=( C→A)
G = F1∪F2 = { B→A ,C→A } F={ C→A,B→C }
++
显然,G必定包含于F。而F不包含于G。
++
因此,有G≠F,即 ∴ρ不具有函数依赖保持性。
4.9 设关系模式R(ABCD),在R上有5个相应的FD集及分解:
⑴ F={B→C,D→A},ρ={AD,BC} ⑵ F={AB→C,C→A,C→D},ρ={ACD,BC} ⑶ F={A→BC,C→AD},ρ={ABC,AD} ⑷ F={A→B,B→C,C→D},ρ={AB,ACD} ⑸ F={A→B,B→C,C→D},ρ={AB,AD,CD} 试对上述5中情况分别回答下列问题:
⑴ 确定R的候选码和主码。 ⑵ 是否为无损分解? ⑶ 是否函数依赖保持?
⑷ 确定ρ中每一模式的范式级别。
【参考答案】
1分解⑴ F={B→C,D→A}○,ρ={AD,BC}
A) (BD)+={ABCD} BD是候选码,也是主码 B) 首先构造初始表,结构如表2
表2 初始表
Aj A B C Ri AD BC a1 b21 b12 a2 b13 a3 D a4 b24 修改表
逐一考察F中的函数依赖:
a) B→C,表的结构不变; b) D→A,表的结构不变;
a2,a3 ,此时,对F中的每个函数依赖,表的结构都不再变化。又因为表中没有出现a1,
a4的行,所以该分解不具有无损连接性。
C) F1 =?(F)= (B→C)
U1F2 =?U2(F)=( D→A)
G = F1∪F2 = { B→C ,D→A } F={ B→C, D→A}
++
显然,G必定包含于F。而F包含于G。
因此,有G+=F+,即 ∴ρ具有函数依赖保持性。
D) 模式ad(A,D) ?BCNF,模式bc(B,C) ?BCNF 2分解⑵ F={AB→C,C→A,C→D}○,ρ={ACD,BC}
A) L属性B,LR属性AC ,R属性D
(B)+ = {B}
(AB)+ = {ABCD} 所以AB是候选码 (BC)+ = {ABCD} 所以BC是候选码 选择AB做为主码 B) 构造初始表 Aj A B C Ri ACD BC 修改表 Aj Ri ACD BC a1 b21 b12 a2 a3 a3 D a4 b24 A a1 a1 B b12 a2 C a3 a3 D a4 a4 因为表中出现a1,a2,a3 ,a4的行,所以该分解具有无损连接性。 C) F1 =?(F)= (C→A,C→D)
U1F2 =? (F)=?U2G = F1∪F2 = { C→A,C→D } F={ B→C, D→A}
++
显然,G必定包含于F。而F不包含于G。