上机测试(道题目)_第1页
上机测试(道题目)_第2页
上机测试(道题目)_第3页
上机测试(道题目)_第4页
上机测试(道题目)_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

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

文档简介

1、1通通 知知 本周日上机,上机时间:本周日上机,上机时间:11:15-14:15,本,本次上机任务:次上机任务:1.上机测试(上机测试(2道题目)。道题目)。2. 交上机实验报告。交上机实验报告。2数据库系统概论数据库系统概论An Introduction to Database System第六章第六章 关系数据理论关系数据理论3第六章第六章 关系数据理论关系数据理论6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统*6.4 模式的分解6.5 小结46.1 问题的提出问题的提出关系数据库逻辑设计关系数据库逻辑设计: 针对具体问题,如何构造一个适合于它的数据模式。针对具体问题,如何构造

2、一个适合于它的数据模式。 数据库逻辑设计的工具数据库逻辑设计的工具关系数据库的规范化理论。关系数据库的规范化理论。5问题的提出问题的提出一、概念回顾一、概念回顾二、关系模式的形式化定义二、关系模式的形式化定义三、什么是数据依赖三、什么是数据依赖四、关系模式的简化定义四、关系模式的简化定义五、数据依赖对关系模式影响五、数据依赖对关系模式影响6一、概念回顾一、概念回顾v 关系关系v 关系模式关系模式v 关系数据库关系数据库v 关系数据库的模式关系数据库的模式7二、关系模式的形式化定义二、关系模式的形式化定义关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它是一个五元组: R(U,

3、D, DOM, F)R: 关系名。关系名。U: 组成该关系的属性名集合。组成该关系的属性名集合。D: 属性组属性组U中属性所来自的域。中属性所来自的域。DOM: 属性向域的映象集合。属性向域的映象集合。F: 属性间数据的依赖关系集合。属性间数据的依赖关系集合。8三、什么是数据依赖三、什么是数据依赖1. 完整性约束的表现形式:完整性约束的表现形式:v 限定属性取值范围:例如学生成绩必须在限定属性取值范围:例如学生成绩必须在0-100之间。之间。v 定义属性定义属性值值间的相互关连(主要体现于值的间的相互关连(主要体现于值的相等与相等与否否),这就是数据依赖,它是数据库模式设计的关键。),这就是数

4、据依赖,它是数据库模式设计的关键。9什么是数据依赖(续)什么是数据依赖(续)2. 数据依赖:数据依赖:v一个关系内部属性与属性之间的约束关系。一个关系内部属性与属性之间的约束关系。v现实世界属性间相互联系的抽象。现实世界属性间相互联系的抽象。v数据内在的性质。数据内在的性质。v语义语义的体现。的体现。10什么是数据依赖(续)什么是数据依赖(续)3. 数据依赖的类型:数据依赖的类型:v 函数依赖(函数依赖(Functional Dependency,简记为,简记为FD)。)。v 多值依赖(多值依赖(Multivalued Dependency,简记为,简记为MVD)。)。v 其他。其他。11四、

