第6章数据库系统概论(第4版)_第1页
第6章数据库系统概论(第4版)_第2页
第6章数据库系统概论(第4版)_第3页
第6章数据库系统概论(第4版)_第4页
第6章数据库系统概论(第4版)_第5页
已阅读5页,还剩178页未读 继续免费阅读

下载本文档

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

文档简介

1、 本章目标:本章目标:关系数据理论既是关系关系数据理论既是关系数据库的重要理论基础也是数据库逻辑数据库的重要理论基础也是数据库逻辑设计的理论指南和有力工具。要掌握规设计的理论指南和有力工具。要掌握规范化理论和优化数据库模式设计的方法。范化理论和优化数据库模式设计的方法。第六章第六章 关系数据理论关系数据理论2021-11-42 2第六章第六章 关系数据理论关系数据理论6.1 6.1 问题的提出问题的提出6.2 6.2 规范化规范化6.3 6.3 数据依赖的公理系统数据依赖的公理系统* *6.4 6.4 模式的分解模式的分解6.5 6.5 小结小结3 3重点和难点重点和难点o重点:重点:n了解什

2、么是一个了解什么是一个“不好不好”的数据库模式的数据库模式n什么是模式的插入异常和删除异常什么是模式的插入异常和删除异常n规范化理论的重要意义规范化理论的重要意义n掌握数据依赖的基本概念,范式的概念,掌握数据依赖的基本概念,范式的概念,从从1NF1NF到到4NF4NF的定义,规范化的含义和作用的定义,规范化的含义和作用n四个范式的理解与应用,各个级别范式中四个范式的理解与应用,各个级别范式中存在的问题和解决方法。存在的问题和解决方法。o难点难点: :各个级别范式的关系各个级别范式的关系4 46.1 6.1 问题的提出问题的提出一一. .概念回顾概念回顾二二. .问题的提出问题的提出三三. .关

3、系模式的形式化定义关系模式的形式化定义四四. .什么是数据依赖什么是数据依赖五五. .数据依赖对关系模式影响数据依赖对关系模式影响5 5一一.概念回顾概念回顾o关系关系o关系数据模型关系数据模型o关系数据库关系数据库o关系数据模式关系数据模式6 6二二.问题的提出问题的提出o给出一组数据给出一组数据n如何构造一个适合于它的如何构造一个适合于它的关系数据关系数据模式模式n使用什么标准来鉴别相应设计合理与否使用什么标准来鉴别相应设计合理与否n若不合理应如何改进若不合理应如何改进 -提出了数据模式的设计问提出了数据模式的设计问题题( (关系数据理论关系数据理论) )7 7关系模式的设计问题关系模式的

4、设计问题o关系数据库模式是关系模式的集合关系数据库模式是关系模式的集合 关系数据库模式关系数据库模式=关系模式关系模式 o关系数据库模式设计就是要确定关系数据库模式设计就是要确定: :n有几个关系模式有几个关系模式n每个关系模式的名称、属性组成每个关系模式的名称、属性组成n域的定义和说明域的定义和说明n数据完整性的要求等数据完整性的要求等8 8三三.关系模式的形式化定义关系模式的形式化定义o关系模式由五部分组成关系模式由五部分组成, ,即它是一个五元即它是一个五元组:组: R(U, D, DOM, F)R(U, D, DOM, F)R R:关系名:关系名U U:组成该关系的属性名集合:组成该关

5、系的属性名集合D D:属性组:属性组U U中属性所来自的域中属性所来自的域DOMDOM:属性向域的映象集合:属性向域的映象集合F F:属性间数据的依赖关系集合:属性间数据的依赖关系集合即分别说明它们即分别说明它们分别来自哪个域分别来自哪个域9 9关系模式的形式化定义关系模式的形式化定义o关系模式关系模式R R(U, D, DOM, FU, D, DOM, F) 简化为一个三元组:简化为一个三元组:R R(U, FU, F)nU U:组成该关系的属性名集合:组成该关系的属性名集合nF F:属性间数据的依赖关系集合:属性间数据的依赖关系集合o当且仅当当且仅当U U上的一个关系上的一个关系r r满足

6、满足F F时,时,r r称为称为关关系模式系模式 R R(U, FU, F)的一个)的一个关系关系o关系最基本的规范条件:关系的每一个分关系最基本的规范条件:关系的每一个分量必须是一个不可分的数据项量必须是一个不可分的数据项-1NF-1NF1010四四.什么是数据依赖什么是数据依赖1.1.完整性约束的表现形式完整性约束的表现形式n限定属性取值范围:例如学生成绩必须在限定属性取值范围:例如学生成绩必须在0-1000-100之间之间n定义数据表之间属性定义数据表之间属性值值的相互关连的相互关连2. 2. 数据依赖数据依赖n一个关系内部属性与属性之间的约束关系一个关系内部属性与属性之间的约束关系n现

7、实世界属性间相互联系的抽象现实世界属性间相互联系的抽象n数据内在的性质数据内在的性质n语义语义的体现的体现1111什么是数据依赖什么是数据依赖( (续续) )3.3.数据依赖的类型数据依赖的类型n函数依赖函数依赖(Functional Dependency(Functional Dependency,简,简记为记为FD)FD)n多值依赖多值依赖(Multivalued Dependency(Multivalued Dependency,简,简记为记为MVD)MVD)n其他其他1212五五.数据依赖对关系模式的影响数据依赖对关系模式的影响o函数依赖:函数依赖:指关系中一个或一组属性的指关系中一个

