图8-7 规范化的过程 8.3 规范化所引起的一些问题 由规范化而引起了对一些问题的进一步研究,它们是: 1.函数依赖理论的研究 属性间的函数依赖与多值依赖是规范化的基本依据,因此有必要对它们作进一步研究,这些研究包括: (1)可由关系模式上的一些函数依赖通过一些公理系统(叫Armstrong公理)而获得关系模式上的所有函数依赖.由此可知:一个关系模式上的所有函数依赖可由两部分组成:基础部分是直接由语义获取,其他部分可由公理系统推演而得. (2)引入了函数依赖集的等价概念与最小函数依赖集,即如果两函数依赖集能推演出相同的集来,则称它们是等价的,而等价的函数依赖集之最小者称为最小函数依赖集. 这些研究为规范化提供了更多的基础信息. 2.模式分解的研究 规范化的实施主要依靠不断地进行模式分解.在模式分解中需要研究下列问题: (1)分解后关系中的信息是否会丢失 这叫无损联接性(lossless join). (2)分解后关系中的函数依赖是否会丢失 这叫依赖保持性. (3)在满足无损联接性与依赖保持性下可分解到第几范式. 经过研究我们可以得到下面几个事实: 若要求满足无损联接性,则模式分解一定可以达到BCNF. 若要求满足依赖保持性,则模式分解一定可以达到3NF,但不一定能达到BCNF. 若既要求满足无损联接性又要求满足依赖保持性,则模式分解一定可以达到 3NF,但 不一定能达到BCNF. 上述三点均可通过三个算法获得实现. 由于规范化所引起的这两个问题的研究的详细探讨均比较复杂,故本书中不拟详述,仅将结果陈述于上,供读者参考. 习 题 8 1.请给出下列术语的含义: 函数依赖;(2)关键字;(3)主属性集;(4)多值依赖;(5)2NF;(6)3NF; (7)BCNF;(8)4NF. 2.在关系SC(S#, C#, G)中S#((C#正确吗 请说明其理由. 3.是不是规范化最佳的模式结构是最好的结构 为什么 4.试证明若R(BCNF,则必有R(3NF. 5.试问下列关系模式最高属第几范式,并解释其原因. R (A, B, C, D),F: {B(D, AB(C}; R (A, B, C),F: {A(B, B(A, A(C}; R (A, B, C, D),F: {A(C, D(B}; R (A, B, C, D),F: {A(C, CD(B}. s t f p f p p f f f f p p f G S# C# Sd Ss Sn S# C# G S# Sd Ss Sn 非主属性集N ○ ○ 主属性集p K1 K2 K3 K4 ○ ○ ○ S# c# G S# Sn Ss Ss Sd S C T C T T S 非决定因素 决定 因素 R: 消除决定因素非关键字的非平凡多值依赖 1NF 消除非主属性对关键字的部分依赖 2NF 消除非主属性对关键字的传递依赖 3NF 消除主属性对关键字的部分与传递依赖 BCNF 消除非平凡且非函数依赖的多值依赖 4NF