第六章关系数据理论_第1页
第六章关系数据理论_第2页
第六章关系数据理论_第3页
第六章关系数据理论_第4页
第六章关系数据理论_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

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

文档简介

1、An Introduction to Database System数据库原理与应用数据库原理与应用 The Principal & Application OF Database第六章第六章 关系数据理论关系数据理论An Introduction to Database System第六章第六章 关系数据理论关系数据理论6.1 6.1 问题的提出问题的提出6.2 6.2 规范化规范化6.3 6.3 数据依赖的公理系统数据依赖的公理系统6.4 6.4 模式的分解模式的分解6.5 6.5 小结小结An Introduction to Database System问题的提出问题的提出8.

2、2 关系规范化理论基础关系规范化理论基础 v关系数据库逻辑设计关系数据库逻辑设计 如何构造一个合适的数据模式?如何构造一个合适的数据模式?应该构造几个关系模式?应该构造几个关系模式?每个关系应该由哪些属性组成?每个关系应该由哪些属性组成?各属性的数据类型是什么?各属性的数据类型是什么?v数据库逻辑设计的工具数据库逻辑设计的工具 关系数据库的规范化理论关系数据库的规范化理论An Introduction to Database System问题的提出问题的提出v一、概念回顾一、概念回顾v二、关系模式的形式化定义二、关系模式的形式化定义v三、什么是数据依赖三、什么是数据依赖v四、关系模式的简化定义

3、四、关系模式的简化定义v五、数据依赖对关系模式影响五、数据依赖对关系模式影响An Introduction to Database System一、概念回顾一、概念回顾v关系关系v关系模式关系模式v关系数据库关系数据库v关系数据库的模式关系数据库的模式An Introduction to Database System二、关系模式的形式化定义二、关系模式的形式化定义v关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它是一个五元组:vR(U, D, DOM, F)R(U, D, DOM, F) R R: 关系名关系名 U U: 组成该关系的属性名集合组成该关系的属性名集合 D D

4、: 属性组属性组U U中属性所来自的域中属性所来自的域 DOMDOM: 属性向域的映象集合属性向域的映象集合 F F: 属性间数据的依赖关系集合属性间数据的依赖关系集合An Introduction to Database System关系模式的简化表示关系模式的简化表示8.2 关系规范化理论基础关系规范化理论基础 v关系模式关系模式R R(U, D, DOM, FU, D, DOM, F)中,)中,D D和和DOMDOM与与逻辑结构设计关系不大,因此,将关系模式简逻辑结构设计关系不大,因此,将关系模式简化为一个三元组:化为一个三元组: R R(U, FU, F)v当且仅当当且仅当U U上的一

5、个关系上的一个关系r r 满足满足F F时,时,r r称为称为关系模式关系模式 R R(U, FU, F)的一个关系)的一个关系An Introduction to Database System三、什么是数据依赖三、什么是数据依赖v1.1.完整性约束的表现形式完整性约束的表现形式 限定属性取值范围:例如学生成绩必须在限定属性取值范围:例如学生成绩必须在0-0-100100之间之间 定义属性定义属性值值间的相互关连(主要体现于值的间的相互关连(主要体现于值的相等与否相等与否),这就是数据依赖,它是数据库),这就是数据依赖,它是数据库模式设计的关键模式设计的关键An Introduction t