5、关系模式的简化表示四、关系模式的简化表示v 关系模式关系模式R(U, D, DOM, F)。)。 简化为一个三元组:简化为一个三元组: R(U, F)v 当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称为称为关系模式关系模式 R(U, F)的一个)的一个关系。关系。12五、五、数据依赖对关系模式的影响数据依赖对关系模式的影响例例1建立一个描述学校教务的数据库:建立一个描述学校教务的数据库:学生的学号(学生的学号(Sno)、所在系()、所在系(Sdept)系主任姓名(系主任姓名(Mname)、课程名()、课程名(Cname)成绩(成绩(Grade)单一单一的关系模式的关系模式

6、: Student U Sno, Sdept, Mname, Cname, Grade 13数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续) 属性组属性组U上的一组函数依赖上的一组函数依赖F: F Sno Sdept, Sdept Mname, (Sno, Cname) Grade SnoCnameSdeptMnameGrade14关系模式关系模式Student中存在的问题中存在的问题1. 1. 数据冗余太大。数据冗余太大。2. 2. 更新异常(更新异常(Update AnomaliesUpdate Anomalies)。)。3. 3. 插入异常(插入异常(Insertion An

7、omaliesInsertion Anomalies)。)。4. 4. 删除异常(删除异常(Deletion AnomaliesDeletion Anomalies)。)。15数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)结论:结论:nStudent关系模式不是一个好的模式。关系模式不是一个好的模式。n“好好”的模式:的模式:不会发生插入异常、删除异常、更新异常,不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。数据冗余应尽可能少。原因:原因:由存在于模式中的由存在于模式中的某些数据依赖某些数据依赖引起的。引起的。解决方法:解决方法:通过通过分解分解关系模式来消除其中不合

8、适关系模式来消除其中不合适 的数据依赖。的数据依赖。16分解关系模式分解关系模式v把这个单一模式分成把这个单一模式分成3个关系模式:个关系模式: S(Sno,Sdept,Sno Sdept); SC(Sno,Cno,Grade,(,(Sno,Cno) Grade); DEPT(Sdept,Mname,Sdept Mname)17第六章第六章 关系数据理论关系数据理论6.1 问题的提出问题的提出6.2 规范化规范化6.3 数据依赖的公理系统数据依赖的公理系统*6.4 模式的分解模式的分解6.5 小结小结186.2 规范化规范化 “规范化理论规范化理论”:正是用来改造关系模式,通过分解关系正是用来

9、改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。除异常、更新异常和数据冗余问题。196.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 规范化小结规范化小结206.2.1 函数依赖函数依赖v函数依赖。函数依赖。v平凡函数依赖与非平凡函数依赖。平凡函数依赖与非平凡函数依赖。v完全函数依赖与部分函数依赖。完全函数依赖与部分函数依赖。v传递函数依赖

10、。传递函数依赖。21一、函数依赖一、函数依赖定义6.1 设设R(U)是一个属性集是一个属性集U上的关系模式,上的关系模式,X和和Y是是U的的子集。子集。 若对于若对于R(U)的的任意任意一个可能的关系一个可能的关系r,r中不可能存在两个中不可能存在两个元组在元组在X上的属性值相等,上的属性值相等, 而在而在Y上的属性值不等,上的属性值不等, 则称则称 “X函数确定函数确定Y” 或或 “Y函数依赖于函数依赖于X”,记作,记作XY。 2223二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖在关系模式在关系模式R(U)中,对于中,对于U的子集的子集X和和Y,如果如果XY,但,但Y X

11、,则称,则称XY是非平凡的函数依赖。是非平凡的函数依赖。若若XY,但,但Y X, 则称则称XY是是平凡的函数依赖。平凡的函数依赖。v 例:在关系例:在关系SC(Sno, Cno, Grade)中,中, 非平凡函数依赖:非平凡函数依赖: (Sno, Cno) Grade 平凡函数依赖:平凡函数依赖: (Sno, Cno) Sno (Sno, Cno) Cno24平凡函数依赖与非平凡函数依赖(续)平凡函数依赖与非平凡函数依赖(续) 若若XY,则,则X称为这个函数依赖的决定属性组,也称为这个函数依赖的决定属性组,也称为决定因素(称为决定因素(Determinant)。)。 若若XY,YX,则记作,则

12、记作XY。 若若Y不函数依赖于不函数依赖于X,则记作,则记作XY。25三、完全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖定义6.2 在在R(U)中,如果中,如果XY,并且对于,并且对于X的任何一个真的任何一个真子集子集X,都有,都有X Y, 则称则称Y对对X完全函数依赖完全函数依赖,记作,记作 X F Y。 若若XY,但,但Y不完全函数依赖于不完全函数依赖于X,则称,则称Y对对X部分函数部分函数依赖依赖,记作,记作X P Y。 26完全函数依赖与部分函数依赖(续)完全函数依赖与部分函数依赖(续)例例1 中中(Sno,Cno)Grade是完全函数依赖,是完全函数依赖, (Sno,Cno

13、)Sdept是部分函数依赖是部分函数依赖 因为因为Sno Sdept成立,且成立,且Sno是(是(Sno,Cno)的真子集的真子集 FP27四、传递函数依赖四、传递函数依赖定义6.3 在在R(U)中,如果中,如果XY,(Y X) ,YX YZ, 则称则称Z对对X传递函数依赖传递函数依赖。 记为:记为:X Z 注注: 如果如果YX, 即即XY,则,则Z直接依赖于直接依赖于X。例例: 在关系在关系Std(Sno, Sdept, Mname)中,有:中,有: Sno Sdept,Sdept Mname Mname传递函数依赖于传递函数依赖于Sno传递286.2 规范化规范化6.2.1 函数依赖6.2

14、.2 码6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结296.2.2 码码定义定义6.4 设设K为为R中的属性或属性组合。若中的属性或属性组合。若K U, 则则K称为称为R的的侯选码侯选码(Candidate Key)。)。 若候选码多于一个,则选定其中的一个做为若候选码多于一个,则选定其中的一个做为主码主码(Primary Key)。)。F30码(续)码(续)v 主属性与非主属性主属性与非主属性 : 包含在任何一个候选码中的属性包含在任何一个候选码中的属性 ,称为主属性(,称为主属性(Prime attri

15、bute) 。 不包含在任何码中的属性称为非主属性(不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性()或非码属性(Non-key attribute) 。v 全码:全码: 整个属性组是码,称为全码(整个属性组是码,称为全码(All-key) 。31码(续)码(续)例例2 关系模式关系模式S(Sno,Sdept,Sage),单个属性,单个属性Sno是码,是码, SC(Sno,Cno,Grade)中,()中,(Sno,Cno)是码。)是码。例例3 关系模式关系模式R(P,W,A) P:演奏者:演奏者 W:作品:作品 A:听众:听众 一个演奏者可以演奏多个作品。

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

17、)的码,则Sno是关系模式是关系模式SC的外部码的外部码 。v 主码与外部码一起提供了表示关系间联系的手段。主码与外部码一起提供了表示关系间联系的手段。336.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 规范化小结346.2.3 范式范式v 范式是符合某一种级别的关系模式的集合。范式是符合某一种级别的关系模式的集合。v 关系数据库中的关系必须满足一定的要求。满足不同程度关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式要求的为不同范式 ( Normal

18、 Formal)。v 范式的种类:范式的种类:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)356.2.3 范式范式v各种范式之间存在联系:各种范式之间存在联系:v某一关系模式某一关系模式R为第为第n范式,可简记为范式,可简记为RnNF。v 一个低一级范式的关系模式,通过一个低一级范式的关系模式,通过模式分解模式分解可以转换为若可以转换为若干个高一级范式的关系模式的集合,这种过程就叫干个高一级范式的关系模式的集合,这种过程就叫规范化。规范化。 NF5NF4BCNFNF3NF2NF1366

19、.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 规范化小结376.2.4 2NFv 1NF的定义:的定义:如果一个关系模式如果一个关系模式R的所有属性都是的所有属性都是不可分的基本数据项不可分的基本数据项,则则R1NF。v 第一范式是对关系模式的最起码的要求。不满足第一范式第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。的数据库模式不能称为关系数据库。v 但是满足第一范式的关系模式并不一定是一个好的关系模但是满足第一范式的关系模式并不一

20、定是一个好的关系模式。式。382NF(续)(续)例例4 关系模式关系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个地方。为学生住处,假设每个系的学生住在同一个地方。v 函数依赖包括:函数依赖包括: (Sno, Cno) F Grade Sno Sdept (Sno, Cno) P Sdept Sno Sloc (Sno, Cno) P Sloc Sdept Sloc39 2NF(续)(续)v S-L-C的码为的码为(Sno, Cno)v S-L-C满足第一范式。满足第一范式。v 非主属性非主属性Sdept和和Sloc

21、部分函数依赖于码部分函数依赖于码(Sno, Cno)。SnoCnoGradeSdeptSlocS-L-C40S-L-C不是一个好的关系模式(续)不是一个好的关系模式(续)(1) 插入异常插入异常(2) 删除异常删除异常(3) 数据冗余度大数据冗余度大(4) 修改复杂修改复杂41S-L-C不是一个好的关系模式(续)不是一个好的关系模式(续)v 原因:原因: Sdept、 Sloc部分函数依赖于码。部分函数依赖于码。v 解决方法:解决方法: S-L-C分解为两个关系模式,以消除这些部分函数依赖分解为两个关系模式,以消除这些部分函数依赖 。 SC(Sno, Cno, Grade) S-L(Sno,

22、Sdept, Sloc)422NF(续)(续)函数依赖图:函数依赖图:SnoCnoGradeSCS-LSnoSdeptSlocv关系模式关系模式SC的码为(的码为(Sno,Cno)。)。v关系模式关系模式S-L的码为的码为Sno。v这样非主属性对码都是完全函数依赖。这样非主属性对码都是完全函数依赖。 43 2NF(续)(续)v2NF的定义:的定义:定义6.6 若若R1NF,且每一个,且每一个非主属性非主属性完全完全函数依赖于函数依赖于码,则码,则R2NF。例:例:S-L-C(Sno, Sdept, Sloc, Cno, Grade) 1NF S-L-C(Sno, Sdept, Sloc, Cn

23、o, Grade) 2NF SC(Sno, Cno, Grade) 2NF S-L(Sno, Sdept, Sloc) 2NF44 2NF(续)(续)v 采用投影分解法将一个采用投影分解法将一个1NF的关系分解为多个的关系分解为多个2NF的关系,的关系,可以在一定程度上减轻原可以在一定程度上减轻原1NF关系中存在的插入异常、删关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。除异常、数据冗余度大、修改复杂等问题。v 将一个将一个1NF关系分解为多个关系分解为多个2NF的关系,并不能完全消除的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。关系模式中的各种异常情况和数据冗余。

24、456.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 规范化小结46 6.2.5 3NFv3NF的定义:的定义:定义6.7 关系模式关系模式R 中若不存在这样的码中若不存在这样的码X、属性、属性组组Y及非主属性及非主属性Z(Z Y), 使得使得XY,YZ成立,成立, Y X,则称,则称R 3NF。n若若R3NF,则每一个,则每一个非主属性非主属性既不部分依赖既不部分依赖于码于码也不也不传递依赖传递依赖于码。于码。 473NF(续)(续)例:例:2NF关系模式关系模式S-

25、L(Sno, Sdept, Sloc)中中 函数依赖:函数依赖: SnoSdept Sdept Sno SdeptSloc 可得:可得: SnoSloc,即,即S-L中存在非主属性对码的传递函数依中存在非主属性对码的传递函数依 赖,赖,S-L 3NF传递48 3NF(续)(续)函数依赖图:函数依赖图:S-LSnoSdeptSloc493NF(续)(续)v 解决方法:解决方法: 采用投影分解法,把采用投影分解法,把S-L分解为两个关系模式,以消分解为两个关系模式,以消除传递函数依赖:除传递函数依赖: S-D(Sno, Sdept) D-L(Sdept,Sloc)S-D的码为的码为Sno, D-L

26、的码为的码为Sdept。n分解后的关系模式分解后的关系模式S-D与与D-L中不再存在传递依赖中不再存在传递依赖 503NF(续)(续)S-D的码为的码为Sno, D-L的码为的码为Sdept。SnoSdeptS-DSdeptSlocD-Lv S-L(Sno, Sdept, Sloc) 2NF S-L(Sno, Sdept, Sloc) 3NF S-D(Sno,Sdept) 3NFD-L(Sdept, Sloc) 3NF513NF(续)(续)v 采用投影分解法将一个采用投影分解法将一个2NF的关系分解为多个的关系分解为多个3NF的关系,可的关系,可以在一定程度上解决原以在一定程度上解决原2NF关

27、系中存在的插入异常、删除异常、关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。数据冗余度大、修改复杂等问题。v 将一个将一个2NF关系分解为多个关系分解为多个3NF的关系后,仍然不能完全消除的关系后,仍然不能完全消除关系模式中的各种异常情况和数据冗余。关系模式中的各种异常情况和数据冗余。526.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 规范化小结53 6.2.6 BC范式(范式(BCNF)v定义6.8 关系模式关系模式R1NF,若,若XY且且Y X时时

28、X必含有码,则必含有码,则R BCNF。v等价于:每一个决定属性因素都包含码。等价于:每一个决定属性因素都包含码。54BCNF(续)(续)v若若RBCNF : 所有非主属性对每一个码都是完全函数依赖。所有非主属性对每一个码都是完全函数依赖。 所有的主属性对每一个不包含它的码,也是完全函数所有的主属性对每一个不包含它的码,也是完全函数依赖。依赖。 没有任何属性完全函数依赖于非码的任何一组属性。没有任何属性完全函数依赖于非码的任何一组属性。vR BCNF R 3NF充分不必要55BCNF(续)(续)例例5 关系模式关系模式C(Cno,Cname,Pcno)n C3NFn CBCNF例例6 关系模式

29、关系模式S(Sno,Sname,Sdept,Sage)n 假定假定S有两个码有两个码Sno,Snamen S3NF。n S BCNF56BCNF(续)(续)例例7关系模式关系模式SJP(S,J,P)n函数依赖:(函数依赖:(S,J)P;(J,P)Sn(S,J)与()与(J,P)都可以作为候选码)都可以作为候选码,属性相交属性相交nSJP3NF,nSJPBCNF57 BCNF(续)(续)例例8在关系模式在关系模式STJ(S,T,J)中,)中,S表示学生,表示学生,T表表示教师,示教师,J表示课程。表示课程。 函数依赖:函数依赖: (S,J)T,(S,T)J,TJ (S,J)和和(S,T)都是候选

30、码都是候选码58 BCNF(续)(续) JSJTSTSTJ中的函数依赖中的函数依赖59BCNF(续)(续)vSTJ3NF 没有任何非主属性对码传递依赖或部分依赖没有任何非主属性对码传递依赖或部分依赖 vSTJBCNF T是决定因素,是决定因素,T不包含码不包含码60BCNF(续)(续)v解决方法:将解决方法:将STJ分解为二个关系模式:分解为二个关系模式: ST(S,T) BCNF, TJ(T,J) BCNF 没有没有任何属性任何属性对码的部分函数依赖和传递函数依赖。对码的部分函数依赖和传递函数依赖。SJSTTJTJ613NF与与BCNF的关系的关系vR BCNF R 3NFv如果如果R3NF

31、,且,且R只有一个候选码只有一个候选码 R BCNF R 3NF充分不必要充分必要62Stop here!636.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 规范化小结646.2.7 多值依赖多值依赖例例9 学校中某一门课程由多个教师讲授,他们使用学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。每种参考书可以供多门课程使用。65课课 程程 C教教 员员 T参参

32、 考考 书书 B 物理物理数学数学 计算数学计算数学李李 勇勇王王 军军 李李 勇勇张张 平平 张张 平平 周周 峰峰 普通物理学普通物理学光学原理光学原理 物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析. 多值依赖(续)多值依赖(续)v 非规范化关系66普通物理学光学原理物理习题集普通物理学光学原理物理习题集数学分析微分方程高等代数数学分析微分方程高等代数李 勇李 勇李 勇王 军王 军王 军李 勇李 勇李 勇张 平张 平张 平 物 理物 理物 理物 理物 理物 理数 学数 学数 学数 学数 学数 学 参考书参考书B教员教员T课程课程C多值依赖(续)多值依

33、赖(续)v 用二维表表示Teaching67多值依赖(续)多值依赖(续)v TeachingBCNFv Teaching具有唯一候选码具有唯一候选码(C,T,B), 即全码即全码 68多值依赖(续)多值依赖(续) Teaching模式中存在的问题模式中存在的问题(1)数据冗余度大数据冗余度大 (2)插入操作复杂插入操作复杂(3) 删除操作复杂删除操作复杂(4) 修改操作复杂修改操作复杂存在多值依赖69多值依赖(续)多值依赖(续)v 定义6.9 设设R(U)是一个属性集是一个属性集U上的一个关系模式,上的一个关系模式, X、 Y和和Z是是U的子的子集,并且集,并且ZUXY。关系模式。关系模式R(

34、U)中中多值依赖多值依赖 XY成立,成立,当且仅当对当且仅当对R(U)的的任一关系任一关系r,给定的一对(,给定的一对(x,z)值,有一)值,有一组组Y的值,这组值仅仅决定于的值,这组值仅仅决定于x值而与值而与z值无关值无关v 例例 Teaching(C, T, B)70多值依赖(续)多值依赖(续)v多值依赖的另一个等价的形式化的定义:多值依赖的另一个等价的形式化的定义: 在在R(U)的任一关系)的任一关系r中,如果存在元组中,如果存在元组t,s 使得使得tX=sX,那么就必然存在元组那么就必然存在元组 w,v r,(,(w,v可以与可以与s,t相同),相同),使得使得wX=vX=tX,而,而

