数据库 第七章精品文稿.ppt
《数据库 第七章精品文稿.ppt》由会员分享,可在线阅读,更多相关《数据库 第七章精品文稿.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库数据库 第七章第七章第1页,本讲稿共67页2第第7 7章章 关系数据库规范化理论关系数据库规范化理论o数据库设计是数据库应用领域中的主要研究课题。数据库设计是数据库应用领域中的主要研究课题。o关系数据库规范化理论就是数据库设计的一个理论关系数据库规范化理论就是数据库设计的一个理论指南。指南。o关系数据库的规范化是指面对一个现实问题关系数据库的规范化是指面对一个现实问题,如何选如何选择一个比较好的关系模式集合。择一个比较好的关系模式集合。o规范化理论研究的是关系模式中各属性之间的数据规范化理论研究的是关系模式中各属性之间的数据依赖关系及其对关系模式性能的影响依赖关系及其对关系模式性能的影响
2、 ;以及判断关;以及判断关系模式好坏的理论标准系模式好坏的理论标准范式。范式。第2页,本讲稿共67页3第第7 7章章 关系数据库规范化理论关系数据库规范化理论o关系模式的形式化定义关系模式的形式化定义 一个完整的关系模式由五部分组成,即它是一个五一个完整的关系模式由五部分组成,即它是一个五元组:元组:R(U,D,DOM,F)R:关系名:关系名 U:组成该关系的属性名集合:组成该关系的属性名集合 D:属性组:属性组U中属性所来自的域中属性所来自的域 DOM:属性向域的映象集合:属性向域的映象集合 F:属性间数据的依赖关系集合:属性间数据的依赖关系集合第3页,本讲稿共67页4第第7 7章章 关系数
3、据库规范化理论关系数据库规范化理论o什么是数据依赖什么是数据依赖n一个关系内部属性与属性之间的约束关系一个关系内部属性与属性之间的约束关系n数据依赖的类型数据依赖的类型o函数依赖(函数依赖(Functional Dependency,简记为,简记为FD)o多值依赖(多值依赖(Multivalued Dependency,简记为,简记为MVD)o其他其他第4页,本讲稿共67页5第第7 7章章 关系数据库规范化理论关系数据库规范化理论o关系模式的简化表示关系模式的简化表示 关系模式关系模式R(U,D,DOM,F)简化为一个三元组:简化为一个三元组:R(U,F)o当且仅当当且仅当U上的一个关系上的一
4、个关系r满足满足F时,时,r称为称为关系模关系模式式 R(U,F)的一个)的一个关系。关系。第5页,本讲稿共67页67.1 函数依赖函数依赖o设有关系模式设有关系模式R(A1,A2,An),X和和Y均为均为A1,A2,An的子集,的子集,r是是R的任一具体关系,的任一具体关系,t1、t2是是r中的任意两个元组;如果由中的任意两个元组;如果由t1X=t2X可以推导出可以推导出t1Y=t2Y,则称,则称X函数决定函数决定Y,或,或Y函数函数依赖于依赖于X,记为,记为XY。o例:例:Student(Sno,SName,Sdept,Sage)SnoSName,SnoSdept,SnoSageo例:例:
5、SC(Sno,Cno,Grade)(Sno,Cno)Grade第6页,本讲稿共67页77.1.2 7.1.2 一些术语和符号一些术语和符号o平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖 在关系模式在关系模式R(U)中,对于中,对于U的子集的子集X和和Y,n如果如果XY,但,但Y X,则称,则称XY是非平凡的函数依赖是非平凡的函数依赖 若若XY,但,但Y X,则称则称XY是是平凡的函数依赖平凡的函数依赖n例:在关系例:在关系SC(Sno,Cno,Grade)中,中,非平凡函数依赖:非平凡函数依赖:(Sno,Cno)Grade 平凡函数依赖:平凡函数依赖:(Sno,Cno)Sno (S
6、no,Cno)Cnon如不作特别说明,总是讨论非平凡函数依赖。如不作特别说明,总是讨论非平凡函数依赖。第7页,本讲稿共67页87.1.2 7.1.2 一些术语和符号一些术语和符号o若若XY,则,则X称为这个函数依赖的决定属性组,也称为这个函数依赖的决定属性组,也称为决定因素(称为决定因素(Determinant)。)。o若若XY,YX,则记作,则记作XY。o若若Y不函数依赖于不函数依赖于X,则记作,则记作XY。第8页,本讲稿共67页97.1.2 7.1.2 一些术语和符号一些术语和符号o完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖n在在R(U)中,如果中,如果XY,并且对于,并且对于X
7、的任何一个真子集的任何一个真子集X,都有都有X Y,则称则称Y对对X完全函数依赖完全函数依赖,记作,记作 X F Y。n若若XY,但,但Y不完全函数依赖于不完全函数依赖于X,则称,则称Y对对X部分函数依部分函数依赖赖,记作,记作X P Y。n例例:(Sno,Cno)Grade是完全函数依赖,是完全函数依赖,(Sno,Cno)Sdept是部分函数依赖是部分函数依赖 因为因为Sno Sdept成立,且成立,且Sno是(是(Sno,Cno)的)的真子集真子集 第9页,本讲稿共67页107.1.2 7.1.2 一些术语和符号一些术语和符号o传递函数依赖传递函数依赖n在在R(U)中,如果中,如果XY,(
8、Y X),YX YZ,则称则称Z对对X传递函数依赖传递函数依赖。记为:记为:X Zn注注:如果如果YX,即即XY,则,则Z直接依赖于直接依赖于X。n例例:在关系在关系S S(Sno,Sname,Dept,Dept_masterSno,Sname,Dept,Dept_master)中有:中有:Sno dept,Sdept Dept_master Dept_master传递函数依赖于传递函数依赖于Sno传递第10页,本讲稿共67页117.1.3 为什么要讨论函数依赖为什么要讨论函数依赖o数据依赖对关系模式的影响数据依赖对关系模式的影响 例例:建立一个描述学校教务的数据库:建立一个描述学校教务的数据
9、库:学生的学号(学生的学号(Sno)、所在系()、所在系(Sdept)系主任姓名(系主任姓名(Mname)、课程名()、课程名(Cname)成绩(成绩(Grade)单一单一的关系模式的关系模式:Student U Sno,Sdept,Mname,Cname,Grade 第11页,本讲稿共67页127.1.3 为什么要讨论函数依赖为什么要讨论函数依赖 属性组属性组U上的一组函数依赖上的一组函数依赖F:F Sno Sdept,Sdept Mname,(Sno,Cname)Grade SnoCnameSdeptMnameGrade第12页,本讲稿共67页137.1.3 为什么要讨论函数依赖为什么要讨
10、论函数依赖关系模式关系模式Student中存在的问题中存在的问题1.1.数据冗余太大数据冗余太大2.2.更新异常(更新异常(Update AnomaliesUpdate Anomalies)3.3.插入异常(插入异常(Insertion AnomaliesInsertion Anomalies)4.4.删除异常(删除异常(Deletion AnomaliesDeletion Anomalies)第13页,本讲稿共67页147.1.3 为什么要讨论函数依赖为什么要讨论函数依赖结论:结论:n Student关系模式不是一个好的模式。关系模式不是一个好的模式。n“好好”的模式:不会发生插入异常、删除
11、异常、的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少更新异常,数据冗余应尽可能少原因:原因:由存在于模式中的由存在于模式中的某些数据依赖某些数据依赖引起的引起的解决方法:解决方法:通过通过分解分解关系模式来消除其中不合适的数据依关系模式来消除其中不合适的数据依赖赖第14页,本讲稿共67页157.1.3 为什么要讨论函数依赖为什么要讨论函数依赖o分解关系模式分解关系模式o把这个单一模式分成把这个单一模式分成3个关系模式:个关系模式:S(Sno,Sdept,Sno Sdept);SC(Sno,Cno,Grade,(,(Sno,Cno)Grade);DEPT(Sdept,Mname
12、,Sdept Mname)第15页,本讲稿共67页167.2 关系规范化关系规范化 规范化理论规范化理论正是用来改造关系模式,通过分解关系模正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。删除异常、更新异常和数据冗余问题。第16页,本讲稿共67页177.2.1 7.2.1 关系模式中的码关系模式中的码o候选码与主码候选码与主码n设设K为为R中的属性或属性组合。若中的属性或属性组合。若K U,则则K称称为为R的侯选码。的侯选码。n若候选码多于一个,则选定其中的一个做为主码。若候选码多
13、于一个,则选定其中的一个做为主码。o主属性与非主属性主属性与非主属性n包含在任何一个候选码中的属性包含在任何一个候选码中的属性,称为主属性,称为主属性n不包含在任何码中的属性称为非主属性或非码属性不包含在任何码中的属性称为非主属性或非码属性o全码全码n整个属性组是码,称为全码整个属性组是码,称为全码F第17页,本讲稿共67页187.2.1 7.2.1 关系模式中的码关系模式中的码o例:例:n关系模式关系模式S(Sno,Sdept,Sage),单个属性,单个属性Sno是码是码nSC(Sno,Cno,Grade)中,()中,(Sno,Cno)是码)是码n关系模式关系模式R(P,W,A)P:演奏者:
14、演奏者 W:作品:作品 A:听众:听众 一个演奏者可以演奏多个作品一个演奏者可以演奏多个作品 某一作品可被多个演奏者演奏某一作品可被多个演奏者演奏 听众可以欣赏不同演奏者的不同作品听众可以欣赏不同演奏者的不同作品 码为码为(P,W,A),即,即All-Key第18页,本讲稿共67页197.2.1 7.2.1 关系模式中的码关系模式中的码o外部码外部码n关系模式关系模式 R 中属性或属性组中属性或属性组X 并非并非 R的码,但的码,但 X 是另一个是另一个关系模式的码,则称关系模式的码,则称 X 是是R 的的外部码外部码,也称外码,也称外码n如在如在SC(Sno,Cno,Grade)中,)中,S
15、no不是码,但不是码,但Sno是关系模式是关系模式S(Sno,Sdept,Sage)的码,则)的码,则Sno是关系模式是关系模式SC的外部码的外部码 n主码与外部码一起提供了表示关系间联系的手段主码与外部码一起提供了表示关系间联系的手段第19页,本讲稿共67页207.2.2 范式范式o范式是符合某一种级别的关系模式的集合范式是符合某一种级别的关系模式的集合o关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式同范式o范式的种类:范式的种类:n第一范式第一范式(1NF)n第二范式第二范式(2NF)n第三范式第三范式(3NF
16、)nBC范式范式(BCNF)n第四范式第四范式(4NF)n第五范式第五范式(5NF)第20页,本讲稿共67页217.2.2 范式范式o各种范式之间存在联系:各种范式之间存在联系:o某一关系模式某一关系模式R为第为第n范式,可简记为范式,可简记为R nNF。o一个低一级范式的关系模式,通过一个低一级范式的关系模式,通过模式分解模式分解可以转换可以转换为若干个高一级范式的关系模式的集合,这种过程就为若干个高一级范式的关系模式的集合,这种过程就叫叫规范化规范化 第21页,本讲稿共67页221NFo第一范式第一范式:如果一个关系模式如果一个关系模式R R的所有属性都是的所有属性都是不可分不可分的基本数
17、据项的基本数据项,则,则R1NFR1NFo第一范式是对关系模式的最起码的要求。不满足第一第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库范式的数据库模式不能称为关系数据库o但是满足第一范式的关系模式并不一定是一个好的但是满足第一范式的关系模式并不一定是一个好的关系模式关系模式第22页,本讲稿共67页231NF第23页,本讲稿共67页242NFo第二范式第二范式:如果如果R R(U U,F F)1NF)1NF,并且,并且R R中的每个非主属性中的每个非主属性都完全函数依赖于主码,则都完全函数依赖于主码,则R R(U U,F F)2NF)2NFo例例:S-L-C:S
18、-L-C(Sno,Sdept,SLOC,Cno,GradeSno,Sdept,SLOC,Cno,Grade)函数依赖包括:函数依赖包括:(Sno,Cno)(Sno,Cno)F F Grade Grade Sno Sdept Sno Sdept (Sno,Cno)(Sno,Cno)P P Sdept Sdept Sno Sloc Sno Sloc (Sno,Cno)(Sno,Cno)P P Sloc Sloc Sdept Sloc Sdept Sloc 存在部分函数依赖,不是存在部分函数依赖,不是2NF2NF。第24页,本讲稿共67页25 2NF(续)(续)oS-L-C的码为的码为(Sno,Cn
19、o)oS-L-C满足第一范式。满足第一范式。o非主属性非主属性Sdept和和Sloc部分函数依赖于码部分函数依赖于码(Sno,Cno)SnoCnoGradeSdeptSlocS-L-C第25页,本讲稿共67页262NF(续)(续)oS-L-C不是一个好的关系模式不是一个好的关系模式o原因原因 Sdept、Sloc部分函数依赖于码。部分函数依赖于码。o解决方法解决方法 S-L-C分解为两个关系模式,以消除这些部分函数依分解为两个关系模式,以消除这些部分函数依赖赖 第26页,本讲稿共67页272NF(续)(续)o分解办法分解办法n首先,对于组成主码的属性集合的每一个子集,用它首先,对于组成主码的属
20、性集合的每一个子集,用它作为主码构成一个表。作为主码构成一个表。n然后,将依赖于这些主码的属性放置到相应的表然后,将依赖于这些主码的属性放置到相应的表中。中。n最后,去掉只由主码的子集构成的表。最后,去掉只由主码的子集构成的表。oS-L-C分解为两个关系模式分解为两个关系模式 SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)第27页,本讲稿共67页282NF(续)(续)o分解示例分解示例n对于对于S-L-C表,首先分解为如下形式的三张表:表,首先分解为如下形式的三张表:S-L(Sno,)C(Cno,)S-C(Sno,Cno,)n然后,将依赖于这些主码的属性放置到相应的表
21、中然后,将依赖于这些主码的属性放置到相应的表中S-L(Sno,Sdept,Sloc)C(Cno)S-C(Sno,Cno,Grade)n最后,去掉只由主码的子集构成的表,最终分解为:最后,去掉只由主码的子集构成的表,最终分解为:S-L(Sno,Sdept,Sloc)S-C(Sno,Cno,Grade)第28页,本讲稿共67页292NF(续)(续)函数依赖图:SnoCnoGradeSCS-LSnoSdeptSloco关系模式关系模式SC的码为(的码为(Sno,Cno)o关系模式关系模式S-L的码为的码为Snoo这样非主属性对码都是完全函数依赖这样非主属性对码都是完全函数依赖 第29页,本讲稿共67
22、页30 2NF(续)(续)S-L-C(Sno,Sdept,Sloc,Cno,Grade)1NF S-L-C(Sno,Sdept,Sloc,Cno,Grade)2NF SC(Sno,Cno,Grade)2NF S-L(Sno,Sdept,Sloc)2NF第30页,本讲稿共67页31 2NF(续)(续)o采用投影分解法将一个采用投影分解法将一个1NF的关系分解为多个的关系分解为多个2NF的的关系,可以在一定程度上减轻原关系,可以在一定程度上减轻原1NF关系中存在的关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。插入异常、删除异常、数据冗余度大、修改复杂等问题。o将一个将一个1NF关系
23、分解为多个关系分解为多个2NF的关系,并不能完全的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。消除关系模式中的各种异常情况和数据冗余。第31页,本讲稿共67页322NF(续)(续)oS-LS-L(Sno,Sdept,SlocSno,Sdept,Sloc)存在问题)存在问题n数据冗余数据冗余 :有多少个学生就有多少个重复的:有多少个学生就有多少个重复的SdeptSdept和和SLOCSLOC;n插入异常插入异常:当新建一个系时,若还没有招收学生,:当新建一个系时,若还没有招收学生,则无法插入;则无法插入;第32页,本讲稿共67页333NFo3NF的定义的定义关系模式关系模式R 中若不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 第七章精品文稿 第七 精品 文稿
限制150内