五章节关系数据库理论

上传人:大米 文档编号:570520363 上传时间:2024-08-05 格式:PPT 页数:43 大小:382.50KB
返回 下载 相关 举报
五章节关系数据库理论_第1页
第1页 / 共43页
五章节关系数据库理论_第2页
第2页 / 共43页
五章节关系数据库理论_第3页
第3页 / 共43页
五章节关系数据库理论_第4页
第4页 / 共43页
五章节关系数据库理论_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《五章节关系数据库理论》由会员分享,可在线阅读,更多相关《五章节关系数据库理论(43页珍藏版)》请在金锄头文库上搜索。

1、安财信工学院计算机系五章节关系数据库理论Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望安财信工学院计算机系关系数据库设计中存在的问题关系数据库设计中存在的问题v示例:示例:考虑为管理职工的工资信息而设计一个关系模式。考虑为管理职工的工资信息而设计一个关系模式。2005-9-42安财信工学院计算机系存在的问题分类存在的问题分类v插入异常如果没有职工具有如果没有职工具有8级工资,则级工资,则8级工资的工资数额就难以插入。级工资的工资数额就难以插入。v删除异常如果仅有职工赵明具有如果仅有

2、职工赵明具有4级工资,如果将赵明删除,则有关级工资,如果将赵明删除,则有关4级工资级工资的工资数额信息也随之删除了。的工资数额信息也随之删除了。v数据冗余职工很多,工资级别有限,每一级别的工资数额反复存储多次。职工很多,工资级别有限,每一级别的工资数额反复存储多次。v更新异常如果将如果将5级工资的工资数额调为级工资的工资数额调为620,则需要找到每个具有,则需要找到每个具有5级工资的级工资的职工,逐一修改。职工,逐一修改。2005-9-43安财信工学院计算机系关系数据库设计中存在的问题关系数据库设计中存在的问题v解决之道:模式分解解决之道:模式分解2005-9-44安财信工学院计算机系有关学生

3、的关系模式有关学生的关系模式S(S# , SN , SD , DEAN , C# , G)v问题:问题:它有哪些数据冗余?v问题:问题:它有哪些不良的数据依赖?2005-9-45安财信工学院计算机系 讨论关系数据库逻辑设计问题讨论关系数据库逻辑设计问题:1.针对一个具体问题,应该针对一个具体问题,应该如何构造一个适合于它的数据库模式如何构造一个适合于它的数据库模式?2.即应该构造几个关系模式即应该构造几个关系模式?3.每个关系由哪些属性组成每个关系由哪些属性组成?2005-9-46安财信工学院计算机系 下面首先回顾一下关系模型的形式化定义。下面首先回顾一下关系模型的形式化定义。 v一个关系模式

4、应当是一个五元组一个关系模式应当是一个五元组 R(U, D, DOM, F)v说明说明:关系名关系名R,它是符号化的元组语义;,它是符号化的元组语义; 一组属性一组属性U; 属性组属性组U中属性所来自的域中属性所来自的域D; 属性到域的映射属性到域的映射DOM; 属性组属性组U上的一组数据依赖上的一组数据依赖F。 由于由于D和和DOM对模式设计关系不大对模式设计关系不大,因此我们在本章中把关系因此我们在本章中把关系模式看作是一个三元组:模式看作是一个三元组:RU,F 当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时时,r称为关系模式称为关系模式RU,F的一个关系。的一个关系。2005-

5、9-47安财信工学院计算机系 v第一范式第一范式关系关系,作为一张二维表作为一张二维表,我们对它有一个最起码的要求:每一个分量必我们对它有一个最起码的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。)。我们的任务是研究模式设计,研究设计一个我们的任务是研究模式设计,研究设计一个“好好”的(没有的(没有“毛病毛病”的)关系模式的办法。的)关系模式的办法。 v数据依赖数据依赖数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系

