网站大量收购独家精品文档,联系QQ:2885784924

数据库课件CH5关系数据理论及求精幻灯片.ppt

数据库课件CH5关系数据理论及求精幻灯片.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BCNF分解举例 例1:r(R)=r(A, B, C, D, G, H),F={A→BC, DG→H , D→A},r(R)是否属于BCNF范式?如果不是,则进行BCNF分解。 r(R)?BCNF(因为候选码为DG ,所以A→BC的决定属性A不是超码)。按上述算法,r(R)可分解为 r1(R1)=r1(A, B, C), F1={A→BC} —— A是候选码 r2(R2)=r2(A, D, G, H),F2={DG→H , D→A}—DG是候选码 r2(R2)?BCNF(因为D→A的决定属性D不是超码)。按上述算法,r2(R2)可分解为 r21(R21)=r21(D, A), F21={D→A} —— D是候选码 r22(R22)=r22(D, G, H), F22={DG→H} —— DG是候选码 最后,r1(A, B, C)、r21(D, A)和r22(D, G, H)都属于BCNF。 BCNF分解举例 例2:r(R)=r(A, B, C, D, G, H), F={AB→GH, CD→GH, B→A, D→B}, r(R)是否属于BCNF范式?如果不是,则进行BCNF分解。 r(R)?BCNF,因为AB→GH的决定属性AB不是超码。r(R)可分解为: r1(R1)=r1(A, B, G, H), F1={AB→GH} —— AB是候选码 r2(R2)=r2(A, B, C, D), F2={B→A, D→B} — D候选码, 丢失CD→EF ! r2(R2)?BCNF(B→A的决定属性B不是超码)。r2(R2)可分解为: r21(R21)=r21(B, A), F21={B→A} —— B是候选码 r22(R22)=r22(B, C, D), F22={D→B} —— CD是候选码 r22(R22)?BCNF(D→B的决定属性D不是超码)。r22(R22)分解为: r221(R221)=r221(D, B), F221={D→B} —— D是候选码 r222(R222)=r222(C, D), F222={?} —— CD是候选码 最后,r1(A, B, G, H)、r21(B, A)、r221(D, B)和r222(C, D)都属于BCNF。 CD是候选码! BCNF分解举例 例3:r(R)=r(A, B, C, D, G, H),F={AB→GH, CD→GH, D→B},r(R)是否属于BCNF范式?如果不是,则进行BCNF分解。 r(R)?BCNF,因为AB→GH的决定属性AB不是超码。r(R)可分解为: r1(R1)=r1(A, B, G, H), F1={AB→GH} —— AB是候选码 r2(R2)=r2(A, B, C, D), F2={D→B} —— ACD是候选码 —— 丢失函数依赖CD→GH! r2(R2)?BCNF(D→B的决定属性D不是超码)。r2(R2)可分解为: r21(R21)=r21(D, B), F21={D→B} —— D是候选码 r22(R22)=r22(A, C, D) , F22={?} —— ACD是候选码 最后,r1(A, B, G, H)、r21(D, B)和r22(A, C, D)都属于BCNF。 ACD是候选码! BCNF分解算法 上述算法得到的分解不仅是BCNF分解,而且是无损分解(但可能不是保持函数依赖分解)。 算法中使用的函数依赖集是F+而不是F。 用该算法生成的BCNF分解不是唯一的。 3NF分解算法 3NF分解算法形式化描述如下: 计算F的一个正则覆盖Fc; i:=0; for each ????Fc do if ???Rj, j=1,2,…,i i := i+1; Ri := ??; if 没有任何Rj(j=1,2,…, i)包含r(R)的候选码 i := i+1; Ri := r(R)的任一候选码; return (R1,R2, ... , Ri) 图5-16 3NF分解算法 3NF分解算法 对3NF分解算法做如下说明: 该算法能保证3NF分解是无损连接分解和保持依赖分解。 该算法是基于F的正则覆盖Fc中的函数依赖集进行的。 一方面正则覆盖可能有多个,另一方面算法执行的结果是依赖于Fc中函数依赖的考虑顺序,因此分解结果可能不唯一。 3NF分解举例 [例5.20] r(R)=r(A, B, C, D),F={AB?CD, B?C, AC?B},判断r(R)是否属于3NF

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档