《第七章 关系数据库理论精选文档.ppt》由会员分享,可在线阅读,更多相关《第七章 关系数据库理论精选文档.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章 关系数据库理论本讲稿第一页,共三十六页本章教学目标、重点和难点本章教学目标、重点和难点 1.本章教学目标:使学生了解关系模式规范化的必要性,理解函数依赖、多值依赖及其关系范式定义,掌握关系范式判断方法。2.教学重点:关系模式规范化,函数依赖、多值依赖、1-4NF的定义,关系范式判断方法。3.教学难点:1-4NF的定义,关系范式判断方法。本讲稿第二页,共三十六页关系模式规范化的提出关系模式规范化的提出1.范式(Normal Form)是指规范化的关系模式。2.由满足最基本规范化的关系模式叫第一范式,第一范式的关系模式再满足另外一些约束条件就产生了第二范式、第三范式、BC范式等等。3.一个
2、低一级的关系范式通过模式分解可以转换成若干高一级范式的关系模式的集合,这种过程叫关系模式的规范化。本讲稿第三页,共三十六页关系模式规范化的提出关系模式规范化的提出要求设计教学管理数据库,其关系模式SCD如下:SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)其中,SNO表示学生学号,SN表示学生姓名,AGE表示学生年龄,DEPT表示学生所在的系别,MN表示系主任姓名,CNO表示课程号,SCORE表示成绩。本讲稿第四页,共三十六页关系模式规范化的提出关系模式规范化的提出根据实际情况,这些数据有如下语义规定:1.一个
3、系有若干个学生,但一个学生只属于一个系;2.一个系只有一名系主任,但一个系主任可以同时兼几个系的系主任;3.一个学生可以选修多门功课,每门课程可有若干学生选修;4.每个学生学习课程有一个成绩。在此关系模式中填入一部分具体的数据,则可得到SCD关系模式的实例,即一个教学管理数据库,如图所示。本讲稿第五页,共三十六页关系模式规范化的提出关系模式规范化的提出SNOSNOSNSNAGEAGEDEPTDEPTMNMNCNOCNOSCORESCORES1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信
4、息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193本讲稿第六页,共三十六页关系模式规范化的提出关系模式规范化的提出根据上述的语义规定,并分析以上关系中的数据,我们可以看出:(SNO,CNO)属性的组合能唯一标识一个元组,所以(SNO,CNO)是该关系模式的主关系键。但在进行数据库的操作时,会出现以下几方面的问题。1.数据冗余。每个系名和系主任的名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要重复存储多次,数据的冗余度很大,浪费了存储空间。本讲稿第七页,共三十六页关系模式规范化的提出关
5、系模式规范化的提出2.插入异常。如果某个新系没有招生,尚无学生时,则系名和系主任的信息无法插入到数据库中。(1)因为在这个关系模式中,(SNO,CNO)是主关系键。根据关系的实体完整性约束,主关系键的值不能为空,而这时没有学生,SNO和CNO均无值,因此不能进行插入操作。(2)另外,当某个学生尚未选课,即CNO未知,实体完整性约束还规定,主关系键的值不能部分为空,同样不能进行插入操作。本讲稿第八页,共三十六页关系模式规范化的提出关系模式规范化的提出3.删除异常。某系学生全部毕业而没有招生时,删除全部学生的记录则系名、系主任也随之删除,而这个系依然存在,在数据库中却无法找到该系的信息。另外,如果
6、某个学生不再选修C1课程,本应该只删去C1,但C1是主关系键的一部分,为保证实体完整性,必须将整个元组一起删掉,这样,有关该学生的其它信息也随之丢失。本讲稿第九页,共三十六页关系模式规范化的提出关系模式规范化的提出4.更新异常。如果学生改名,则该学生的所有记录都要逐一修改SN;又如某系更换系主任,则属于该系的学生记录都要修改MN的内容,稍有不慎,就有可能漏改某些记录,这就会造成数据的不一致性,破坏了数据的完整性。本讲稿第十页,共三十六页关系模式规范化的提出关系模式规范化的提出由于存在以上问题,我们说,SCD是一个不好的关系模式。产生上述问题的原因,直观地说,是因为关系中“包罗万象”,内容太杂了
7、。那么,怎样才能得到一个好的关系模式呢?我们把关系模式SCD分解为下面三个结构简单的关系模式,如图所示。学生关系学生关系S(SNO,SN,AGE,DEPT)S(SNO,SN,AGE,DEPT)选课关系选课关系SC(SNO,CNO,SCORE)SC(SNO,CNO,SCORE)系关系系关系D(DEPT,MN)D(DEPT,MN)本讲稿第十一页,共三十六页关系模式规范化的提出关系模式规范化的提出SNOSNAGEDEPTSNOCNOSCORES1赵亦17计算机S1C190S2钱尔18信息S1C285S3孙珊20信息S2C557S4李思21自动化S2C680S2C7D D D DS2C570DEPTM
8、NS3C10计算机刘伟S3C270信息王平S3C485自动化刘伟S4C193SCSCS S本讲稿第十二页,共三十六页关系模式规范化的提出关系模式规范化的提出在以上三个关系模式中,实现了信息的某种程度的分离,S中存储学生基本信息,与所选课程及系主任无关;D中存储系的有关信息,与学生无关;SC中存储学生选课的信息,而与所学生及系的有关信息无关。本讲稿第十三页,共三十六页关系模式规范化的提出关系模式规范化的提出与SCD相比,分解为三个关系模式后,数据的冗余度明显降低。1)当新插入一个系时,只要在关系D中添加一条记录。2)当某个学生尚未选课,只要在关系S中添加一条学生记录,而与选课关系无关,这就避免了
9、插入异常。3)当一个系的学生全部毕业时,只需在S中删除该系的全部学生记录,而关系D中有关该系的信息仍然保留,从而不会引起删除异常。4)同时,由于数据冗余度的降低,数据没有重复存储,也不会引起更新异常。本讲稿第十四页,共三十六页关系模式规范化的提出关系模式规范化的提出经过上述分析,我们说分解后的关系模式是一个好的关系数据库模式。从而得出结论,一个好的关系模式应该具备以下四个条件:尽可能少的数据冗余。尽可能少的数据冗余。没有插入异常。没有插入异常。没有删除异常。没有删除异常。没有更新异常。没有更新异常。本讲稿第十五页,共三十六页关系模式规范化的提出关系模式规范化的提出但要注意,一个好的关系模式并不
10、是在任何情况下都是最优的 比如查询某个学生选修课程名及所在系的系主任时,要通过连接,而连接所需要的系统开销非常大,因此要以实际设计的目标出发进行设计。本讲稿第十六页,共三十六页关系模式应满足的基本要求关系模式应满足的基本要求1)元组的每个分量必须是不可分的数据项。2)数据库中的数据冗余应尽可能少。3)关系数据库不能因为数据更新操作而引起数据不一致问题。4)当执行数据插入操作时,数据库中的数据不能产生插入异常现象。5)数据库中的数据不能在执行删除操作时产生删除异常问题。6)数据库设计应考虑查询要求,数据组织应合理。本讲稿第十七页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式1.1.关系
11、模式的简化表示法关系模式的简化表示法关系模式的完整表示是一个五元组:R RU U,D D,DomDom,F F.其中:R为关系名;U为关系的属性集合;D为属性集U中属性的数据域;Dom为属性到域的映射;F为属性集U的数据依赖集。关系模式可以用三元组来为:RU,F本讲稿第十八页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式关系模式中的各属性之间相互依赖、相互制约的联系称为数据依赖。数据依赖一般分为函数依赖、多值依赖和连接依赖。其中,函数依赖是最重要的数据依赖。函数依赖(Functional Dependency)是关系模式中属性之间的一种逻辑依赖关系。本讲稿第十九页,共三十六页函数依赖
12、及其关系的范式函数依赖及其关系的范式所谓的函数依赖是指一个或一组属性的值可以决定其他属性的值。例如在上一节介绍的关系模式SCD中,SNO与SN、AGE、DEPT之间都有一种依赖关系。由于一个SNO只对应一个学生,而一个学生只能属于一个系,所以当SNO的值确定之后,SN,AGE,DEPT的值也随之被唯一的确定了。这类似于变量之间的单值函数关系。设单值函数Y=F(X),自变量X的值可以决定一个唯一的函数值Y。在这里,我们说SNO决定函数(SN,AGE,DEPT),或者说(SN,AGE,DEPT)函数依赖于SNO。本讲稿第二十页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式根据以上得出的函
13、数依赖的集合为F=snoSN,snoage,sno dept,dept mn,(sno,cno)score)SNSnocnodeptMNAgescore本讲稿第二十一页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式定义 设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y是U的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体值与之对应,则称X决定函数Y,或Y函数依赖于X,记作XY。我们称X为决定因素,Y为依赖因素。当Y不函数依赖于X时,记作:X Y。当XY且YX时,则记作X Y。本讲稿第二十二页,共三十六页函数依赖及其关系的范式函数依
14、赖及其关系的范式对于关系模式SCDU=SNO,SN,AGE,DEPT,MN,CNO,SCOREF=SNOSN,SNOAGE,SNODEPT一个SNO有多个SCORE的值与其对应,因此SCORE不能唯一地确定,即SCORE不能函数依赖于SNO,所以有:SNO SCORE。但是SCORE可以被(SNO,CNO)唯一地确定。所以可表示为:(SNO,CNO)SCORE。本讲稿第二十三页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式平凡的函数依赖与非平凡的函数依赖。当属性集Y是属性集X的子集时,则必然存在着函数依赖XY,这种类型的函数依赖称为平凡的函数依赖。如果Y不是X的子集,则称XY为非平凡
15、的函数依赖。若不特别声明,我们讨论的都是非平凡的函数依赖。本讲稿第二十四页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式我们只能根据语义来确定一个函数依赖,而不能按照其形式化定义来证明一个函数依赖是否成立。例如,对于关系模式S,当学生不存在重名的情况下,可以得到:SNAGESNDEPT这种函数依赖关系,必须是在没有重名的学生条件下才成立的,否则就不存在函数依赖了。所以函数依赖反映了一种语义完整性约束。本讲稿第二十五页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式函数依赖与属性之间的联系类型有关函数依赖与属性之间的联系类型有关(1)在一个关系模式中,如果属性X与Y有1:1联系
16、时,则存在函数依赖XY,YX,即X Y。例如,当学生无重名时,SNO SN。(2)如果属性X与Y有1:m的联系时,则只存在函数依赖XY。例如,SNO与AGE,DEPT之间均为1:m联系,所以有SNOAGE,SNODEPT。(3)如果属性X与Y有m:n的联系时,则X与Y之间不存在任何函数依赖关系。例如,一个学生可以选修多门课程,一门课程又可以为多个学生选修,所以SNO与CNO之间不存在函数依赖关系。本讲稿第二十六页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式2)在RU中,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖,记作:XY;若XY,但Y不完全函 数
17、依 赖 于X,则 称Y对X部 分 函 数 依 赖,记 作:XY。例如,在教学关系模式:(学号,课程名)成绩,(学号,课程名)姓名FPFP本讲稿第二十七页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式3)在RU中,如果XY,(YX),Y X,YZ,则称Z对X传递函数依赖。传递函数依赖记作X Z。传递例如,在教学模式中,因为:学号系名,系名系主任;所以:学号 系主任。传递传递本讲稿第二十八页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式如果关系模式R,其所有的属性均为简单属性,即每个属性都是不可 再 分 的,则 称R属 于 第 一 范 式,记 作R1NF。若R1NF,且每一个非
18、主属性完全依赖于码,则R2NF。本讲稿第二十九页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式在教学模式中:属性集=学号,姓名,年龄,系名,系主任,课程名,成绩.函数依赖集=学号姓名,学号年龄,学号性别,学号系名,系名系主任,(学号,课程名)成绩.主码=(学号,课程名).F非主属性=(姓名,年龄,系名,系主任,成绩)。本讲稿第三十页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式非主属性对码的函数依赖:(学号,课程名)姓名,(学号,课程名)年龄,(学号,课程号)性别,(学号,课程名)系名,(学号,课程名)系主任;(学号,课程名)成绩.显然,教学模式不服从2NF,即:教学2NF
19、。PPPPP本讲稿第三十一页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式关系模式RU,F中若不存在这样的码X、属性组Y及非主属性Z(ZY)使得XY、Y X、YZ成立,则称RU,F3NF。可以证明,若R3NF,则每一个非主属性既不部分函数依赖于码,也不传递函数依赖于码。本讲稿第三十二页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式考查学生_系关系,由于存在:学号系名,系名系主任。则:学号 系主任。所以学生_系3NF。如果分解为:学生(学号,姓名,年龄,性别,系名);教学系(系名,系主任).显然分解后的各子模式均属于3NF。传递本讲稿第三十三页,共三十六页函数依赖及其关系的范
20、式函数依赖及其关系的范式关系模式RU,F1NF。若XY且YX时X必含有码,则RU,FBCNF。也就是说,关系模式RU,F中,若每一个决定因素都包含码,则RU,FBCNF。由BCNF的定义可以得到结论,一个满足BCNF的关系模式有:1)所有非主属性对每一个码都是完全函数依赖。2)所有的主属性对每一个不包含它的码,也是完全依赖。3)没有任何属性完全函数依赖于非码的任何一组属性。本讲稿第三十四页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式1)BCNF不仅强调其他属性对码的完全的直接的依赖,而且强调主属性对码的完全的直接的依赖,它包括3NF,即RBCNF,则R一定属于3NF。2)3NF只强调非主属性对码的完全直接依赖,这样就可能出现主属性对码的部分依赖和传递依赖。本讲稿第三十五页,共三十六页函数依赖及其关系的范式函数依赖及其关系的范式例如,关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。语义为:每一教师只能讲授一门课程,每门课程由若干教师讲授;每个学生选修某门课程就对应一个固定的教师。由语义可以得到STJ模式的函数依赖为:F=(S,J)T,TJ显然:(S,J)和(T,S)都是关系的码;关系的主属性集为S,T,J,非主属性为(空集)。P由于STJ模式中无非主属性,所以它属于3NF;但因为存在TJ,由于T不是码,故STJBCNF。本讲稿第三十六页,共三十六页