35、wY=tY,wZ=sZ,vY=sY,vZ=tZ(即交换(即交换s,t元组的元组的Y值所得的两个新元组必在值所得的两个新元组必在r中),则中),则Y多值依赖于多值依赖于X,记为,记为XY。 这里,这里,X,Y是是U的的子集,子集,Z=U-X-Y。71多值依赖(续)多值依赖(续)v平凡多值依赖和非平凡的多值依赖平凡多值依赖和非平凡的多值依赖若若XY,而,而Z,则称,则称 XY为为平凡的多值依赖平凡的多值依赖否则称否则称XY为为非平凡的多值依赖非平凡的多值依赖72多值依赖(续)多值依赖(续)例例10关系模式关系模式WSC(W,S,C)n W表示仓库,表示仓库,S表示保管员,表示保管员,C表示商品表示

36、商品n 假设每个仓库有若干个保管员,有若干种商品假设每个仓库有若干个保管员,有若干种商品 n 每个保管员保管所在的仓库的所有商品每个保管员保管所在的仓库的所有商品n 每种商品被所有保管员保管每种商品被所有保管员保管 73多值依赖(续)多值依赖(续)WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C574多值依赖(续)多值依赖(续)WS且WC用下图表示这种对应 75多值依赖的性质多值依赖的性质(1)多值依赖具有对称性)多值依赖具有对称性若若XY,则,则XZ,其中,其中ZUXY(2)多值依赖具有传递性)多值依赖具有传递性若若

