第四章关系数据模式设计.pptVIP

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章关系数据模式设计

函数依赖 例如 考虑以下关系 以上关系满足什么函数依赖? 学号 课程号 课程名 分数 01 A 数据库 90 01 B C语言 85 02 A 数据库 70 02 C 算法分析 100 03 B C语言 80 选修 特殊类型的函数依赖 函数依赖X ? Y,当Y ? X 时是平凡的;否则是非平凡的 例如,以下是平凡的函数依赖 name, branch ? name name ? name 例如,以下是非平凡的函数依赖 name, branch ? manager 思考与练习 平凡的函数依赖总是成立的,为什么? 换句话说,平凡的函数依赖是没有意义的,我们一般所讨论的函数依赖都应该排除这种情况。 特殊类型的函数依赖 函数依赖X ? Y是部分的,当 存在 X ? X , 使X ? Y成立 例如,以下函数依赖是部分的 name, branch ? manager 意义:(右边)可以依赖左边的一部分 函数依赖X ? Y是完全的,当 不存在 X ? X , 使X ? Y 例如,以下函数依赖是完全的 name ? manager SNO, CNO ? result 意义:(右边)不可以依赖左边的一部分 f f p 特殊类型的函数依赖 函数依赖X ? Y是传递的,当 存在Y,使X ? Z, Z ? Y 同时成立,但Y? X不成立 例如. name ? manager是传递的, 因为 name ? branch, 且branch ? manager 。但branch ? name 不成立 意义:传递的函数依赖,说明右边与左边不是直接依赖 函数依赖X ? Y是非传递的,当 不存在Z ,使X ? Z, Z ? Y 同时成立 例如. name ? branch 是非传递的 意义:传递的函数依赖说明右边与左边是直接依赖 t 思考与练习 如果X ? Y是部分的,那么它也是传递的。为什么? X ? Y 是部分的 ? 存在X ? X, X ? Y ? X ? X , X ? Y ? X ? Y 是传递的 键和函数依赖 在关系R中 K是一个超键,当且仅当 K ? U (U 是R中全部属性的集合) K是一个候选键,当且仅当 K ? U, 且 任何K的真子集K都不满足: K ? U 思考 如何证明 对候选键的部分/传递依赖是”坏”的 若K→A是部分函数依赖,且K是候选键 存在K,使K→A K‘不是候选键(为什么?),所以K’取值出现重复,导致( K‘, A)组合的取值重复,即冗余。 若K→A是传递函数依赖,且K是候选键 存在Z,使K→Z→A,但Z→K不成立 Z不是候选键(为什么?),所以Z取值重复,导致( Z, A)组合取值重复,即冗余。 函数依赖集的闭包 R(U): 一个关系模式 F : R满足的函数依赖的集合 函数依赖集的闭包 可从F推出某些函数依赖 例如,如果有F={A ? B, B ? C},可以推导出新的函数依赖A ? C 能从一个函数依赖集F推导出的全部函数依赖(包括F自身)所构成的集合,就是F的闭包 (用F+表示) X ? Y in F+ ? X ? Y 能从 F 中推导出 例如,对 F={A ? B, B ? C}, F+ = ? {A ? B, B ? C, A ? C, A ? A, B ? B, ……} 函数依赖集的闭包 我们可以应用Armstrong公理来找到F+中的所有(函数依赖) 如果 Y ? X, 那么 X ? Y (自反律) 如果 X ? Y, 那么 Z X ? Z Y (增广律) 如果 X ? Y, 且 Y ? Z, 那么 X ? Z (传递律) 如果 X ? Y, 且 X ? Z, 那么 X ? Y Z (结合律) 如果 X ? Y Z, 那么 X ? Y 且 X ? Z (分解律) 如果 X ? Y 且 Y Z ? ?, 那么 XZ ? ? (伪传递律) 函数依赖集的闭包 R ( A, B, C, G, H, I ) F = { A ? B, A ? C, CG ? H, CG ? I, B ? H } F+中的某些成员 A ? H 用传递律从A ? B 和 B ? H推出 AG ? I 用增广律从A ? C 推出AG ? CG 用传递律从AG?CG, CG?I 推出AG ? I CG ? HI 用结合律从CG?H和CG?I 推出 函数依赖集的闭包 实际上,找到F+中

文档评论(0)

118books + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档