8、或一组属性的值可以决定其它属性的值值可以决定其它属性的值o函数依赖正象一个函数函数依赖正象一个函数y=f(x)y=f(x)-x-x的值给定后,的值给定后,y y的值也就唯一地确定了的值也就唯一地确定了 1313数据依赖对关系模式的影响数据依赖对关系模式的影响o 例例11建立一个描述学校教务的数据库:建立一个描述学校教务的数据库:学生的学号学生的学号(Sno)(Sno)、所在系、所在系(Sdept)(Sdept)、系主任姓名系主任姓名(Mname)(Mname)、课程名、课程名(Cname)(Cname)、成绩成绩(Grade)(Grade)n单一的关系模式单一的关系模式 :Student US

9、tudent F U USno,Sdept,Mname,Cname,GradeSno,Sdept,Mname,Cname,Grade1414数据依赖对关系模式的影响数据依赖对关系模式的影响( (续续) )n属性组属性组U U上的一组函数依赖上的一组函数依赖F F: F FSnoSdept,SdeptMname, SnoSdept,SdeptMname, (Sno,Cname)Grade (Sno,Cname)Grade SnoSnoCnameCnameSdeptSdeptM Mnamname eGradeGrade函数依赖函数依赖:一个或一组一个或一组属性的值可属性的值可以决定其他以决定其他属

10、性的值属性的值 1515数据依赖对关系模式的影响数据依赖对关系模式的影响( (续续) )o关系模式关系模式 :Student Student nU USno,Sdept,Mname,Cname,GradeSno,Sdept,Mname,Cname,GradenF FSnoSdept,SdeptMname, SnoSdept,SdeptMname, (Sno,Cname)Grade (Sno,Cname)Graden关系模式关系模式StudentStudent的一个实例的一个实例SnoSnoSdeptSdeptMnameMnameCnameCnameGradeGradeS1S1CSCS张明张明数

11、据库数据库9595S2S2CSCS张明张明数据库数据库9090S3S3CSCS张明张明数据库数据库8888S4S4CSCS张明张明数据库数据库70701616关系模式关系模式StudentStudent中存在的问题中存在的问题1. 1. 数据冗余太大数据冗余太大2. 2. 更新异常更新异常(Update Anomalies)(Update Anomalies)3. 3. 插入异常插入异常(Insertion Anomalies)(Insertion Anomalies)4. 4. 删除异常删除异常(Deletion Anomalies)(Deletion Anomalies)1717关系模式关

12、系模式StudentStudent中存在的问题中存在的问题o数据冗余太大数据冗余太大n浪费大量的存储空间浪费大量的存储空间 例:每一个系主任的姓名重复出现例:每一个系主任的姓名重复出现o更新异常更新异常(Update Anomalies)(Update Anomalies)n数据冗余数据冗余, ,更新数据时更新数据时, ,维护数据完整性代维护数据完整性代价大价大n例:某系更换系主任后例:某系更换系主任后, ,须修改与该系学生须修改与该系学生有关的每个元组有关的每个元组1818关系模式关系模式StudentStudent中存在的问题中存在的问题o插入异常插入异常(Insertion Anomal

13、ies)(Insertion Anomalies)n该插的数据插不进去该插的数据插不进去n例:若一个系刚成立,尚无学生,就无法例:若一个系刚成立,尚无学生,就无法存入该系及其系主任的信息存入该系及其系主任的信息o删除异常删除异常(Deletion Anomalies)(Deletion Anomalies)n不该删除的数据不得不删不该删除的数据不得不删n例:若某个系的学生全部毕业了,则在删例:若某个系的学生全部毕业了,则在删除该系学生信息的同时,会把该系及其系除该系学生信息的同时,会把该系及其系主任的信息也同时删除主任的信息也同时删除1919数据依赖对关系模式的影响数据依赖对关系模式的影响(

14、(续续) )o结论:结论:nStudentStudent关系模式不是一个好的模式。关系模式不是一个好的模式。n“好好”的模式:的模式:u不会发生插入异常、删除异常、更新不会发生插入异常、删除异常、更新异常异常u数据冗余应尽可能少数据冗余应尽可能少n原因:原因:模式中的模式中的某些数据依赖某些数据依赖引起引起n解决方法:分解解决方法:分解关系模式关系模式2020分解关系模式分解关系模式o把该模式分解成把该模式分解成3 3个关系模式:个关系模式: S(Sno,Sdept,Sno Sdept);S(Sno,Sdept,Sno Sdept); SC(Sno,Cname,Grade,(Sno SC(Sn

15、o,Cname,Grade,(Sno,Cname)Grade);Cname)Grade); DEPT(Sdept,Mname,Sdept Mname) DEPT(Sdept,Mname,Sdept Mname)n关系模式关系模式 :Student UStudent FuU USno,Sdept,Mname,Cname,GradeSno,Sdept,Mname,Cname,GradeuF F SnoSdept,SdeptMnameSnoSdept,SdeptMname, , ( (Sno,Cname)GradeSno,Cname)Grade 2121数据冗余产生原因分析数据冗余产生原因分析o对多