37、XY,YZ, 则则XZ Y(3)函数依赖是多值依赖的特殊情况。)函数依赖是多值依赖的特殊情况。若若XY,则,则XY。(4)若)若XY,XZ,则,则XY Z。(5)若)若XY,XZ,则,则XYZ。(6)若)若XY,XZ,则,则XY-Z,XZ -Y。76多值依赖与函数依赖的区别多值依赖与函数依赖的区别(1) 多值依赖的有效性与属性集的范围有关多值依赖的有效性与属性集的范围有关(2) 若函数依赖若函数依赖XY在在R(U)上成立,则对于任何)上成立,则对于任何Y Y均有均有XY 成立成立多值依赖多值依赖XY若在若在R(U)上成立,不能断言对于上成立,不能断言对于任何任何Y Y有有XY 成立成立776.

38、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 规范化小结786.2.8 4NFv 定义6.10 关系模式关系模式R1NF,如果对于,如果对于R的每个的每个非平凡多值依赖非平凡多值依赖XY(Y X),),X都含有码,则都含有码,则R4NF。v 如果如果R 4NF, 则则R BCNFn不允许不允许有非平凡且非函数依赖的有非平凡且非函数依赖的多值依赖多值依赖n允许允许的非平凡多值依赖是的非平凡多值依赖是函数依赖函数依赖794NF(续)(续)例例: Teaching(C,T,B

39、) 4NF 存在非平凡的多值依赖存在非平凡的多值依赖CT,且,且C不是码不是码n 用投影分解法把用投影分解法把Teaching分解为如下两个关系模式:分解为如下两个关系模式: CT(C, T) 4NF CB(C, B) 4NF CT, CB是平凡多值依赖是平凡多值依赖 806.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 规范化小结816.2.9 规范化小结规范化小结v 关系数据库的规范化理论是数据库逻辑设计的工具关系数据库的规范化理论是数据库逻辑设计的工具v 目的:尽

