《数据库原理与应用》(孟凡荣 闫秋艳)课后习题答案 联系客服

发布时间 : 星期三 文章《数据库原理与应用》(孟凡荣 闫秋艳)课后习题答案更新完毕开始阅读82fd0473970590c69ec3d5bbfd0a79563d1ed4ce

⑵ 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 a1 b21 b12 a2 a3 a3 D a4 b24 精选

修改表

Aj Ri ACD BC A a1 a1 B b12 a2 C a3 a3 D a4 a4 因为表中出现a1,a2,a3 ,a4的行,所以该分解具有无损连接性。 C) F1 =?(F)= (C→A,C→D)

U1F2 =?U2(F)=?

G = F1∪F2 = { C→A,C→D } F={ B→C, D→A}

++

显然,G必定包含于F。而F不包含于G。

因此,有G+≠F+,即 ∴ρ不具有函数依赖保持性。 D) 模式ad(ACD) ?BCNF,模式bc(BC) ?BCNF

3分解⑶ F={A→BC,C→AD}○,ρ={ABC,AD}

A) 候选码为:A,C 选主码为:A B) 具有无损连接性。 C) 具有函数依赖保持性 D) 均为BCNF

4分解⑷ F={A→B,B→C,C→D}○,ρ={AB,ACD}

A) 候选码为:A,主码为:A B) 具有无损连接性。 C) 不具有函数依赖保持性

D) 模式ad(AB) ?BCNF,模式bc(ACD) ?2NF

5分解⑸ F={A→B,B→C,C→D}○,ρ={AB,AD,CD}

A) 候选码为:A 选主码为:A

B) 不具有无损连接性。 C) 不具有函数依赖保持性 D) 均为BCNF

4.10 设有关系模式R(A,B,C,D,E),R的函数依赖集F={AB→C,C→D,D→E}。判

断分解ρ={R1(ABC),R2(CD),R3(DE)}是否为无损连接分解。并且: ⑴ 求R的所有候选码 ⑵ 求F的最小覆盖

⑶ 将R分解为3NF并具有无损连接性和函数依赖保持性 【参考答案】 初始表

Aj A B C D E Ri ABC a1 a2 a3 b14 b15 精选

CD DE b21 b31 b22 b32 a3 b33 a4 a4 b25 a5 修改表 逐一考察F中的函数依赖:

a) AB→C表的结构不变; b) C→D,将b14改为a4 Aj A B Ri ABC CD DE a1 b21 b31 a2 b22 b32 C a3 a3 b33 D a4 a4 a4 E b15 b25 a5 c) D→E,将b15改为a5,将b25改为a5 Aj A B Ri ABC CD DE a1 b21 b31 a2 b22 b32 C a3 a3 b33 D a4 a4 a4 E a5 a5 a5 是无损连接分解 ⑴ 求R的所有候选码

L类属性AB,LR类属性为CD

(AB)+ = {ABCDE},所以候选码为AB ⑵ 求F的最小覆盖

第一步:将F的所有函数依赖的右部都分解成单一属性: 由于均为单一属性,所以F1=F={AB→C,C→D,D→E} 第二步:去掉冗余的函数依赖:

没有冗余函数依赖,所以F2=F1={AB→C,C→D,D→E} 第三步:去掉冗余的属性:

没有冗余的属性,所以Fm=F2={AB→C,C→D,D→E} ⑶ 将R分解为3NF并具有无损连接性和函数依赖保持性 ρ={R1(ABC),R2(CD),R3(DE)}

4.11设有关系模式R (职工名,项目名,工资,部门名,部门经理)

如果规定每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一个经理。

⑴ 试写出关系R的基本FD和候选码,确定主码。

⑵ 说明R不是2NF的理由,并把R分解成2NF的模式集。 ⑶ 把R分解成3NF模式集,说明理由。

【参考答案】

(1)由题意得函数依赖集F

F={[职工名,项目名] →工资,项目名→部门名,部门名→部门经理} 候选码:职工名+项目名

由于只有一个候选码,故主码即为职工名+项目名

(2)由于项目名→部门名,所以存在非主属性(部门名)对码(职工名+项目名)的部分依赖,故R没有达到2NF。

精选

可以分解为如下两个关系模式: R1= (职工名,项目名, 工资)

R2= (项目名, 部门名, 部门经理)

(3)由于R2中存在函数依赖:项目名→部门名,部门名→部门经理,即存在非主属性(部门经理)对码(项目名)的传递依赖,故R2没有达到3NF。可以在(2)的基础上把R2进一步分解为如下两个关系模式: R1= (项目名,部门名) R2= (部门名, 部门经理)

综上,R分解成3NF模式集为: R1= (职工名,项目名, 工资) R2= (项目名,部门名) R3= (部门名, 部门经理)

第五章

5.1 名词解释

数据库设计 基于3NF的数据库设计方法 基于E-R模型的数据库设计方法

精选