16、个文件和同一文件中数据之间的联对多个文件和同一文件中数据之间的联系考虑不周或处理不当系考虑不周或处理不当 -对数据依赖处理不当,即关系模对数据依赖处理不当,即关系模式本身的结构设计存在缺陷式本身的结构设计存在缺陷2222问题的解决思路问题的解决思路o先分析和掌握属性间的语义关联,然后先分析和掌握属性间的语义关联,然后再依据这些关联得到相应的设计方案再依据这些关联得到相应的设计方案n 一个模式的函数依赖会有哪些不好的性一个模式的函数依赖会有哪些不好的性质,如何改造质,如何改造n 提出并发展了一套关系数据库模式设计提出并发展了一套关系数据库模式设计理论与方法理论与方法-关系模式的规范化理论与技术关

17、系模式的规范化理论与技术 23236.2 6.2 规范化规范化o规范化理论规范化理论正是用来改造关系模式,通正是用来改造关系模式,通过分解关系模式来消除其中不合适的数过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。更新异常和数据冗余问题。24246.2 6.2 规范化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.6 BCNF6.2.6 BCNF6.2.7 6.2.7 多值依赖多值

18、依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结25256.2.1 6.2.1 函数依赖函数依赖o函数依赖函数依赖o函数依赖的三种类型函数依赖的三种类型n平凡与非平凡函数依赖平凡与非平凡函数依赖n部分与完全函数依赖部分与完全函数依赖n传递与直接函数依赖传递与直接函数依赖o函数依赖与数据冗余函数依赖与数据冗余2626一一.函数依赖函数依赖o定义定义6.16.1 设设R(U)R(U)是一个属性集是一个属性集U U上的关系模式,上的关系模式,X X和和Y Y是是U U的子集。的子集。 若对于若对于R(U)R(U)的的任意任意一个可能的关系一个可能的关系r r,r

19、r中中不可能存在两个元组在不可能存在两个元组在X X上的属性值相等上的属性值相等, ,而在而在Y Y上的属性值不等上的属性值不等, ,则称则称“X X函数确定函数确定Y Y”或或“Y Y函数依赖于函数依赖于X X”,”,记作记作XYXY。 -指一个或一组属性的值可以决定其他属性的值指一个或一组属性的值可以决定其他属性的值 2727说明说明 o所有关系实例均要满足所有关系实例均要满足o语义范畴的概念语义范畴的概念o数据库设计者可以对现实世界作强制的数据库设计者可以对现实世界作强制的规定规定 -刻画关系各属性之间相互制约而刻画关系各属性之间相互制约而又相互依赖的情况又相互依赖的情况 2828二二.

20、函数依赖的三种类型函数依赖的三种类型1.1.平凡与非平凡函数依赖平凡与非平凡函数依赖2.2.部分与完全函数依赖部分与完全函数依赖3.3.传递与直接函数依赖传递与直接函数依赖2929二二.函数依赖的三种类型函数依赖的三种类型1.1.平凡与非平凡函数依赖平凡与非平凡函数依赖o在关系模式在关系模式R(U)R(U)中,对于中,对于U U的子集的子集X X和和Y Yn如果如果XYXY,但,但Y Y X X,称,称XYXY是是非平凡的函数非平凡的函数依赖依赖n若若XYXY,但,但Y Y X,X,则称则称XYXY是平凡的函数依赖是平凡的函数依赖3030平凡与非平凡函数依赖平凡与非平凡函数依赖( (续续) )

21、o例:在关系例:在关系SC(Sno,Cno,Grade)SC(Sno,Cno,Grade)中,中,n非平凡函数依赖:非平凡函数依赖:(Sno, Cno) (Sno, Cno) GradeGraden平凡函数依赖:平凡函数依赖: (Sno, Cno) (Sno, Cno) Sno Sno (Sno, Cno) Cno (Sno, Cno) Cno3131平凡与非平凡函数依赖平凡与非平凡函数依赖( (续续) )n若若X XY Y,则,则X X称为这个函数依赖的决定属称为这个函数依赖的决定属性组,也称为决定因素性组,也称为决定因素(Determinant)(Determinant)。n若若X XY

22、Y,Y YX X,则记作,则记作X XY Y。n若若Y Y不函数依赖于不函数依赖于X X,则记作,则记作X XY Y。3232函数依赖与的三种类型函数依赖与的三种类型2 2. .部分与完全函数依赖部分与完全函数依赖o定义定义6.26.2 在在R(U)R(U)中,如果中,如果XY,XY,并且对于并且对于X X的任何一个真子集的任何一个真子集X,X,都有都有X Y, X Y, 则称则称Y Y对对X X完全函数依赖,记作完全函数依赖,记作X X F F Y Y。 若若XYXY,但,但Y Y不完全函数依赖于不完全函数依赖于X X,则称,则称Y Y对对X X部分函数依赖,记作部分函数依赖,记作X X P

23、 P Y Y。 3333完全部分函数依赖完全部分函数依赖( (续续) )o 例例11中中n(Sno,Cno)Grade(Sno,Cno)Grade是完全函数依赖是完全函数依赖n(Sno,Cno)Sdept(Sno,Cno)Sdept是部分函数依赖是部分函数依赖 -因为因为SnoSdeptSnoSdept成立,且成立,且SnoSno是是(Sno,Cno)(Sno,Cno)的真子集的真子集FP3434函数依赖与的三种类型函数依赖与的三种类型3.3.传递与直接函数依赖传递与直接函数依赖o定义定义6.36.3 在在R(U)R(U)中,如果中,如果XY,(YXY,(Y X), X), YX,YZYX,Y