40、量消除插入、删除一场,修改复杂,数据冗余目的:尽量消除插入、删除一场,修改复杂,数据冗余v 基本思想:逐步消除数据依赖中不合适的部分基本思想:逐步消除数据依赖中不合适的部分 实质:概念的实质:概念的单一化单一化82规范化小结(续)规范化小结(续)v 关系模式规范化的基本步骤关系模式规范化的基本步骤 1NF 消除非主属性对码的部分函数依赖消除非主属性对码的部分函数依赖消除决定属性消除决定属性 2NF集非码的非平集非码的非平 消除非主属性对码的传递函数依赖消除非主属性对码的传递函数依赖凡函数依赖凡函数依赖 3NF 消除主属性对码的部分和传递函数依赖消除主属性对码的部分和传递函数依赖 BCNF 消除

41、非平凡且非函数依赖的多值依赖消除非平凡且非函数依赖的多值依赖 4NF83规范化小结(续)规范化小结(续)v 不能说规范化程度越高的关系模式就越好不能说规范化程度越高的关系模式就越好v 在设计数据库模式结构时,必须对现实世界的实际情况和在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式现实世界的模式v 上面的规范化步骤可以在其中任何一步终止上面的规范化步骤可以在其中任何一步终止84第六章第六章 关系数据理论关系数据理论6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统*6.4

