五关系数据库理论.ppt

上传人:hs****ma 文档编号:570140633 上传时间:2024-08-02 格式:PPT 页数:40 大小:513.31KB
返回 下载 相关 举报
五关系数据库理论.ppt_第1页
第1页 / 共40页
五关系数据库理论.ppt_第2页
第2页 / 共40页
五关系数据库理论.ppt_第3页
第3页 / 共40页
五关系数据库理论.ppt_第4页
第4页 / 共40页
五关系数据库理论.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

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

1、多媒体数据库技术多媒体数据库技术第五章第五章 关系数据库理论关系数据库理论 西安理工大学 康晓兵1内内 容容 提提 纲纲l关系数据库以数学理论为基础,因此关系模型可以设关系数据库以数学理论为基础,因此关系模型可以设计得更加科学。对于关系模型的三要素(数据结构、计得更加科学。对于关系模型的三要素(数据结构、关系操作及完整性约束条件)来说,关系模式可以设关系操作及完整性约束条件)来说,关系模式可以设计的更加合理,关系操作可以进行优化,效率更高。计的更加合理,关系操作可以进行优化,效率更高。关系数据理论包括数据库设计理论(即规范化理论)关系数据理论包括数据库设计理论(即规范化理论)和数据库操作理论(

2、即查询优化理论)。本章主要研和数据库操作理论(即查询优化理论)。本章主要研究规范化理论究规范化理论。5.1关系模式设计中存在的问题(规范化的必要性)关系模式设计中存在的问题(规范化的必要性)5.2函数依赖函数依赖5.3 关系模式规范化和范式关系模式规范化和范式2知识回顾知识回顾一、关系模式的形式化定义一、关系模式的形式化定义二、关系模式的简化定义二、关系模式的简化定义三、什么是数据依赖三、什么是数据依赖3一、关系模式的形式化定义一、关系模式的形式化定义关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它是一个五元组:R(U,D,DOM,F)R:关系名关系名U:组成该关系的属性名集

