数据库原理及应用.ppt

上传人:cn****1 文档编号:569327945 上传时间:2024-07-28 格式:PPT 页数:93 大小:563.06KB
返回 下载 相关 举报
数据库原理及应用.ppt_第1页
第1页 / 共93页
数据库原理及应用.ppt_第2页
第2页 / 共93页
数据库原理及应用.ppt_第3页
第3页 / 共93页
数据库原理及应用.ppt_第4页
第4页 / 共93页
数据库原理及应用.ppt_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《数据库原理及应用.ppt》由会员分享,可在线阅读,更多相关《数据库原理及应用.ppt(93页珍藏版)》请在金锄头文库上搜索。

1、v学生学生-课程模式课程模式S-T:学生表:学生表:student(Sno,Sname,Ssex,Sage,Sdept)课程表:课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:学生选课表:SC(Sno,Cno,Grade改为:改为:学生表:学生表:student(Sno,Sname,Ssex,Sage,Sdept,Cno,Grade)课程表:课程表:Course(Cno,Cname,Cpno,Ccredit)请大家比较这请大家比较这2个数据库的关系模式个数据库的关系模式AnIntroductiontoDatabaseSystem 西北工业大学明德学院西北工业大学

2、明德学院数据库系统概论数据库系统概论AnIntroductiontoDatabaseSystem第七章第七章 关系数据库的规范化理论关系数据库的规范化理论AnIntroductiontoDatabaseSystem第第六六章章关系数据理论关系数据理论6.1问题的提出问题的提出6.2规范化规范化6.3数据依赖的公理系统数据依赖的公理系统*6.4模式的分解模式的分解6.5小结小结AnIntroductiontoDatabaseSystem6.1问题的提出问题的提出关系数据库逻辑设计关系数据库逻辑设计针对具体问题,如何构造一个针对具体问题,如何构造一个适合于适合于它的它的数据模式数据模式数据库逻辑设

3、计的工具数据库逻辑设计的工具关系数据库的关系数据库的规范化理论规范化理论主要内容:主要内容:一、概念回顾(关系模式的形式化定义)一、概念回顾(关系模式的形式化定义)二、什么是数据依赖二、什么是数据依赖三、数据依赖对关系模式影响三、数据依赖对关系模式影响AnIntroductiontoDatabaseSystem一、概念回顾(关系模式的形式化定义)关系模式的形式化定义)关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它是一个五元组:R(U,D,DOM,F)R:关系名关系名U:组成该关系的属性名集合组成该关系的属性名集合D:属性组属性组U中属性所来自的域中属性所来自的域DOM:属性

