《数据库原理与应用》课后习题答案 下载本文

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。