42、 模式的分解6.5 小结856.3 数据依赖的公理系统数据依赖的公理系统v逻辑蕴含逻辑蕴含定义6.11 对于满足一组对于满足一组函数依赖函数依赖 F 的关系模式的关系模式R ,其任何一个关系其任何一个关系r,若函数依赖,若函数依赖XY都成立都成立, (即(即r中任意中任意两元组两元组t,s,若,若tX=sX,则,则tY=sY),则称),则称F逻辑逻辑蕴含蕴含X Y861. Armstrong公理系统公理系统 关系模式关系模式R 来说有以下的推理规则:来说有以下的推理规则: A1.自反律自反律(Reflexivity):若):若Y X U,则,则X Y为为F所所蕴含。蕴含。 A2.增广律增广律(

43、Augmentation):若):若XY为为F所蕴含,且所蕴含,且Z U,则,则XZYZ为为F所蕴含。所蕴含。 A3.传递律传递律(Transitivity):若):若XY及及YZ为为F所蕴含,则所蕴含,则XZ为为F所蕴含。所蕴含。87定理定理 6.1 Armstrong推理规则是正确的推理规则是正确的(l)自反律)自反律: 若若Y X U,则,则X Y为为F所蕴含所蕴含 证证: 设设Y X U 对对R 的任一关系的任一关系r中的任意两个元组中的任意两个元组t,s:若若tX=sX,由于,由于Y X,有,有ty=sy,所以所以XY成立,自反律得证成立,自反律得证88定理定理 6.l Armstr

44、ong推理规则是正确的(续)推理规则是正确的(续)(2)增广律增广律: 若若XY为为F所蕴含,且所蕴含,且Z U,则,则XZYZ 为为F所所蕴含。蕴含。 证:证:设设XY为为F所蕴含,且所蕴含,且Z U。 设设R 的任一关系的任一关系r中任意的两个元组中任意的两个元组t,s:若若tXZ=sXZ,则有,则有tX=sX和和tZ=sZ;由由XY,于是有,于是有tY=sY,所以,所以tYZ=sYZ,所以,所以XZYZ为为F所蕴含,增广律得证。所蕴含,增广律得证。89定理定理 6.l Armstrong推理规则是正确的(续)推理规则是正确的(续)(3) 传递律:若传递律:若XY及及YZ为为F所蕴含,则所

45、蕴含,则 XZ为为 F所蕴含。所蕴含。证:证:设设XY及及YZ为为F所蕴含。所蕴含。对对R 的任一关系的任一关系 r中的任意两个元组中的任意两个元组 t,s:若若tX=sX,由于,由于XY,有,有 tY=sY;再由再由YZ,有,有tZ=sZ,所以,所以XZ为为F所蕴含,传递所蕴含,传递律得证。律得证。902. 导出规则导出规则1.根据根据A1,A2,A3这三条推理规则可以得到下面这三条推理规则可以得到下面三条推理规则:三条推理规则: 合并规则合并规则:由:由XY,XZ,有,有XYZ。 (A2, A3) 伪传递规则伪传递规则:由:由XY,WYZ,有,有XWZ。 (A2, A3) 分解规则分解规则