4、向域的映象集合属性向域的映象集合F:属性间数据的依赖关系集合属性间数据的依赖关系集合AnIntroductiontoDatabaseSystem二、什么是数据依赖二、什么是数据依赖1.完整性约束的表现形式完整性约束的表现形式v限定属性取值范围:例如学生成绩必须在限定属性取值范围:例如学生成绩必须在0-100之间之间v定义属性定义属性值值间的相互关连(主要体现于值的间的相互关连(主要体现于值的相等与否相等与否),这就是数据依赖,它是,这就是数据依赖,它是数据库模式设计的关键数据库模式设计的关键AnIntroductiontoDatabaseSystem什么是数据依赖(续)什么是数据依赖(续)2.

5、数据依赖数据依赖v一个关系内部一个关系内部属性与属性属性与属性之间的约束关系之间的约束关系v现实世界属性间相互联系的抽象现实世界属性间相互联系的抽象v数据内在的性质数据内在的性质v语义语义的体现的体现AnIntroductiontoDatabaseSystem什么是数据依赖(续)什么是数据依赖(续)3.数据依赖的类型数据依赖的类型v函数依赖(函数依赖(FunctionalDependency,简记为简记为FD)v多值依赖(多值依赖(MultivaluedDependency,简记为简记为MVD)AnIntroductiontoDatabaseSystem三、三、数据依赖对关系模式的影响数据依赖

6、对关系模式的影响例例1建立一个描述学校教务的数据库:建立一个描述学校教务的数据库:学生的学号(学生的学号(Sno)、)、所在系(所在系(Sdept)系主任姓名(系主任姓名(Mname)、)、课程号(课程号(Cno)成绩(成绩(Grade)单一单一的关系模式的关系模式:StudentU Sno, Sdept, Mname, Cno, Grade AnIntroductiontoDatabaseSystem数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续) 属性组属性组U上的一组函数依赖上的一组函数依赖F:FSnoSdept,SdeptMname,(Sno,Cno)Grade SnoCn

7、oSdeptMnameGradeAnIntroductiontoDatabaseSystem关系模式关系模式Student中存在的问题中存在的问题1 1、数据冗余太大:系负责人的名字,重复出现的次数跟、数据冗余太大:系负责人的名字,重复出现的次数跟每个学生每一门功课出现的次数一样多。每个学生每一门功课出现的次数一样多。2 2、插入异常:一个系如果还没有学生,则无法将这个系、插入异常:一个系如果还没有学生,则无法将这个系及其负责人的信息存入数据库及其负责人的信息存入数据库3 3、删除异常:一个系所有的学生都毕业了的话,学生删、删除异常:一个系所有的学生都毕业了的话,学生删除后,有关系及其负责人的

8、信息也全部被删除。除后,有关系及其负责人的信息也全部被删除。AnIntroductiontoDatabaseSystem数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)结论:结论:nStudent关系模式不是一个好的模式。关系模式不是一个好的模式。n“好好”的模式:的模式:不会发生插入异常、删除异常、更新异常,不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少数据冗余应尽可能少原因:原因:由存在于模式中的由存在于模式中的某些数据依赖某些数据依赖引起的引起的解决方法:解决方法:通过通过分解分解关系模式来消除其中不合适关系模式来消除其中不合适的数据依赖的数据依赖AnIntrodu

9、ctiontoDatabaseSystem分解关系模式分解关系模式v把这个单一模式分成把这个单一模式分成3个关系模式:个关系模式:S(Sno,Sdept,SnoSdept);SC(Sno,Cno,Grade,(,(Sno,Cno)Grade);DEPT(Sdept,Mname,SdeptMname)AnIntroductiontoDatabaseSystem6.2规范化规范化 规范化理论规范化理论正是用来改造关系模式,通过分解关系模式来正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗

10、余问题。更新异常和数据冗余问题。AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.1函数依赖函数依赖v函数依赖函数依赖v平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖v完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖v传递函数依赖传递函数依赖AnIntroductiontoDatabaseSystem一、函数

11、依赖一、函数依赖定义定义6.1:设:设R(U)是一个属性集是一个属性集U上的关系模式,上的关系模式,X和和Y是是U的子集。的子集。若对于若对于R(U)的的任意任意一个可能的关系一个可能的关系r,r中不可能存在两中不可能存在两个元组在个元组在X上的属性值相等,上的属性值相等,而在而在Y上的属性值不等,上的属性值不等,则称则称“X函数确定函数确定Y”或或“Y函数依赖于函数依赖于X”,记作记作XY。AnIntroductiontoDatabaseSystem说明说明1.所有关系实例所有关系实例均要满足均要满足2.语义范畴语义范畴的概念的概念如:年龄函数依赖于姓名,只有在没有重名的语义如:年龄函数依赖

12、于姓名,只有在没有重名的语义前提下。前提下。3.数据库设计者可以对现实世界作强制的规定数据库设计者可以对现实世界作强制的规定AnIntroductiontoDatabaseSystem二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖在关系模式在关系模式R(U)中,对于中,对于U的子集的子集X和和Y,如果如果XY,但,但Y X,则称则称XY是是非平凡的函数依赖非平凡的函数依赖若若XY,但,但Y X,则称则称XY是是平凡的函数依赖平凡的函数依赖v例:在关系例:在关系SC(Sno,Cno,Grade)中,中,非平凡函数依赖:非平凡函数依赖:(Sno,Cno)Grade平凡函数依赖:平

13、凡函数依赖:(Sno,Cno)Sno(Sno,Cno)CnoAnIntroductiontoDatabaseSystem平凡函数依赖与非平凡函数依赖(续)平凡函数依赖与非平凡函数依赖(续)若若XY,则,则X称为这个函数依赖的决定属性组,也称为这个函数依赖的决定属性组,也称为决定因素(称为决定因素(Determinant)。若若XY,YX,则记作,则记作XY。若若Y不函数依赖于不函数依赖于X,则记作,则记作XY。AnIntroductiontoDatabaseSystem三、完全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖定义定义6.2在在R(U)中,如果中,如果XY,并且对于并且对于X

14、的任何一个真的任何一个真子集子集X,都有都有XY,则称则称Y对对X完全函数依赖完全函数依赖,记作,记作XFY。(。(X必为主码或候选码)必为主码或候选码)若若XY,但,但Y不完全函数依赖于不完全函数依赖于X,则称则称Y对对X部分函数部分函数依赖依赖,记作,记作XPY。AnIntroductiontoDatabaseSystem完全函数依赖与部分函数依赖(续)完全函数依赖与部分函数依赖(续)例例1中中(Sno,Cno)Grade是完全函数依赖是完全函数依赖,(Sno,Cno)Sdept是部分函数依赖是部分函数依赖因为因为SnoSdept成立,且成立,且Sno是(是(Sno,Cno)的真子集)的真

15、子集 FPAnIntroductiontoDatabaseSystem四、传递函数依赖四、传递函数依赖定义定义6.3在在R(U)中,如果中,如果XY,(Y X),YXYZ,则称则称Z对对X传递函数依赖传递函数依赖。记为:记为:XZ注注:如果如果YX,即即XY,则,则Z直接依赖于直接依赖于X。例例:在关系在关系Std(Sno,Sdept,Mname)中,有:中,有:SnoSdept,SdeptMnameMname传递函数依赖于传递函数依赖于Sno传递AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42

16、NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.2码码定义定义6.4设设K为为R中的属性或属性组合。若中的属性或属性组合。若KU,则则K称为称为R的的侯选码侯选码(CandidateKey)。)。若候选码多于一个,则选定其中的一个做为若候选码多于一个,则选定其中的一个做为主码主码(PrimaryKey)。)。FAnIntroductiontoDatabaseSystem码(续)码(续)v主属性与非主属性主属性与非主属性包含在任何一个候选码中的属性包含在任何一个候选码

17、中的属性,称为主属性(,称为主属性(Primeattribute)不包含在任何码中的属性称为非主属性(不包含在任何码中的属性称为非主属性(Nonprimeattribute)或非码属性()或非码属性(Non-keyattribute)v全码全码整个属性组是码,称为全码(整个属性组是码,称为全码(All-key)AnIntroductiontoDatabaseSystem码(续)码(续)例例2关系模式关系模式S(Sno,Sdept,Sage),单个属性,单个属性Sno是码,是码,SC(Sno,Cno,Grade)中,()中,(Sno,Cno)是码)是码例例3关系模式关系模式R(P,W,A)P:演

18、奏者:演奏者W:作品:作品A:听众:听众一个演奏者可以演奏多个作品一个演奏者可以演奏多个作品某一作品可被多个演奏者演奏某一作品可被多个演奏者演奏听众可以欣赏不同演奏者的不同作品听众可以欣赏不同演奏者的不同作品码为码为(P,W,A),即,即All-KeyAnIntroductiontoDatabaseSystem外部码外部码定义定义6.5关系模式关系模式R 中属性或属性组中属性或属性组X 并非并非R的码,但的码,但X 是另一个关系模式的码,则称是另一个关系模式的码,则称X 是是R 的的外部码外部码(Foreignkey)也称外码也称外码v如在如在SC(Sno,Cno,Grade)中,)中,Sno

19、不是码,但不是码,但Sno是关系模式是关系模式S(Sno,Sdept,Sage)的码,则)的码,则Sno是关系模式是关系模式SC的外部码的外部码v主码与外部码一起提供了表示关系间联系的手段主码与外部码一起提供了表示关系间联系的手段AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.3范式范式v范式是符合某一种级别的关系模式的

20、集合范式是符合某一种级别的关系模式的集合v关系数据库中的关系必须满足一定的要求。满足不同程度关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式要求的为不同范式v范式的种类:范式的种类:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)AnIntroductiontoDatabaseSystem6.2.3范式范式v各种范式之间存在联系:各种范式之间存在联系:v某一关系模式某一关系模式R为第为第n范式,可简记为范式,可简记为RnNF。v一个低一级范式的关系模式,通过一个低一级范式

21、的关系模式,通过模式分解模式分解可以转换为若可以转换为若干个高一级范式的关系模式的集合,这种过程就叫干个高一级范式的关系模式的集合,这种过程就叫规范化规范化AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.42NFv数据数据库设计的目的目标就是要就是要设计合适的数据模式,合适的数据模式,并将数据存放在一个并将数据存放在一个

22、最佳位置最佳位置。v例:在例:在组织人人员的的电话号号码、邮件地址件地址这样的信的信息息时,应该确保将其保存在合适的位置,如通确保将其保存在合适的位置,如通讯录中。中。设想如果将朋友的信息放在菜想如果将朋友的信息放在菜谱里,里,则只只有在有在查找菜找菜谱时才会找到信息。才会找到信息。AnIntroductiontoDatabaseSystem6.2.42NFv1NF的定义的定义如果一个关系模式如果一个关系模式R的所有属性都是的所有属性都是不可分的基本数据项不可分的基本数据项,则则R1NFv第一范式是对关系模式的第一范式是对关系模式的最起码最起码的要求。不满足第一范式的要求。不满足第一范式的数据

23、库模式不能称为关系数据库的数据库模式不能称为关系数据库v但是满足第一范式的关系模式并不一定是一个好的关系模但是满足第一范式的关系模式并不一定是一个好的关系模式式AnIntroductiontoDatabaseSystem2NF(续)(续)(Sno,Cno)FGradeSnoSdept(Sno,Cno)PSdeptSnoSloc(Sno,Cno)PSlocSdeptSloc例例4关系模式关系模式S-L-C(Sno,Sdept,Sloc,Cno,Grade),其中其中Sloc为学生住处,假设每个系的学生住在同一个地方。为学生住处,假设每个系的学生住在同一个地方。函数依赖包括哪些:函数依赖包括哪些:

24、?AnIntroductiontoDatabaseSystem2NF(续)(续)vS-L-C的码为的码为(Sno,Cno)vS-L-C满足第一范式。满足第一范式。v非主属性非主属性Sdept和和Sloc部分函数依赖于码部分函数依赖于码(Sno,Cno)SnoCnoGradeSdeptSlocS-L-CAnIntroductiontoDatabaseSystemS-L-C不是一个好的关系模式(续)不是一个好的关系模式(续)1 1、数据冗余太大:系宿舍信息,重复出现的次数跟每个学、数据冗余太大:系宿舍信息,重复出现的次数跟每个学生每一门功课出现的次数一样多。生每一门功课出现的次数一样多。2 2、插

25、入异常:一个系如果还没有学生,则无法将这个系及、插入异常:一个系如果还没有学生,则无法将这个系及其负责人的信息存入数据库其负责人的信息存入数据库3 3、删除异常:一个系所有的学生都毕业了的话,学生删除、删除异常:一个系所有的学生都毕业了的话,学生删除后,有关系及其负责人的信息也全部被删除。后,有关系及其负责人的信息也全部被删除。AnIntroductiontoDatabaseSystemS-L-C不是一个好的关系模式(续)不是一个好的关系模式(续)v原因原因Sdept、Sloc部分函数依赖于码。部分函数依赖于码。v解决方法解决方法S-L-C分解为两个关系模式,以消除这些部分函数依赖分解为两个关

26、系模式,以消除这些部分函数依赖SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)AnIntroductiontoDatabaseSystem2NF(续)(续)函数依赖图函数依赖图:SnoCnoGradeSCS-LSnoSdeptSlocv关系模式关系模式SC的码为(的码为(Sno,Cno)v关系模式关系模式S-L的码为的码为Snov这样非主属性对码都是完全函数依赖这样非主属性对码都是完全函数依赖AnIntroductiontoDatabaseSystem2NF(续)(续)v2NF的定义的定义定义定义7.6若若R1NF,且每一个,且每一个非主属性完全非主属性完全函数依赖于函

27、数依赖于码,则码,则R2NF。例:例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)1NFS-L-C(Sno,Sdept,Sloc,Cno,Grade)2NFSC(Sno,Cno,Grade)2NF S-L(Sno,Sdept,Sloc)2NFAnIntroductiontoDatabaseSystem2NF(续)(续)v采用投影分解法将一个采用投影分解法将一个1NF的关系分解为多个的关系分解为多个2NF的关系,可以在一定的关系,可以在一定程度上减轻原程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。修

28、改复杂等问题。v将一个将一个1NF关系分解为多个关系分解为多个2NF的关系,并不能完全消除关系模式中的的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。还存在:各种异常情况和数据冗余。还存在:1 1、插入异常:一个系如果还没有学生,则无法将这个系及其宿舍的信息存、插入异常:一个系如果还没有学生,则无法将这个系及其宿舍的信息存入数据库入数据库2 2、删除异常:一个系所有的学生都毕业了的话,学生删除后,有关、删除异常:一个系所有的学生都毕业了的话,学生删除后,有关“系系”及其宿舍的信息也全部被删除。及其宿舍的信息也全部被删除。v2NF消除了非主属性对码的部分函数依赖消除了非主属性对码的部分

29、函数依赖AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.53NFv3NF的定义的定义定义定义6.7关系模式关系模式R中若不存在这样的码中若不存在这样的码X、属性、属性组组Y及非主属性及非主属性Z(Z Y), 使得使得XY,YZ成立,成立,YX,则称,则称R3NF。n若若R3NF,则每一个,则每一个非主属性非主属性既不部分

30、依赖既不部分依赖于码于码也不也不传递依赖传递依赖于码。于码。AnIntroductiontoDatabaseSystem3NF(续)(续)例:例:2NF关系模式关系模式S-L(Sno,Sdept,Sloc)中中函数依赖:函数依赖:SnoSdeptSdeptSnoSdeptSloc可得:可得:SnoSloc,即,即S-L中存在非主属性对码的传递函数依中存在非主属性对码的传递函数依赖,赖,S-L3NF传递AnIntroductiontoDatabaseSystem3NF(续)(续)函数依赖图:S-LSnoSdeptSlocAnIntroductiontoDatabaseSystem3NF(续)(续

31、)v解决方法解决方法采用投影分解法,把采用投影分解法,把S-L分解为两个关系模式,以消分解为两个关系模式,以消除传递函数依赖:除传递函数依赖:S-D(Sno,Sdept)D-L(Sdept,Sloc)S-D的码为的码为Sno,D-L的码为的码为Sdept。n分解后的关系模式分解后的关系模式S-D与与D-L中不再存在传递依赖中不再存在传递依赖 AnIntroductiontoDatabaseSystem3NF(续)(续)S-D的码为的码为Sno,D-L的码为的码为SdeptSnoSdeptS-DSdeptSlocD-Lv S-L(Sno,Sdept,Sloc)2NFS-L(Sno,Sdept,S

32、loc)3NFS-D(Sno,Sdept)3NFD-L(Sdept,Sloc)3NFAnIntroductiontoDatabaseSystem3NF(续)(续)v采用投影分解法将一个采用投影分解法将一个2NF的关系分解为多个的关系分解为多个3NF的关系,可以在一的关系,可以在一定程度上解决原定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。大、修改复杂等问题。v将一个将一个2NF关系分解为多个关系分解为多个3NF的关系后,仍然不能完全消除关系模的关系后,仍然不能完全消除关系模式中的各种异常情况和数据冗余。式中的各种异常

33、情况和数据冗余。v3NF消除了非主属性对码的传递函数依赖消除了非主属性对码的传递函数依赖AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.6BC范式(范式(BCNF)v定义定义6.8关系模式关系模式R1NF,若,若XY且且Y X时时X必含有码,则必含有码,则RBCNF。v等价于:每一个决定属性因素都包含码等价于:每一个决定

34、属性因素都包含码AnIntroductiontoDatabaseSystemBCNF(续)(续)v若若RBCNF所有非主属性对每一个码(所有非主属性对每一个码(候选码候选码)都是完全函数依赖)都是完全函数依赖所有的主属性对每一个不包含它的码,也是完全函数依所有的主属性对每一个不包含它的码,也是完全函数依赖赖没有任何属性完全函数依赖于非码的任何一组属性没有任何属性完全函数依赖于非码的任何一组属性vRBCNFR3NF充分不必要AnIntroductiontoDatabaseSystemBCNF(续)(续)例例5关系模式关系模式C(Cno,Cname,Pcno)nC3NFnCBCNF例例6关系模式关

35、系模式S(Sno,Sname,Sdept,Sage)n假定假定S有两个码有两个码Sno,SnamenS3NF。nSBCNFAnIntroductiontoDatabaseSystemBCNF(续)(续)例例7关系模式关系模式SJP(S,J,P),),S表示学生,表示学生,J表示课表示课程,程,P表示学生该门课的排名(假设无并列名次)表示学生该门课的排名(假设无并列名次)。n函数依赖:(函数依赖:(S,J)P;(J,P)Sn(S,J)与()与(J,P)都可以作为候选码)都可以作为候选码,属性相交属性相交nSJP3NF,nSJPBCNFn实际上全是主属性实际上全是主属性AnIntroduction

36、toDatabaseSystemBCNF(续)(续)例例8在关系模式在关系模式STJ(S,T,J)中,中,S表示学生,表示学生,T表表示教师,示教师,J表示课程。表示课程。函数依赖:函数依赖:(S,J)T,(S,T)J,TJ(S,J)和和(S,T)都是候选码都是候选码SJTSTSTJ中的函数依赖中的函数依赖JAnIntroductiontoDatabaseSystemBCNF(续)(续)vSTJ3NF没有任何非主属性对码传递依赖或部分依赖没有任何非主属性对码传递依赖或部分依赖vSTJBCNFT是决定因素,是决定因素,T不包含码不包含码AnIntroductiontoDatabaseSystem

37、BCNF(续)(续)v解决方法:将解决方法:将STJ分解为二个关系模式:分解为二个关系模式:ST(S,T)BCNF,TJ(T,J)BCNF没有没有任何属性任何属性对码的部分函数依赖和传递函数依赖对码的部分函数依赖和传递函数依赖SJSTTJTJAnIntroductiontoDatabaseSystem3NF与与BCNF的关系的关系vRBCNFR3NFv如果如果R3NF,且,且R只有一个候选码只有一个候选码RBCNFR3NFBCNF消除了主属性对码的部分函数依赖和传递函数依赖消除了主属性对码的部分函数依赖和传递函数依赖充分不必要充分必要AnIntroductiontoDatabaseSystem

38、6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.7多值依赖多值依赖例例9学校中某一门课程由多个教师讲授,他们使用相同的一套参考学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。 课课程程C教教员员T参参考考书书B物理物理数学数学计算数学计算数学李李勇勇王王军

39、军李李勇勇张张平平张张平平周周峰峰普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析.AnIntroductiontoDatabaseSystem普通物理学普通物理学光学原理光学原理物理习题集物理习题集普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析微分方程微分方程高等代数高等代数李李勇勇李李勇勇李李勇勇王王军军王王军军王王军军李李勇勇李李勇勇李李勇勇张张平平张张平平张张平平物物理理物物理理物物理理物物理理物物理理物物理理数数学学数数学学数数学学数数学学

40、数数学学数数学学参考书B教员T课程C多值依赖(续)多值依赖(续)v用二维表表示用二维表表示TeachingAnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)vTeachingBCNFvTeaching具有唯一候选码具有唯一候选码(C,T,B),即全码即全码 AnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续) Teaching模式中存在的问题模式中存在的问题(1)数据冗余度大数据冗余度大(2)插入操作复杂(例如某一门课增加一个教员,需插入多插入操作复杂(例如某一门课增加一个教员,需插入多个元组)个元组)(3)删除操作复杂

