数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第6章 关系数据理论.pptVIP

数据库原理及应用 第2版 教学课件 作者 何玉洁 刘福刚 第6章 关系数据理论.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
有可能违反BCNF的情形 关系中包含两个(或更多)复合候选码。 候选码有重叠,通常至少有一个重叠的属性。 把CSZ关系模式分解为:ZC(Zip,City),SZ(Street,Zip) 这两个关系模式就都是BCNF的了。 如果一个模型中的所有关系模式都属于BCNF,那么在函数依赖范畴内,就实现了彻底的分解,消除了操作异常。也就是说,在函数依赖范畴,BCNF达到了最高的规范化程度。 规范化小结 小结 规范化的过程实际上是通过把范式程度低的关系模式分解为若干个范式程度高的关系模式来实现的。 分解的最终目的是使每个规范化的关系只描述一个主题。 如果某个关系描述了两个或多个主题,则它就应该被分解为多个关系,使每个关系只描述一个主题。 小结(续) 规范化的方法是进行模式分解,且确保分解后产生的模式与原模式等价, 即模式分解不能破坏原来的语义,同时还要保证不丢失原来的函数依赖关系。 示例 例6.设有关系模式R(U,F),其中U={A,B,C,D,E },F={ A→BC,CD→E,B→D, E→A},求R的所有候选码。 解: 通过观察F中的函数依赖,发现关系模式R中所有属性都是LR类属性。因此,先从A、B、C、D、E属性中依次取出一个属性,分别求它们的闭包: A+ = ABCDE B+ = BD C+ = C D+ = D E+ = ABCDE 由于A+和E+都包含了R的全部属性,因此A和E分别是R的一个候选码。 接下来,从R中任意取出两个属性,分别求他们的闭包。由于A、E已是R的候选码了,因此只需在C、D、E中进行选取即可。 (BC)+ = ABCDE (BD)+ = BD (CD)+ = ABCDE 因此,BC和CD分别是R的一个候选码。 至此,关系模式R的全部候选码为:A、E、BC和CD。 求候选码小结 如果L 类属性和N 类属性不能作候选码,则可将LR类属性逐个与L类和N类属性组合做进一步的考察。 有时要将LR类全部属性与L类、N类属性组合才能作为候选码。 * * 6.1.5 极小函数依赖集 对关系模式R(U,F),如果函数依赖集F满足下列条件,则称F为R的一个极小函数依赖集(或称为最小依赖集、最小覆盖),记为Fmin。 F中每个函数依赖的右部仅含有一个属性。 F中每个函数依赖的左部不存在多余的属性,即不存在这样的函数依赖X→A,X有真子集Z使得 F 与 (F-{X→A}) ∪{Z→A} 等价。 F中不存在多余的函数依赖,即不存在这样的函数依赖X→A,使得 F 与 F-{X→A} 等价。 计算极小函数依赖集的算法 (1)使F中每个函数依赖的右部都只有一个属性。 逐一检查F中各函数依赖X→Y,若Y=A1A2…Ak(k≥2),则用{X→Aj|j=1,2,…k}取代X→Y。 (2)去掉各函数依赖左部多余的属性。 逐一取出F中各函数依赖X→A,设X=B1B2…Bm,逐一检查Bi(i=1,2,…,m),如果A∈(X-Bi)F+,则以X-Bi取代X。 (3)去掉多余的函数依赖。 逐一检查F中各函数依赖X→A,令G=F-{X→A},若A∈XG+,则从F中去掉X→A函数依赖。 示例 例7.设有函数依赖集F1、F2,判断它们是否是极小函数依赖集。 F1 = {AB→CD,BE→C,C→G} F2 = {A→D,B→A,A→C,B→D,D→C} 对F1,由于函数依赖AB→CD的右部不是单个属性,因此,该函数依赖集不是极小函数依赖集。 对F2,由于A→C可由A→D和D→C导出,因此A→C是F2中的多余函数依赖,所以也F2不是极小函数依赖集。 示例 例8.有R(U,F),U={A,B,C },F={A →BC,B→C,AC→B } ,求其极小函数依赖集Fmin。 (1)让F中每个函数依赖的右部为单个属性: G1 = { A→B,A→C,B→C,AC→B} (2)去掉G1中每个函数依赖左部的多余属性。对于该例,只需分析AC→B即可。 第1种情况:去掉C,计算A G1+ = ABC,包含了B,因此C是多余属性,AC→B可化简为A→B。 第2种情况:去掉A,计算C G1+ = C,不包含B,因此A不是多余属性。 去掉左部多余属性后的函数依赖集为: G2 ={A→B,A→C,B→C,A→B}={A→B,A→C,B→C} 例8(续) (3)去掉G2中多余的函数依赖。 对A→B,令G3 = { A→C,B→C },AG3+ = AC,不包含B,因此A→B不是多余的函数依赖。 对A→C,令G4 = { A→B,B→C },AG4+ = ABC,包含了C,因此A→C是多余的函数依赖,应去掉。 对B→C,令G5 = { A→B,A→C },BG5+ = B,不包含C,因此B→C不是多余的函数依赖。 最终的极小函数依赖集Fmin = { A→

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档