24、Z,Z ZY,Y,则称则称Z Z对对X X传递函数依赖。传递函数依赖。记为:记为:XZXZ 注注: : 如果如果YXYX,即,即XYXY,则,则Z Z直接依赖于直接依赖于X X。传递传递3535传递函数依赖传递函数依赖o例例: : 在关系在关系Std(Sno,Sdept,Mname)Std(Sno,Sdept,Mname)中中, ,有:有:nSnoSdeptSnoSdept,nSdeptSnoSdeptSnonSdeptMnameSdeptMname-Mname-Mname传递函数依赖于传递函数依赖于SnoSno3636三三.函数依赖与数据冗余函数依赖与数据冗余o部分函数依赖存在部分函数依赖存

25、在“冗余属性冗余属性”o传递函数依赖表现传递函数依赖表现“间接间接”的弱数据依的弱数据依赖,这是产生数据冗余的主要原因赖,这是产生数据冗余的主要原因 -要消除数据冗余及数据异常现象,就需要消除数据冗余及数据异常现象,就需要处理好关系模式中的部分函数依赖和传递函要处理好关系模式中的部分函数依赖和传递函数依赖数依赖 37376.2.2 6.2.2 码码o定义定义6.46.4 设设K K为为RR中的属性或属性中的属性或属性组合。若组合。若K UK U,则,则K K称为称为R R的的候选码候选码(Candidate Key)(Candidate Key)。 若候选码多于一个,则选定其中的若候选码多于一

26、个,则选定其中的一个做为一个做为主码主码(Primary Key)(Primary Key)。F3838码码( (续续) )o主属性与非主属性主属性与非主属性n包含在任何一个候选码中的属性,称为主包含在任何一个候选码中的属性,称为主属性属性(Prime attribute) (Prime attribute) n不包含在任何码中的属性称为非主属性不包含在任何码中的属性称为非主属性(Nonprime attribute)(Nonprime attribute)或非码属性或非码属性(Non-(Non-key attribute) key attribute) o全码全码n整个属性组是码,称为全码整

27、个属性组是码,称为全码(All-key) (All-key) 3939码码( (续续) )o 例例22关系模式关系模式S(S(SnoSno,Sdept,Sage),Sdept,Sage),单个单个属性属性SnoSno是码是码 SC(SC(Sno,CnoSno,Cno,Grade),Grade)中,中,(Sno,Cno)(Sno,Cno)是码是码o 例例33关系模式关系模式R(P,W,A)R(P,W,A) P P:演奏者:演奏者 W W:作品:作品 A A:听众:听众n一个演奏者可以演奏多个作品一个演奏者可以演奏多个作品n某一作品可被多个演奏者演奏某一作品可被多个演奏者演奏n听众可以欣赏不同演奏

28、者的不同作品听众可以欣赏不同演奏者的不同作品n码为码为(P(P,W W,A)A),即,即All-Key All-Key 4040外部码外部码o定义定义6.56.5 关系模式关系模式R R中属性或属性组中属性或属性组X X并并非非R R的码,但的码,但X X是另一个关系模式的码,是另一个关系模式的码,则称则称 X X是是R R的的外部码外部码(Foreign key)(Foreign key),也,也称外码称外码o例:例:在在SC(SC(Sno,CnoSno,Cno,Grade),Grade)中,中,SnoSno不是不是码,但码,但SnoSno是关系模式是关系模式S(S(SnoSno,Sdept

29、,Sage),Sdept,Sage)的码,则的码,则SnoSno是关系模式是关系模式SCSC的外部码的外部码 o主码与外部码一起提供了表示关系间联主码与外部码一起提供了表示关系间联系的手段系的手段41416.2.3 6.2.3 范式范式o范式范式是符合某一种级别的关系模式的集合是符合某一种级别的关系模式的集合o关系数据库中的关系必须满足一定的要求。关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式满足不同程度要求的为不同范式o范式的种类:范式的种类:第一范式第一范式(1NF)(1NF)第二范式第二范式(2NF)(2NF)第三范式第三范式(3NF)(3NF)BCBC范式范式(BC

30、NF)(BCNF)第四范式第四范式(4NF)(4NF)第五范式第五范式(5NF)(5NF)4242范式范式o为什么要有关系模式的范式?为什么要有关系模式的范式?n在关系模式数据模式设计中,为了避在关系模式数据模式设计中,为了避免数据依赖引起的数据冗余和更新异免数据依赖引起的数据冗余和更新异常等问题,必须进行关系模式的分解常等问题,必须进行关系模式的分解( (即关系模式的规范化即关系模式的规范化) )。4343范式范式o关系模式的规范化设计原则:关系模式的规范化设计原则:n数据冗余量尽可能小数据冗余量尽可能小n对关系进行插入、删除等操作,不出问题对关系进行插入、删除等操作,不出问题n尽量如实反映

31、现实世界的实际情况,且易尽量如实反映现实世界的实际情况,且易懂懂 -满足以上标准就是模式的范式,范式来满足以上标准就是模式的范式,范式来自英文自英文 Normal formNormal form,简称,简称NFNF,是符合某个,是符合某个级别的关系模式的集合级别的关系模式的集合4444范式范式o关系数据库中的关系必须满足最低的关关系数据库中的关系必须满足最低的关系要求,满足不同程度要求的为不同范系要求,满足不同程度要求的为不同范式。式。o目前主要有六种范式:目前主要有六种范式:1NF1NF、2NF2NF、3NF3NF、BCNFBCNF、4NF4NF、5NF5NF。o满足最低要求的称第一范式,简