6、。它是现实世界属性间相互联系的抽象相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质是数据内在的性质,是语义的体现。是语义的体现。现在人们已经提出了许多种类型的数据依赖现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖其中最重要的是函数依赖(Functional Dependency简记为简记为FD)和多值依赖和多值依赖(Multivalued Dependency简记为简记为MVD)。比如描述一个学生的关系比如描述一个学生的关系,可以有学号可以有学号(SNO),姓名姓名(SNAME),系名系名(SDEPT)等几个属性。由于一个学号只对应一个学生等几个属性。由于一个学号只

7、对应一个学生,一个学生一个学生只在一个系学习。只在一个系学习。因而当因而当“学号学号”值确定之后值确定之后,姓名和该生所在系的值也就被唯一姓名和该生所在系的值也就被唯一地确定了。就象自变量地确定了。就象自变量x确定之后确定之后,相应的函数值相应的函数值f(x)也就唯一也就唯一地确定了一样,我们说地确定了一样,我们说SNO函数决定函数决定SNAME和和SDEPT,或者说或者说SNAME,SDEPT函数依赖于函数依赖于SNO,记为记为 SNOSNAME,SNOSDEPT。2005-9-48安财信工学院计算机系建立一个描述学生的数据库建立一个描述学生的数据库v分析分析:面临的对象有面临的对象有v学生

8、学生(用学号用学号SNO描述描述)v系系(用系名用系名SDEPT描述描述)v系负责人系负责人(用其姓名用其姓名MN描述描述) v课程课程(用课程名用课程名CNAME描述描述)v成绩成绩(G)。现实世界的已知事实告诉我们现实世界的已知事实告诉我们 v1一个系有若干学生一个系有若干学生,但一个学生只属于一个系;但一个学生只属于一个系; v2一个系只有一名一个系只有一名(正职正职)负责人;负责人;v3一个学生可以选修多门课程一个学生可以选修多门课程,每门课程有若干学生选修;每门课程有若干学生选修; v4每个学生学习每一门课程有一个成绩;每个学生学习每一门课程有一个成绩;2005-9-49安财信工学院

9、计算机系v如果只考虑函数依赖这一种数据依赖如果只考虑函数依赖这一种数据依赖,我们就得到了我们就得到了一个描述学校的数据库模式一个描述学校的数据库模式SU,F,它由一个,它由一个单一的关系模式构成:单一的关系模式构成: U = SNO,SDEPT,MN,CNAME,G F = SNOSDEPT,SDEPTMN,(SNO,CNAME)G 这组函数依赖如图这组函数依赖如图5.l所示。所示。SNOCNAMESDEPTMNG2005-9-410安财信工学院计算机系前面的学生模式有下述三个前面的学生模式有下述三个“毛病毛病”:v1.插入异常插入异常如果一个系刚成立尚无学生如果一个系刚成立尚无学生,或者虽然

10、有了学生但尚未安排或者虽然有了学生但尚未安排课程。那么我们就无法把这个系及其负责人的信息存入数据课程。那么我们就无法把这个系及其负责人的信息存入数据库。库。v2.删除异常删除异常反过来反过来,如果某个系的学生全部毕业了如果某个系的学生全部毕业了,我们在删除该系学生我们在删除该系学生选修课程的同时选修课程的同时,把这个系及其负责人的信息也丢掉了。把这个系及其负责人的信息也丢掉了。v3.冗余太大冗余太大比如比如,每一个系负责人的姓名要与该系每一个学生的每一门每一个系负责人的姓名要与该系每一个学生的每一门功课的成绩出现的次数一样多。这样功课的成绩出现的次数一样多。这样,一方面浪费存储一方面浪费存储,