3、合组成该关系的属性名集合D:属性组属性组U中属性所来自的域中属性所来自的域DOM:属性向域的映象集合属性向域的映象集合F:属性间数据的依赖关系集合属性间数据的依赖关系集合4二、关系模式的简化表示二、关系模式的简化表示l关系模式关系模式R(U,D,DOM,F)简化为一个三元组:简化为一个三元组:R(U,F)l当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称为称为关系模式关系模式R(U,F)的一个的一个关系关系5三、什么是数据依赖(三、什么是数据依赖()1. 1. 完整性约束的表现形式完整性约束的表现形式l限定属性取值范围:例如学生成绩必须在限定属性取值范围:例如学生成绩必须在0

4、-1000-100之间之间l定义属性定义属性值值间的相互关连(主要体现于值的间的相互关连(主要体现于值的相等与否相等与否),这就是数据依赖,它是数据库模式设计的关键,这就是数据依赖,它是数据库模式设计的关键6什么是数据依赖(什么是数据依赖()2. 2. 数据依赖数据依赖l一个关系内部属性与属性之间的约束关系一个关系内部属性与属性之间的约束关系l现实世界属性间相互联系的抽象现实世界属性间相互联系的抽象l数据内在的性质数据内在的性质l语义语义的体现的体现7什么是数据依赖(什么是数据依赖()3. 3. 数据依赖的类型数据依赖的类型l函数依赖(函数依赖(FunctionalDependency,简记为

5、简记为FD)l多值依赖(多值依赖(MultivaluedDependency,简记为简记为MVD)l其他其他85.1关系模式设计中存在的问题关系模式设计中存在的问题康晓兵康晓兵9关系模式设计中存在的问题(关系模式设计中存在的问题()l在设计教学管理数据库时,设计了如下一个关系模式:在设计教学管理数据库时,设计了如下一个关系模式:S(SNO,SN,AGE,DEPT,DEAN,CNO,G)l其其中中,SNO表表示示学学生生学学号号,SN表表示示学学生生姓姓名名,AGE表表示示学学生生年年龄龄,DEPT表表示示学学生生所所在在的的系系别别,DEAN表表示示系系主主任姓名,任姓名,CNO表示课程号,表

6、示课程号,G表示成绩。表示成绩。根据实际情况,这些数据有如下语义规定:根据实际情况,这些数据有如下语义规定:1.一个系有若干个学生,但一个学生只属于一个系;一个系有若干个学生,但一个学生只属于一个系;2.一一个个系系只只有有一一名名系系主主任任,但但一一个个系系主主任任可可以以同同时时兼兼几几个个系系的系主任;的系主任;3.一个学生可以选修多门课,每门课可有若干学生选修;一个学生可以选修多门课,每门课可有若干学生选修;4.每个学生学习一门课程有一个成绩。每个学生学习一门课程有一个成绩。10关系模式设计中存在的问题(关系模式设计中存在的问题()SNOSNAGEDEPTDEANCNOGS1赵亦赵亦

7、17计算机计算机刘伟刘伟C190S1赵亦赵亦17计算机计算机刘伟刘伟C285S2钱尔钱尔18信息信息王平王平C557S2钱尔钱尔18信息信息王平王平C680S2钱尔钱尔18信息信息王平王平C770S2钱尔钱尔18信息信息王平王平C870S3孙珊孙珊20信息信息王平王平C10S3孙珊孙珊20信息信息王平王平C270S3孙珊孙珊20信息信息王平王平C485S4李思李思20自动化自动化陈刚陈刚C193关系关系S11关系模式设计中存在的问题关系模式设计中存在的问题()l通过分析通过分析,(SNO,CNO)属性的组合能唯一标识一个元组,属性的组合能唯一标识一个元组,所以所以(SNO,CNO)是该关系模式

8、的主键。但在数据操作时是该关系模式的主键。但在数据操作时会产生以下问题:会产生以下问题:l信息的不可表示问题信息的不可表示问题l插入异常插入异常:如果某个新系没有招生,尚无学生时,:如果某个新系没有招生,尚无学生时,则系名和系主任的信息无法插入到数据库中。则系名和系主任的信息无法插入到数据库中。l删除异常删除异常:某系学生全部毕业而没有招生时,删:某系学生全部毕业而没有招生时,删除全部学生的记录则系名、系主任也随之删除,而除全部学生的记录则系名、系主任也随之删除,而这个系依然存在,在数据库中却无法找到该系的信这个系依然存在,在数据库中却无法找到该系的信息。息。12关系模式设计中存在的问题(关系

9、模式设计中存在的问题()l信息的冗余问题信息的冗余问题l数据冗余数据冗余:每个系名和系主任的名字存储的次数等于每个系名和系主任的名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,同时该系的学生人数乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要重复存储多次,数据的冗余学生的姓名、年龄也都要重复存储多次,数据的冗余度很大,浪费了存储空间。度很大,浪费了存储空间。l更新异常更新异常:如果学生改名,则该学生的所有记录都要如果学生改名,则该学生的所有记录都要逐一修改逐一修改SN; 又又如如某某系系更更换换系系主主任任,则则属属于于该该系系的的学学生生记记录录都都要要修修改改DEAN的的

10、内内容容,稍稍有有不不慎慎,就就有有可可能能漏漏改改某某些些记记录录,这这就会造成数据的不一致性,破坏了数据的完整性。就会造成数据的不一致性,破坏了数据的完整性。13关系模式设计中存在的问题(关系模式设计中存在的问题()lS是一个不好的关系模式是一个不好的关系模式l原因:原因:由存在于模式中的由存在于模式中的某些数据依赖某些数据依赖引起的引起的l解决方法:模式分解解决方法:模式分解l模式分解是关系规范化的主要方法模式分解是关系规范化的主要方法l把关系模式把关系模式S分解为下面三个结构简单的关系模式分解为下面三个结构简单的关系模式:l学生关系:学生关系:S(SNO,SN,AGE,DEPT)l选课

11、关系:选课关系:SC(SNO,CNO,G)l系关系:系关系:D(DEPT,DEAN)结果如下页图所示:很显然,消除了以上存在的四点结果如下页图所示:很显然,消除了以上存在的四点不足,数据库模型更加科学、合理。不足,数据库模型更加科学、合理。14关系模式设计中存在的问题(关系模式设计中存在的问题()SNOSNAGEDEPTSNOCNOGS1赵亦赵亦17计算机计算机S1C190S2钱尔钱尔18信息信息S1C285S3孙珊孙珊20信息信息S2C557S4李思李思21自动化自动化S2C680S2C770DS2C870DEPTDEANS3C10计算机计算机刘伟刘伟S3C270信息信息王平王平S3C485

12、自动化自动化陈刚陈刚S4C193 S SC155.2函数依赖函数依赖康晓兵康晓兵16规范化理论规范化理论l关系数据库系统的设计,关键是关系数据库模式的设计,一个好的关系数据库模式应该包括多少关系模式关系模式,而每一个关系模式又应该包括哪些属性属性,又如何将这些相互关联的关系模式组建一个合适的关系模型,这些工作决定了整个系统运行的效率,也是系统成败的关键所在,而这一切正是在关系数据规范化理论关系数据规范化理论的指导下逐步完成的。l关系数据的规范化理论主要包括三个方面的内容:关系数据的规范化理论主要包括三个方面的内容:l函数信赖函数信赖l范式(范式(NormalForm)l模式设计模式设计17函数

13、依赖(函数依赖()l函数依赖函数依赖函数依赖反映同一关系中属性间的一种约束关系。函数依赖反映同一关系中属性间的一种约束关系。关系模式的五元组表示:关系模式的五元组表示:R(U,D,Dom,F),在规范化过程中在规范化过程中D和和Dom可以不予考虑,关系模式可简化为三元组:可以不予考虑,关系模式可简化为三元组:R(U,F)设设R(U)是属性集是属性集U上的关系模式,上的关系模式,X,Y U,r是是R(U)上上的任意一个关系,如果的任意一个关系,如果对对 t,s r,若,若tX=sX,则,则tY=sY成立成立那么称那么称“X函数决定函数决定Y”,或或“Y函数依赖于函数依赖于X”,记作:记作:XY,

14、称称X为决定因素,为决定因素,Y称为依赖因素,称为依赖因素,如:如:SNOSN,(SNO,CNO)G注意:注意:t和和s是关系是关系r中任意二个元组。中任意二个元组。18函数依赖(函数依赖()l平凡函数依赖平凡函数依赖如果如果XY,但,但Y X,则称其为非平凡的函数依赖,则称其为非平凡的函数依赖,否则称为平凡的函数依赖否则称为平凡的函数依赖如(如(SNO,SN)SN是平凡的函数依赖是平凡的函数依赖l部分函数依赖部分函数依赖在在R(U)中,如果中,如果XY,且对于任意且对于任意X的真子集的真子集X,都都有有,则称,则称Y对对X完全函数依赖,记完全函数依赖,记作作否则称为否则称为Y对对X部分函数依

15、赖,记作部分函数依赖,记作 一般情况下一般情况下, ,总是讨论非平凡函数依赖总是讨论非平凡函数依赖XYX Y(SNO,CNO) G(SNO,CNO) SNX Y19函数依赖(函数依赖()l传递函数依赖传递函数依赖在在R(U)中,如果中,如果则称则称Z对对X传递函数依赖,记为:传递函数依赖,记为:X Z在在关系关系S(SNO,SN,AGE,DEPT,DEAN,CNO,G)中:SNODEPT,DEPTDEANSNODEANX X Y Y,(,(Y Y X X),),Y Y Z Z,Y Y X X,且且Z Z Y Y传递传递传递传递职工工资(职工,级别,工资)职工工资(职工,级别,工资)20函数依赖

16、范例函数依赖范例对于关系模式对于关系模式S(SNO,SN,DEPT,DEAN,CNO,G)主码:主码:(SNO,CNO)函数依赖集:函数依赖集:传递(SNO,CNO) G SNO SN,(SNO,CNO) SN SNO DEPT,(SNO,CNO)DEPT DEPT DEAN SNO DEAN215.3关系模式规范化和范式关系模式规范化和范式康晓兵康晓兵22范式范式l范式(范式(NormalForms,简记为简记为NF)定义定义l范式是对关系模式的不同范式是对关系模式的不同数据依赖程度数据依赖程度的衡量的衡量l通过模式分解将一个低级范式转换为若干个高级范式通过模式分解将一个低级范式转换为若干个

17、高级范式的过程称作规范化的过程称作规范化l显然显然4NF BCNF 3NF 2NF 1NF1NF2NF3NF4NFBCNF231NFl定义定义关系中每一分量不可再分。即不能以集合、序列等作关系中每一分量不可再分。即不能以集合、序列等作为属性值为属性值关系关系R属于第一范式,记为属于第一范式,记为R 1NFSNOCNOS1C1,C2,C3SNOCNOS1C1S1C2S1C3242NF()关系模式关系模式S(SNO,SN,DEPT,DEAN,CNO,G)S 1NFl不良特性不良特性l插入异常:插入异常:如果某个新系没有招生,尚无学生时,则系名如果某个新系没有招生,尚无学生时,则系名和系主任的信息无

18、法插入到数据库中和系主任的信息无法插入到数据库中l删除异常:删除异常:某系学生全部毕业而没有招生时,删除全部学某系学生全部毕业而没有招生时,删除全部学生的记录则系名、系主任也随之删除,而这个系依然存在,生的记录则系名、系主任也随之删除,而这个系依然存在,在数据库中却无法找到该系的信息在数据库中却无法找到该系的信息l更新异常:如果学生转系,若他选修了更新异常:如果学生转系,若他选修了k门课,则需要修门课,则需要修改改k次,同时系主任也随之修改多次次,同时系主任也随之修改多次l数据冗余:如果一个学生选修了数据冗余:如果一个学生选修了k门课,则有关他的所在门课,则有关他的所在系的信息重复系的信息重复

19、252NF()l定义定义l若若R 1NF,且每个非主属性完全依赖于码,则称且每个非主属性完全依赖于码,则称R 2NF(消除非主属性对码的部分依赖消除非主属性对码的部分依赖)S中的函数依赖集:中的函数依赖集:SNOSN,SNODEPT,DEPTDEAN,(SNO,CNO)G但但S 2NF,因为因为(SNO,CNO)为主码为主码非主属性:非主属性:SN,DEPT,DEAN,G(SNO,CNO) SN (SNO,CNO) DEPT(SNO,CNO) DEAN262NF()l改造改造非主属性有两种,一种完全依赖于码,一种部分依赖非主属性有两种,一种完全依赖于码,一种部分依赖于码。于码。将将S分解为:分

20、解为:SC(SNO,CNO,G)S_DEPT(SNO,SN,DEPT,DEAN)很显然,很显然,SC 2NF,S_DEPT 2NFl快速热身快速热身关系模式关系模式R(A,B,C,D),),码为码为AB,给出它的一给出它的一个函数依赖集,使得个函数依赖集,使得R属于属于1NF而不属于而不属于2NF273NF()S_DEPT(SNO,SN,DEPT,DEAN)l不良特性不良特性l插入异常:如果系中没有学生,则有关系的信息就无法插插入异常:如果系中没有学生,则有关系的信息就无法插入入l删除异常:如果学生全部毕业了,则在删除学生信息的同删除异常:如果学生全部毕业了,则在删除学生信息的同时有关系的信息

21、也随之删除了时有关系的信息也随之删除了l更新异常:如果学生转系,不但要修改更新异常:如果学生转系,不但要修改DEPT,还要修改还要修改DEAN,如果换系主任,则该系每个学生元组都要做相应如果换系主任,则该系每个学生元组都要做相应修改修改l数据冗余:每个学生都存储了所在系的系主任的信息数据冗余:每个学生都存储了所在系的系主任的信息283NF()l定义定义l关系模式关系模式R(U,F)中,若不存在这样的码中,若不存在这样的码X,属性组属性组Y及非及非主属性主属性Z(Z Y),使得下式成立,使得下式成立,XY,YZ,YX则称则称R 3NFl若关系模式若关系模式R 2NF,且每个非主属性都不传递依赖于

22、且每个非主属性都不传递依赖于R的的候选码,则称候选码,则称R满足第三范式(满足第三范式(3NF)。)。(消除非主属性对码消除非主属性对码的传递依赖的传递依赖)l若若R 3NF,则每个非主属性既不部分依赖于候选码,也不则每个非主属性既不部分依赖于候选码,也不传递依赖于候选码。传递依赖于候选码。如如S_DEPT 3NF,因为有因为有SNODEPT,DEPTDEAN293NF()l改造改造将将S_DEPT分解为分解为STUDENT(SNO,SN,DEPT) 3NFDEPT(DEPT,DEAN) 3NFl快速热身快速热身关系模式关系模式R(A,B,C,D),),码为码为AB,给出它的给出它的一个函数依

23、赖集,使得一个函数依赖集,使得R属于属于2NF而不属于而不属于3NFl提醒提醒!3NF是一个可用关系模式应满足的最低范式。是一个可用关系模式应满足的最低范式。30BCNF()l由由Boyce和和Codd提出,是对第三范式的扩充提出,是对第三范式的扩充l示例示例STC(SNO,TNO,CNO),(学号,教师号,课程号学号,教师号,课程号)TNOCNO,每位老师只教授一门课每位老师只教授一门课(SNO,TNO)CNO(SNO,CNO)TNO,每门课由若干个教师讲授,每门课由若干个教师讲授,某学生选定某学生选定一门课,就对应一位老师一门课,就对应一位老师则(则(SNO,TNO),(),(SNO,CN

24、O)为候选码。为候选码。l思考思考STC 3NF?(?(全为主属性)全为主属性)31BCNF()l不良特性不良特性l插入异常:如果没有学生选修某位老师的任课,则该老师担插入异常:如果没有学生选修某位老师的任课,则该老师担任课程的信息就无法插入。某个学生尚未选课,则受主属性任课程的信息就无法插入。某个学生尚未选课,则受主属性不能为空的限制,有关课程信息也不能插入库中。不能为空的限制,有关课程信息也不能插入库中。l删除异常:删除学生选课信息,会删除掉老师的任课信息删除异常:删除学生选课信息,会删除掉老师的任课信息l更新异常:如果老师所教授的课程有所改动,则所有选修该更新异常:如果老师所教授的课程有

25、所改动,则所有选修该老师课程的学生元组都要做改动老师课程的学生元组都要做改动l数据冗余:每位学生都存储了有关老师所教授的课程的信息数据冗余:每位学生都存储了有关老师所教授的课程的信息l症由:症由:主属性对码的不良依赖主属性对码的不良依赖32BCNF()l定义定义l关系模式关系模式R(U,F) 1NF,对于属性组对于属性组X,Y,若,若XY且且Y X时时X必含有码,则必含有码,则R(U,F) BCNF如如STC BCNF,因为因为TNOCNO,而,而TNO不含有码不含有码lBCNF要求决定因素必须包含码,即消除了任何属性对码的要求决定因素必须包含码,即消除了任何属性对码的传递和部分依赖传递和部分

26、依赖l若若R(U,F) 3NF,并且不存在主属性对非码的函数依赖,并且不存在主属性对非码的函数依赖,则则RBCNF。l改造改造将将S分解为:分解为:S_T(SNO,TNO) BCNFT_C(TNO,CNO) BCNF33BCNF()l思考思考(SNO,CNO,ORDER),表示学生选修课程的名次,表示学生选修课程的名次,具有函数依赖具有函数依赖(SNO,CNO)ORDER,(CNO,ORDER)SNO,它属于它属于BCNF吗?吗?l全码属于全码属于BCNF吗?吗?l一个满足一个满足BCNF的关系模式:的关系模式:所有的非主属性对每一个候选码都是完全函数依赖;所有的非主属性对每一个候选码都是完全

27、函数依赖;所有的主属性对不包含它的码也是完全函数依赖;所有的主属性对不包含它的码也是完全函数依赖;任何属性都不会完全函数依赖于非码的任何一组属性;任何属性都不会完全函数依赖于非码的任何一组属性;l一个关系模式如果满足一个关系模式如果满足BCNF,则在函数依赖的范畴内,则在函数依赖的范畴内,它就实现了彻底的分离,消除了插入和删除异常。它就实现了彻底的分离,消除了插入和删除异常。34BCNF()lBCNF与与3NF的比较的比较1、若、若RBCNF,则,则R 3NF。2、3NF达到了非主属性对码的完全直接依赖,达到了非主属性对码的完全直接依赖,BCNF则实现了所有属性对码的完全直接依赖。则实现了所有

28、属性对码的完全直接依赖。示例:示例: 通讯(通讯(城市,街道城市,街道,邮编),邮编):码为(码为(城市,街道)城市,街道),非主,非主属性完全依赖于码,且无传递依赖,则是属性完全依赖于码,且无传递依赖,则是3NF。 但邮编但邮编城市,它是决定因素,它不是码,也不包含在码中,故非城市,它是决定因素,它不是码,也不包含在码中,故非BCNF。 非非BCNF分解分解BCNF,会破坏函数依赖。保持会破坏函数依赖。保持3NF,警惕警惕主属性对非主属性的函数依赖带来的操作异常现象。主属性对非主属性的函数依赖带来的操作异常现象。35范式之间的关系范式之间的关系36数据库规范化理论小结(数据库规范化理论小结(

29、)1、关系规范化目的、关系规范化目的:使模式结构更合理,使数据冗余尽量使模式结构更合理,使数据冗余尽量小,消除插入、删除和更新异常。小,消除插入、删除和更新异常。2、关系规范化原则、关系规范化原则o无损分解原则(函数依赖不能丢失)无损分解原则(函数依赖不能丢失)o相互独立原则(新关系之间相互独立)相互独立原则(新关系之间相互独立)从实际出发,范式的高低取决于数据库相关操作和检索的从实际出发,范式的高低取决于数据库相关操作和检索的需要。同时,一定的冗余有利于数据的查询和恢复。需要。同时,一定的冗余有利于数据的查询和恢复。373、关系规范化、关系规范化方法:关系模式的分解方法,即将关系模式投方法:

30、关系模式的分解方法,即将关系模式投影分解成两个或两个以上的关系模式。影分解成两个或两个以上的关系模式。l模式分解要求模式分解要求: : 分解后的关系模式集合应当与原关系模式分解后的关系模式集合应当与原关系模式“等价等价”,既具有无损连接性,又保持函数依赖特性。,既具有无损连接性,又保持函数依赖特性。l针对部分依赖问题针对部分依赖问题:部分依赖归子集,完全依赖随键码;部分依赖归子集,完全依赖随键码;l传递依赖问题传递依赖问题:基本依赖为基础,中间属性作桥梁;基本依赖为基础,中间属性作桥梁;lBC范式违例问题范式违例问题:找违例自成一体,舍其右全集归一;找违例自成一体,舍其右全集归一;l规范化内容

31、归结为一句话规范化内容归结为一句话: 数据库中的每个实体(关系)都要有一个单一的主题,数据库中的每个实体(关系)都要有一个单一的主题, 规范化实质就是概念单一化,一个关系表示一个实体。规范化实质就是概念单一化,一个关系表示一个实体。数据库规范化理论小结(数据库规范化理论小结()38数据库规范化理论小结(数据库规范化理论小结()4、模式设计的一般原则、模式设计的一般原则l数据库设计者在进行关系数据库设计时,应作权衡,尽可数据库设计者在进行关系数据库设计时,应作权衡,尽可能使数据库模式保持最好的特性。一般尽可能设计成能使数据库模式保持最好的特性。一般尽可能设计成BCNF模式集。如果设计成模式集。如果设计成BCNF模式集时达不到保持函模式集时达不到保持函数依赖的特点,那么只能降低要求,设计成数依赖的特点,那么只能降低要求,设计成3NF模式集,模式集,以求达到保持函数依赖和无损分解的特点。以求达到保持函数依赖和无损分解的特点。5、课后思考题、课后思考题l任何一个二目关系模式任何一个二目关系模式R(A,B)一定属于)一定属于BCNF吗?吗?l一个全是主属性的关系模式一定可以达到第几范式?一个全是主属性的关系模式一定可以达到第几范式?l一个全码的关系模式一定可以达到第几范式?一个全码的关系模式一定可以达到第几范式?39 团结协作出成绩团结协作出成绩40

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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