32、称为满足最低要求的称第一范式,简称为1NF 1NF 4545范范 式式o范式之间的联系:范式之间的联系:NF5NF4BCNFNF3NF2NF1o某一关系模式某一关系模式R R为第为第n n范式,可简记为范式,可简记为RnNFRnNF。-范式的种类和数据依赖有直接的关系范式的种类和数据依赖有直接的关系o一个低一级范式的关系模式,通过一个低一级范式的关系模式,通过模式分模式分解解可以转换为若干个高一级范式的关系模可以转换为若干个高一级范式的关系模式的集合,这种过程就叫关系的式的集合,这种过程就叫关系的规范化规范化46461NF1NFo1NF1NF的定义的定义如果一个关系模式如果一个关系模式R R的

33、所有属性都是的所有属性都是不可分的基本数据不可分的基本数据项项,则,则R1NFR1NFo第一范式是对关系模式的最起码的要求第一范式是对关系模式的最起码的要求n不满足不满足1NF1NF的数据库模式不能称为关系数据库的数据库模式不能称为关系数据库n但是满足但是满足1NF1NF的关系模式并不一定是一个好的的关系模式并不一定是一个好的关系模式关系模式n1NF1NF不不能排除数据冗余和更新异常问题,因为能排除数据冗余和更新异常问题,因为其中可能存在部分函数依赖其中可能存在部分函数依赖47471NF1NF分解转换后的分解转换后的1NF1NF形式形式学号学号姓名姓名系别系别进修课程进修课程学号学号 姓名姓名

34、 系别系别 课程名称课程名称是个是个集合集合课程名称课程名称学分学分课程名称课程名称学分学分n垂直分解用投影运算实现垂直分解用投影运算实现48481NF1NF横向展开为多个属横向展开为多个属性转换为性转换为1NF1NF形式形式职工姓名职工姓名 部部 门门住住 址址省省市市街道街道邮编邮编是个是个复合复合结构结构职工姓名职工姓名 部部 门门 省省 市市 街道街道 邮编邮编49496.2.4 2NF6.2.4 2NFo2NF2NF的定义的定义若若R1NFR1NF,且每一个非主属性完全函数,且每一个非主属性完全函数依赖于码,则依赖于码,则R2NFR2NF - -每个非主属性是由整个主键函数决定的,每

35、个非主属性是由整个主键函数决定的,而不能由主键的一部分来决定而不能由主键的一部分来决定 50502NF(2NF(续续) )o 例例44关系模式关系模式 S-L-C(Sno,Sdept,Sloc,Cno,Grade)S-L-C(Sno,Sdept,Sloc,Cno,Grade) 注:注:SlocSloc:学生住处:学生住处, ,假设每个系的学生住假设每个系的学生住在同一个地方在同一个地方o (Sno,Cno) Grade(Sno,Cno) Grade SnoSdept, SnoSdept, Sno Sloc, Sno Sloc, Sdept Sloc Sdept Sloco码为码为(Sno, C

36、no)(Sno, Cno)51512NF(2NF(续续) )o关系模式关系模式S-L-CS-L-C的码为的码为(Sno, Cno)(Sno, Cno)oS-L-CS-L-C满足第一范式满足第一范式o函数依赖包括:函数依赖包括: (Sno,Cno) (Sno,Cno) F F Grade Grade SnoSdept,(Sno,Cno) SnoSdept,(Sno,Cno) P P Sdept Sdept Sno Sloc,(Sno,Cno) Sno Sloc,(Sno,Cno) P P Sloc Sloc Sdept Sloc Sdept Sloc-存在非主属性对码的部分函数依赖存在非主属性对

37、码的部分函数依赖52522NF(2NF(续续) )oS-L-CS-L-C的码为的码为(Sno, Cno)(Sno, Cno)oS-L-CS-L-C满足第一范式。满足第一范式。o非主属性非主属性SdeptSdept和和SlocSloc部分函数依赖于码部分函数依赖于码(Sno,Cno)(Sno,Cno) -S-L-C -S-L-C2NF2NFSnoSnoCnoCnoGradeGradeSdeptSdeptSlocSlocS-L-CS-L-C5353S-L-CS-L-C不是一个好的关系模式不是一个好的关系模式( (续续) )(1)(1)插入异常插入异常(2)(2)删除异常删除异常(3)(3)数据冗余

38、度大数据冗余度大(4)(4)修改复杂修改复杂5454S-L-CS-L-C不是一个好的关系模式不是一个好的关系模式( (续续) )o原因原因 SdeptSdept、SlocSloc部分函数依赖于码。部分函数依赖于码。o解决方法解决方法 S-L-CS-L-C分解为两个关系模式,以消除分解为两个关系模式,以消除这些部分函数依赖这些部分函数依赖 SC(Sno,Cno,Grade)SC(Sno,Cno,Grade) S-L(Sno,Sdept,Sloc) S-L(Sno,Sdept,Sloc)55552NF(2NF(续续) )o函数依赖图:函数依赖图:SnoSnoCnoCnoGradeGradeSCSC