11、另一另一方面系统耍付出很大的代价来维护数据库的完整性。比如某方面系统耍付出很大的代价来维护数据库的完整性。比如某系负责人更换后系负责人更换后,就必须逐一修改有关的每一个元组。就必须逐一修改有关的每一个元组。2005-9-411安财信工学院计算机系为什么会发生插入异常和删除异常呢为什么会发生插入异常和删除异常呢 ?v这是因为这个模式中的函数依赖存在某些不好的性这是因为这个模式中的函数依赖存在某些不好的性质。假如我们把这个单一的模式改造一下质。假如我们把这个单一的模式改造一下,分成三个分成三个关系模式:关系模式:S(SNO,SDEPT, SNOSDEPT););SG(SNO,CNAME,G, (S

12、NO,CNAME)G););DEPT(SDEPT,MN, SDEPTMN);); 这三个模式都不会发生插入异常、删除异常的毛病这三个模式都不会发生插入异常、删除异常的毛病,数据数据的冗佘也得到了控制。的冗佘也得到了控制。 一个模式的函数依赖会有哪些不好的性质一个模式的函数依赖会有哪些不好的性质,如何改造一个如何改造一个不好的模式不好的模式,这就是下一节规范化理论讨论的内容。这就是下一节规范化理论讨论的内容。 2005-9-412安财信工学院计算机系定义定义5.1函数依赖函数依赖v定义定义5.1 设设R(U)是属性集是属性集U上的关系模式。上的关系模式。X,Y是是U的子集。若对于的子集。若对于R

13、(U)的任意一个可能的关系的任意一个可能的关系r,r中不可能存在两个元组在中不可能存在两个元组在X上的属性值相等上的属性值相等,而在而在Y上的属性值不等上的属性值不等,则称则称X函数确定函数确定Y或或Y函数依赖于函数依赖于X,记作,记作XY。v例如:例如:每个学生有且只有一个专业,即每个学生有且只有一个专业,即“学号学号”决定决定“专业专业” 。因此,因此,“专业专业”函数依赖于函数依赖于“学号学号”。学号。学号专业专业注意,注意,AB时,时,A和和B的关系通常是的关系通常是N:1。即有许多学生选修同一。即有许多学生选修同一个专业,但一个人只能有一个专业。个专业,但一个人只能有一个专业。v函数

14、依赖可包含属性组,函数依赖可包含属性组,如,(学号,课程名)如,(学号,课程名)成绩成绩v区别情况:区别情况:若若X(Y,Z),则,则XY,XZ。v比如,学号比如,学号(姓名,专业),则学号(姓名,专业),则学号姓名,学号姓名,学号专业专业若(若(X,Y)Z,一般情况下,一般情况下,XZ和和YZ都不成立都不成立v比如,比如, (学号,课程名)(学号,课程名)成绩,但成绩,但“学号学号”或或“课程名课程名”本身都不能本身都不能单独决定单独决定“成绩成绩”2005-9-413安财信工学院计算机系函数依赖:设设R(U)是属性集是属性集U上的关系模式,上的关系模式,X , Y U, r是是R(U) 上

15、的任意一个关系,如果成立对上的任意一个关系,如果成立对 t , s r,若若tX = sX,则,则tY = sY,那么称,那么称“X函数决定Y”,或或“Y函数依赖于于X”,记作,记作XY。称。称X为为决定因素。如:如:S# SN, (S#,C#) G如果如果X Y,但,但Y X,则称其为,则称其为非平凡的函数依赖非平凡的函数依赖非平凡的函数依赖非平凡的函数依赖,否,否则称为则称为平凡的函数依赖平凡的函数依赖平凡的函数依赖平凡的函数依赖。如(如(S#,SN) SN是平凡的函数依赖是平凡的函数依赖2005-9-414安财信工学院计算机系定义定义5.2 完全函数依赖完全函数依赖v定义定义5.2 在在

16、R(U)中,如果中,如果XY,且对于任意,且对于任意X的真的真子集子集X,都有,都有XY ,则称,则称Y对对X完全函数依赖,完全函数依赖,记作记作X Y ,否则称为,否则称为Y对对X部分函数依赖,记作部分函数依赖,记作X Y。例如:(例如:(S#,C#) Grade找出找出S中的另一部分函数依赖。中的另一部分函数依赖。U = SNO,SDEPT,MN,CNAME,G F = SNOSDEPT,SDEPTMN,(SNO,CNAME)G 2005-9-415安财信工学院计算机系定义定义5.3 传递函数依赖传递函数依赖v定义定义5.3 在在R(U)中中,如果如果XY,(Y X),Y X,YZ,则称则

17、称Z对对X传递函数依赖。传递函数依赖。 v加上条件加上条件YX,是因为如果是因为如果YX,则则XY,实际上是直接函实际上是直接函数依赖而不是传递函数依赖。数依赖而不是传递函数依赖。 v例如:S(SNO,SDEPT, SNOSDEPT););SG(SNO,CNAME,G, (SNO,CNAME)G););DEPT(SDEPT,MN, SDEPTMN)则,则,SNO SDEPT,SDEPT MNv想一想还有没有别的例子?想一想还有没有别的例子?2005-9-416安财信工学院计算机系v检验:检验:AC?CA?ABD?v辨识:辨识:满足依赖的关系:满足依赖的关系:v依赖在模式的某个关系实例上成立。依

18、赖在模式的某个关系实例上成立。模式上成立的依赖:模式上成立的依赖:v依赖在模式的所有关系实例上都成立。依赖在模式的所有关系实例上都成立。ABCDa1b1c1d1a1b2c1d2a2b2c2d2a2b3c2d3a3b3c2d42005-9-417安财信工学院计算机系ABC123423533练习练习找出可能的函数依赖。2005-9-418安财信工学院计算机系定义码定义码v定义定义5.4 设设K为为RU,F中的属性或属性组合,若中的属性或属性组合,若K U则则K为为R的的候选码候选码候选码候选码(Candidate key)。若候选码多于一个,则)。若候选码多于一个,则选定其中的一个为选定其中的一个

