数据库系统范式教程分解.pptVIP

  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文档。上传文档
查看更多
数据依赖对关系数据库的影响 函数依赖 关系模式的范式 关系模式的规范化 数据依赖的公理系统 数据依赖对关系模式的影响 关系模式设计不规范会带来一系列的问题 数据冗余、更新异常、插入异常、删除异常 示例1: 关系模式 R(Tname, Addr, C#, Cname) 一个教师只有一个地址(户口所在地) 一个教师可教多门课程 一门课程只有一个任课教师 因此R的主码是(C#) R的一个实例 问题(1):数据冗余 教师T1教了三门课程,他的地址被重复存储了2次。 问题(2):更新异常 如果T1的地址变了,则需要改变3个元组的地址;若有一个未更改,就会出现数据不一致。但DBMS无法获知这种不一致。 问题(3):插入异常 如果要增加一名教师,但他还未带课,则C#和Cname为空,但由于C#是主码,为空违反了实体完整性,所以这名教师将无法插入到数据库中。 问题(4):删除异常 如果教师T3现在不带课了,则需将T3的元组删去,但同时也把他的姓名和地址信息删掉了。 如何解决? 方法:模式分解 方法1:R分解为 R1(Tname, Addr) R2(C#,Cname) 方法2 R1( Tname, Addr) R2( Tname, C#, Cname) 规范化理论 规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。 要解决的内容 到底什么样的模式才最佳? 怎么分解才能达到要求? 标准是什么? 如何实现? 函数依赖 关系模式是对关系的描述,它由五部分组成: R(U,D,Dom,F) R为关系模式名; U是一个属性集; D是U中属性的值所来自的域; Dom是属性向域的映射集合; F是属性间的依赖关系。 函数依赖 定义: 设关系模式R(A1,A2,…,An)或简记为R(U),U是R的属性集合,X和Y是U的子集。r是R的任意一个实例(关系),若r的任意两个元组t1、t2,由t1[X]=t2[X]可导致t1[Y]=t2[Y],即如果X相等则Y也相等,则称Y函数依赖于X或称为X函数决定Y,记作 X→Y。 重要说明 1.函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 2.函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立。 函数依赖 3. 若X?Y,则X叫做决定因素。 4. 若X?Y,Y?X,则记做 X ? ? Y。 5. 若Y不函数依赖于X,则记做X?Y。 完全函数依赖与部分函数依赖 定义11.2 在R(U)中,如果X?Y,并且对于X的任何一个真子集X’,都有X’?Y,则称Y完全函数依赖于X,记做X?Y。否则称 称Y部分函数依赖于X。记做X?Y。 在[例1]中(Sno,Cname)?Grade 是完全函数依赖; (Sno,Cname)?Sdept 是部分函数依赖; 传递函数依赖 定义11.3 在关系模式R(U)中,如果X?Y,Y?Z,且Y ? X,Y?X,则称Z传递函数依赖于X,记作X ? Z 。 在[例1]中Sno → Sdept, Sdept → Mname成立, 所以Sno ? Mname。 传递函数依赖 例如,在关系Student(Sno,Sname,Ssex,Sage,Sdept)中,有Sno?Ssex, Sno?Sage, Sno?Sdept, Sno? ?Sname(无重名),但Ssex?Sage。 传递函数依赖 在关系SC(Sno,Cno,Grade)中,有 Sno?Grade, Cno?Grade , (Sno,Cno)?Grade,(Sno,Cno)是决定属性集。 在关系Std(Sno,Sdept,Mname)中,有 Sno?Sdept,Sdept?Mname,Sno ? Mname。 函数依赖的多对一关系 函数依赖实际上是指一个关系模式中一个属性集和另一个属性集间的多对一关系 例如选课关系SC(S#, C#, Score) 存在由属性集{S#,C#}到属性集{Score}的函数依赖 对于任意给定的S#值和C#值,只有一个Score值与其对应 反过来,可以存在多个S#值和C#值,它们对应的Score值相等 函数依赖 FD是否成立,唯一办法是仔细考察应用中属性的含义。 FD实际上是对现实世界的断言。 数据库设计者在设计时把应遵守的函数依赖告知DBMS,则DBMS会自动检查关系的合法性。 函数依赖 例如 Student关系模式中,{S#} →{Sname} (单个属性可去掉括号,简写成 S# → Sname) SC关系

文档评论(0)

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

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

1亿VIP精品文档

相关文档