数据库系统概论PPT课件_第1页
数据库系统概论PPT课件_第2页
数据库系统概论PPT课件_第3页
数据库系统概论PPT课件_第4页
数据库系统概论PPT课件_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、An Introduction to Database System数据库系统概论数据库系统概论An Introduction to Database System第六第六章章 关系数据理论关系数据理论中国人民大学信息学院中国人民大学信息学院An Introduction to Database Systemv基于某个数据库管理系统设计数据库,如何基于基于某个数据库管理系统设计数据库,如何基于数据库系统编程数据库系统编程n第第6章章 关系数据理论关系数据理论n第第7章章 数据库设计数据库设计n第第8章章 数据库编程数据库编程第二篇第二篇 设计与应用开发篇设计与应用开发篇An Introduct

2、ion to Database System第六章第六章 关系数据理论关系数据理论6.1 问题的提出问题的提出6.2 规范化规范化6.3 数据依赖的公理系统数据依赖的公理系统*6.4 模式的分解模式的分解6.5 小结小结An Introduction to Database SystemAn Introduction to Database System6.1 问题的提出问题的提出关系数据库逻辑设计关系数据库逻辑设计n针对具体问题,如何构造一个适合于它的数据模式针对具体问题,如何构造一个适合于它的数据模式n数据库逻辑设计的工具数据库逻辑设计的工具关系数据库的规范化理论关系数据库的规范化理论An

3、 Introduction to Database System*问题的提出(续)问题的提出(续)v关系模式由五部分组成,是一个五元组:关系模式由五部分组成,是一个五元组: R(U, D, DOM, F)n关系名关系名R是符号化的元组语义是符号化的元组语义nU为一组属性为一组属性nD为属性组为属性组U中的属性所来自的域中的属性所来自的域nDOM为属性到域的映射为属性到域的映射nF为属性组为属性组U上的一组数据依赖上的一组数据依赖An Introduction to Database System问题的提出(续)问题的提出(续)n由于由于D、DOM与模式设计关系不大,因此在本章中把与模式设计关系

