第4章关系数据库规范化理论 4.1问题导入
4.1.1关系模式规范化的必要性 4.1.2关系模式的规范化 4.2函数依赖及关系的范式 4.2.1函数依赖的定义及分类 4.2.2关系的范式及其规范化 4.3函数依赖的公理系统 4.3.1Armstrong公理系统 4.3.2函数依赖集的等价和最小化 4.4关系模式的分解 4.4.1模式分解的准则 4.4.2模式分解的算法 本章小结 习题4
第 4 章 关系数据库规范化理论课后习题参考答案
1、选择题
(1)~(5): A、C、A、D、A (6)~(10): C、B、B、B、D (11)~(15):C、D、A、B、B (16)~(20):A、D、D、D、D
(21) ~(26):B、D、C、B、B、B
2、理解并给出下列术语的定义
(1) 函数依赖
设 R(U,F)是属性集U 上的关系模式,X 和Y 是U 的子集,F 是属性集U 的数据依赖集,r 是R 的任意一个关系。如果对于 r 中的任意两个元组 u、v,只要有u[X]= v[X],就有 u[Y]= v[Y],则称称 X 函数确定 Y,或 Y 函数依赖于 X,记为 X→Y。
(2) 部分函数依赖
设 R(U)是属性集U 上的关系,X'是 X 的真子集,如果X→Y,并且对于X 的任何一
个真子集X',都存在 X'→Y 成立,则称 Y 对X 部分函数依赖,也就是 Y 不完全函数依赖于X,
p
记为X ??? Y。
(3) 完全函数依赖
设 R(U)是属性集 U 上的关系,X'是 X 的真子集,如果 X→Y,并且对于 X 的任何一
f 个真子集 X',都不存在 X'→Y,则称 Y 对X 完全函数依赖,记为X ??? Y。
(4) 传递函数依赖
在 R(U)中,X,Y,Z 是 U 的子集,如果 X→Y,(Y?X),Y→Z,Y→X 不成立,
t则称 Z 对X 传递函数依赖,记为 X ??Z。
(5) 多值依赖
设有关系模式 R(U),U 是属性集,X、Y、Z 是 U 的子集。如果 R 的任一关系 r,在 (X,Z)上的每一个值,都存在一组 Y 值与之对应,且 Y 的这组值又仅仅决定于X 值而与 Z=U-X-Y 的属性值不相关,则称Y 多值依赖于X,或 X 多值决定 Y,记为X→→Y。
(6) 范式
范式是指规范化的关系模式。在对关系进行规范化时必须满足一定的约束,此约束已经形成了规范,分成了几个等级,一级比一级要求更严格,满足不同级别要求的称为范式。
(7) 关系的规范化
从低一级的关系范式通过模式分解达到若干高一级范式的关系模式的集合,这种过程叫做关系模式的规范化。
(8) 函数依赖的逻辑蕴涵
? U,Y ? U,如果从 F 中的函数依赖能推导出 X→Y 成设有关系模式 R(U,F),X 立,则称 F 逻辑蕴涵 X→Y,或称X→Y 是 F 的逻辑蕴涵,记为: F╞ X →Y 。
(9) 属性集闭包
设 F 是属性集U 上的一组函数依赖,X ? U,则由 F 根据 Armstrong 公理推导出的所有X → Ai 所形成的属性集合{Ai|i=1,2,….}称为 X 关于函数依赖集F 的闭包,记为X 。也就是说 ?
F
X ?
={A|X → A 能由 F 根据 Armstrong 公理导出}= { Ai | Ai ? U, X → Ai ? F+ }
F
(10)无损连接性
设有关系模式R(U,F)的一个分解是指R 为它的一组子集 ? ={ R1(U1,F1),R2(U2,
?
F2),….. Rn(Un,Fn)}所替代的过程。其中U ??对于关系R 中的任一关系r 都有
n
Ui i?1
, 并且没有Ui ? Uj ,1 ? i, j ? n,i ? j ,如果
r=∏U1(r) ∏U2(r) ... ∏Un(r) =m ? (r)
则称分解 ? 具有无损连接性,其中∏Ui(r) 是关系 r 在Ui 上的投影。 3、简答题
(1) 如何判断关系模式的优劣?对一个不理想的关系模式如何转换成一个较好的关系
模式?
答:判断一个关系模式优劣主要是判断关系模式是否存在数据冗余大、插入异常、删除异常、更新异常。若存在四大异常,则此关系模式不是一个较理想的关系模式。
要将一个不理想的关系模式转换成一个较好的关系模式,必须通过模式分解的方法对不理想的关系模式进行规范化处理,即关系的规范化。
(2) 为什么引入关系的规范化,关系规范化主要解决数据库设计中的哪些问题?
答:所谓规范化,就是把一个存在数据冗余、插入异常、删除异常和更新异常等情况
的关系模式通过模式分解转换为“较好”关系模式的集合,这种过程叫做关系模式的规范化。
关系规范化主要解决关系数据逻辑设计中数据冗余大、插入异常、删除异常、更新异常等问题。
(3) 简述在函数依赖范畴内各范式之间的关系。
答:函数依赖范畴内各范式有:1NF、2NF、3NF、BCNF。各范式从低到高是一种包含和被包含的关系。即属于 2NF 的关系模式必然满足 1NF,属于 3NF 的关系模式必然满足2NF,属于BCNF 的关系模式必然是 3NF。
(4) 如何判断一个函数依赖是已知函数依赖集的逻辑蕴涵?
X ?
答:判断 X→Y 是否由 F 根据Armstrong 公理导出的问题即逻辑蕴涵的问题,首先求出 ,然后判定Y 是否为 X 的子集。如果满足Y ? X ,则X→Y 是为 F 的逻辑蕴涵。
? ? F F
F 4、解答题
1) 设关系模式R(A,B,C), F 是 R 上成立的 FD 集,F={C→B,B→A}。
①试求 R 的候选码; 解:R 中的 L 类属性:C
又由于C =CBA=U,所以,R 的唯一候选码为C.
F ? ②判断 R 是不是 3NF,并说明理由;
因为 C 是候选码,可得 C→A,而由已知的 C→B,B→A,可传递推导出 C→A,因
此,R 不是 3NF。
③若不是,试把 R 分解成 3NF 的模式集。
消除R 中存在的传递函数依赖,使之满足 3NF 的模式集为: R1(C,B),R2(B,A)
2) 设有有关系模式 R(A,B,C,D,E,F),函数依赖集F={AB→E,AC→F,AD→B,
B→C,C→D} 。