当前位置:首页 > 《数据库原理与应用》(孟凡荣 闫秋艳)课后习题答案
⑵ 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模型的数据库设计方法
精选
共分享92篇相关文档