39、S-LS-LSnoSnoSdeptSdeptSlocSlocn关系模式关系模式SCSC的码为(的码为(SnoSno,CnoCno)n关系模式关系模式S-LS-L的码为的码为SnoSno - -这样非主属性对码都是完全函数依赖这样非主属性对码都是完全函数依赖 5656 2NF(2NF(续续) )o2NF2NF的定义的定义定义定义6.66.6 若若R1NFR1NF,且每一个,且每一个非主属性完非主属性完全全函数依赖于码,则函数依赖于码,则R2NFR2NF。n例:例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)1NFS-L-C(Sno,Sdept,Sloc,Cno,Grade)1N

40、F S-L-C(Sno,Sdept,Sloc,Cno,Grade)2NF S-L-C(Sno,Sdept,Sloc,Cno,Grade)2NF SC(Sno,Cno,Grade)2NF SC(Sno,Cno,Grade)2NF S-L(Sno,Sdept,Sloc)2NF S-L(Sno,Sdept,Sloc)2NF57572NF(2NF(续续) )o规范化处理过程规范化处理过程(1NF2NF)(1NF2NF)n 对关系进行投影分解对关系进行投影分解-将一个表分解成将一个表分解成若干个表。若干个表。n投影分解法可在一定程度上减轻原投影分解法可在一定程度上减轻原1NF1NF关关系中存在的插入异常

41、、删除异常、数据冗系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题余度大、修改复杂等问题n但投影分解并不能完全消除关系模式中的但投影分解并不能完全消除关系模式中的各种异常情况和数据冗余。各种异常情况和数据冗余。58582NF(2NF(续续) )o不满足不满足2NF2NF的关系模式的关系模式R R存在非主属性对存在非主属性对键的部分函数依赖键的部分函数依赖n 即存在即存在X XY Yn Y Y是非主属性是非主属性n X X是主键是主键K K的真子集的真子集X X主键主键K KY Y-关系模式关系模式R R不满足第二范式不满足第二范式n第二范式也可能存在第二范式也可能存在数据冗余和更新异

42、常数据冗余和更新异常问题,因为其中可能问题,因为其中可能存在传递函数依赖。存在传递函数依赖。5959关于关于2NF2NF的结论的结论o不存在非主属性的关系模式属于不存在非主属性的关系模式属于2NF-2NF-全码全码n没有非主属性没有非主属性o码只由一个属性组成的关系模式属于码只由一个属性组成的关系模式属于2NF2NFn不会有部分依赖不会有部分依赖o二目关系模式属于二目关系模式属于2NF 2NF n码或只有一个属性,或是全码码或只有一个属性,或是全码oR R属于属于1NF1NF,但,但R R不一定属于不一定属于2NF 2NF n例例: : 关系模式关系模式R(Sno,Sdept,Sloc,Cno

43、,Grade)R(Sno,Sdept,Sloc,Cno,Grade)60606.2 6.2 规范化规范化6.2.1 6.2.1 函数依赖函数依赖6.2.2 6.2.2 码码6.2.3 6.2.3 范式范式6.2.4 2NF6.2.4 2NF6.2.5 3NF6.2.5 3NF6.2.6 BCNF6.2.6 BCNF6.2.7 6.2.7 多值依赖多值依赖6.2.8 4NF6.2.8 4NF6.2.9 6.2.9 规范化小结规范化小结6161 6.2.5 3NF6.2.5 3NFo3NF3NF的定义的定义定义定义6.76.7 关系模式关系模式RURF 中若不存在这中若不存在这样的码样的码X X、

44、属性组、属性组Y Y及非主属性及非主属性Z(ZZ(Z Y),Y),使使得得X XY Y, ,Y YZ Z成立成立, ,Y YX X, ,则称则称RR3NF3NFn若若R R3NF3NF,则,则每一个非主属性既不部分每一个非主属性既不部分依赖于码也不传递依赖于码依赖于码也不传递依赖于码。 62623NF(3NF(续续) )o例:例:2NF2NF关系模式关系模式S-L(Sno,Sdept,Sloc)S-L(Sno,Sdept,Sloc)中中n函数依赖:函数依赖:SnoSdeptSnoSdept SdeptSno SdeptSno SdeptSloc SdeptSlocn可得:可得:SnoSlocS

45、noSloc,即,即S-LS-L中存在非主属性对中存在非主属性对码的传递函数依赖码的传递函数依赖n因此,因此,S S-L-L2NF 2NF S-L3NF S-L3NF传递SC(Sno,Cno,Grade)2NFSC(Sno,Cno,Grade)2NFS-L(Sno,Sdept,Sloc)2NFS-L(Sno,Sdept,Sloc)2NF6363 3NF(3NF(续续) )n函数依赖图:函数依赖图:S-LS-LSnoSnoSdeptSdeptSlocSlocSnoSlocSnoSloc传递传递T T64643NF(3NF(续续) )o解决方法:解决方法:投影分解法投影分解法n把把S-LS-L分解

46、为两个关系模式分解为两个关系模式 S-DS-D(SnoSno,SdeptSdept) D-LD-L(SdeptSdept,SlocSloc)-S-D-S-D的码为的码为Sno,D-LSno,D-L的码为的码为SdeptSdeptn分解后的关系模式分解后的关系模式S-DS-D与与D-LD-L中不再存在传中不再存在传递依赖递依赖 S-L(Sno,Sdept,Sloc)S-L(Sno,Sdept,Sloc)65653NF(3NF(续续) )oS-DS-D的码为的码为SnoSno,D-LD-L的码为的码为SdeptSdeptSnoSnoSdeptSdeptS-DS-DSdeptSdeptSlocSlo