46、:由:由XY及及 Z Y,有,有XZ。 (A1, A3)91导出规则导出规则2.根据合并规则和分解规则,可得引理根据合并规则和分解规则,可得引理6.1 引理引理6.l XA1 A2Ak成立的充分必要条件是成立的充分必要条件是XAi成立(成立(i=l,2,k)92Armstrong公理系统公理系统vArmstrong公理系统是有效的、完备的公理系统是有效的、完备的n有效性:由有效性:由F出发根据出发根据Armstrong公理推导出公理推导出来的每一个函数依赖一定在来的每一个函数依赖一定在F+中;中;n完备性:完备性:F+中的每一个函数依赖,必定可以由中的每一个函数依赖,必定可以由F出发根据出发根

47、据Armstrong公理推导出来公理推导出来933. 函数依赖闭包函数依赖闭包定义6.l2 在关系模式在关系模式R中为中为F所逻辑蕴含所逻辑蕴含的函数依赖的全体叫作的函数依赖的全体叫作 F的闭包的闭包,记为,记为F+。定义6.13 设设F为属性集为属性集U上的一组函数依赖,上的一组函数依赖,X U, XF+ = A|XA能由能由F 根据根据Armstrong公理导出公理导出,XF+称为属性集称为属性集X关于函数依赖集关于函数依赖集F 的闭包的闭包94F的闭包的闭包F=XY, YZF+=X,Y,Z,XY, XZ, YZ, XYZ, XX, YY, ZZ,XYX, XZX, YZY, XYZX,X

48、Y,Y Z,XYY, XZY, YZZ, XYZY,XZ,YYZ,XYZ, XZZ, YZYZ,XYZZ,XXY,XYXY,XZXY,XYZXY, XXZ,XYYZ,XZXZ,XYZYZ,XYZ,XYXZ,XZXY,XYZXZ,XZYZ,XYXYZ,XZXYZ,XYZXYZ F=XA1, , XAn的闭包的闭包F+计算是一个计算是一个NP完全问题完全问题95关于闭包的引理关于闭包的引理v 引理6.2 设设F为属性集为属性集U上的一组函数依赖,上的一组函数依赖,X,Y U,XY能能 由由F 根据根据Armstrong公理导出的充分必要条件是公理导出的充分必要条件是Y XF+v 用途用途 将判定将

49、判定XY是否能由是否能由F根据根据Armstrong公理导出的问公理导出的问题,转化为求出题,转化为求出XF+ 、判定、判定Y是否为是否为XF+的子集的问题的子集的问题96求闭包的算法求闭包的算法算法6.1 求属性集求属性集X(X U)关于)关于U上的函数依赖集上的函数依赖集F 的闭包的闭包XF+ 输入:输入:X,F输出:输出:XF+步骤:步骤:(1)令)令X(0)=X,i=0(2)求)求B,这里,这里B = A |( V)( W)(VW FV X(i)A W);(3)X(i+1)=BX(i) (4)判断)判断X(i+1)= X (i)吗吗?(5)若相等或)若相等或X(i)=U , 则则X(i

50、)就是就是XF+ , 算法终止。算法终止。(6)若否,则)若否,则 i=i+l,返回第(,返回第(2)步。)步。97算法算法6.1对于算法对于算法6.1, 令令ai =|X(i)|,ai 形成一个形成一个步长大于步长大于1的严格递增的序列,序列的上界的严格递增的序列,序列的上界是是 | U |,因此该算法最多,因此该算法最多 |U| - |X| 次循环就次循环就 会终止。会终止。98函数依赖闭包函数依赖闭包例例1 已知关系模式已知关系模式R,其中,其中U=A,B,C,D,E;F=ABC,BD,CE,ECB,ACB。求(求(AB)F+ 。解解 设设X(0)=AB;(1) X(1)=ABCD=AB

51、CD。(2) X(0) X(1) X(2)=X(1)BE=ABCDE。(3) X(2)=U,算法终止,算法终止(AB)F+ =ABCDE。994. Armstrong公理系统的有效性与完备性公理系统的有效性与完备性v定理定理6.2 Armstrong公理系统是有效的、公理系统是有效的、完备的完备的 v证明:证明:1. 有效性有效性 可由定理可由定理6.1得证得证2. 完备性完备性只需证明只需证明逆否命题逆否命题: 若函数依赖若函数依赖XY不能由不能由F从从Armstrong公理导出,那么它必然不为公理导出,那么它必然不为F所蕴所蕴含含100Armstrong公理系统完备性证明公理系统完备性证明

52、(1) 引理引理: 若若VW成立,且成立,且V XF+,则,则W XF+ (2) 构造一张二维表构造一张二维表r,它由下列两个元组构成,可以证明,它由下列两个元组构成,可以证明r必是必是R(U,F)的一个关系)的一个关系,即,即F+中的全部函数依赖在中的全部函数依赖在 r上成立。上成立。 XF+ U-XF+ 11.1 00.0 11.1 11.1 (3) 若若XY 不能由不能由F从从Armstrong公理导出,则公理导出,则Y 不是不是XF+ 的子集。的子集。1015. 函数依赖集等价函数依赖集等价定义6.14 如果如果G+=F+,就说函数依赖集,就说函数依赖集F覆盖覆盖G(F是是G的覆的覆盖

53、,或盖,或G是是F的覆盖),或的覆盖),或F与与G等价等价。引理6.3 F+ = G+ 的充分必要条件是的充分必要条件是F G+ ,和,和G F+ 证证: 必要性显然,只证充分性。必要性显然,只证充分性。(1)若)若F G+ ,则,则XF+ XG+ 。(2)任取)任取XY F+ 则有则有 Y XF+ XG+ 。 所以所以XY (G+)+= G+。即。即F+ G+。(3)同理可证)同理可证G+ F+ ,所以,所以F+ = G+。1026. 最小依赖集最小依赖集定义6.15 如果函数依赖集如果函数依赖集F满足下列条件,则称满足下列条件,则称F为一个为一个极小函数依赖集极小函数依赖集。亦称为。亦称为

