- 1、本文档共112页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 互补规则 假设关系R中存在多值依赖A1,A2,..,An→ → B1,B2,..,Bm则R中也有多值依赖A1,A2,..,An→→C1,C2,..,Ck 成立,其中C1,C2,..,Ck 是R中不存在于A和B中的所有其他属性 注意:仅适用于多值依赖,对函数依赖无效 例如:上例存在多值依赖name →→street city ,则互补规则说明了name →→title year在R中也成立。 * 第四范式 由多值依赖引起的冗余,可通过依赖使用新的分解算法来消除。引入第四范式。 在第四范式中,同在BCNF中消除所有违反BC范式的函数依赖一样,消除了所有违反4NF的非平凡多值依赖。 分解后的关系中既不存在如3.6.1节讨论的函数依赖带来的冗余,也不存在3.7.1节中讨论的多值依赖带来的冗余。 * 非平凡多值依赖 当下列条件成立时,关系R中的多值依赖 A1,A2,..,An→ → B1,B2,..,Bm 是非平凡的: B中没有一个属性属于A R中存在除了A和B之外的其他属性 * 第四范式定义 在R中,若任一非平凡多值依赖 X→→Y成立时 都有X是超键,则R属于第四范式(4NF)。 在R中,若任一非平凡函数依赖 X→Y成立时 都有X是超键,则R属于BC范式(BCNF)。 4NF在BCNF的基础上去除了左边不是超键的MVD * MVD X是超键 X不是超键 X-Y必是关系R中的FD X-Y必不是关系R中的FD 假设关系R中存在MVD X--Y,X不是超键,而X-Y是R中的FD。 由于R满足BCNF,R中的FD: X-Y必满足X是超键。与假设X不是超键矛盾。因此R中的MVD: X--Y,如果X不是超键, X-Y必不是R中的FD 4NF在BCNF的基础上去除了左边不是超键的MVD 也即4NF在BCNF的基础上消除非平凡且非FD的MVD 因此若关系R满足4NF, 则R中所允许的非平凡多值依赖X→→ Y实际上必然是X为超键的函数依赖X→ Y 去除 * BCNF与4NF 4NF是广义BCNF,每个函数依赖又是一个多值依赖 所以只要违反BCNF条件,也必然违反4NF条件。 换言之,只要满足4NF,也必然满足BCNF。 但满足BCNF,却不一定能满足4NF 如上例,该关系唯一的键是所有属性的集合,因此不存在非平凡函数依赖,所以该关系必满足BCNF。但由于该关系中存在非平凡多值依赖name→→street city,而其左部不是关系的超键,所以不符合4NF。 * 分解到第四范式 4NF的分解算法与BCNF的分解算法非常类似: 对于A1,A2,..,An→→ B1,B2,..,Bm,若{A1,A2,..,An}不是超键,则认为此多值依赖违反了4NF条件。 那么可把存在违反4NF条件的多值依赖关系R分解为2个模式: 含有A和B的全部属性 含有A的全部属性和不在A和B中的全部属性。 * 分解的具体步骤 Step1:求键 Step2:寻找违反4NF的非平凡函数依赖,如A→→ B Step3:将原关系直接分解为两部分: R1(A∪B) R2(A∪(U-A-B)) Step4:对关系R1和R2进行检查,若还未符合4NF,则重复Step1~3,直到分解出的所有关系都满足4NF 按照这种方法分解得到满足4NF的子关系,将它们进行自然连接,能恢复原关系R,具有无损连接性。 * 4NF分解示例 Step1:本例的键为(name, street, city, title, year) Step2:存在非平凡多值依赖name→→street city违例 Step3:于是按分解规则将原关系分解为 {name, street, city}和 {name, title, year} Step4:两个子关系中不存在非平凡MVD,均符合4NF * 范式间的联系 1NF 2NF 3NF BCNF 4NF 消除非主属性对码的部分FD 消除非主属性对码的传递FD 消除主属性对码的部分FD和传递FD 消除非平凡且非函数依赖的多值依赖 除函数依赖、多值依赖外还有连接依赖,在4NF基础上去除连接依赖,就是5NF(不予讨论) * 范式的性质和分解 性质 3NF BCNF 4NF 消除FD冗余 大多数 YES YES 消除MVD冗余 NO NO YES 保持FD YES 可能 可能 保持MVD 可能 可能 可能 本 章 结 束 ! * 有效性证明 本证明采用归纳法,前提:B在(A1,A2,…,An)+中。 归纳基(0次迭代): 已知B在(A1A2…An)+中,此时B是A1A2…An中的一员, A1A2…An→B是平凡函数依赖,必然可以从函数依赖集S中推断出来。 假设使用函数依赖集S中的函数依赖B1B2…Bm→B,能够把B加入到X(
文档评论(0)