41、(例如去掉一本参考书,需删除多个元组)删除操作复杂(例如去掉一本参考书,需删除多个元组)(4)修改操作复杂修改操作复杂存在多值依赖AnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)v定义定义6.9设设R(U)是一个属性集是一个属性集U上的一个关系模式,上的一个关系模式,X、Y和和Z是是U的子集,并且的子集,并且ZUXY。关系模式。关系模式R(U)中中多值依赖多值依赖XY成立,当且仅当对成立,当且仅当对R(U)的的任一关系任一关系r,给定的一对,给定的一对(x,z)值,有一组)值,有一组Y的值,这组值仅仅决定于的值,这组值仅仅决定于x值而与值而与z值无关值无

42、关例例Teaching(C,T,B)AnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)v例例关系模式关系模式Teaching(C,T,B)中,对于某一)中,对于某一门课程和教材的组合,门课程和教材的组合,AnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)v平凡多值依赖和非平凡的多值依赖平凡多值依赖和非平凡的多值依赖若若XY,而,而Z,则称则称XY为为平凡的多值依赖平凡的多值依赖否则称否则称XY为为非平凡的多值依赖非平凡的多值依赖AnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)例例

43、10关系模式关系模式WSC(W,S,C)nW表示仓库,表示仓库,S表示保管员,表示保管员,C表示商品表示商品n假设每个仓库有若干个保管员,有若干种商品假设每个仓库有若干个保管员,有若干种商品n每个保管员保管所在的仓库的所有商品每个保管员保管所在的仓库的所有商品n每种商品被所有保管员保管每种商品被所有保管员保管AnIntroductiontoDatabaseSystem多值依赖(续)多值依赖(续)WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5AnIntroductiontoDatabaseSystem多值依赖(续)多