4、不大,因此在本章中把关系模式看作一个三元组:关系模式看作一个三元组:Rn当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称为关系模式称为关系模式R的一个关系的一个关系n作为二维表,关系要符合一个最基本的条件:每个分作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(模式就属于第一范式(1NF)An Introduction to Database System*问题的提出(续)问题的提出(续)v数据依赖数据依赖n 是一个关系内部属性与属性之间的一种约束关系是一个关系内部属性

5、与属性之间的一种约束关系l通过属性间值的相等与否体现出来的数据间相互联系通过属性间值的相等与否体现出来的数据间相互联系n 是现实世界属性间相互联系的抽象是现实世界属性间相互联系的抽象n 是数据内在的性质是数据内在的性质n 是语义的体现是语义的体现An Introduction to Database System*问题的提出(续)问题的提出(续)v数据依赖的主要类型数据依赖的主要类型n函数依赖(函数依赖(Functional Dependency,简记为,简记为FD)n多值依赖(多值依赖(Multi-Valued Dependency,简记为,简记为MVD)An Introduction to

6、 Database System*问题的提出(续)问题的提出(续)v函数依赖普遍存在于现实生活中函数依赖普遍存在于现实生活中n描述一个学生关系,可以有学号、姓名、系名等属性。描述一个学生关系,可以有学号、姓名、系名等属性。l一个学号只对应一个学生,一个学生只在一个系中学习一个学号只对应一个学生,一个学生只在一个系中学习l“学号学号”值确定后,学生的姓名及所在系的值就被唯一确值确定后,学生的姓名及所在系的值就被唯一确定。定。nSname=f(Sno),Sdept=f(Sno)l即即Sno函数决定函数决定SnamelSno函数决定函数决定Sdeptl记作记作SnoSname,SnoSdeptAn

7、Introduction to Database System* 问题的提出(续)问题的提出(续)v例例6.1 建立一个描述学校教务的数据库。建立一个描述学校教务的数据库。涉及的对象包括:涉及的对象包括:n学生的学号(学生的学号(Sno)n所在系(所在系(Sdept)n系主任姓名(系主任姓名(Mname)n课程号(课程号(Cno)n成绩(成绩(Grade)An Introduction to Database System*问题的提出(续)问题的提出(续)n假设学校教务的数据库模式用一个单一的关系模式假设学校教务的数据库模式用一个单一的关系模式Student来表示,则该关系模式的属性集合为:来

8、表示,则该关系模式的属性集合为: U Sno, Sdept, Mname, Cno, Grade n现实世界的已知事实(语义):现实世界的已知事实(语义):l一个系有若干学生,一个系有若干学生, 但一个学生只属于一个系;但一个学生只属于一个系;l一个系只有一名(正职)负责人;一个系只有一名(正职)负责人;l一个学生可以选修多门课程,每门课程有若干学生选修;一个学生可以选修多门课程,每门课程有若干学生选修;l每个学生学习每一门课程有一个成绩。每个学生学习每一门课程有一个成绩。 An Introduction to Database System*问题的提出(续)问题的提出(续)n由此可得到属性组

9、由此可得到属性组U上的一组函数依赖上的一组函数依赖F: F=SnoSdept, Sdept Mname, (Sno, Cno) Grade SnoCnoSdeptMnameGradeAn Introduction to Database System*问题的提出(续)问题的提出(续)关系模式关系模式Student中存在的问题:中存在的问题:(1)数据冗余)数据冗余n浪费大量的存储空间浪费大量的存储空间l每一个系主任的姓名重复出现,重复次数与该系所有学每一个系主任的姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。生的所有课程成绩出现次数相同。An Introduction to

10、Database System*问题的提出(续)问题的提出(续)(2)更新异常()更新异常(Update Anomalies)n数据冗余数据冗余 ,更新数据时,维护数据完整性代价大。更新数据时,维护数据完整性代价大。l某系更换系主任后,必须修改与该系学生有关的每一个某系更换系主任后,必须修改与该系学生有关的每一个元组。元组。An Introduction to Database System*问题的提出(续)问题的提出(续)(3)插入异常()插入异常(Insertion Anomalies)n如果一个系刚成立,尚无学生,则无法把这个系及其如果一个系刚成立,尚无学生,则无法把这个系及其系主任的信

11、息存入数据库。系主任的信息存入数据库。An Introduction to Database System*问题的提出(续)问题的提出(续)(4)删除异常()删除异常(Deletion Anomalies)n如果某个系的学生全部毕业了,如果某个系的学生全部毕业了, 则在删除该系学生信则在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。息的同时,把这个系及其系主任的信息也丢掉了。An Introduction to Database System*问题的提出(续)问题的提出(续)v结论结论nStudent关系模式不是一个好的模式。关系模式不是一个好的模式。n一个一个“好好”的模式应当不

12、会发生插入异常、删除异常和更的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少。新异常,数据冗余应尽可能少。v原因原因n由存在于模式中的某些数据依赖引起的。由存在于模式中的某些数据依赖引起的。v解决方法解决方法n用规范化理论改造关系模式来消除其中不合适的数据依赖用规范化理论改造关系模式来消除其中不合适的数据依赖An Introduction to Database System*问题的提出(续)问题的提出(续)v把这个单一的模式分成三个关系模式:把这个单一的模式分成三个关系模式:nS(Sno,Sdept,Sno Sdept);nSC(Sno,Cno,Grade,(Sno,Cno

13、) Grade);nDEPT(Sdept,Mname,Sdept Mname);v这三个模式都不会发生插入异常、删除异常的问这三个模式都不会发生插入异常、删除异常的问题,数据的冗余也得到了控制。题,数据的冗余也得到了控制。An Introduction to Database System第六章第六章 关系数据理论关系数据理论6.1 问题的提出问题的提出6.2 规范化规范化6.3 数据依赖的公理系统数据依赖的公理系统*6.4 模式的分解模式的分解6.5 小结小结An Introduction to Database System6.2 规范化规范化6.2.1 函数依赖函数依赖6.2.2 码码6

14、.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖多值依赖6.2.8 4NF6.2.9 规范化小结规范化小结An Introduction to Database System6.2.1 函数依赖函数依赖1.函数依赖函数依赖2.平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖3.完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖4.传递函数依赖传递函数依赖An Introduction to Database System*1. 函数依赖函数依赖v定义定义6.1 设设R(U)是一个属性集是一个属性集U上的关系模式,上的关系模式,X和和Y是是

15、U的子集。若对于的子集。若对于R(U)的任意一个可能的关的任意一个可能的关系系r,r 中不可能存在两个元组在中不可能存在两个元组在X上的属性值相上的属性值相等,等, 而在而在Y上的属性值不等,上的属性值不等, 则称则称“X函数确定函数确定Y”或或“Y函数依赖于函数依赖于X”,记作,记作XY。An Introduction to Database System函数依赖(续)函数依赖(续)v例例 Student(Sno, Sname, Ssex, Sage, Sdept), 假设不允许重名,则有假设不允许重名,则有:Sno Ssex, Sno SageSno Sdept, Sno SnameSna

16、me Ssex, Sname SageSname Sdept但但Ssex Sage, Ssex Sdept若若XY,并且,并且YX, 则记为则记为XY。若若Y不函数依赖于不函数依赖于X, 则记为则记为XY。An Introduction to Database System函数依赖(续)函数依赖(续)SnoSnameSsexSageSdeptS1 张三张三男男20计算机系计算机系S1李四李四女女21自动化系自动化系S3王五王五男男20计算机系计算机系S4赵六赵六男男21计算机系计算机系S5田七田七男男20计算机系计算机系 . . . . . . . . . . . . . . .违背了违背了S

17、no SnameAn Introduction to Database System函数依赖(续)函数依赖(续)v由下面的关系表由下面的关系表, 能否得出能否得出Sno SnameSnoSnameSsexSageSdeptS1 张三张三男男20计算机系计算机系S2李四李四女女21自动化系自动化系S3王五王五男男20计算机系计算机系S4赵六赵六男男21计算机系计算机系S5田七田七男男20计算机系计算机系 . . . . . . . . . . . . . . .函数依赖不是指关系模式函数依赖不是指关系模式R的某个或某些关系实例满足的的某个或某些关系实例满足的约束条件,而是指约束条件,而是指R的所

18、有关系实例均要满足的约束条件。的所有关系实例均要满足的约束条件。An Introduction to Database System*函数依赖(续)函数依赖(续)v函数依赖是语义范畴的概念,只能根据数据的语函数依赖是语义范畴的概念,只能根据数据的语义来确定一个函数依赖。义来确定一个函数依赖。n例如例如“姓名姓名年龄年龄”这个函数依赖只有在不允许有同这个函数依赖只有在不允许有同名人的条件下成立名人的条件下成立An Introduction to Database System*2. 平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖vXY,但,但Y X则称则称XY是是非平凡的函数依赖非平凡

19、的函数依赖。vXY,但,但YX 则称则称XY是是平凡的函数依赖平凡的函数依赖。对于任一关系模式,平凡函数依赖都是必然成立的,它对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义。不反映新的语义。若不特别声明,若不特别声明, 我们总是讨论非平凡函数依赖。我们总是讨论非平凡函数依赖。An Introduction to Database System*平凡函数依赖与非平凡函数依赖(续)平凡函数依赖与非平凡函数依赖(续)v若若XY,则,则X称为这个函数依赖的称为这个函数依赖的决定因素决定因素(Determinant)。)。v若若XY,YX,则记作,则记作XY。v若若Y不函数依赖于不函数依

20、赖于X,则记作,则记作X Y。An Introduction to Database System*3. 完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖v定义定义6.2 在在R(U)中,如果中,如果XY,并且对于,并且对于X的任的任何一个真子集何一个真子集X, 都有都有 X Y, 则称则称Y对对X完全函完全函数依赖数依赖,记作,记作X Y。v若若XY,但,但Y不完全函数依赖于不完全函数依赖于X,则称,则称Y对对X部部分函数依赖分函数依赖,记作,记作X YFPAn Introduction to Database System*完全函数依赖与部分函数依赖(续)完全函数依赖与部分函数依赖(续

21、)v例例 在关系在关系SC(Sno, Cno, Grade)中,有:中,有:n 由于:由于:Sno Grade,Cno Grade, 因此:因此:(Sno, Cno) Grade (Sno, Cno)Sno (Sno, Cno) CnoFPPAn Introduction to Database System*4. 传递函数依赖传递函数依赖v定义定义6.3 在在R(U)中,如果中,如果XY(Y X),Y X,YZ,Z Y, 则称则称Z对对X传递函数依赖传递函数依赖(transitive functional dependency)。记为:。记为:X Z。n注注: 如果如果YX, 即即XY,则,

22、则Z直接依赖于直接依赖于X,而不是,而不是传递函数依赖。传递函数依赖。n例例 在关系在关系Std(Sno, Sdept, Mname)中,有:中,有:Sno Sdept,Sdept Mname,Mname传递函数依赖于传递函数依赖于Sno传递传递An Introduction to Database System6.2 规范化规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖多值依赖6.2.8 4NF6.2.9 规范化小结规范化小结An Introduction to Database System

23、*6.2.2 码码v定义定义6.4 设设K为为R中的属性或属性组合。若中的属性或属性组合。若K U,则,则K称为称为R的一个的一个候选码候选码(Candidate Key)。n如果如果U部分函数依赖于部分函数依赖于K,即,即K U,则则K称为超码称为超码 (Surpkey)。候选码是最小的超码,即)。候选码是最小的超码,即K的任意一个的任意一个真子集都不是候选码。真子集都不是候选码。v若关系模式若关系模式R有多个候选码,则选定其中的一个有多个候选码,则选定其中的一个做为做为主码主码(Primary key)。FPAn Introduction to Database System*码(续)码(

24、续)v主属性与非主属性主属性与非主属性n包含在任何一个候选码中的属性包含在任何一个候选码中的属性 ,称为主属性,称为主属性 (Prime attribute) n不包含在任何码中的属性称为非主属性(不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性()或非码属性(Non-key attribute) v全码:整个属性组是码,称为全码(全码:整个属性组是码,称为全码(All-key) An Introduction to Database System*码(续)码(续)例例6.2S(Sno, Sdept, Sage),单个属性,单个属性Sno是码是码 SC(Sn

25、o, Cno, Grade)中,中,(Sno, Cno)是码是码例例6.3 R(P,W,A) P:演奏者:演奏者 W:作品:作品 A:听众:听众一个演奏者可以演奏多个作品一个演奏者可以演奏多个作品某一作品可被多个演奏者演奏某一作品可被多个演奏者演奏听众可以欣赏不同演奏者的不同作品听众可以欣赏不同演奏者的不同作品 码为码为(P,W,A),即,即All-Key An Introduction to Database System*码(续)码(续)v定义定义6.5 关系模式关系模式 R中属性或属性组中属性或属性组X 并非并非 R的的码,但码,但 X 是另一个关系模式的码,则称是另一个关系模式的码,则

26、称 X 是是R 的的外部码外部码(Foreign key)也称)也称外码外码。nSC(Sno,Cno,Grade)中,中,Sno不是码不是码nSno是是 S(Sno,Sdept,Sage)的码,则的码,则Sno是是SC的外码的外码 v主码与外部码一起提供了表示关系间联系的手段主码与外部码一起提供了表示关系间联系的手段An Introduction to Database System6.2 规范化规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖多值依赖6.2.8 4NF6.2.9 规范化小结规范化

27、小结An Introduction to Database System*6.2.3 范式范式v范式是符合某一种级别的关系模式的集合。范式是符合某一种级别的关系模式的集合。v关系数据库中的关系必须满足一定的要求。满足关系数据库中的关系必须满足一定的要求。满足 不同程度要求的为不同范式。不同程度要求的为不同范式。v范式的种类:范式的种类:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)An Introduction to Database System*范式(续)范式(续)v各种范式之间存在

28、联系:各种范式之间存在联系:n某一关系模式某一关系模式R为第为第n范式,可简记为范式,可简记为RnNF。NF5NF4BCNFNF3NF2NF1v一个低一级范式的关系模式,通一个低一级范式的关系模式,通过模式分解(过模式分解(schema decomposition)可以转换为若)可以转换为若干个高一级范式的关系模式的集干个高一级范式的关系模式的集合,这种过程就叫合,这种过程就叫规范化规范化(normalization)。)。An Introduction to Database System6.2 规范化规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 2NF6

29、.2.5 3NF6.2.6 BCNF6.2.7 多值依赖多值依赖6.2.8 4NF6.2.9 规范化小结规范化小结An Introduction to Database System*6.2.4 2NFv定义定义6.6 若关系模式若关系模式R1NF,并且每一个非主属性,并且每一个非主属性都完全函数依赖于任何一个候选码,则都完全函数依赖于任何一个候选码,则R2NFv例例6.4 S-L-C(Sno,Sdept,Sloc,Cno,Grade), Sloc为学生的住处,并且每个系的学生住在同一个为学生的住处,并且每个系的学生住在同一个地方。地方。S-L-C的码为的码为(Sno,Cno)。函数依赖有函数

30、依赖有n(Sno,Cno)GradenSnoSdept, (Sno,Cno)SdeptnSnoSloc, (Sno,Cno)SlocnSdeptSlocFPPAn Introduction to Database System*2NF(续)(续)SnoCnoGradeSdeptSlocn关系模式关系模式S-L-C不属于不属于2NFn非主属性非主属性Sdept、Sloc并不完全依赖于码并不完全依赖于码An Introduction to Database System*2NF(续)(续)v一个关系模式不属于一个关系模式不属于2NF,会产生以下问题:,会产生以下问题:n插入异常插入异常l如果插入一

31、个新学生,但该生未选课,即该生无如果插入一个新学生,但该生未选课,即该生无Cno,由于插入元组时,必须给定码值,因此插入失败。由于插入元组时,必须给定码值,因此插入失败。n删除异常删除异常l如果如果S4只选了一门课只选了一门课C3,现在他不再选这门课,则删除,现在他不再选这门课,则删除C3后,整个元组的其他信息也被删除了。后,整个元组的其他信息也被删除了。n修改复杂修改复杂l如果一个学生选了多门课,则如果一个学生选了多门课,则Sdept,Sloc被存储了多被存储了多次。如果该生转系,则需要修改所有相关的次。如果该生转系,则需要修改所有相关的Sdept和和Sloc,造成修改的复杂化。,造成修改的

32、复杂化。An Introduction to Database System*2NF(续)(续)v出现这种问题的原因出现这种问题的原因n例子中有两类非主属性:例子中有两类非主属性:l一类如一类如Grade,它对码完全函数依赖,它对码完全函数依赖l另一类如另一类如Sdept、Sloc,它们对码不是完全函数依赖,它们对码不是完全函数依赖v解决方法:解决方法:n用投影分解把关系模式用投影分解把关系模式S-L-C分解成两个关系模式分解成两个关系模式lSC(Sno,Cno,Grade)lS-L(Sno,Sdept,Sloc)An Introduction to Database System2NF(续)

33、(续)n SC的码为的码为(Sno,Cno),SL的码为的码为Sno,这样使得非主属,这样使得非主属性对码都是完全函数依赖了性对码都是完全函数依赖了SnoCnoGradeSnoSdeptSloc图图6.4 SC中的函数依赖中的函数依赖图图6.5 S-L中的函数依赖中的函数依赖An Introduction to Database System6.2 规范化规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖多值依赖6.2.8 4NF6.2.9 规范化小结规范化小结An Introduction to

34、Database System* 6.2.5 3NFv定义定义6.7 设关系模式设关系模式R1NF,若若R中不存在中不存在这样的码这样的码X、属性组、属性组Y及非主属性及非主属性Z(Z Y), 使使得得XY,YZ成立,成立,Y X不成立,则称不成立,则称R 3NF。n SC没有传递依赖,因此没有传递依赖,因此SC 3NFn S-L中中Sno Sdept( Sdept Sno), SdeptSloc,可得可得Sno Sloc。n 解决的办法是将解决的办法是将S-L分解成分解成lS-D(Sno,Sdept) 3NFlD-L(Sdept,Sloc) 3NF传递传递An Introduction to

35、 Database System6.2 规范化规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖多值依赖6.2.8 4NF6.2.9 规范化小结规范化小结An Introduction to Database System* 6.2.6 BCNFvBCNF(Boyce Codd Normal Form)由)由Boyce和和Codd提出,比提出,比3NF更进了一步。通常认为更进了一步。通常认为BCNF是修正的第三范式,有时也称为扩充的第是修正的第三范式,有时也称为扩充的第三范式。三范式。v定义定义6.

36、8 设关系模式设关系模式R1NF,若,若X Y且且Y X时时X必含有码,则必含有码,则RBCNF。v换言之,在关系模式换言之,在关系模式R中,如果每一个决定中,如果每一个决定属性集都包含候选码,则属性集都包含候选码,则RBCNF。An Introduction to Database System*BCNF(续)(续)vBCNF的关系模式所具有的性质的关系模式所具有的性质n所有非主属性都完全函数依赖于每个候选码所有非主属性都完全函数依赖于每个候选码n所有主属性都完全函数依赖于每个不包含它的候选码所有主属性都完全函数依赖于每个不包含它的候选码n没有任何属性完全函数依赖于非码的任何一组属性没有任何

37、属性完全函数依赖于非码的任何一组属性v如果一个关系数据库中的所有关系模式都属于如果一个关系数据库中的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已实现了模式,那么在函数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范化程度,消除了插的彻底分解,达到了最高的规范化程度,消除了插入异常和删除异常。入异常和删除异常。An Introduction to Database Systemv例例6.5考察关系模式考察关系模式C(Cno,Cname,Pcno)n 它只有一个码它只有一个码Cno,没有任何属性对,没有任何属性对Cno部分依赖或部分依赖或传递依赖,所以传递依赖,所以C3NF。n 同

38、时同时C中中Cno是唯一的决定因素,所以是唯一的决定因素,所以CBCNF。n 对于关系模式对于关系模式SC(Sno,Cno,Grade)可作同样分析。可作同样分析。BCNF(续)(续)An Introduction to Database Systemv例例6.6 关系模式关系模式S(Sno,Sname,Sdept,Sage),n假定假定Sname也具有唯一性,那么也具有唯一性,那么S就有两个码,这两就有两个码,这两个码都由单个属性组成,彼此不相交。个码都由单个属性组成,彼此不相交。n其他属性不存在对码的传递依赖与部分依赖,所以其他属性不存在对码的传递依赖与部分依赖,所以S3NF。n同时同时S

39、中除中除Sno,Sname外没有其他决定因素,所以外没有其他决定因素,所以S也属于也属于BCNF。BCNF(续)续)An Introduction to Database Systemv例例6.7 关系模式关系模式SJP(S,J,P)中,中,S是学生,是学生,J表示表示 课程,课程,P表示名次。每一个学生选修每门课程的表示名次。每一个学生选修每门课程的 成绩有一定的名次,每门课程中每一名次只有一成绩有一定的名次,每门课程中每一名次只有一 个学生(即没有并列名次)。个学生(即没有并列名次)。n 由语义可得到函数依赖:由语义可得到函数依赖: (S,J)P;(J,P)Sn (S,J)与与(J,P)都

40、可以作为候选码。都可以作为候选码。n 关系模式中没有属性对码传递依赖或部分依赖,所以关系模式中没有属性对码传递依赖或部分依赖,所以 SJP3NF。n 除除(S,J)与与(J,P)以外没有其他决定因素,所以以外没有其他决定因素,所以 SJPBCNF。BCNF(续)(续)An Introduction to Database SystemBCNF(续)(续)v例例6.8 关系模式关系模式STJ(S,T,J)中,中,S表示学生,表示学生,T表表 示教师,示教师,J表示课程。每一教师只教一门课。每表示课程。每一教师只教一门课。每 门课有若干教师,某一学生选定某门课,就对应门课有若干教师,某一学生选定某

41、门课,就对应 一个固定的教师。一个固定的教师。n 由语义可得到函数依赖:由语义可得到函数依赖:(S,J)T;(S,T)J;TJn 因为没有任何非主属性对码传递依赖或部分依赖,因为没有任何非主属性对码传递依赖或部分依赖, STJ 3NF。n 因为因为T是决定因素,而是决定因素,而T不包含码,所以不包含码,所以STJ BCNF 关系。关系。图图6.6 STJ中的函数依赖中的函数依赖An Introduction to Database SystemBCNF(续)(续)v对于不是对于不是BCNF的关系模式,仍然存在不合适的的关系模式,仍然存在不合适的地方。地方。v非非BCNF的关系模式也可以通过分解

42、成为的关系模式也可以通过分解成为BCNF。例如例如STJ可分解为可分解为ST(S,T)与与TJ(T,J),它们都是,它们都是BCNF。An Introduction to Database SystemBCNF(续)(续)v3NF和和BCNF是在函数依赖的条件下对模式分解是在函数依赖的条件下对模式分解所能达到的分离程度的测度。所能达到的分离程度的测度。n一个模式中的关系模式如果都属于一个模式中的关系模式如果都属于BCNF,那么在函数,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入依赖范畴内,它已实现了彻底的分离,已消除了插入和删除的异常。和删除的异常。n3NF的的“不彻底不彻底”性表

43、现在可能存在主属性对码的部性表现在可能存在主属性对码的部分依赖和传递依赖。分依赖和传递依赖。An Introduction to Database System6.2 规范化规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖多值依赖6.2.8 4NF6.2.9 规范化小结规范化小结An Introduction to Database System*6.2.7 多值依赖多值依赖例例6.9设学校中某一门课程由多个教师讲授,他们设学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。使用相同的一套参

44、考书。每个教员可以讲授多门课每个教员可以讲授多门课程,每种参考书可以供多门课程使用程,每种参考书可以供多门课程使用用关系模式用关系模式Teaching(C,T,B)来表示课程来表示课程C、教师、教师T和参和参考书考书B之间的关系。之间的关系。An Introduction to Database System多值依赖(续)多值依赖(续)表表6.3 非规范化关系示例非规范化关系示例课程课程 C教员教员 T参考书参考书 B 物理物理 数学数学 计算数学计算数学李李 勇勇王王 军军 李李 勇勇张张 平平张张 平平周周 峰峰 普通物理学普通物理学光学原理光学原理 物理习题集物理习题集数学分析数学分析微

45、分方程微分方程 高等代数高等代数 数学分析数学分析 An Introduction to Database System*多值依赖(续)多值依赖(续)表表6.4 规范化规范化的二维表的二维表 Teaching 课程课程 C教员教员 T参考书参考书 B物物 理理李李 勇勇普通物理学普通物理学物物 理理李李 勇勇光学原理光学原理物物 理理李李 勇勇物理习题集物理习题集物物 理理王王 军军普通物理学普通物理学物物 理理王王 军军光学原理光学原理物物 理理王王 军军物理习题集物理习题集数数 学学李李 勇勇普通物理学普通物理学数数 学学李李 勇勇光学原理光学原理数数 学学李李 勇勇物理习题集物理习题集数

46、数 学学张张 平平普通物理学普通物理学数数 学学张张 平平光学原理光学原理数数 学学张张 平平物理习题集物理习题集An Introduction to Database System*多值依赖(续)多值依赖(续)vTeaching具有唯一候选码具有唯一候选码(C,T,B), 即全码。即全码。vTeachingBCNF An Introduction to Database System*多值依赖(续)多值依赖(续)课程课程 C教员教员 T参考书参考书 B物物 理理李李 勇勇普通物理学普通物理学物物 理理李李 勇勇光学原理光学原理物物 理理李李 勇勇物理习题集物理习题集物物 理理王王 军军普通物

47、理学普通物理学物物 理理王王 军军光学原理光学原理物物 理理王王 军军物理习题集物理习题集数数 学学李李 勇勇普通物理学普通物理学数数 学学李李 勇勇光学原理光学原理数数 学学李李 勇勇物理习题集物理习题集数数 学学张张 平平普通物理学普通物理学数数 学学张张 平平光学原理光学原理数数 学学张张 平平物理习题集物理习题集(1)数据冗余度大:有多数据冗余度大:有多少名任课教师,参考书少名任课教师,参考书就要存储多少次。就要存储多少次。An Introduction to Database System*多值依赖(续)多值依赖(续)课程课程 C教员教员 T参考书参考书 B物物 理理李李 勇勇普通物

48、理学普通物理学物物 理理李李 勇勇光学原理光学原理物物 理理李李 勇勇物理习题集物理习题集物物 理理王王 军军普通物理学普通物理学物物 理理王王 军军光学原理光学原理物物 理理王王 军军物理习题集物理习题集数数 学学李李 勇勇普通物理学普通物理学数数 学学李李 勇勇光学原理光学原理数数 学学李李 勇勇物理习题集物理习题集数数 学学张张 平平普通物理学普通物理学数数 学学张张 平平光学原理光学原理数数 学学张张 平平物理习题集物理习题集(2)增加操作复杂:当增加操作复杂:当某一课程增加一名任某一课程增加一名任课教师时,该课程有课教师时,该课程有多少本参照书,就必多少本参照书,就必须插入多少个元组

49、。须插入多少个元组。An Introduction to Database System*多值依赖(续)多值依赖(续)课程课程 C教员教员 T参考书参考书 B物物 理理李李 勇勇普通物理学普通物理学物物 理理李李 勇勇光学原理光学原理物物 理理李李 勇勇物理习题集物理习题集物物 理理王王 军军普通物理学普通物理学物物 理理王王 军军光学原理光学原理物物 理理王王 军军物理习题集物理习题集数数 学学李李 勇勇普通物理学普通物理学数数 学学李李 勇勇光学原理光学原理数数 学学李李 勇勇物理习题集物理习题集数数 学学张张 平平普通物理学普通物理学数数 学学张张 平平光学原理光学原理数数 学学张张 平

50、平物理习题集物理习题集(3)删除操作复杂:某一删除操作复杂:某一门课要去掉一本参考书,门课要去掉一本参考书,该课程有多少名教师,该课程有多少名教师,就必须删除多少个元组。就必须删除多少个元组。An Introduction to Database System*多值依赖(续)多值依赖(续)课程课程 C教员教员 T参考书参考书 B物物 理理李李 勇勇普通物理学普通物理学物物 理理李李 勇勇光学原理光学原理物物 理理李李 勇勇物理习题集物理习题集物物 理理王王 军军普通物理学普通物理学物物 理理王王 军军光学原理光学原理物物 理理王王 军军物理习题集物理习题集数数 学学李李 勇勇普通物理学普通物理

51、学数数 学学李李 勇勇光学原理光学原理数数 学学李李 勇勇物理习题集物理习题集数数 学学张张 平平普通物理学普通物理学数数 学学张张 平平光学原理光学原理数数 学学张张 平平物理习题集物理习题集(4)修改操作复杂:某一修改操作复杂:某一门课要修改一本参考书,门课要修改一本参考书,该课程有多少名教师,该课程有多少名教师,就必须修改多少个元组。就必须修改多少个元组。产生产生原因原因: 存在多值依赖存在多值依赖An Introduction to Database System*多值依赖(续)多值依赖(续)v定义定义6.9 设设R(U)是属性集是属性集U上的一个关系模式。上的一个关系模式。X,Y,Z

52、是是U的子集,并且的子集,并且Z=U-X-Y。关系模式。关系模式R(U)中多值依赖中多值依赖XY成立,当且仅当对成立,当且仅当对R(U)的任一的任一关系关系r,给定的一对,给定的一对(x,z)值,有一组值,有一组Y的值,这组的值,这组值仅仅决定于值仅仅决定于x值而与值而与z值无关。值无关。v例例 Teaching(C, T, B) 对于对于C的每一个值,的每一个值,T有一组值与之对应,而不论有一组值与之对应,而不论B取何值。因此取何值。因此T多值依赖于多值依赖于C,即,即CT。 An Introduction to Database System多值依赖(续)多值依赖(续)v多值依赖的另一个等

53、价的定义多值依赖的另一个等价的定义在在R(U)的任一关系的任一关系r中,如果存在元组中,如果存在元组t,s使得使得tX=sX,那么就必然存在元组,那么就必然存在元组w,vr,(,(w,v可以与可以与s,t相相同)同), 使得使得wX=vX=tX,而,而wY=tY,wZ=sZ,vY=sY,vZ=tZ(即交换(即交换s,t元组的元组的Y值所得的两值所得的两个新元组必在个新元组必在r中则中则Y多值依赖于多值依赖于X,记为,记为XY。这里。这里X,Y是是U的子集,的子集,Z=U-X-Y。An Introduction to Database System*多值依赖(续)多值依赖(续)v平凡多值依赖和非

54、平凡的多值依赖平凡多值依赖和非平凡的多值依赖n 若若XY,而,而Z,即,即Z为空,为空,则称则称XY为为平凡平凡的多值依赖的多值依赖。n 否则称否则称XY为为非平凡的多值依赖非平凡的多值依赖。An Introduction to Database System多值依赖(续)多值依赖(续)WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5例例6.10关系模式关系模式WSC(W,S,C)中,中,W表示仓库,表示仓库,S 表示保管表示保管员,员,C 表示商品。假设每个仓库有若干个保管员,有若干种表示商品。假设每个仓库有若干个

55、保管员,有若干种商品。每个保管员保管所在仓库的所有商品,每种商品被所商品。每个保管员保管所在仓库的所有商品,每种商品被所有保管员保管。有保管员保管。An Introduction to Database System多值依赖(续)多值依赖(续)v按照语义对于按照语义对于W的每一个值的每一个值Wi,S有一个完整的集有一个完整的集合与之对应而不问合与之对应而不问C取何值。所以取何值。所以WS。v如图如图6.7所示所示n 对应对应W的某一个值的某一个值Wi的全部的全部S值记作值记作SWi(表示此仓库(表示此仓库工作的全部保管员)工作的全部保管员)n 全部全部C值记作值记作CWi(表示在此仓库中存放的

56、所有商品)(表示在此仓库中存放的所有商品)n 应当有应当有SWi中的每一个值和中的每一个值和CWi中的每一个中的每一个C值对应值对应n 于是于是SWi与与CWi之间正好形成一个完全二分图,因而之间正好形成一个完全二分图,因而WS。An Introduction to Database System多值依赖(续)多值依赖(续)v由于由于C与与S的完全对称性,必然有的完全对称性,必然有WC成立。成立。图图6.7 WS且且WCAn Introduction to Database System多值依赖(续)多值依赖(续)v多值依赖的性质多值依赖的性质(1)多值依赖具有对称性。)多值依赖具有对称性。即

57、若即若XY,则,则XZ,其中,其中ZUXYl多值依赖的对称性可以用完全二分图直观地表示出来。多值依赖的对称性可以用完全二分图直观地表示出来。l从从例例6.10 容易看出,因为每个保管员保管所有商品,容易看出,因为每个保管员保管所有商品,同时每种商品被所有保管员保管,显然若同时每种商品被所有保管员保管,显然若WS,必然,必然有有WC。An Introduction to Database System*多值依赖(续)多值依赖(续)(2)多值依赖具有传递性。即若)多值依赖具有传递性。即若XY,YZ, 则则 XZ -Y。(3)函数依赖是多值依赖的特殊情况。即若)函数依赖是多值依赖的特殊情况。即若XY

58、,则,则 XY。(4)若)若XY,XZ,则,则XYZ。(5)若)若XY,XZ,则,则XYZ。(6)若)若XY,XZ,则,则XY-Z,XZ -Y。An Introduction to Database System*多值依赖(续)多值依赖(续)v多值依赖与函数依赖的区别多值依赖与函数依赖的区别(1)多值依赖的有效性与属性集的范围有关)多值依赖的有效性与属性集的范围有关l若若XY在在U上成立,则在上成立,则在W(XY W U)上一定成)上一定成立;反之则不然,即立;反之则不然,即XY在在W(W U)上成立,在)上成立,在U上并不一定成立。上并不一定成立。l原因:多值依赖的定义中不仅涉及属性组原因:

59、多值依赖的定义中不仅涉及属性组X和和Y,而且涉,而且涉及及U中其余属性中其余属性Z。An Introduction to Database System*多值依赖(续)多值依赖(续)n 多值依赖的有效性与属性集的范围有关(续)多值依赖的有效性与属性集的范围有关(续)l一般地,在一般地,在R(U)上若有上若有XY在在W(W U)上成立,则上成立,则称称XY为为R(U)的嵌入型多值依赖。的嵌入型多值依赖。l函数依赖函数依赖XY的有效性仅决定于的有效性仅决定于X、Y这两个属性集的这两个属性集的值值l只要在只要在R(U)的任何一个关系的任何一个关系r中,元组在中,元组在X和和Y上的值满上的值满足定义足

60、定义6.l,则函数依赖,则函数依赖XY在任何属性集在任何属性集W(XY W U)上成立。上成立。An Introduction to Database System*多值依赖(续)多值依赖(续)(2)若函数依赖)若函数依赖XY在在R (U)上成立,则对于任何上成立,则对于任何Y Y均有均有XY 成立。多值依赖成立。多值依赖XY若在若在R(U)上成立,上成立,不能断言对于任何不能断言对于任何Y Y有有XY 成立。成立。An Introduction to Database System*多值依赖(续)多值依赖(续) 例如,关系例如,关系R(A,B,C,D),ABC成立,当然也有成立,当然也有AD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论