数据库系统概论(第五版)ppt课件第6章.pptx
《数据库系统概论(第五版)ppt课件第6章.pptx》由会员分享,可在线阅读,更多相关《数据库系统概论(第五版)ppt课件第6章.pptx(123页珍藏版)》请在三一办公上搜索。
1、,数据库系统概论An Introduction to Database System第六章 关系数据理论,xx大学信息学院,基于某个数据库管理系统设计数据库,如何基于数据库系统编程第6章 关系数据理论第7章 数据库设计第8章 数据库编程,第二篇 设计与应用开发篇,第六章 关系数据理论,6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统*6.4 模式的分解6.5 小结,An Introduction to Database System,6.1 问题的提出,关系数据库逻辑设计针对具体问题,如何构造一个适合于它的数据模式数据库逻辑设计的工具关系数据库的规范化理论,*,问题的提出(续),关系
2、模式由五部分组成,是一个五元组: R(U, D, DOM, F)关系名R是符号化的元组语义U为一组属性D为属性组U中的属性所来自的域DOM为属性到域的映射F为属性组U上的一组数据依赖,问题的提出(续),由于D、DOM与模式设计关系不大,因此在本章中把关系模式看作一个三元组:R当且仅当U上的一个关系r满足F时,r称为关系模式R的一个关系作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(1NF),*,问题的提出(续),数据依赖是一个关系内部属性与属性之间的一种约束关系通过属性间值的相等与否体现出来的数据间相互联系是现实世界属性间相互联系
3、的抽象是数据内在的性质是语义的体现,*,问题的提出(续),数据依赖的主要类型函数依赖(Functional Dependency,简记为FD)多值依赖(Multi-Valued Dependency,简记为MVD),*,问题的提出(续),函数依赖普遍存在于现实生活中描述一个学生关系,可以有学号、姓名、系名等属性。一个学号只对应一个学生,一个学生只在一个系中学习“学号”值确定后,学生的姓名及所在系的值就被唯一确定。Sname=f(Sno),Sdept=f(Sno)即Sno函数决定SnameSno函数决定Sdept记作SnoSname,SnoSdept,*,问题的提出(续),例6.1 建立一个描述
4、学校教务的数据库。涉及的对象包括:学生的学号(Sno)所在系(Sdept)系主任姓名(Mname)课程号(Cno)成绩(Grade),*,问题的提出(续),假设学校教务的数据库模式用一个单一的关系模式Student来表示,则该关系模式的属性集合为: U Sno, Sdept, Mname, Cno, Grade 现实世界的已知事实(语义):一个系有若干学生, 但一个学生只属于一个系;一个系只有一名(正职)负责人;一个学生可以选修多门课程,每门课程有若干学生选修;每个学生学习每一门课程有一个成绩。,*,问题的提出(续),由此可得到属性组U上的一组函数依赖F: F=SnoSdept, Sdept
5、Mname, (Sno, Cno) Grade,*,问题的提出(续),关系模式Student中存在的问题:(1)数据冗余浪费大量的存储空间每一个系主任的姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。,*,问题的提出(续),(2)更新异常(Update Anomalies)数据冗余 ,更新数据时,维护数据完整性代价大。某系更换系主任后,必须修改与该系学生有关的每一个元组。,*,问题的提出(续),(3)插入异常(Insertion Anomalies)如果一个系刚成立,尚无学生,则无法把这个系及其系主任的信息存入数据库。,*,问题的提出(续),(4)删除异常(Deletion A
6、nomalies)如果某个系的学生全部毕业了, 则在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。,*,问题的提出(续),结论Student关系模式不是一个好的模式。一个“好”的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少。原因由存在于模式中的某些数据依赖引起的。解决方法用规范化理论改造关系模式来消除其中不合适的数据依赖,*,问题的提出(续),把这个单一的模式分成三个关系模式:S(Sno,Sdept,Sno Sdept);SC(Sno,Cno,Grade,(Sno,Cno) Grade);DEPT(Sdept,Mname,Sdept Mname);这三个模式都不
7、会发生插入异常、删除异常的问题,数据的冗余也得到了控制。,第六章 关系数据理论,6.1 问题的提出6.2 规范化6.3 数据依赖的公理系统*6.4 模式的分解6.5 小结,6.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 规范化小结,6.2.1 函数依赖,1.函数依赖2.平凡函数依赖与非平凡函数依赖3.完全函数依赖与部分函数依赖4.传递函数依赖,*,1. 函数依赖,定义6.1 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r
8、中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称“X函数确定Y”或“Y函数依赖于X”,记作XY。,函数依赖(续),例 Student(Sno, Sname, Ssex, Sage, Sdept), 假设不允许重名,则有:Sno Ssex, Sno SageSno Sdept, Sno SnameSname Ssex, Sname SageSname Sdept但Ssex Sage, Ssex Sdept,函数依赖(续),违背了Sno Sname,函数依赖(续),由下面的关系表, 能否得出Sno Sname,函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指
9、R的所有关系实例均要满足的约束条件。,*,函数依赖(续),函数依赖是语义范畴的概念,只能根据数据的语义来确定一个函数依赖。例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立,*,2. 平凡函数依赖与非平凡函数依赖,XY,但YX则称XY是非平凡的函数依赖。XY,但YX 则称XY是平凡的函数依赖。,对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义。若不特别声明, 我们总是讨论非平凡函数依赖。,*,平凡函数依赖与非平凡函数依赖(续),若XY,则X称为这个函数依赖的决定因素(Determinant)。若XY,YX,则记作XY。若Y不函数依赖于X,则记作XY。,*,3. 完全函数
10、依赖与部分函数依赖,定义6.2 在R(U)中,如果XY,并且对于X的任何一个真子集X, 都有 X Y, 则称Y对X完全函数依赖,记作X Y。若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X Y,F,P,*,完全函数依赖与部分函数依赖(续),例 在关系SC(Sno, Cno, Grade)中,有: 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) Grade (Sno, Cno)Sno (Sno, Cno) Cno,F,P,P,*,4. 传递函数依赖,定义6.3 在R(U)中,如果XY(YX),YX,YZ,ZY, 则称Z对X传递函数依赖(transitiv
11、e functional dependency)。记为:X Z。注: 如果YX, 即XY,则Z直接依赖于X,而不是传递函数依赖。例 在关系Std(Sno, Sdept, Mname)中,有:Sno Sdept,Sdept Mname,Mname传递函数依赖于Sno,传递,6.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 规范化小结,*,6.2.2 码,定义6.4 设K为R中的属性或属性组合。若K U,则K称为R的一个候选码(Candidate Key)。如果U部分函数依赖于
12、K,即K U,则K称为超码 (Surpkey)。候选码是最小的超码,即K的任意一个真子集都不是候选码。若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。,F,P,*,码(续),主属性与非主属性包含在任何一个候选码中的属性 ,称为主属性 (Prime attribute) 不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute) 全码:整个属性组是码,称为全码(All-key),*,码(续),例6.2S(Sno, Sdept, Sage),单个属性Sno是码 SC(Sno, Cno, Grade)中,(
13、Sno, Cno)是码例6.3 R(P,W,A) P:演奏者 W:作品 A:听众一个演奏者可以演奏多个作品某一作品可被多个演奏者演奏听众可以欣赏不同演奏者的不同作品 码为(P,W,A),即All-Key,*,码(续),定义6.5 关系模式 R中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码。SC(Sno,Cno,Grade)中,Sno不是码Sno是 S(Sno,Sdept,Sage)的码,则Sno是SC的外码 主码与外部码一起提供了表示关系间联系的手段,6.2 规范化,6.2.1 函数依赖6.2.2 码6.2.3 范式6.
14、2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结,*,6.2.3 范式,范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求。满足 不同程度要求的为不同范式。范式的种类:,*,范式(续),各种范式之间存在联系:某一关系模式R为第n范式,可简记为RnNF。,一个低一级范式的关系模式,通过模式分解(schema decomposition)可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化(normalization)。,6.2 规范化,6.2.1 函数依赖6.2.2 码6.2.3 范式6.2.4 2
15、NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结,*,6.2.4 2NF,定义6.6 若关系模式R1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R2NF例6.4 S-L-C(Sno,Sdept,Sloc,Cno,Grade), Sloc为学生的住处,并且每个系的学生住在同一个地方。S-L-C的码为(Sno,Cno)。函数依赖有(Sno,Cno)GradeSnoSdept, (Sno,Cno)SdeptSnoSloc, (Sno,Cno)SlocSdeptSloc,F,P,P,*,2NF(续),关系模式S-L-C不属于2NF,非
16、主属性Sdept、Sloc并不完全依赖于码,*,2NF(续),一个关系模式不属于2NF,会产生以下问题:插入异常如果插入一个新学生,但该生未选课,即该生无Cno,由于插入元组时,必须给定码值,因此插入失败。删除异常如果S4只选了一门课C3,现在他不再选这门课,则删除C3后,整个元组的其他信息也被删除了。修改复杂如果一个学生选了多门课,则Sdept,Sloc被存储了多次。如果该生转系,则需要修改所有相关的Sdept和Sloc,造成修改的复杂化。,*,2NF(续),出现这种问题的原因例子中有两类非主属性:一类如Grade,它对码完全函数依赖另一类如Sdept、Sloc,它们对码不是完全函数依赖解决
17、方法:用投影分解把关系模式S-L-C分解成两个关系模式SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc),2NF(续),SC的码为(Sno,Cno),SL的码为Sno,这样使得非主属性对码都是完全函数依赖了,Sno,Sdept,Sloc,图6.4 SC中的函数依赖,图6.5 S-L中的函数依赖,6.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 规范化小结,*,6.2.5 3NF,定义6.7 设关系模式R1NF,若R中不存在这样的码X、属性组Y及非主属性
18、Z(Z Y), 使得XY,YZ成立,Y X不成立,则称R 3NF。SC没有传递依赖,因此SC 3NFS-L中Sno Sdept( Sdept Sno), SdeptSloc,可得Sno Sloc。解决的办法是将S-L分解成S-D(Sno,Sdept) 3NFD-L(Sdept,Sloc) 3NF,传递,6.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 规范化小结,*,6.2.6 BCNF,BCNF(Boyce Codd Normal Form)由Boyce和Codd提出,比
19、3NF更进了一步。通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。定义6.8 设关系模式R1NF,若X Y且Y X时X必含有码,则RBCNF。换言之,在关系模式R中,如果每一个决定属性集都包含候选码,则RBCNF。,*,BCNF(续),BCNF的关系模式所具有的性质所有非主属性都完全函数依赖于每个候选码所有主属性都完全函数依赖于每个不包含它的候选码没有任何属性完全函数依赖于非码的任何一组属性如果一个关系数据库中的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范化程度,消除了插入异常和删除异常。,例6.5考察关系模式C(Cno,Cname,
20、Pcno)它只有一个码Cno,没有任何属性对Cno部分依赖或传递依赖,所以C3NF。同时C中Cno是唯一的决定因素,所以CBCNF。对于关系模式SC(Sno,Cno,Grade)可作同样分析。,BCNF(续),例6.6 关系模式S(Sno,Sname,Sdept,Sage),假定Sname也具有唯一性,那么S就有两个码,这两个码都由单个属性组成,彼此不相交。其他属性不存在对码的传递依赖与部分依赖,所以S3NF。同时S中除Sno,Sname外没有其他决定因素,所以S也属于BCNF。,BCNF(续),例6.7 关系模式SJP(S,J,P)中,S是学生,J表示 课程,P表示名次。每一个学生选修每门课
21、程的 成绩有一定的名次,每门课程中每一名次只有一 个学生(即没有并列名次)。 由语义可得到函数依赖: (S,J)P;(J,P)S (S,J)与(J,P)都可以作为候选码。 关系模式中没有属性对码传递依赖或部分依赖,所以 SJP3NF。 除(S,J)与(J,P)以外没有其他决定因素,所以 SJPBCNF。,BCNF(续),BCNF(续),例6.8 关系模式STJ(S,T,J)中,S表示学生,T表 示教师,J表示课程。每一教师只教一门课。每 门课有若干教师,某一学生选定某门课,就对应 一个固定的教师。 由语义可得到函数依赖:(S,J)T;(S,T)J;TJ 因为没有任何非主属性对码传递依赖或部分依
22、赖, STJ 3NF。 因为T是决定因素,而T不包含码,所以STJ BCNF 关系。,图6.6 STJ中的函数依赖,BCNF(续),对于不是BCNF的关系模式,仍然存在不合适的地方。非BCNF的关系模式也可以通过分解成为BCNF。例如STJ可分解为ST(S,T)与TJ(T,J),它们都是BCNF。,BCNF(续),3NF和BCNF是在函数依赖的条件下对模式分解所能达到的分离程度的测度。一个模式中的关系模式如果都属于BCNF,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入和删除的异常。3NF的“不彻底”性表现在可能存在主属性对码的部分依赖和传递依赖。,6.2 规范化,6.2.1 函数依
23、赖6.2.2 码6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依赖6.2.8 4NF6.2.9 规范化小结,*,6.2.7 多值依赖,例6.9设学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用用关系模式Teaching(C,T,B)来表示课程C、教师T和参考书B之间的关系。,多值依赖(续),表6.3 非规范化关系示例,*,多值依赖(续),表6.4 规范化的二维表 Teaching,*,多值依赖(续),Teaching具有唯一候选码(C,T,B), 即全码。TeachingBCNF,*,多值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概论 第五 ppt 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1921805.html