44、值依赖(续)WS且且WC用下图表示这种对应用下图表示这种对应AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.84NFv定义定义6.10关系模式关系模式R1NF,如果对于如果对于R的每个的每个非平凡多值依赖非平凡多值依赖XY(Y X),),X都含有码,则都含有码,则R4NF。v如果如果R4NF,则则RBCNFn不允许不允许

45、有非平凡且非函数依赖的有非平凡且非函数依赖的多值依赖多值依赖n允许允许的非平凡多值依赖是的非平凡多值依赖是函数依赖函数依赖AnIntroductiontoDatabaseSystem4NF(续(续)例例:Teaching(C,T,B)4NF存在非平凡的多值依赖存在非平凡的多值依赖CT,且,且C不是码不是码n用投影分解法把用投影分解法把Teaching分解为如下两个关系模式:分解为如下两个关系模式:CT(C,T)4NFCB(C,B)4NFCT,CB是平凡多值依赖是平凡多值依赖 AnIntroductiontoDatabaseSystem6.2.9规范化小结规范化小结v关系数据库的规范化理论是数据

46、库逻辑设计的工具关系数据库的规范化理论是数据库逻辑设计的工具v目的:尽量消除插入、删除异常,修改复杂,数据冗余目的:尽量消除插入、删除异常,修改复杂,数据冗余v基本思想:逐步消除数据依赖中不合适的部分基本思想:逐步消除数据依赖中不合适的部分实质:概念的实质:概念的单一化单一化AnIntroductiontoDatabaseSystem规范化小结(续)规范化小结(续)v关系模式规范化的基本步骤关系模式规范化的基本步骤1NF消除非主属性对码的部分函数依赖消除非主属性对码的部分函数依赖消除决定属性消除决定属性2NF集非码的非平集非码的非平消除非主属性对码的传递函数依赖消除非主属性对码的传递函数依赖凡

47、函数依赖凡函数依赖3NF消除主属性对码的部分和传递函数依赖消除主属性对码的部分和传递函数依赖BCNF消除非平凡且非函数依赖的多值依赖消除非平凡且非函数依赖的多值依赖4NFAnIntroductiontoDatabaseSystem规范化小结(续)规范化小结(续)v不能说规范化程度越高的关系模式就越好不能说规范化程度越高的关系模式就越好v在设计数据库模式结构时,必须对现实世界的实际情况和在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式现实世界的模式v上面的规范化步骤可以在其中任何一

48、步终止上面的规范化步骤可以在其中任何一步终止AnIntroductiontoDatabaseSystem第第六六章章关系数据理论关系数据理论6.1问题的提出问题的提出6.2规范化规范化6.4模式的分解模式的分解AnIntroductiontoDatabaseSystem6.4模式的分解模式的分解v把低一级的关系模式分解为若干个高一级的关系模式的方把低一级的关系模式分解为若干个高一级的关系模式的方法不是唯一的法不是唯一的v只有能够保证分解后的关系模式与原关系模式等价,分解只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义方法才有意义AnIntroductiontoDatabaseSy

49、stem关系模式分解的标准关系模式分解的标准三种模式分解等价的定义:三种模式分解等价的定义:分解具有无损连接性分解具有无损连接性分解要保持函数依赖分解要保持函数依赖分解既要保持函数依赖,又要具有无损连接性分解既要保持函数依赖,又要具有无损连接性AnIntroductiontoDatabaseSystem模式的分解(续)模式的分解(续)定义定义6.16关系模式关系模式R的一个分解:的一个分解:=R1,R2,RnU=Ui,且不存在,且不存在Ui Uj,Fi为为F在在Ui上的投影上的投影定义定义7.17函数依赖集合函数依赖集合XY |XY F+XY Ui的一个的一个覆盖覆盖Fi 叫作叫作F 在属性在

50、属性Ui 上的投影上的投影i=1nAnIntroductiontoDatabaseSystem模式的分解(续)模式的分解(续)例:例:S-L(Sno,Sdept,Sloc)F=SnoSdept,SdeptSloc,SnoSlocS-L2NF分解方法可以有多种:分解方法可以有多种:1、S-L分解为三个关系模式:分解为三个关系模式:SN(Sno)SD(Sdept)SO(Sloc)2、SL分解为下面二个关系模式:分解为下面二个关系模式:NL(Sno,Sloc)DL(Sdept,Sloc)3、将、将SL分解为下面二个关系模式:分解为下面二个关系模式:ND(Sno,Sdept)NL(Sno,Sloc)4

51、、将将SL分解为下面二个关系模式:分解为下面二个关系模式: NS(Sno,Sdept)DL(Sdept,Sloc)AnIntroductiontoDatabaseSystem具有无损连接性的模式分解具有无损连接性的模式分解v关系模式关系模式R的一个分解的一个分解=R1,R2,Rn若若R与与R1、R2、Rn自然连接的结果相等,则称关系模式自然连接的结果相等,则称关系模式R的这个分解的这个分解具有无损连接性(具有无损连接性(Losslessjoin)v具有无损连接性的分解保证不丢失信息具有无损连接性的分解保证不丢失信息v无损连接性不一定能解决插入异常、删除异常、修改复杂、数无损连接性不一定能解决插

52、入异常、删除异常、修改复杂、数据冗余等问题据冗余等问题AnIntroductiontoDatabaseSystem模式的分解(续)模式的分解(续) 第第3种分解方法具有无损连接性种分解方法具有无损连接性问题问题:这种分解方法没有保持原关系中的函数依赖这种分解方法没有保持原关系中的函数依赖SL中的函数依赖中的函数依赖SdeptSloc没有投影到关系模式没有投影到关系模式ND、NL上上 AnIntroductiontoDatabaseSystem保持函数依赖的模式分解保持函数依赖的模式分解设关系模式设关系模式R被分解为若干个关系模式被分解为若干个关系模式R1,R2,Rn(其中其中U=U1U2Un,

53、且不存在且不存在Ui Uj,Fi为为F在在Ui上的上的投影),若投影),若F所逻辑蕴含的函数依赖一定也由分解得到的某所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖个关系模式中的函数依赖Fi所逻辑蕴含,则称关系模式所逻辑蕴含,则称关系模式R的的这个分解是保持函数依赖的(这个分解是保持函数依赖的(Preservedependency)AnIntroductiontoDatabaseSystem模式的分解(续)模式的分解(续)第第4个方法、将个方法、将SL分解为下面二个关系模式:分解为下面二个关系模式:ND(Sno,Sdept)DL(Sdept,Sloc)这种分解方法就保持了函数依赖

54、这种分解方法就保持了函数依赖AnIntroductiontoDatabaseSystem模式的分解(续)模式的分解(续)v如果一个分解具有无损连接性,则它能够保证不丢失信息如果一个分解具有无损连接性,则它能够保证不丢失信息v如果一个分解保持了函数依赖,则它可以减轻或解决各种异如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况常情况v分解具有无损连接性和分解保持函数依赖是两个互相独立的分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖;同标准。具有无损连接性的分解不一定能够保持函数依赖;同样,保持函数依赖的分解也不一定具有无损连接性。样,

55、保持函数依赖的分解也不一定具有无损连接性。AnIntroductiontoDatabaseSystem模式的分解(续)模式的分解(续)第第1种分解方法既不具有无损连接性,也未保持函数依赖,种分解方法既不具有无损连接性,也未保持函数依赖,它不是原关系模式的一个等价分解它不是原关系模式的一个等价分解第第2种分解方法保持了函数依赖,但不具有无损连接性种分解方法保持了函数依赖,但不具有无损连接性第第3种分解方法具有无损连接性,但未持函数依赖种分解方法具有无损连接性,但未持函数依赖第第4种分解方法既具有无损连接性,又保持了函数依赖种分解方法既具有无损连接性,又保持了函数依赖AnIntroductiont

56、oDatabaseSystemv举例:举例:v建立一个关于系、学生、班级、学会等诸信息的关系数据库。建立一个关于系、学生、班级、学会等诸信息的关系数据库。v学生:学号、姓名、出生年月、系名、班号、宿舍区。学生:学号、姓名、出生年月、系名、班号、宿舍区。v班级:班号、专业名、系名、人数、入校年份。班级:班号、专业名、系名、人数、入校年份。v系:系名、系号、系办公地点、人数。系:系名、系号、系办公地点、人数。v学会:学会名、成立年份、办公地点、人数。学会:学会名、成立年份、办公地点、人数。v语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有语义如下:一个系有若干专业,每个专业每年只招一个

57、班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。每个学会有若干学生。学生参加某学会有一个入会年份。v请给出关系模式,写出每个关系模式的极小函数依赖集,指出是请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有

58、没有全码存在外部码,有没有全码存在?AnIntroductiontoDatabaseSystemv解:解:(1)关系模式如下:关系模式如下:v学生:学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)v班级:班级:C(Class,Pname,Dept,Cnum,Cyear)v系:系:D(Dept,Dno,Office,Dnum)v学会:学会:M(Mname,Myear,Maddr,Mnum)AnIntroductiontoDatabaseSystemv(2)每个关系模式的最小函数依赖集如下:每个关系模式的最小函数依赖集如下:vA、学生、学生S(Sno,Sname,Sbir

59、th,Dept,Class,Rno)的最小函数依赖集如下的最小函数依赖集如下:SnoSname,SnoSbirth,SnoClass,ClassDept,DEPTRnov传递依赖如下:传递依赖如下:v由于由于SnoDept,而,而DeptSno,DeptRno(宿舍区)(宿舍区)v所以所以Sno与与Rno之间存在着传递函数依赖。之间存在着传递函数依赖。v由于由于ClassDept,DeptClass,DeptRnov所以所以Class与与Rno之间存在着传递函数依赖。之间存在着传递函数依赖。v由于由于SnoClass,ClassSno,ClassDeptv所以所以Sno与与Dept之间存在着传

60、递函数依赖。之间存在着传递函数依赖。vvAnIntroductiontoDatabaseSystemvB、班级、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集的最小函数依赖集如下如下:vClassPname,ClassCnum,ClassCyear,PnameDept.v由于由于ClassPname,PnameClass,PnameDeptv所以所以Class与与Dept之间存在着传递函数依赖。之间存在着传递函数依赖。vC、系、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:的最小函数依赖集如下:vDeptDno,DnoDept,DnoO

61、ffice,DnoDnumv根据上述函数依赖可知,根据上述函数依赖可知,Dept与与Office,Dept与与Dnum之间不存在之间不存在传递依赖。传递依赖。vD、学会、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:的最小函数依赖集如下:vMnameMyear,MnameMaddr,MnameMnumv该模式不存在传递依赖。该模式不存在传递依赖。AnIntroductiontoDatabaseSystemv(3)各关系模式的候选码、外部码,全码如下:各关系模式的候选码、外部码,全码如下:vA、学生、学生S候选码:候选码:Sno;外部码:;外部码:Dept、Clas

62、s;无全码;无全码vB、班级、班级C候选码:候选码:Class;外部码:;外部码:Dept;无;无全码全码vC、系、系D候选码:候选码:Dept或或Dno;无外部码;无全;无外部码;无全码码vD、学会、学会M候选码:候选码:Mname;无外部码;无全码;无外部码;无全码AnIntroductiontoDatabaseSystem小结小结v若要求分解具有无损连接性,那么模式分解一定能够若要求分解具有无损连接性,那么模式分解一定能够达到达到4NFv若要求分解保持函数依赖,那么模式分解一定能够达若要求分解保持函数依赖,那么模式分解一定能够达到到3NF,但不一定能够达到但不一定能够达到BCNFv若要求

63、分解既具有无损连接性,又保持函数依赖,则若要求分解既具有无损连接性,又保持函数依赖,则模式分解一定能够达到模式分解一定能够达到3NF,但不一定能够达到但不一定能够达到BCNFAnIntroductiontoDatabaseSystem小结小结(续续)v规范化理论为数据库设计提供了理论的指南和工具规范化理论为数据库设计提供了理论的指南和工具也仅仅是指南和工具也仅仅是指南和工具v并不是规范化程度越高,模式就越好并不是规范化程度越高,模式就越好必必须须结结合合应应用用环环境境和和现现实实世世界界的的具具体体情情况况合合理理地地选选择择数据库模式数据库模式AnIntroductiontoDatabaseSystem 下课了。下课了。休息一会儿。休息一会儿。AnIntroductiontoDatabaseSystem

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号