19、为主码主码主码主码(Primary key)。)。v包含在任何一个候选码中的属性,叫做包含在任何一个候选码中的属性,叫做主属性主属性主属性主属性(Prime attribute)。不包含在任何码中的属性称为不包含在任何码中的属性称为非主属性非主属性非主属性非主属性(Nonprime attribute)或非或非码属性码属性(Non-key attribute)。最简单的情况。最简单的情况,单个属性是码。最极单个属性是码。最极端的情况端的情况,整个属性组是码整个属性组是码,称为称为全码全码全码全码(All-key)。v例如;例如;关系模式关系模式R(P,W,A),属性属性P表示演奏者表示演奏者,

20、W表示作品表示作品,A表示听众。假设一表示听众。假设一个演奏者可以演奏多个作品个演奏者可以演奏多个作品,某一作品可被多个演奏者演奏。听众也某一作品可被多个演奏者演奏。听众也可以欣赏不同演奏者的不同作品可以欣赏不同演奏者的不同作品,这个关系模式的码为这个关系模式的码为(P,W,A),即即All-key。2005-9-419安财信工学院计算机系定义定义5.5 外码外码v定义定义5.5 关系模式关系模式R中属性或属性组中属性或属性组X并非并非R的码,的码,但但X是另一个关系模式的码,则称是另一个关系模式的码,则称 X是是R的外部码的外部码(Foreign key)也称外码。也称外码。 主码与外部码提

