关系数据理论讲稿.ppt
《关系数据理论讲稿.ppt》由会员分享,可在线阅读,更多相关《关系数据理论讲稿.ppt(110页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关系数据理论第一页,讲稿共一百一十页哦教学目的教学目的:关系模式的异常问题 函数依赖 Armstrong公理 闭包及其计算算法 最小依赖集和候选码的求解方法 1NF,2NF,3NF和BCNF的概念 模式分解的等价标准重点难点重点难点:Armstrong公理系统 最小依赖集和候选码的求解方法 如何将模式分解为1NF,2NF,3NF和BCNF教学方法教学方法:多媒体教学教学课时教学课时:10节理论课+2节习题课第二页,讲稿共一百一十页哦目目 录录6.1 问题的提出问题的提出6.2 规范化规范化6.3 函数依赖的公理系统函数依赖的公理系统6.4 模式的分解模式的分解第三页,讲稿共一百一十页哦6.1
2、问题的提出针对一个具体的问题,应该如何构造一个适合于它的数据模式?即应该构造几个关系模式?每个关系模式由哪些属性组成呢?这就是数据库设计的问题。对于一个信息系统来说,如果所设计的数据库均具有良好的、合理的范式级别,那么系统的正确性将自动得到某种保证。第四页,讲稿共一百一十页哦如:对于学生和课程的关系模式,属性集:U=sno、dept、dean、cno、grade关系模式包含的语义:(1)一个系有多名学生,但一个学生只属于一个系(2)一个系只有一名正系主任(3)一个学生可以选修多门课程,一门课程有多名学生选修根据语义,得到属性之间有某种关系,即属性值之间的相互依赖又相互制约的关系,称它为数据依赖
3、。数据依赖分为:函数依赖和多值依赖。1 1、数据依赖、数据依赖一个关系模式描述为:R(U,D,dom,F),F是属性组U上的一组数据依赖。第五页,讲稿共一百一十页哦假如有下关系模式:学生表D(Sno,Sname,Sdept,Sage,Cno,Cname,Credit,Grade)D(Sno,Sname,Sdept,Sage,Cno,Cname,Credit,Grade)在数据库中的D表模式信息如图表:Sno(5)Sname(10)Sdept(10)Sage(2)Cno(5)Cname(20)Credit(2)Grade(2)0001张三计算机17c101数据结构4900001张三计算机17c1
4、02网络安全3880001张三计算机17c103软件工程4780001张三计算机17c105数值分析2800001张三计算机17c110编译原理3860002李四物理19c103软件工程 4820002李四物理19c105数值分析2800003王五计算机17c107C语言475此关系的关键字:sno+cno2 2、什么是不好的关系模式?、什么是不好的关系模式?第六页,讲稿共一百一十页哦此表包含了哪些信息呢?一个学生可以选多门课程一门课程可以被多名学生选修一个学生选修一门课程的成绩在实际应用中,此关系会不会出现问题呢?可能出现些什么问题?第七页,讲稿共一百一十页哦第一类问题是数据冗余太大,这表现
5、在:总字节数=(5+10+10+2+5+20+2+2)*8=448B 关于学生张三的sname、sdept和Sage在关系中出现了五次。这样,一方面浪费存储空间,另一方面系统要付出很大的代价来维护数据库的完整性。第二类问题是更新出现异常,这表现在:(1)修改异常:如果把张三同学的sdept改为“数学”,那么它要修改5次,在维护D表时不够小心的话,可能我只修改了四次,漏掉了一个,那么张三同学的sdept的值就有两个(计算机,数学),这样造成数据不一致。第八页,讲稿共一百一十页哦(2)插入异常:此表的主关键字是(sno,cno),那么这两个字段不能为空。在这个数据表中,如果我们要插入一门课程的信息
6、,但此课程本学期不开设,故无学生选读,这样就无法将这门课程的信息存入到数据表中,这就使表在功能上产生了极不正常的现象。如果在Sno和Sname两属性上定义了非空约束,上述元组的插入就是非法操作。(该插入的数据不能插入。)(3)删除异常:如果在这个数据表中0003的王五同学因病退学,因而有关他的元组在数据表中就被删除,但遗憾的是在王五的有关情况删除时,连课程“C语言”的有关信息也同时被删除了(因为在这个数据表中,只有在王五这个元组中记载有“C语言”课程的有关信息),并且在整个数据表中再也找不到有关课程“C语言”的有关信息了。这就叫做:“城门失火,殃及池鱼”。这也是数据表中的一种极其不正常的现象,
7、这种现象就叫删除异常。(不该被删除的数据被删除。)第九页,讲稿共一百一十页哦问题的分析 这两类现象的根本原因在于关系的结构。一个关系可以有一个或者多个候选键,其中一个可以选为主键。主键的值唯一确定其他属性的值,它是各个元组之间区别的标识,也是一个元组存在的标识。这些候选键的值不能重复出现,也不能全部或者部分设为空值。本来这些候选键都可以作为独立的关系存在,而现在却不得不依附于其他关系而存在。这就是关系结构带来的限制,它不能正确反映现实世界的真实情况。如果在构造关系模式的时候,不从语义上研究和考虑到属性间的这种关联,而简单地将有关系和无关系的、关系密切的和关系松散的属性都随意编排在一起,就必然发
8、生某种冲突,引起某些“排它”现象出现,即冗余度水平较高,更新产生异常。解决问题的根本方法就是将关系模式进行分解,也就是进行关系的规范化。第十页,讲稿共一百一十页哦6.2 规范化关系数据库中关系规范化问题在1970年Codd提出关系模型时同时被提出来。关系模式必须是规范化的,规范化的最基本要求是关系的每个分量必须是不可再分的数据项。但是,并不是所有满足基本要求的关系模式就是一个好的关系模式,一个好的关系模式必须能很好的反映现实世界。为了说明一个好的关系模式如何能真实的反映现实世界,必须首先要研究关系模式中属性之间的数据依赖关系。第十一页,讲稿共一百一十页哦snocnogradesdeptdean
9、1、函数依赖FD(Functional Dependency)给定一个属性的值,另一个属性的值也会唯一的确定了。这种关系像数学中的函数。因此称之为函数依赖。如前例:学生(sno,sdept、dean、cno、grade)规定:一个学生只能属于一个系,一个系只能有一个系主任,每个学生每学一门课程只有一个成绩。即:sno的值一经确定后sdept的值也随之唯一地确定了,此时即称sno函数决定sdept或称sdept函数依赖于sno,它可用下面符号表示:snosdept同样,我们还可以有:sdeptdean (sno,cno)grade其函数依赖图为:6.2.1 函数依赖第十二页,讲稿共一百一十页哦定
10、义6.1:设有关系模式R(U),属性集合U=A1,A2,An,X,Y是U的子集,设u,v是关系r中的任意两个元组,若有uX=vX,就有uY=vY(即r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等。换句话说,对于任一个关系R中的任一元组在X中的属性值确定后则在Y中的属性值必确定),则称Y函数依赖于X或称X函数决定Y,并记作XY,而其中X称为决定因素,Y称为依赖因素。例如:在关系D中,各属性间的函数依赖集合为:F=snosname,snosdept,snosage,cno cname,cno credit,cno+snograde第十三页,讲稿共一百一十页哦课堂练习:设有一个关系模
11、式R(A,B,C,D),在关系R中,属性值间有这样的联系:A值与B值有一对多联系,即每个A值有多个B值与之联系,而每个B值只有一个A值与之联系;C值与D值是一对一联系,即每个C值只有一个D值与之联系,每个D值只有一个C值与之联系。试写出相应的函数依赖。BADC,CD第十四页,讲稿共一百一十页哦函数依赖与属性关系:函数依赖与属性关系:属性之间有3种关系,但并不是每一种关系中都存在函数依赖。设有属性集X、Y以及关系模式R:如果X和Y之间是“1:1”关系(学校和校长),则存在函数依赖:XY 和YX如果X和Y之间是“m:1”关系(学生和班长),则存在函数依赖:XY 如果X和Y之间是“m:n”关系(学生
12、和课程),则X和Y之间不存在函数依赖。第十五页,讲稿共一百一十页哦注意:注意:不是R的某个关系,而是R的一切关系,任意抽取两个元组函数依赖与码有关,而函数依赖和码都是由语义决定的,是由数据库开发人员,根据用户模型和事务规则人为确定的。所以数据依赖属于语义范畴,不能用数学方法去证明。第十六页,讲稿共一百一十页哦2、平凡函数依赖与非平凡函数依赖 设函数依赖关系XY,若满足Y X,则称此函数依赖是非平凡的函数依赖。在本章中若无特殊声明,凡提到函数依赖时总认为指的是非平凡的函数依赖。设函数依赖关系XY,若满足Y X,则称此函数依赖是平凡的函数依赖。若XY,YX,称为XY第十七页,讲稿共一百一十页哦这里
13、引入一种完全函数依赖的概念,这个概念为真正的函数依赖打下基础。例如在D中我们有SnoSdept,因而我们同样也会有:(Sno,Sname)Sdept(Sno,Sage)Sdept比较这三种函数依赖后我们会发现,实际上真正起作用的函数依赖是:SnoSdept 而其他两种函数依赖都是由它派生而成的,即是说在函数依赖中真正起作用的是Sno,而不是Snane或Sage等。这样,我们在研究函数依赖时要区别这两种不同类型的函数依赖,前一种叫完全函数依赖,而后一种叫不完全函数依赖(部分函数依赖)。3、完全函数依赖与部分函数依赖、完全函数依赖与部分函数依赖第十八页,讲稿共一百一十页哦定义6.2:R(U)中如有
14、X,YU,满足XY,且对任何X的真子集X,都有XY不成立,则称Y完全函数依赖于X,并记作:X Y 在R(U)中如有X,YU,满足XY,对任何X的真子集X,都有XY成立,则称Y部分依赖于X,或称Y函数依赖于X的某个真子集,记作:X Y 由上所述可知,Sdept完全函数依赖于Sno,但Sdept不完全函数依赖于(Sno,Sname),亦即有:Sno Sdept (Sno,Sname)Sdept (Sno,Sage)SdeptFPFPP第十九页,讲稿共一百一十页哦 在函数依赖中还要区别直接函数依赖与间接函数依赖这两个不同的概念,例如SnoSdept中Sdept是直接函数依赖于Sno,但如果在属性中有
15、系主任dean(假如每个系有唯一的一个系主任),则有:Sdeptdean,从而由SnoSdept及Sdeptdean可得到:Snodean 在这个函数依赖中,dean并不直接函数依赖于Sno,而是经过中间属性Sdept传递而依赖于Sno,亦即是dean直接依赖于Sdept(Sdept不依赖于Dean),而Sdept又直接依赖于Sno,从而构成了dean依赖于Sno。这种函数依赖关系,是一种间接依赖关系,或叫传递依赖关系。我们可以对它定义如下。定义6.3:在R(U)中如有X,Y,ZU且满足:XY,(YX)Y /X,YZ 则称Z传递函数依赖于X,否则,称为非传递函数依赖。记为:X ZT4、传递函数
16、依赖、传递函数依赖第二十页,讲稿共一百一十页哦定义6.4:设K为R中的属性或属性组合,若KU且满足 K U,则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。在最简单的情况下,候选码只包含一个属性。包含在任何一个候选码中的属性,叫做主属性。不包含在任何码中的属性称为非主属性或非码属性。所有的属性的组合构成候选码,这时称为全码。F例:有关系CSZ(city,st,zip),其中有三个属性:城市city,街道st,邮政编码zip。其函数依赖关系为:F=(city,st)zip,zipcity解:在这个关系模式中,有两个候选码(city,st)和(st,zip)。所以city,st,zip
17、都是主属性。6.2.2 码码(键键)第二十一页,讲稿共一百一十页哦6.3 函数依赖的公理系统1、逻辑蕴涵、逻辑蕴涵定义6.11:设F是关系模式R的函数依赖集合,由F出发可以证明其他某些函数依赖也成立,我们称这些函数依赖被F逻辑蕴涵。如:F=AB,BC,从这个函数依赖集中可以推出AC,所以说函数依赖集F逻辑蕴涵函数依赖AC。1974年W.W.Armstrong首先提出了函数依赖的公理系统,称为Armstrong公理(Armstrongs axioms)。对于一组已知的函数依赖,利用该公理可导出所逻辑蕴函的函数依赖,从而确定一个关系模式中的码。第二十二页,讲稿共一百一十页哦2、Armstrong公
18、理公理 公理如下:设U为属性集总体,X,Y,Z,W均是U的子集,F是U上的一组函数依赖,于是有关系模式RU,F。对RU,F且有:A1:若Y X U,则XY为F所蕴涵(自反律)。A2:若XY为F所蕴含,且Z U,则XZYZ为F所蕴涵(增广律)。A3:若XY及YZ为F所蕴含,则XZ为F所蕴涵(传递律)。根据Armstrong公理可以得到下面另三条很有用的推论:推论1:由XY,XZ,有XYZ(合并律)。推论2:由XY,WYZ,有XWZ(伪传递律)。推论3:由XZY,有XY及XZ 成立(分解律)。第二十三页,讲稿共一百一十页哦4、算法、算法6.1 属性集闭包的计算。属性集闭包的计算。原则上讲,对于一个
19、关系模式R(U,F),根据已知的函数依赖F,反复使用前面的规则,可以计算函数依赖集合F的闭包F+。但是,利用推理规则求出其全部的函数依赖F+是非常困难的,而且也没有必要。因此,可以计算闭包的子集,即选择一个属性子集,判断该属性子集能函数决定哪些属性,这就是利用属性集闭包的概念。(1)定义:设F为属性集U上的一组函数依赖,X U,即X是U的一个子集。在函数依赖集合F下,被X函数决定的所有属性为F+下属性集X的闭包,记作X+,记X+=A|XA。(2)计算属性集闭包X+的算法如下:输入:X,F 输出:X+3、函数依赖集合、函数依赖集合 F的闭包的闭包F+定义6.13:由F所逻辑蕴涵的所有的函数依赖的
20、集合,称为F的闭包,记为F+第二十四页,讲稿共一百一十页哦迭代算法的步骤:选取X+的初始值为X,即X+X;计算X+,X+XZ,其中Z要满足如下条件:Y X+,且F中存在一函数依赖YZ,就把Z并到X+中。实际上就是以X+中的属性子集作为函数依赖的决定因素,在F中搜索函数依赖集,找到函数依赖的被决定属性Z放到X+中。判断:如果X+没有变化?或X+等于U?则X+就是所求的结果,算法终止。否则转。因为U是有穷的,所以上述迭代过程经过有限步骤之后就会终止。第二十五页,讲稿共一百一十页哦例:已知关系模式R(U,F),其中U=A,B,C,D,E,F=AB C,B D,C E,EC B,AC B,求(AB)+
21、。解:令(AB)+=AB在F中找出左边是AB子集的函数依赖,其结果是:ABC,BD,所以(AB)+=(AB)+CD=ABCD,在F中找出左边是ABCD子集的函数依赖,其结果是:CE,ACB,得到(AB)+=(AB+BE)=ABCDE判断(AB)+=ABCDE=U,算法结束。由于(AB)+有变化但不等于U,所以继续迭代。由计算结果可知,(AB)可以决定属性集合U=A,B,C,D,E,所以,(AB)是一个候选码。但不是唯一的候选码。第二十六页,讲稿共一百一十页哦课堂练习:设有关系模式R(U,F),其中U=A,B,C,D,E,I,F=AD,ABE,BIE,CDI,EC,计算(AE)+结果为:(AE)
22、+=ACDEI第二十七页,讲稿共一百一十页哦5、Armstong公理系统的完备性和有效性有效性是指:由F出发根据Armstrong公理推导出来的每一个函数依赖一定在F所逻辑蕴涵的函数依赖。也就是说只要使用F中的依赖为真,则用公理推出的函数依赖也为真。完备性是指:F所逻辑蕴涵的每一个函数依赖,必定可以由F出发根据Armstrong公理推导出来。也就是说F+中的所有函数依赖都能用公理推出。实质上:Armstrong公理是正确和完备的。第二十八页,讲稿共一百一十页哦6、求函数依赖的最小集定义6.15:对于给定的函数依赖F,当满足下列条件时,称为F的最小依赖集,记作FM。(1)FM的每个依赖的右边都是
23、单个属性。(2)对于FM中的任何一个XA和X的真子集Z,(FM-XA)ZA与FM都不等价。(保证了FM中每个函数依赖的左边没有多余的属性)(3)对于FM中的任何一个函数依赖XA,FM-XA与FM都不等价。(保证了在FM中不存在多余的函数依赖)定理:每个函数依赖集与它的最小依赖集FM等价。第二十九页,讲稿共一百一十页哦输入:一个函数依赖集F输出:F的一个等价最小依赖集G方法:(1)应用分解规则,使F中每一个依赖的右边属性单一化。(2)去掉各依赖左边多余的属性。具体做法是;一个一个地检查F中左边是非单属性的依赖,例如XYA。现在要判断Y是否多余的,即以XA代替XYA是否等价。只要在F中求X+,若X
24、+包含A,则Y是多余的属性;否则Y不是多余的属性。依次判断其他属性即可消除各依赖左边的多余属性。(3)去掉多余的依赖。具体做法是:从第一个依赖开始,从F中去掉它(假设该依赖是XY),然后在剩下的依赖中求X+,看X+是否包含Y,若是,则可以去掉XY;若不包含Y,则不能去掉。第三十页,讲稿共一百一十页哦例:设有依赖集:F=ABC,CA,BCD,ACDB,DEG,BEC,CGBD,CEAG,计算其等价的最小依赖集。解:(1)将依赖右边属性单一化,结果为:F1=ABC,CA,BCD,ACDB,DE,DG,BEC,CGB,CGD,CEA,CE G (2)在F1中去掉左边多余的属性。、对于ACDB,由于(
25、CD)+=ABCDEG,则A是多余的,所以结果为:F2=ABC,CA,BCD,CDB,DE,DG,BEC,CGB,CGD,CE G、对于CEA,由于CA,则E是多余的 (3)在F2中去掉多余的依赖。对于CDB,在剩下的函数依赖中,由于(CD)+=CDAEGB,所以CDB是多余的,则Fm=ABC,CA,BCD,DE,DG,BEC,CGB,CGD,CEG或者对于CGB,由于(CG)+=ABCDEG,所以CGB是多余的,则Fm=ABC,CA,BCD,CDB,DE,DG,BEC,CGD,CEG总结:总结:求得的最小依赖集并不是唯一的。第三十一页,讲稿共一百一十页哦课堂练习:设有关系模式,其中U=E,F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据 理论 讲稿
限制150内