47、cD-LD-Ln S-L(Sno, Sdept, Sloc)2NFS-L(Sno, Sdept, Sloc)2NFn S-L(Sno, Sdept, Sloc)3NF S-L(Sno, Sdept, Sloc)3NF n S-D(SnoS-D(Sno,Sdept)3NFSdept)3NFn D-L(SdeptD-L(Sdept,Sloc)3NFSloc)3NF66663NF(3NF(续续) )o若关系模式若关系模式R R不满足不满足3NF,3NF,则其中一定存在则其中一定存在非主属性非主属性Y Y对键对键K K的传递依赖的传递依赖o特殊情况特殊情况n存在存在X XY,Y,其中其中Y Y是非主属

48、性是非主属性,X,X是主键是主键K K的真的真子集子集-实际上是一种基于部分依赖的传递实际上是一种基于部分依赖的传递依赖依赖-非非3NF3NF类型之一类型之一X X主键主键K KY Y67673NF3NFo满足满足3NF3NF的表中不存在传递依赖,即的表中不存在传递依赖,即n没有一个非主属性依赖于另一个非主属性没有一个非主属性依赖于另一个非主属性n或者说没有一个非主属性决定另一个非主或者说没有一个非主属性决定另一个非主属性属性6868关于关于3NF3NF的结论的结论o不存在非主属性的关系模式属于不存在非主属性的关系模式属于3 3NF-NF-全码全码n没有非主属性没有非主属性o二目关系模式属于二

49、目关系模式属于3NF 3NF n不会存在传递依赖不会存在传递依赖o若若R R属于属于3NF3NF,那么,那么R R也属于也属于2NF2NFoR R属于属于2NF2NF,但,但R R不一定属于不一定属于3NF 3NF n例例: :关系模式关系模式S-L(Sno,Sdept,Sloc)S-L(Sno,Sdept,Sloc)6969 6.2.6 BC6.2.6 BC范式范式(BCNF)(BCNF)o定义定义6.86.8 关系模式关系模式RUR1NFF1NF,若,若XYXY且且Y Y X X时时X X必含有码,则必含有码,则RURBCNFFBCNF。-每个函数依赖的左边都是码每个函数依赖的左边都是码

50、o等价于:每一个决定因素都包含码等价于:每一个决定因素都包含码n若关系模式属于若关系模式属于1NF1NF,且每个属性都不部分,且每个属性都不部分或传递依赖于侯选码,则或传递依赖于侯选码,则R R属于属于BCBC范式范式 n若关系模式属于若关系模式属于3NF,3NF,且任何主属性都不部分且任何主属性都不部分或传递依赖于侯选码或传递依赖于侯选码, ,则则R R属于属于BCBC范式范式7070BCNF(BCNF(续续) )o若若RBCNFRBCNF n所有非主属性对每一个码都是完全函数依赖所有非主属性对每一个码都是完全函数依赖n所有的主属性对每一个不包含它的码,也是所有的主属性对每一个不包含它的码,

51、也是完全函数依赖完全函数依赖n没有任何属性完全函数依赖于非码的任何一没有任何属性完全函数依赖于非码的任何一组属性组属性o结论:结论:如果关系如果关系R3NFR3NF,R R未必属于未必属于BCNFBCNF,反,反之,若之,若RBCNFRBCNF,则必属于,则必属于3NF3NF。RBCNF R3NFRBCNF R3NF充分充分必要必要-每个函数依赖的左边都是码每个函数依赖的左边都是码 7171BCNF(BCNF(续续) )o如果关系如果关系R R仅包含一个候选码,且仅包含一个候选码,且R3NF,R3NF,则则R R必属于必属于BCNFBCNF。n如果关系模式如果关系模式RBCNFRBCNF,必定

52、有,必定有R3NFR3NFn如果如果R3NFR3NF,且,且R R只有一个候选码,则只有一个候选码,则R R必必属于属于BCNFBCNF。RBCNF R3NFRBCNF R3NF充分充分必要必要7272BCNF(BCNF(续续) )o 例例55关系模式关系模式C(C(CnoCno,Cname,Pcno),Cname,Pcno)nC3NFC3NFnCBCNFCBCNFo 例例66关系模式关系模式S(Sno,Sname,Sdept,Sage)S(Sno,Sname,Sdept,Sage)n假定假定S S有两个码有两个码SnoSno,SnameSnamenS3NFS3NFnSBCNFSBCNF若每一

53、个决定因素都若每一个决定因素都包含码包含码, ,则则R R属于属于BCBFBCBF7373BCNF(BCNF(续续) )o 例例77关系模式关系模式SJP(S,J,P)SJP(S,J,P)-S-S是学生,是学生,J J是课程,是课程,P P是名次是名次n函数依赖:函数依赖:(S(S,J)PJ)P;(J(J,P)SP)Sn(S(S,J)J)与与(J(J,P)P)都可以作为候选码都可以作为候选码, ,属属性相交性相交nSJP3NFSJP3NF,nSJPBCNFSJPBCNF若每一个决定因素都若每一个决定因素都包含码包含码, ,则则R R属于属于BCBFBCBF7474BCNF(BCNF(续续) )