21、供了一个表示关系间联系的手段。主码与外部码提供了一个表示关系间联系的手段。v主码主码:若:若R(U , F)有多个候选码,则可以从中选定一有多个候选码,则可以从中选定一个作为个作为R的主码。的主码。v主属性主属性:包含在每一个候选码中的属性,称作主属:包含在每一个候选码中的属性,称作主属性。性。v全码全码:关系模式的码由整个属性组构成。:关系模式的码由整个属性组构成。2005-9-420安财信工学院计算机系范例范例关系模式S(S# , SN , SD , DEAN , C# , G)主码:主码:(S#,C#)函数依赖:函数依赖:(S#,C#)G S# SN,(,(S#,C#)SNS# SD,(

22、S#,C#)SDSD DEAN2005-9-421安财信工学院计算机系范式范式v定义定义范式是对关系的不同范式是对关系的不同数据依赖程度数据依赖程度的要求。的要求。通过模式分解将一个低级范式转换为若干个高级通过模式分解将一个低级范式转换为若干个高级范式的过程称作规范化(概念的纯粹化)。范式的过程称作规范化(概念的纯粹化)。1NF2NF3NF4NFBCNF5NF2005-9-422安财信工学院计算机系定义定义 1NFv定义定义关系中每一分量不可再分。即不能以集合、序列等作为关系中每一分量不可再分。即不能以集合、序列等作为属性值。属性值。S#C#S1C1,C2,C3S#C#S1C1S1C2S1C3

23、2005-9-423安财信工学院计算机系1NF分量是否需要再分,与具体应用有关!如果用分量是否需要再分,与具体应用有关!如果用到值的一部分,则需要进一步分割。到值的一部分,则需要进一步分割。 如果只是查询出生日期,则它满足如果只是查询出生日期,则它满足1NF。如果查询两人生日是否相同,则只比较月、日,如果查询两人生日是否相同,则只比较月、日,需要将生日分解,就不满足需要将生日分解,就不满足1NF。如果比较两人的生肖呢?如果比较两人的生肖呢?姓名出生日期王军68.7.10张立69.7.10李明80.3.28姓名年月日王军687.10张立697.10李明803.282005-9-424安财信工学院

24、计算机系关系模式关系模式 S(S# , SN , SD , DEAN , C# , G)v不良特性不良特性插入异常:如果学生没有选课,关于他的个人信息及所插入异常:如果学生没有选课,关于他的个人信息及所在系的信息就无法插入。在系的信息就无法插入。删除异常:如果删除学生的选课信息,则有关他的个人删除异常:如果删除学生的选课信息,则有关他的个人信息及所在系的信息也随之删除了。信息及所在系的信息也随之删除了。更新异常:如果学生转系,若他选修了更新异常:如果学生转系,若他选修了k门课,则需要修门课,则需要修改改k次。次。数据冗余:如果一个学生选修了数据冗余:如果一个学生选修了k门课,则有关他的所在门课

25、,则有关他的所在系的信息重复系的信息重复2005-9-425安财信工学院计算机系2NFv定义定义5.6若若R 1NF,且每个非主属性完全依赖于码,则称,且每个非主属性完全依赖于码,则称R 2NF。(即消。(即消除非主属性对码的部分依赖)。除非主属性对码的部分依赖)。关系模式关系模式 S( S# , C# , SN , SD , DEAN , G)S 2NF,因为,因为(S#,C#) SN, (S#,C#) CNv改造改造非主属性有两种,一种完全依赖于码,一种部分依赖于码。非主属性有两种,一种完全依赖于码,一种部分依赖于码。将将S分解为:分解为:SC(S# , C# , G) S_SD(S# ,

26、 SN , SD , DEAN)v练习练习关系模式关系模式R(A,B,C,D),码为),码为AB,给出它的一个函数依赖集,给出它的一个函数依赖集,使得使得R属于属于1NF而不属于而不属于2NF。2005-9-426安财信工学院计算机系S_SD(S# , SN , SD , DEAN)v不良特性不良特性插入异常:若系中没有学生,则有关该系的信息就无法插入。插入异常:若系中没有学生,则有关该系的信息就无法插入。删除异常:如果学生全部毕业了,则在删除学生信息的同时有删除异常:如果学生全部毕业了,则在删除学生信息的同时有关该系的信息也随之删除了。关该系的信息也随之删除了。更新异常:如果学生转系,不但要

27、修改更新异常:如果学生转系,不但要修改SD,还要修改,还要修改DEAN,如果换系主任,则该系每个学生元组都要做相应修改。如果换系主任,则该系每个学生元组都要做相应修改。数据冗余:每个学生都存储了所在系的系主任的信息。数据冗余:每个学生都存储了所在系的系主任的信息。2005-9-427安财信工学院计算机系定义定义 3NFv定义定义5.7关系模式关系模式R中,若不存在这样的码中,若不存在这样的码X,属性组,属性组Y及及非主属性非主属性非主属性非主属性Z(Z Y),使得下式成立,使得下式成立,XY , YZ , YX则称则称R 3NF(即消除非主属性对码的传递依赖)。(即消除非主属性对码的传递依赖)

28、。如如S_SD 3NF,因为有,因为有S#SD,SDDEANv改造改造将将S分解为:分解为:STUDENT(S# , SN , SD)DEPT(SD , DEAN) 2005-9-428安财信工学院计算机系3NFv练习练习关系模式关系模式R(A,B,C,D),码为),码为AB,给出它,给出它的一个函数依赖集,使得的一个函数依赖集,使得R属于属于2NF而不属于而不属于3NF。2005-9-429安财信工学院计算机系示例示例vSPC(S# , P# , C#),即,即(学号,教师编号,课程号学号,教师编号,课程号)假设每位老师只教授一门课,假设每位老师只教授一门课, 则则P# C#(S#,P#)

29、C#(S#,C#) P#,某学生选定一门课,就对应一位老师,某学生选定一门课,就对应一位老师(S#,P#),(),(S#,C#)为候选码。)为候选码。v思考:思考:这三个属性是否都是主属性?这三个属性是否都是主属性?SPC 3NF ?请参考课本?请参考课本Page 176上的上的3NF定义定义提示:提示:v注意定义注意定义5.7中的一词中的一词“非主属性非主属性” 2005-9-430安财信工学院计算机系v不良特性不良特性插入异常:如果没有学生选修某位老师的任课,则该插入异常:如果没有学生选修某位老师的任课,则该老师担任课程的信息就无法插入。老师担任课程的信息就无法插入。删除异常:删除学生选课

30、信息,会删除掉老师的任课删除异常:删除学生选课信息,会删除掉老师的任课信息。信息。更新异常:如果老师所教授的课程有所改动,则所有更新异常:如果老师所教授的课程有所改动,则所有选修该老师课程的学生元组都要做改动。选修该老师课程的学生元组都要做改动。数据冗余:每位学生都存储了有关老师所教授的课程数据冗余:每位学生都存储了有关老师所教授的课程的信息。的信息。v症由:主属性对码的不良依赖。症由:主属性对码的不良依赖。2005-9-431安财信工学院计算机系定义定义 BCNFv定义定义 5.8关系模式关系模式R中,对于属性组中,对于属性组X,Y,若,若XY且且Y X时时X必含有码,则必含有码,则R BC

31、NF。即每一个决定因素都包含码。即每一个决定因素都包含码。如如SPC BCNF,因为,因为P# C#,而,而P#不是码。不是码。v改造改造将将S分解为(分解为(S#,P#),(),(P#,C#)。)。v思考思考关系模式关系模式SCO(S# , C# , ORDER),表示学生选修课程的名次,表示学生选修课程的名次,有函数依赖有函数依赖(S#,C#) ORDER, 假定同一课程每个名次只有一人假定同一课程每个名次只有一人则则(C#,ORDER) S#,它属于哪个范式?它的码是什么?该,它属于哪个范式?它的码是什么?该关关系模式有何不良特性?系模式有何不良特性?关系模式关系模式STJ(S#,T#,

32、J#),一个教师只教一门课,一门课有),一个教师只教一门课,一门课有若干教师,则若干教师,则(S#,J#)T#,(S#,T#)J#,T#J#。STJ BCNF2005-9-432安财信工学院计算机系v例如例如 :关系模式:关系模式TEACH(C#,P#,B#),一门课程由多个教员担),一门课程由多个教员担任,一门课程使用相同的一套参考书。它的码是(任,一门课程使用相同的一套参考书。它的码是(C#,P#,B#),),所以属于所以属于BCNF。C#P#B#C1P1B1C1P1B2C1P2B1C1P2B2C2P1B3C2P1B4C2P3B3C2P3B4C#P#B#C1P1,P2B1,B2C2P1,P

33、3B3,B4v不良特性不良特性插入异常:当某门课程增加一名教插入异常:当某门课程增加一名教员时,该门课程有多少本参考书就员时,该门课程有多少本参考书就必须插入多少个元组;同样当某门必须插入多少个元组;同样当某门课程需要增加一本参考书时,它有课程需要增加一本参考书时,它有多少个教员就必须插入多少个元组。多少个教员就必须插入多少个元组。删除异常:当删除一门课程的某个删除异常:当删除一门课程的某个教员或者某本参考书时,需要删除教员或者某本参考书时,需要删除多个元组。多个元组。更新异常:当一门课程的教员或参更新异常:当一门课程的教员或参考书作出改变时,需要修改多个元考书作出改变时,需要修改多个元组。组

34、。数据冗余:同一门课的教员与参考数据冗余:同一门课的教员与参考书的信息被反复存储多次。书的信息被反复存储多次。2005-9-433安财信工学院计算机系定义多值依赖定义多值依赖v定义定义描述型:关系模式:关系模式R(U),X、Y、Z U,并且,并且Z = U X Y,多值依赖,多值依赖X Y成立当且仅当对成立当且仅当对R(U)的任一关系的任一关系r,给定的一对(,给定的一对(x,z)值有一组)值有一组Y的值,这组值仅仅决定的值,这组值仅仅决定于于x值而与值而与z值无关。值无关。如在关系模式如在关系模式TEACH中,对中,对(C1 , B1)有一组有一组P#值值(P1 , P2),对,对(C1 ,

35、 B2)也有一组也有一组P#值值(P1 , P2),这组值仅取,这组值仅取决于决于C#的取值,而与的取值,而与B#的取值无关。因此,的取值无关。因此,P#多值依赖多值依赖于于C#,记作,记作C# P#,同样有,同样有C# B#。2005-9-434安财信工学院计算机系多值依赖多值依赖()形式化:关系模式:关系模式R(U),X、Y、Z U,Z=UX Y,对,对于于R(U)的任一关系的任一关系r,若存在元组,若存在元组t1,t2,使得,使得t1X = t2X,那么就必然存在元组,那么就必然存在元组t3,t4,使得:,使得:t3X = t4X = t1X = t2Xt3Y = t1Y, t4Y =

36、t2Yt3Z = t2Z, t4Z = t1Z则称则称Y多值依赖与多值依赖与X,记作,记作X Y。若若(C#, P#, B#)满足满足C#P#,含,含有元组有元组t1=(C1, P1, B1),t2=(C1, P2, B2),则也一定含有元组,则也一定含有元组t3=(C1, P1, B2),t2=(C1, P2, B1)。2005-9-435安财信工学院计算机系多值依赖多值依赖()v找出关系上所满足的多值依赖。ABCa1b1c1a1b1c2a2b1c1a2b1c3CB?若使BC成立,需加入哪些元组?ABCa1b1c1a2b1c1t1t2ABCa2b1c1a1b1c1ABCt2.At1.Bt1.

37、Ct1.At2.Bt1.Ct3t4t3t42005-9-436安财信工学院计算机系多值依赖多值依赖()v性质性质多值依赖具有对称性,即多值依赖具有对称性,即若若XY,则,则XZ,其中,其中Z=UXY。函数依赖是多值依赖的特例,即函数依赖是多值依赖的特例,即若若XY,则,则XY。若若XY,UXY= ,则称则称XY为为平凡的平凡的多值依赖。多值依赖。2005-9-437安财信工学院计算机系多值依赖多值依赖 Vs 函数依赖函数依赖()v区别区别函数依赖规定某些元组不能出现在关系中,也称为函数依赖规定某些元组不能出现在关系中,也称为相等相等产生依赖产生依赖。多值依赖要求某种形式的其它元组必须在关系中,

38、称为多值依赖要求某种形式的其它元组必须在关系中,称为元组产生依赖元组产生依赖。v有效性范围有效性范围XY的有效性仅决定于的有效性仅决定于X、Y属性集上的值,它在任何属属性集上的值,它在任何属性集性集W(XY W U)上都成立。)上都成立。若若XY在在R(U)上成立,则对于任何上成立,则对于任何Y Y,均有,均有XY 成立。成立。2005-9-438安财信工学院计算机系多值依赖多值依赖 Vs 函数依赖函数依赖()XY的有效性与属性集范围有关。的有效性与属性集范围有关。 XY在属性集在属性集W(XY W U)上成立,但在)上成立,但在U上不上不一定成立。一定成立。XY在在U上成立上成立 XY在属性

