《数据库原理》课件第7章 关系数据库规范化理论.ppt

《数据库原理》课件第7章 关系数据库规范化理论.ppt

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*ftt@hdu.edu.cn*第三范式(3NF)S_SD(S#,SN,SD,DMN)不良特性插入异常:如果系中没有学生,则有关系的信息就无法插入删除异常:如果学生全部毕业了,则在删除学生信息的同时有关系的信息也随之删除了更新异常:如果学生转系,不但要修改SD,还要修改DMN,如果换系主任,则该系每个学生元组都要做相应修改数据冗余:每个学生都存储了所在系的系主任的信息*ftt@hdu.edu.cn*3NF(续)S_SD(S#,SN,SD,DMN)因为有S#?SD,SD?DMN则S_SD?3NF,改造 将S分解为 STUDENT(S#,SN,SD) DEPT(SD,DMN)快速热身 关系模式R(A,B,C,D),码为AB,给出它的一个函数依赖集,使得R属于2NF而不属于3NF。S_SDS#SDDMN*ftt@hdu.edu.cn*3NF(续)定义关系模式RU,F中,若不存在这样的码X,属性组Y及非主属性Z(ZY),使得下式成立,X?Y,Y?Z,Y?X 则称R是第三范式,简记为R?3NF。消除非主属性对码的传递依赖。若关系模型R包含的每一关系模式都是3NF的,则称该关系模型是3NF的。定理:一个3NF的关系(模式)必定是2NF的(3NF∈2NF∈1NF)。*ftt@hdu.edu.cn*3NF(续)例1: CT(CNO,TNAME,BDATE,SALARY)存在问题:(1)不能存放不开课的教师(2)教师信息和课程数一样多原因:存在传递函数依赖CT(CNO,TNAME,BDATE,SALARY)非3NF分解:C(CNO,TNAME),T(TNAME,BDATE,SALARY)属于3NF。*ftt@hdu.edu.cn*BC范式(BCNF)例1.STC(S#,T#,C#)假设每一教师只教一门课。每门课由若干教师教,但某一学生选定某门课,就确定了一个固定的教师。可得函数依赖:T#?C#,(S#,C#)?T#,(S#,T#)?C#(S,C)和(S,T)都可以作为候选码。S,T,C都是关系的主属性。STC∈3NFT→C,即T也属决定属性集,可是T只是主属性,它既不是候选码,也不包含候选码。SCTSTCSTC*ftt@hdu.edu.cn*BCNF(续)STC仍然不是一个理想的关系模式不良特性插入异常:如果没有学生选修某位老师的任课,则该老师担任课程的信息就无法插入删除异常:删除学生选课信息,会删除掉老师的任课信息更新异常:如果老师所教授的课程有所改动,则所有选修该老师课程的学生元组都要做改动数据冗余:每位学生都存储了有关老师所教课程的信息症由主属性对码的不良依赖:主属性C依赖于T,即主属性C部分依赖于码*ftt@hdu.edu.cn*BCNF(续)解决方法:采用投影分解法,将STC分解为两个关系模式:ST(S,T),码:(S,T)TC(T,C),码:TSCTSTCSTCSTSTTCTC*ftt@hdu.edu.cn*BCNF(续)定义关系模式RU,F中,对于属性组X、Y,若X?Y且YX时X必含有码,则RU,F?BCNF 如STC(S#,T#,C#),STC?BCNF,因为T#?C#,而T#不含有码BCNF的关系模式所具有的性质所有非主属性都完全函数依赖于每个候选码。所有主属性都完全函数依赖于每个不包含它的候选码。没有任何属性完全函数依赖于非码的任何一组属性。*ftt@hdu.edu.cn*BCNF(续)3NF与BCNF的关系定理:BCNF满足3NF(BCNF∈3NF∈2NF∈1NF)。如果R∈3NF,且R只有一个候选码,则R必属于BCNF。如果一个关系数据库中的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范化程度,消除了插入异常和删除异常。*ftt@hdu.edu.cn*BCNF(续)例:SCP(S#,C#,P#),P#表示名次。每一个学生选修每门课程的成绩有一定的名次,每门课程中每一名次只有一个学生(即没有并列名次)。可得函数依赖:(S#,C#)?P#;(C#,P#)?S#SCPCPSSCP

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档