54、o 例例88在关系模式在关系模式STJ(S,T,J)STJ(S,T,J)中,中,S S表示表示学生,学生,T T表示教师,表示教师,J J表示课程。表示课程。n每一教师只教一门课每一教师只教一门课n每门课由若干教师教每门课由若干教师教, ,某一学生选定某门某一学生选定某门课,就确定了一个固定的教师课,就确定了一个固定的教师n某个学生选修某个教师的课就确定了所选某个学生选修某个教师的课就确定了所选课的名称课的名称若每一个决定因素都若每一个决定因素都包含码包含码, ,则则R R属于属于BCBFBCBF7575BCNF(BCNF(续续) )o 例例8 8续续 STJ(S,T,J) STJ(S,T,J

55、)中,中,S-S-学生,学生,T-T-教教师,师,J-J-课程。课程。n函数依赖:函数依赖:(S,J)T(S,J)T,(S,T)J(S,T)J,TJTJn(S,J)(S,J)和和(S,T)(S,T)都是候选码都是候选码JSJTSTSTJSTJ中的函数依赖中的函数依赖若每一个决定因素都若每一个决定因素都包含码包含码, ,则则R R属于属于BCBFBCBFnSTJSTJ是是3NF3NF,因为没,因为没有任何非主属性对键有任何非主属性对键的传递或部分函数依的传递或部分函数依赖赖nSTJSTJ不是不是BCNFBCNF,因,因为为T T是决定属性集,是决定属性集,T T不是候选码不是候选码主属性主属性?

56、 ?7676BCNF(BCNF(续续) )oSTJ3NFSTJ3NFn没有任何非主属性对码传递依赖或部分依没有任何非主属性对码传递依赖或部分依赖赖oSTJBCNFSTJBCNFnT T是决定因素,是决定因素,T T不包含码不包含码若每一个决定因素都若每一个决定因素都包含码包含码, ,则则R R属于属于BCBFBCBF7777BCNF(BCNF(续续) )o解决方法:解决方法:将将STJSTJ分解为二个关系模式分解为二个关系模式 ST(ST(S S,T T)BCNF)BCNF, TJ(TJ(T T,J)BCNFJ)BCNFSJSTTJTJ没有没有任何属性任何属性对码的部分函数依赖和传递函数依赖对

57、码的部分函数依赖和传递函数依赖若每一个决定因素都若每一个决定因素都包含码包含码, ,则则R R属于属于BCBFBCBF78783NF3NF与与BCNFBCNF的关系的关系oRBCNF R3NFRBCNF R3NFo如果如果R3NFR3NF,且,且R R只有一个候选码只有一个候选码 RBCNF R3NFRBCNF R3NF充分充分必要必要充分充分必要必要n3NF3NF和和BCNFBCNF是以函数依赖为基础的关系模式规范化是以函数依赖为基础的关系模式规范化程度的测度。程度的测度。n如果一个关系数据库中的所有关系模式都属于如果一个关系数据库中的所有关系模式都属于BCNFBCNF,那么在函数依赖依赖范

58、畴内,它已实现了模式的彻那么在函数依赖依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范化程度。底分解,达到了最高的规范化程度。7979BCNFBCNF例例o关系模式关系模式SCO(Sno,Cno,Order)SCO(Sno,Cno,Order),表示学,表示学生生(Sno)(Sno)选修课程选修课程(Cno)(Cno)的名次的名次(Order)(Order)。n每一个学生选修每门课程的成绩有一定每一个学生选修每门课程的成绩有一定的名次,每门课程中每一名次只有一个的名次,每门课程中每一名次只有一个学生学生n有函数依赖:有函数依赖: (Sno,Cno)(Sno,Cno) Order Orde

59、r (Cno,Order) (Cno,Order) Sno Snoo思考思考: : 关系模式关系模式SCOSCO的码是的码是? ? SCOSCO属于属于3NF3NF吗?属于吗?属于BCNFBCNF吗吗? ? 为什么为什么? ?8080BCNFBCNF例例( (续续) )o解答:解答:n(Sno,Cno)(Sno,Cno)或或(Cno,Order)(Cno,Order)都可以作为都可以作为候选码候选码n不存在非主属性对码的传递依赖或部不存在非主属性对码的传递依赖或部分依赖分依赖,SCO3NF,SCO3NFn没有其他决定因素,没有其他决定因素,SCOBCNFSCOBCNF8181关于关于BCNFB

60、CNF的结论的结论o全码关系模式属于全码关系模式属于BCNFBCNFn没有非主属性没有非主属性, ,不存在非主属性作为决定不存在非主属性作为决定因素的函数依赖因素的函数依赖o二目关系模式属于二目关系模式属于BCNFBCNFn如果有函数依赖如果有函数依赖, , 则其左部一定含码则其左部一定含码o不存在函数依赖的关系模式属于不存在函数依赖的关系模式属于BCNFBCNFn没有函数依赖没有函数依赖o若若R R属于属于BCNFBCNF,那么,那么R R也属于也属于3NF 3NF o若若R R属于属于3NF3NF,但,但R R不一定属于不一定属于BCNF BCNF n例如,关系模式例如,关系模式 STJ(

温馨提示

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

评论

0/150

提交评论