39、集在属性集W(XY W U)上成立。)上成立。若在若在R(U)上,上,XY在属性集在属性集W(XY W U)上成立,上成立,则称则称XY为为R(U) 的嵌入式多值依赖。的嵌入式多值依赖。若若XY在在R(U)上成立,则不能断言对于上成立,则不能断言对于Y Y,是否,是否有有XY 成立。成立。2005-9-439安财信工学院计算机系4NFv定义定义关系模式关系模式R 1NF,若,若XY(Y X)是非平)是非平凡的多值依赖,且凡的多值依赖,且X含有码,则称含有码,则称R 4NF。如关系模式如关系模式CPB,C#P#,C#B#,码为,码为(C#, P#, B#),所以,所以CPB 4NF。如果一门课如

40、果一门课Ci有有m个教员,个教员,n本参考书,则关系中分量为本参考书,则关系中分量为Ci的元组共有的元组共有mn个,数据冗余非常大。个,数据冗余非常大。v改造改造将将CPB分解为分解为CP(C#,P#),),CB(C#,B#),在分),在分解后的解后的关系中分量为关系中分量为Ci的元组共有的元组共有m + n个。个。2005-9-440安财信工学院计算机系范式之间的关系范式之间的关系()v3NF 2NF反证:若反证:若R 3NF, 但但R 2NF,则按,则按2NF定义,一定有定义,一定有非主属性部分依赖于码,非主属性部分依赖于码,设设X为为R的码,则存在的码,则存在X的真子集的真子集X,以及非

41、主属性,以及非主属性Z(Z X),使得),使得XZ。于是在于是在R中存在码中存在码X,属性组,属性组X,以及非主属性,以及非主属性Z(Z X) ,使得,使得XX, XZ,XX成立,这与成立,这与R 3NF矛盾。矛盾。 所以所以R 2NF。2005-9-441安财信工学院计算机系范式之间的关系范式之间的关系()vBCNF 3NF反证:若反证:若R BCNF, 但但R 3NF,则按,则按3NF定义,一定定义,一定有非主属性对码的传递依赖,于是存在:有非主属性对码的传递依赖,于是存在:R的码的码X ,属性组,属性组Y,以及非主属性,以及非主属性Z(Z Y),使得),使得XY, Y Z,YX成立成立 。由由YZ,按,按BCNF定义,定义,Y含有码,于是含有码,于是YX成立,这成立,这与与YX矛盾。矛盾。 所以所以R 3NF。v4NF BCNF 2005-9-442安财信工学院计算机系函数依赖函数依赖非平凡的函数依赖非平凡的函数依赖平凡的函数依赖平凡的函数依赖决定因素决定因素完全函数依赖完全函数依赖部分函数依赖部分函数依赖传递函数依赖传递函数依赖候选码候选码主码主码主属性主属性非主(码)属性非主(码)属性全码全码外部码外部码多值依赖多值依赖非平凡的多值依赖非平凡的多值依赖总结:总结: 关系数据理论关系数据理论1NF2NF3NFBCNF4NF5NF2005-9-443

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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