54、最小依赖集最小依赖集或或最小覆盖最小覆盖。 (1) F中任一函数依赖的右部仅含有一个属性。中任一函数依赖的右部仅含有一个属性。 (2) F中不存在这样的函数依赖中不存在这样的函数依赖XA,使得,使得F与与F-XA等价。等价。 (3) F中不存在这样的函数依赖中不存在这样的函数依赖XA, X有真子集有真子集Z使得使得F-XAZA与与F等价。等价。 103最小依赖集最小依赖集例例2 关系模式关系模式S,其中:,其中: U= Sno,Sdept,Mname,Cno,Grade , F= SnoSdept,SdeptMname,(Sno,Cno)Grade 设设F=SnoSdept,SnoMname,

55、SdeptMname, (Sno,Cno)Grade,(Sno,Sdept)SdeptF是最小覆盖,而是最小覆盖,而F不是。不是。因为:因为:F - SnoMname与与F 等价等价 F - (Sno,Sdept)Sdept也与也与F 等价等价 1047. 极小化过程极小化过程定理6.3 每一个函数依赖集每一个函数依赖集F均等价于一个极小函数依赖均等价于一个极小函数依赖 集集Fm。此。此Fm称为称为F的最小依赖集。的最小依赖集。证明证明: 构造性证明,找出构造性证明,找出F的一个最小依赖集。的一个最小依赖集。 105极小化过程(续)极小化过程(续)(1)逐一检查逐一检查F中各函数依赖中各函数依

56、赖FDi:XY,若若Y=A1A2 Ak,k 2, 则用则用 XAj |j=1,2, k 来取代来取代XY。(2)逐一检查逐一检查F中各函数依赖中各函数依赖FDi:XA,令,令G=F-XA, 若若A XG+, 则从则从F中去掉此函数依赖。中去掉此函数依赖。(3)逐一取出逐一取出F中各函数依赖中各函数依赖FDi:XA,设,设X=B1B2Bm, 逐一考查逐一考查Bi (i=l,2,m),若),若A (X-Bi )F+ , 则以则以X-Bi 取代取代X。106极小化过程(续)极小化过程(续)例例3 F = AB,BA,BC,AC,CAFm1、Fm2都是都是F的最小依赖集:的最小依赖集: Fm1= AB

57、,BC,CA Fm2= AB,BA,AC,CA v F的最小依赖集的最小依赖集Fm不唯一不唯一v 极小化过程极小化过程( 定理定理6.3的证明的证明 )也是检验也是检验F是否为极小依赖是否为极小依赖集的一个算法集的一个算法107第六章第六章 关系数据理论关系数据理论6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统*6.4 模式的分解6.5 小结1086.4 模式的分解模式的分解v 把低一级的关系模式分解为若干个高一级的关系模式的方把低一级的关系模式分解为若干个高一级的关系模式的方法不是唯一的法不是唯一的v 只有能够保证分解后的关系模式与原关系模式等价,分解只有能够保证分解后的关系模式

58、与原关系模式等价,分解方法才有意义方法才有意义109关系模式分解的标准关系模式分解的标准三种模式分解等价的定义:三种模式分解等价的定义: 分解具有无损连接性分解具有无损连接性 分解要保持函数依赖分解要保持函数依赖 分解既要保持函数依赖,又要具有无损连接性分解既要保持函数依赖,又要具有无损连接性110模式的分解(续)模式的分解(续)定义6.16 关系模式关系模式R的一个分解:的一个分解:= R1,R2,Rn U= Ui,且不存在,且不存在 Ui Uj,Fi 为为 F在在 Ui 上的投影上的投影定义6.17 函数依赖集合函数依赖集合XY | XY F+XY Ui 的一个的一个覆盖覆盖 Fi 叫作叫

59、作 F 在属性在属性 Ui 上的投影上的投影i=1n111模式的分解(续)模式的分解(续)例:例:S-L(Sno, Sdept, Sloc) F= SnoSdept,SdeptSloc,SnoSloc S-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)112具有无损连接性的模式分解具有无损连接性的模式分解v 关系模式关系模式R的一个分解的一个分解 = R1,R2, ,Rn

温馨提示

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

评论

0/150

提交评论