6、o Database System什么是数据依赖(续)什么是数据依赖(续)v2.2.数据依赖数据依赖 一个关系内部属性与属性之间的约束关系一个关系内部属性与属性之间的约束关系 现实世界属性间相互联系的抽象现实世界属性间相互联系的抽象 数据内在的性质数据内在的性质 语义语义的体现的体现An Introduction to Database System什么是数据依赖(续)什么是数据依赖(续)v3.3.数据依赖的类型数据依赖的类型 函数依赖(函数依赖(Functional DependencyFunctional Dependency,简记,简记为为FDFD) 多值依赖(多值依赖(Multival

7、ued DependencyMultivalued Dependency,简记,简记为为MVDMVD) 其他其他An Introduction to Database System四、关系模式的简化表示四、关系模式的简化表示v关系模式关系模式R R(U, D, DOM, FU, D, DOM, F) 简化为一个三元组:简化为一个三元组: R R(U, FU, F)v当且仅当当且仅当U U上的一个关系上的一个关系r r满足满足F F时,时,r r称为关称为关系模式系模式 R R(U, FU, F)的一个关系)的一个关系An Introduction to Database System五、五、数

8、据依赖对关系模式的影响数据依赖对关系模式的影响v 例例11建立一个描述学校教务的数据库:建立一个描述学校教务的数据库: 学生的学号(学生的学号(SnoSno)、所在系()、所在系(SdeptSdept) 系主任姓名(系主任姓名(MnameMname)、课程名()、课程名(CnameCname) 成绩(成绩(GradeGrade) 单一单一的关系模式的关系模式 :Student UStudent FU U Sno, Sdept, Mname, Cname, GradeSno, Sdept, Mname, Cname, GradeAn Introduction to Database System

9、数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)v属性组属性组U U上的一组函数依赖上的一组函数依赖F F: F F Sno Sdept, Sno Sdept, Sdept Mname, Sdept Mname, (Sno, Cname) Grade (Sno, Cname) Grade An Introduction to Database System SnoCnameSdeptMnameGradeAn Introduction to Database System关系模式关系模式StudentStudent中存在的问题中存在的问题v1.1.数据冗余太大数据冗余太大v2. 2.

10、 更新异常(更新异常(Update AnomaliesUpdate Anomalies)v3. 3. 插入异常(插入异常(Insertion AnomaliesInsertion Anomalies)v4. 4. 删除异常(删除异常(Deletion AnomaliesDeletion Anomalies)An Introduction to Database System数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续) 结论:结论:nStudentStudent关系模式不是一个好的模式。关系模式不是一个好的模式。n“好好”的模式:的模式: 不会发生插入异常、删除异常、更新异常,不

11、会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少数据冗余应尽可能少v原因:原因:由存在于模式中的由存在于模式中的某些数据依赖某些数据依赖引起的引起的v解决方法:解决方法:通过通过分解分解关系模式来消除其中不合关系模式来消除其中不合适的数据依赖适的数据依赖An Introduction to Database System分解关系模式分解关系模式v把这个单一模式分成把这个单一模式分成3 3个关系模式:个关系模式: S S(SnoSno,SdeptSdept,Sno SdeptSno Sdept); ; SCSC(SnoSno,CnoCno,GradeGrade, (SnoSno,CnoC

12、no) Grade Grade); ; DEPTDEPT(SdeptSdept,MnameMname,Sdept MnameSdept Mname)An Introduction to Database System第六章第六章 关系数据理论关系数据理论6.1 6.1 问题的提出问题的提出6.2 6.2 规范化规范化6.3 6.3 数据依赖的公理系统数据依赖的公理系统6.4 6.4 模式的分解模式的分解6.5 6.5 小结小结An Introduction to Database System6.2 规范化规范化 规范化理论规范化理论正是用来改造关系模式,通过正是用来改造关系模式,通过分解关系

13、模式来消除其中不合适的数据依赖,分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数以解决插入异常、删除异常、更新异常和数据冗余问题。据冗余问题。An Introduction to Database Systemv6.2.1 6.2.1 函数依赖函数依赖v6.2.2 6.2.2 码码v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 规范化规范化v6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依赖多值依赖v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 规范化小结

14、规范化小结An Introduction to Database System6.2.1 函数依赖函数依赖函数依赖的定义函数依赖的定义1平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖2完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖3传递函数依赖传递函数依赖4An Introduction to Database System一、函数依赖的定义一、函数依赖的定义v定义定义6.1 6.1 设设R(U)R(U)是一个属性集是一个属性集U U上的关系模式,上的关系模式,X X和和Y Y是是U U的子集。的子集。 若对于若对于R(U)R(U)的的任意任意一个可能的关系一个可能的关系r r

15、,r r中不中不可能存在两个元组在可能存在两个元组在X X上的属性值相等,上的属性值相等, 而而在在Y Y上的属性值不等,上的属性值不等, 则称则称 “ “X X函数确定函数确定Y Y” ” 或或 “ “Y Y函数依赖于函数依赖于X X”,记作,记作XYXY。An Introduction to Database System函数依赖说明函数依赖说明 1 1. . 所有关系实例所有关系实例均要满足均要满足2. 2. 语义范畴语义范畴的概念的概念3. 3. 数据库设计者可以对现实世界作强制的规数据库设计者可以对现实世界作强制的规定定An Introduction to Database Syst

16、em二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖v在关系模式在关系模式R(U)R(U)中,对于中,对于U U的子集的子集X X和和Y Y, 如果如果XYXY,但,但Y Y X X,则称,则称XYXY是非平凡是非平凡的函数依赖的函数依赖 若若XYXY,但,但Y Y X, X, 则称则称XYXY是是平凡的平凡的函数依赖函数依赖An Introduction to Database Systemv例:在关系例:在关系SC(Sno, Cno, Grade)SC(Sno, Cno, Grade)中,中, 非平凡函数依赖:非平凡函数依赖:(Sno, Cno) (Sno, Cno) Gr

17、adeGrade 平凡函数依赖:平凡函数依赖: (Sno, Cno) (Sno, Cno) Sno Sno (Sno, Cno) Cno(Sno, Cno) CnoAn Introduction to Database System平凡函数依赖与非平凡函数依赖(续)平凡函数依赖与非平凡函数依赖(续)v若若X XY Y,则,则X X称为这个函数依赖的决定属性组,称为这个函数依赖的决定属性组,也称为决定因素(也称为决定因素(DeterminantDeterminant)。)。v若若X XY Y,Y YX X,则记作,则记作X XY Y。v若若Y Y不函数依赖于不函数依赖于X X,则记作,则记作X

18、XY Y。An Introduction to Database Systemv定义定义6.26.2 在在R(U)R(U)中,如果中,如果XYXY,并且对于,并且对于X X的任何的任何一个真子集一个真子集XX,都有,都有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 P Y Y。 三、完全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖An Introduction to Database S

19、ystemv 例例11中的完全函数依赖与部分函数依赖中的完全函数依赖与部分函数依赖 (Sno,Cno)Grade(Sno,Cno)Grade是完全函数依赖;是完全函数依赖; (Sno,Cno)Sdept(Sno,Cno)Sdept是部分函数依赖是部分函数依赖因为因为SnoSdeptSnoSdept成立,且成立,且SnoSno是(是(SnoSno,CnoCno)的真子集)的真子集 完全函数依赖与部分函数依赖(续)完全函数依赖与部分函数依赖(续)FPAn Introduction to Database Systemv定义定义6.36.3 在在R(U)R(U)中,如果中,如果XYXY,( (Y Y

20、 X X) ,) ,YXYX YZ YZ, 则称则称Z Z对对X X传递函数依赖传递函数依赖。 记作:记作:XZXZv注注: : 如果如果YXYX,即,即XYXY,则,则Z Z直接依赖于直接依赖于X X,非,非传递依赖传递依赖。四、传递函数依赖四、传递函数依赖传递传递An Introduction to Database Systemv例例: : 在关系在关系Std(Sno, Sdept, Mname)Std(Sno, Sdept, Mname)中,中,有:有: Sno SdeptSno Sdept,Sdept MnameSdept Mname MnameMname传递函数依赖于传递函数依赖于

21、SnoSno 记作:记作: Sno MnameSno Mname传递传递An Introduction to Database Systemv6.2.1 6.2.1 函数依赖函数依赖v6.2.2 6.2.2 码码v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 规范化规范化v6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依赖多值依赖v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 规范化小结规范化小结An Introduction to Database System6.2.2 码码v定义

22、定义6.46.4 设设K K为为RR中的属性或属性组合。若中的属性或属性组合。若K K U U,则,则K K称为称为R R的的侯选码侯选码(Candidate Candidate KeyKey)。)。 若候选码多于一个,则选定其中的一个做为若候选码多于一个,则选定其中的一个做为主码主码(Primary KeyPrimary Key)。)。FAn Introduction to Database System码(续)码(续)v主属性与非主属性主属性与非主属性 包含在任何一个候选码中的属性包含在任何一个候选码中的属性 ,称为主属,称为主属性(性(Prime attributePrime attri

23、bute) 不包含在任何码中的属性称为非主属性不包含在任何码中的属性称为非主属性(Nonprime attributeNonprime attribute)或非码属性(或非码属性(Non-key Non-key attributeattribute)v全码全码 整个属性组整个属性组U U是码,称为是码,称为全码全码(All-keyAll-key) An Introduction to Database System码(续)码(续)v 例例22v关系模式关系模式S(S(SnoSno,Sdept,Sage),Sdept,Sage), 单个属性单个属性SnoSno是码,是码,vSCSC(SnoSno

24、,CnoCno,GradeGrade)中,)中, (SnoSno,CnoCno)是码)是码An Introduction to Database Systemv 例例3 3 关系模式关系模式R R(P P,W W,A A) P P:演奏者:演奏者 W W:作品:作品 A A:听众:听众一个演奏者可以演奏多个作品一个演奏者可以演奏多个作品某一作品可被多个演奏者演奏某一作品可被多个演奏者演奏听众可以欣赏不同演奏者的不同作品听众可以欣赏不同演奏者的不同作品此关系模式的码为此关系模式的码为(P(P,W W,A)A),即,即All-KeyAll-KeyAn Introduction to Databas

25、e System外部码外部码v定义定义6.56.5 关系模式关系模式 R R 中属性或属性组中属性或属性组X X 并非并非R R的码,的码,但但 X X 是另一个关系模式是另一个关系模式S S的码,则称的码,则称 X X 是是R R 的的外部码(外部码(Foreign keyForeign key),),简称外码简称外码An Introduction to Database Systemv如在如在SCSC(SnoSno,CnoCno,GradeGrade)中,)中,SnoSno不是码,不是码,但但SnoSno是关系模式是关系模式S S(SnoSno,SdeptSdept,SageSage)的码

26、,)的码,则则SnoSno是关系模式是关系模式SCSC的外部码的外部码v主码与外部码一起提供了表示关系间联系的手主码与外部码一起提供了表示关系间联系的手段段An Introduction to Database Systemv6.2.1 6.2.1 函数依赖函数依赖v6.2.2 6.2.2 码码v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 规范化规范化v6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依赖多值依赖v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 规范化小结规范化小结An

27、Introduction to Database System6.2.3 范式范式v范式是符合某一种级别的关系模式的集合范式是符合某一种级别的关系模式的集合v关系数据库中的关系必须满足一定的要求。关系数据库中的关系必须满足一定的要求。v满足不同程度要求的为不同类型的范式满足不同程度要求的为不同类型的范式v范式的种类:范式的种类:An Introduction to Database System范式的种类范式的种类 第一范式第一范式(1NF)(1NF) 第二范式第二范式(2NF)(2NF) 第三范式第三范式(3NF)(3NF) BCBC范式范式(BCNF)(BCNF) 第四范式第四范式(4NF

28、)(4NF) 第五范式第五范式(5NF)(5NF)An Introduction to Database System6.2.3 范式范式v各种范式之间存在联系:各种范式之间存在联系:v某一关系模式某一关系模式R R为第为第n n范式,可简记为范式,可简记为RnNFRnNF。v一个低一级范式的关系模式,通过一个低一级范式的关系模式,通过模式分解模式分解可可以转换为若干个高一级范式的关系模式的集合,以转换为若干个高一级范式的关系模式的集合,这种过程就叫这种过程就叫规范化规范化 NF5NF4BCNFNF3NF2NF1An Introduction to Database System6.2 规范化

29、规范化v6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依赖多值依赖v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 规范化小结规范化小结v6.2.1 6.2.1 函数依赖函数依赖v6.2.2 6.2.2 码码v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NFAn Introduction to Database System6.2.4 2NFv1NF1NF的定义的定义如果一个关系模式如果一个关系模式R R的所有属性都是的所有属性都是不可分的不可分的基本数据项基本数据项,则,则R1NFR1NFv第一

30、范式是对关系模式的最起码的要求。第一范式是对关系模式的最起码的要求。不不满足第一范式的数据库模式不能称为关系数满足第一范式的数据库模式不能称为关系数据库据库v但是满足第一范式的关系模式并不一定是一但是满足第一范式的关系模式并不一定是一个好的关系模式个好的关系模式An Introduction to Database Systemv 例例4 4 关系模式关系模式 S-L-C(Sno, Sdept, Sloc, Cno, S-L-C(Sno, Sdept, Sloc, Cno, Grade)Grade) SlocSloc为学生住处,假设每个系的学生住在同一个地为学生住处,假设每个系的学生住在同一个

31、地方方v函数依赖包括:函数依赖包括: (Sno, Cno) (Sno, Cno) F F Grade Grade Sno SdeptSno Sdept (Sno, Cno) (Sno, Cno) P P Sdept Sdept Sno SlocSno Sloc (Sno, Cno) (Sno, Cno) P P Sloc Sloc Sdept SlocSdept Sloc2NF(续)(续)换个好点的例子换个好点的例子An Introduction to Database System 2NF(续)(续)vS-L-CS-L-C的码为的码为(Sno, Cno)(Sno, Cno)vS-L-CS-L

32、-C满足第一范式。满足第一范式。v非主属性非主属性SdeptSdept和和SlocSloc部分函数依赖于码部分函数依赖于码(Sno, (Sno, Cno)Cno)SnoCnoGradeSdeptSloc分解前的关系模式分解前的关系模式S-L-CS-L-CAn Introduction to Database SystemS-L-C不是一个好的关系模式不是一个好的关系模式vS-L-CS-L-C不是一个好的关系模式,会产生以下问题不是一个好的关系模式,会产生以下问题 (1) (1) 插入异常插入异常 (2) (2) 删除异常删除异常 (3) (3) 数据冗余度大数据冗余度大 (4) (4) 修改复

33、杂修改复杂An Introduction to Database SystemS-L-C不是一个好的关系模式(续)不是一个好的关系模式(续)v原因:原因: SdeptSdept、 SlocSloc部分函数依赖于码部分函数依赖于码。v解决方法:解决方法: S-L-CS-L-C分解为两个关系模式,以消除这些部分分解为两个关系模式,以消除这些部分函数依赖函数依赖 SCSC(SnoSno, CnoCno, GradeGrade)S-LS-L(SnoSno, SdeptSdept, SlocSloc)An Introduction to Database System2NF(续)(续)分解后的函数依赖图

34、分解后的函数依赖图SnoCnoGradeSCS-LSnoSdeptSlocv关系模式关系模式SCSC的码为(的码为(SnoSno,CnoCno)v关系模式关系模式S-LS-L的码为的码为SnoSnov这样非主属性对码都是完全函数依赖这样非主属性对码都是完全函数依赖 An Introduction to Database System 2NF(续)(续)v定义定义6.66.6:2NF2NF的定义的定义v若若R1NFR1NF,且,且每一个每一个非主属性非主属性都完全都完全函数依赖函数依赖于码,则于码,则R2NFR2NF。An Introduction to Database Systemv例:例:

35、vS-L-C(Sno, Sdept, Sloc, Cno, Grade) S-L-C(Sno, Sdept, Sloc, Cno, Grade) 1NF1NFvS-L-C(Sno, Sdept, Sloc, Cno, Grade) S-L-C(Sno, Sdept, Sloc, Cno, Grade) 2NF 2NF SCSC(SnoSno, CnoCno, GradeGrade) 2NF 2NF S-LS-L(SnoSno, SdeptSdept, SlocSloc) 2NF 2NFAn Introduction to Database System 2NF(续)(续)v采用投影分解法将一个

36、采用投影分解法将一个1NF1NF的关系分解为多个的关系分解为多个2NF2NF的关系,可以在一定程度上减轻原的关系,可以在一定程度上减轻原1NF1NF关系关系中存在的插入异常、删除异常、数据冗余度大、中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。修改复杂等问题。v但将一个但将一个1NF1NF关系分解为多个关系分解为多个2NF2NF的关系,并不的关系,并不能完全消除关系模式中的各种异常情况和数据能完全消除关系模式中的各种异常情况和数据冗余。冗余。An Introduction to Database Systemv6.2.1 6.2.1 函数依赖函数依赖v6.2.2 6.2.2 码码v

37、6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 规范化规范化v6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依赖多值依赖v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 规范化小结规范化小结An Introduction to Database System 6.2.5 3NFv定义定义6.76.7:3NF3NF的定义的定义 关系模式关系模式RURF 中若不存在这样的码中若不存在这样的码X X、属性组属性组Y Y及非主属性及非主属性Z Z(Z Z Y Y), , 使得使得X XY Y,Y

38、YZ Z成立,成立,Y Y X X,则称,则称RURF 3NF3NF。 若若R3NF3NF,则每一个,则每一个非主属性非主属性既不部分依赖既不部分依赖于码于码也不传递依赖也不传递依赖于码。于码。 An Introduction to Database System3NF(续)(续)v例:例:2NF2NF关系模式关系模式S-L(Sno, Sdept, Sloc)S-L(Sno, Sdept, Sloc)中的中的函数依赖关系:函数依赖关系: SnoSdeptSnoSdept Sdept SnoSdept Sno SdeptSlocSdeptSlocv可得:可得: SnoSlocSnoSloc,即,

39、即S-LS-L中中存在非主属性对码的传存在非主属性对码的传递函数依赖递函数依赖,S-L S-L 3NF3NF传递传递An Introduction to Database System 3NF(续)(续)函数依赖图:函数依赖图:S-LSnoSdeptSlocAn Introduction to Database System3NF(续)(续)v解决方法解决方法 采用采用投影分解法投影分解法,把,把S-LS-L分解为两个关系模式,分解为两个关系模式,以消除传递函数依赖:以消除传递函数依赖:S-DS-D(SnoSno, SdeptSdept)D-LD-L(SdeptSdept,SlocSloc)S

40、-DS-D的码为的码为SnoSno, D-LD-L的码为的码为SdeptSdept。 分解后的关系模式分解后的关系模式S-DS-D与与D-LD-L中不再存在传递中不再存在传递依赖依赖An Introduction to Database System3NF(续)(续)vS-L(Sno, Sdept, Sloc) 2NFS-L(Sno, Sdept, Sloc) 2NFvS-L(Sno, Sdept, Sloc) 3NFS-L(Sno, Sdept, Sloc) 3NFvS-D(SnoS-D(Sno,Sdept) 3NFSdept) 3NFvD-L(SdeptD-L(Sdept, Sloc) 3

41、NFSloc) 3NFSnoSdeptS-DSdeptSlocD-L主码主码主码主码An Introduction to Database System3NF(续)(续)v采用投影分解法将一个采用投影分解法将一个2NF2NF的关系分解为多个的关系分解为多个3NF3NF的关系,可以在一定程度上解决原的关系,可以在一定程度上解决原2NF2NF关关系中存在的插入异常、删除异常、数据冗余系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。度大、修改复杂等问题。v将一个将一个2NF2NF关系分解为多个关系分解为多个3NF3NF的关系后,仍的关系后,仍然不能完全消除关系模式中的各种异常情况然不能完

42、全消除关系模式中的各种异常情况和数据冗余。和数据冗余。An Introduction to Database Systemv6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依赖多值依赖v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 规范化小结规范化小结v6.2.1 6.2.1 函数依赖函数依赖v6.2.2 6.2.2 码码v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 规范化规范化An Introduction to Database System 6.2.6 BC范式(范式(BCNF)

43、v定义定义6.86.8: BCBC范式范式v关系模式关系模式RUR1NFF1NF,若,若XYXY且且Y Y X X时时X X必含有码,则必含有码,则RUR BCNFF BCNF。v等价于:每一个决定属性因素都包含码等价于:每一个决定属性因素都包含码An Introduction to Database SystemBCNF(续)(续)v若若RBCNF RBCNF 所有非主属性对每一个码都是完全函数依赖所有非主属性对每一个码都是完全函数依赖 所有的主属性对每一个不包含它的码,也是所有的主属性对每一个不包含它的码,也是完全函数依赖完全函数依赖 没有任何属性完全函数依赖于非码的任何一没有任何属性完全

44、函数依赖于非码的任何一组属性组属性vR BCNF R 3NFR BCNF R 3NF充分不必要An Introduction to Database SystemBCNF(续)(续)v 例例5 5 关系模式关系模式C C(CnoCno,CnameCname,PcnoPcno) C3NFC3NF CBCNFCBCNFv 例例6 6 关系模式关系模式S S(SnoSno,SnameSname,SdeptSdept,SageSage) 假定假定S S有两个码有两个码SnoSno,SnameSname S3NFS3NF。 S BCNFS BCNFAn Introduction to Database

45、SystemBCNF(续)(续)v例例7 7关系模式关系模式SJPSJP(S S,J J,P P) 函数依赖:函数依赖:(S(S,J J)PP;(J(J,P P)SS (S S,J J)与()与(J J,P P)都可以作为候选码)都可以作为候选码, ,属性属性相交相交 SJP3NFSJP3NF, SJPBCNFSJPBCNFAn Introduction to Database System BCNF(续)(续)v 例例88在关系模式在关系模式STJSTJ(S S,T T,J J)中,)中,S S表示表示学生,学生,T T表示教师,表示教师,J J表示课程。表示课程。 函数依赖:函数依赖:(S

46、(S,J)TJ)T,(S(S,T)JT)J,TJTJ(S(S,J)J)和和(S(S,T)T)都是候选码都是候选码An Introduction to Database System BCNF(续)(续) JSJTSTSTJ中的函数依赖中的函数依赖An Introduction to Database SystemBCNF(续)(续)vSTJ3NFSTJ3NF 没有任何非主属性对码传递依赖或部分依没有任何非主属性对码传递依赖或部分依赖赖vSTJBCNFSTJBCNF T T是决定因素,是决定因素,T T不包含码不包含码An Introduction to Database SystemBCNF(

47、续)(续)v解决方法:将解决方法:将STJSTJ分解为二个关系模式:分解为二个关系模式: ST(SST(S,T) BCNFT) BCNF, TJ(TTJ(T,J) BCNFJ) BCNF v没有没有任何属性任何属性对码的部分函数依赖和传递函数对码的部分函数依赖和传递函数依赖依赖SJSTTJTJAn Introduction to Database System3NF与与BCNF的关系的关系vR BCNF R 3NFR BCNF R 3NFv如果如果R3NFR3NF,且,且R R只有一个候选码只有一个候选码 R BCNF R 3NFR BCNF R 3NF充分不必要充分必要An Introduc

48、tion to Database Systemv6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依赖多值依赖v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 规范化小结规范化小结v6.2.1 6.2.1 函数依赖函数依赖v6.2.2 6.2.2 码码v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 规范化规范化An Introduction to Database System6.2.7 多值依赖多值依赖v 例例99 学校中某一门课程由多个教师讲授,他们使学校中某一门课程由多个教师讲授,他们

49、使用相同的一套参考书。用相同的一套参考书。 每个教员可以讲授多门课程,每种参考书可每个教员可以讲授多门课程,每种参考书可以供多门课程使用。以供多门课程使用。An Introduction to Database System课课 程程 C教教 员员 T参参 考考 书书 B 物理物理数学数学 计算数学计算数学李李 勇勇王王 军军 李李 勇勇张张 平平 张张 平平 周周 峰峰 普通物理学普通物理学光学原理光学原理 物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析. 多值依赖(续)多值依赖(续)v非规范化关系非规范化关系An Introduction to Dat

50、abase System普通物理学光学原理物理习题集普通物理学光学原理物理习题集数学分析微分方程高等代数数学分析微分方程高等代数李 勇李 勇李 勇王 军王 军王 军李 勇李 勇李 勇张 平张 平张 平 物 理物 理物 理物 理物 理物 理数 学数 学数 学数 学数 学数 学 参考书参考书B B教员教员T T课程课程C C多值依赖(续)多值依赖(续)v 用二维表表示TeachingAn Introduction to Database System多值依赖(续)多值依赖(续)vTeachingTeachingBCNFBCNFvTeachingTeaching具有唯一候选码具有唯一候选码(C(C,

51、T T,B)B), 即全码即全码 An Introduction to Database System多值依赖(续)多值依赖(续) Teaching Teaching模式中存在的问题模式中存在的问题(1)(1)数据冗余度大数据冗余度大 (2)(2)插入操作复杂插入操作复杂(3) (3) 删除操作复杂删除操作复杂(4) (4) 修改操作复杂修改操作复杂存在多值依赖An Introduction to Database System多值依赖(续)多值依赖(续)v 定义6.9 设设R(U)R(U)是一个属性集是一个属性集U U上的一个关系模式,上的一个关系模式, X X、 Y Y和和Z Z是是U U

52、的子的子集,并且集,并且Z ZU UX XY Y。关系模式。关系模式R(U)R(U)中中多值依赖多值依赖 XYXY成立,成立,当且仅当对当且仅当对R(U)R(U)的的任一关系任一关系r r,给定的一对(,给定的一对(x x,z z)值,有一)值,有一组组Y Y的值,这组值仅仅决定于的值,这组值仅仅决定于x x值而与值而与z z值无关值无关v 例例 TeachingTeaching(C, T, BC, T, B)An Introduction to Database System多值依赖(续)多值依赖(续)v多值依赖的另一个等价的形式化的定义:多值依赖的另一个等价的形式化的定义: 在在R R(U

53、 U)的任一关系)的任一关系r r中,如果存在元组中,如果存在元组t t,s s 使得使得t t X X=s s X X ,那么就必然存在元组,那么就必然存在元组 w w,v v r r,(,(w w,v v可以与可以与s s,t t相同),使得相同),使得w w X X=v v X X=t t X X ,而,而w w Y Y=t t Y Y ,w w Z Z=s s Z Z ,v v Y Y=s s Y Y ,v v Z Z=t t Z Z (即交换(即交换s s,t t元组的元组的Y Y值所得的两个新值所得的两个新元组必在元组必在r r中),则中),则Y Y多值依赖于多值依赖于X X,记为

54、,记为X XY Y。 这里,这里,X X,Y Y是是U U的子集,的子集,Z Z= =U-XU-X- -Y Y。An Introduction to Database System多值依赖(续)多值依赖(续)v平凡多值依赖和非平凡的多值依赖平凡多值依赖和非平凡的多值依赖若若XYXY,而,而Z Z,则称,则称 XYXY为为平凡的多值依赖平凡的多值依赖 否则称否则称XYXY为为非平凡的多值依赖非平凡的多值依赖An Introduction to Database System多值依赖(续)多值依赖(续)例例1010关系模式关系模式WSCWSC(W W,S S,C C)n W W表示仓库,表示仓库,

55、S S表示保管员,表示保管员,C C表表示商品示商品n 假设每个仓库有若干个保管员,假设每个仓库有若干个保管员,有若干种商品有若干种商品 n 每个保管员保管所在的仓库的所每个保管员保管所在的仓库的所有商品有商品n 每种商品被所有保管员保管每种商品被所有保管员保管 An Introduction to Database System多值依赖(续)多值依赖(续)WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5An Introduction to Database System多值依赖(续)多值依赖(续)WS且WC用下图表

56、示这种对应 An Introduction to Database System多值依赖的性质多值依赖的性质(1 1)多值依赖具有对称性)多值依赖具有对称性若若XYXY,则,则XZXZ,其中,其中Z ZU UX XY Y(2 2)多值依赖具有传递性)多值依赖具有传递性若若XYXY,YZYZ, 则则XZ YXZ Y(3 3)函数依赖是多值依赖的特殊情况。)函数依赖是多值依赖的特殊情况。若若XYXY,则,则XYXY。(4 4)若)若XYXY,XZXZ,则,则XYXY Z Z。(5 5)若)若XYXY,XZXZ,则,则XYZXYZ。(6 6)若)若XYXY,XZXZ,则,则XY-ZXY-Z,XZ -

57、YXZ -Y。An Introduction to Database System多值依赖与函数依赖的区别多值依赖与函数依赖的区别(1)(1) 多值依赖的有效性与属性集的范围有关多值依赖的有效性与属性集的范围有关(2)(2) 若函数依赖若函数依赖XYXY在在R R(U U)上成立,)上成立,则对于任何则对于任何Y Y Y Y均有均有XY XY 成立成立 多值依赖多值依赖XYXY若在若在R(U)R(U)上成立,上成立,不能断言对于任何不能断言对于任何Y Y Y Y有有XY XY 成立成立An Introduction to Database System6.2 规范化规范化6.2.1 函数依赖6

58、.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 System6.2.8 4NFv定义6.10 关系模式关系模式RURF1NF1NF,如果对于,如果对于R R的每个非平凡多值依赖的每个非平凡多值依赖XYXY(Y Y X X),),X X都含都含有码,则有码,则R R4NF4NF。v如果如果R R 4NF 4NF, 则则R R BCNF BCNFn不允许不允许有非平凡且非函数依赖的有非平凡且非函数依赖的多值依多值依赖赖n允许允许的非平凡多值依赖是的

59、非平凡多值依赖是函数依赖函数依赖An Introduction to Database System4NF(续)(续)例例: Teaching(C,T,B) 4NFTeaching(C,T,B) 4NF 存在非平凡的多值依赖存在非平凡的多值依赖CTCT,且,且C C不是码不是码n 用投影分解法把用投影分解法把TeachingTeaching分解为如下两个关系模式:分解为如下两个关系模式: CT(C, T) 4NFCT(C, T) 4NF CB(C, B) 4NF CB(C, B) 4NF CT CT, CBCB是平凡多值依赖是平凡多值依赖 An Introduction to Database

60、 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 System6.2.9 规范化小结规范化小结v 关系数据库的规范化理论是数据库逻辑设计的工具关系数据库的规范化理论是数据库逻辑设计的工具v 目的:尽量消除插入、删除一场,修改复杂,数据冗余目的:尽量消除插入、删除一场,修改复杂,数据冗余v 基本思想:逐步消除数据依赖中不合适的部分基本思想:逐步消除数据依赖中不合适的部分 实质:概念的实质:概念的单一化

温馨提示

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

评论

0/150

提交评论