第6章关系数据理论ppt课件

上传人:新** 文档编号:567244249 上传时间:2024-07-19 格式:PPT 页数:89 大小:625.50KB
返回 下载 相关 举报
第6章关系数据理论ppt课件_第1页
第1页 / 共89页
第6章关系数据理论ppt课件_第2页
第2页 / 共89页
第6章关系数据理论ppt课件_第3页
第3页 / 共89页
第6章关系数据理论ppt课件_第4页
第4页 / 共89页
第6章关系数据理论ppt课件_第5页
第5页 / 共89页
点击查看更多>>
资源描述

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

1、第第第第6 6章章章章关系数据实际关系数据实际关系数据实际关系数据实际 本章概要本章概要前面曾经讲述了关系数据库、关系模型的根本前面曾经讲述了关系数据库、关系模型的根本概念以及关系数据库的规范言语。概念以及关系数据库的规范言语。如何运用关系模型设计关系数据库,也就是面如何运用关系模型设计关系数据库,也就是面对一个现实问题,如何选择一个比较好的关系对一个现实问题,如何选择一个比较好的关系方式的集合,每个关系又应该由哪些属性组成。方式的集合,每个关系又应该由哪些属性组成。这属于数据库设计的问题,确切地讲是数据库这属于数据库设计的问题,确切地讲是数据库逻辑设计的问题。逻辑设计的问题。本章讲述关系数据

2、库规范化实际,这是数据库本章讲述关系数据库规范化实际,这是数据库逻辑设计的实际根据。逻辑设计的实际根据。本章概要本章概要1 1要求了解规范化实际的研讨内容及其在要求了解规范化实际的研讨内容及其在数据库设计中的作用数据库设计中的作用2 2掌握函数依赖的有关概念掌握函数依赖的有关概念第一范式、第二范式、第三范式、第一范式、第二范式、第三范式、BCBC范式的定义范式的定义3 3重点掌握并可以灵敏运用关系方式规范重点掌握并可以灵敏运用关系方式规范化的方法和关系方式分解的方法,这也是本章化的方法和关系方式分解的方法,这也是本章的难点。的难点。 6.1 6.1 规范化问题的提出规范化问题的提出6.1.1

3、6.1.1 规范化实际的主要内容规范化实际的主要内容 关关系系数数据据库库的的规规范范化化实实际际最最早早是是由由关关系系数数据据库库的的开开创创人人E.F.CoddE.F.Codd提提出出的的,后后经经许许多多专专家家学学者者对对关关系系数数据据库库实实际际作作了了深深化化的的研研讨讨和和开开展展,构成了一整套有关关系数据库设计的实际。构成了一整套有关关系数据库设计的实际。 在在该该实实际际出出现现以以前前,层层次次和和网网状状数数据据库库的的设设计计只只是是遵遵照照其其模模型型本本身身固固有有的的原原那那么么,而而无无详详细细的的实实际际根根据据可可言言,因因此此带带有有盲盲目目性性,能能

4、够够在在以以后后的的运运转转和和运运用用中中发发生生许许多多料料想想不不到到的的问问题。题。 在关系数据库系统中,关系模型包括一组关在关系数据库系统中,关系模型包括一组关系方式,各个关系不是完全孤立的,数据库的设系方式,各个关系不是完全孤立的,数据库的设计较层次和网状模型更为重要。计较层次和网状模型更为重要。 如何设计一个适宜的关系数据库系统,关键如何设计一个适宜的关系数据库系统,关键是关系数据库方式的设计,一个好的关系数据库是关系数据库方式的设计,一个好的关系数据库方式应该包括多少关系方式,而每一个关系方式方式应该包括多少关系方式,而每一个关系方式又应该包括哪些属性,又如何将这些相互关联的又

5、应该包括哪些属性,又如何将这些相互关联的关系方式组建一个适宜的关系模型,这些任务决关系方式组建一个适宜的关系模型,这些任务决议了到整个系统运转的效率,也是系统成败的关议了到整个系统运转的效率,也是系统成败的关键所在,所以必需在关系数据库的规范化实际的键所在,所以必需在关系数据库的规范化实际的指点下逐渐完成。指点下逐渐完成。 关系数据库的规范化实际主要包括三个方面的关系数据库的规范化实际主要包括三个方面的内容:内容:1函数依赖函数依赖2范式范式Normal Form3方式设计方式设计 其中,函数依赖起着中心的作用,是方式分解其中,函数依赖起着中心的作用,是方式分解和方式设计的根底,范式是方式分解

6、的规范。和方式设计的根底,范式是方式分解的规范。关系方式的关系方式的5元组表示:元组表示: R(U,D,DOM,F) 在研讨关系的规范化实际中常用在研讨关系的规范化实际中常用3元组表示:元组表示: R(U,F)6.1.2 6.1.2 关系方式存在的异常问题关系方式存在的异常问题1 1数数据据库库的的逻逻辑辑设设计计为为什什么么要要遵遵照照一一定定的的规范化实际?规范化实际?2 2什么是好的关系方式?什么是好的关系方式?3 3某某些些不不好好的的关关系系方方式式能能够够导导致致哪哪些些问问题题?下面经过例子进展分析。下面经过例子进展分析。例如,要求设计教学管理数据库,其关系方式例如,要求设计教学

7、管理数据库,其关系方式SCD如下:如下:SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)其中,其中,SNO表示学生学号,表示学生学号,SN表示学生姓名,表示学生姓名,AGE表示学表示学生年龄,生年龄,DEPT表示学生所在的系别,表示学生所在的系别,MN表示系主任姓名,表示系主任姓名,CNO表示课程号,表示课程号,SCORE表示成果。表示成果。根据实践情况,这些数据有如下语义规定:根据实践情况,这些数据有如下语义规定:(1)一个系有假设干个学生,但一个学生只属于一个系;一个系有假设干个学生,但一个学生只属于一个系;(2)一个系只需一名系主任,但一个系主任可以同时兼几个一个系只需

8、一名系主任,但一个系主任可以同时兼几个系的系主任;系的系主任;(3)一个学生可以选修多门功课,每门课程可有假设干学生一个学生可以选修多门功课,每门课程可有假设干学生选修;选修;(4)每个学生学习课程有一个成果。每个学生学习课程有一个成果。在此关系方式中填入一部分详细的数据,那么可得到在此关系方式中填入一部分详细的数据,那么可得到SCD关系方式的实例,即一个教学管理数据库,如表关系方式的实例,即一个教学管理数据库,如表6.1所示。所示。表表6.1 6.1 关系关系SCDSCDSNOSNOSNSNAGEAGEDEPTDEPTMNMNCNOCNOSCORESCORES1S1赵亦赵亦1717计算机计算

9、机刘伟刘伟C1C19090S1S1赵亦赵亦1717计算机计算机刘伟刘伟C2C28585S2S2钱尔钱尔1818信息信息王平王平C5C55757S2S2钱尔钱尔1818信息信息王平王平C6C68080S2S2钱尔钱尔1818信息信息王平王平C7C770S2S2钱尔钱尔1818信息信息王平王平C5C57070S3S3孙珊孙珊2020信息信息王平王平C1C10 0S3S3孙珊孙珊2020信息信息王平王平C2C27070S3S3孙珊孙珊2020信息信息王平王平C4C48585S4S4李思李思男男自动化自动化刘伟刘伟C1C19393根据上述的语义规定,并分析以上关系中的数据,可以根据上述的语义规定,并分

10、析以上关系中的数据,可以看出:看出:(SNO,CNO)属性的组合能独一标识一个元组,所以属性的组合能独一标识一个元组,所以(SNO,CNO)是该关系方式的主关系码。但在进展数据库的操是该关系方式的主关系码。但在进展数据库的操作时,会出现以下几方面的问题。作时,会出现以下几方面的问题。1.数据冗余数据冗余每个系名和系主任的名字存储的次数等于该系的学生人每个系名和系主任的名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,同时学生的姓名、年龄也数乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要反复存储多次,数据的冗余度很大,浪费了存储空间。都要反复存储多次,数据的冗余度很大,浪费了存

11、储空间。2.插入异常插入异常假设某个新系没有招生,尚无学生时,那么系名和系主假设某个新系没有招生,尚无学生时,那么系名和系主任的信息无法插入到数据库中。任的信息无法插入到数据库中。由于在这个关系方式中,由于在这个关系方式中,(SNO,CNO)是主码。根据关系的是主码。根据关系的实体完好性约束,主关系码的值不能为空,而这时没有学生,实体完好性约束,主关系码的值不能为空,而这时没有学生,SNO和和CNO均无值,因此不能进展插入操作。均无值,因此不能进展插入操作。另外,当某个学生尚未选课,即另外,当某个学生尚未选课,即CNO未知,实体完好性未知,实体完好性约束还规定,主关系码的值不能部分为空,同样不

12、能进展插约束还规定,主关系码的值不能部分为空,同样不能进展插入操作。入操作。3.删除异常删除异常某系学生全部毕业而没有招新生时,删除全部学某系学生全部毕业而没有招新生时,删除全部学生的记录那么系名、系主任也随之删除,而这个系生的记录那么系名、系主任也随之删除,而这个系依然存在,在数据库中却无法找到该系的信息。依然存在,在数据库中却无法找到该系的信息。另外,假设某个学生不再选修另外,假设某个学生不再选修C1课程,本应该课程,本应该只删去只删去C1,但,但C1是主关系码的一部分,为保证明体是主关系码的一部分,为保证明体完好性,必需将整个元组一同删掉,这样,有关该完好性,必需将整个元组一同删掉,这样

13、,有关该学生的其它信息也随之丧失。学生的其它信息也随之丧失。4.更新异常更新异常假设学生改名,那么该学生的一切记录都要逐一假设学生改名,那么该学生的一切记录都要逐一修正修正SN;又如某系改换系主任,那么属于该系的学生记录又如某系改换系主任,那么属于该系的学生记录都要修正都要修正MN的内容,稍有不慎,就有能够漏改某的内容,稍有不慎,就有能够漏改某些记录,这就会呵斥数据的不一致性,破坏了数据些记录,这就会呵斥数据的不一致性,破坏了数据的完好性。的完好性。由于存在以上问题,可以说,由于存在以上问题,可以说,SCD是一个不好的是一个不好的关系方式。产生上述问题的缘由,直观地说,是由关系方式。产生上述问

14、题的缘由,直观地说,是由于关系中于关系中“包罗万象,内容太杂了。包罗万象,内容太杂了。那么,怎样才干得到一个好的关系方式呢?那么,怎样才干得到一个好的关系方式呢?把关系方式把关系方式SCD分解为下面三个构造简单的关系分解为下面三个构造简单的关系方式,如表方式,如表6.2所示。所示。学生关系学生关系S(SNO,SN,AGE,DEPT)选课关系选课关系SC(SNO,CNO,SCORE)系关系系关系D(DEPT,MN)S SCS SCS SCS SCSNOSNOSNSNAGEAGEDEPTDEPTSNOSNOCNOCNOSCORESCORES1S1赵亦赵亦1717计算机计算机S1S1C1C19090

15、S2S2钱尔钱尔1818信息信息S1S1C2C28585S3S3孙珊孙珊2020信息信息S2S2C5C55757S4S4李思李思2121自动化自动化S2S2C6C68080S2S2C7C7D D D DS2S2C5C57070DEPTDEPTMNMNS3S3C1C10 0计算机计算机刘伟刘伟S3S3C2C27070信息信息王平王平S3S3C4C48585自动化自动化刘伟刘伟S4S4C1C19393表表6.2 6.2 分解后的关系方式分解后的关系方式 在以上三个关系方式中,实现了信息的在以上三个关系方式中,实现了信息的某种程度的分别:某种程度的分别:1S中存储学生根本信息,与所选课程及中存储学生

16、根本信息,与所选课程及系主任无关;系主任无关;2D中存储系的有关信息,与学生无关;中存储系的有关信息,与学生无关;3SC中存储学生选课的信息,而与所学生中存储学生选课的信息,而与所学生及系的有关信息无关。及系的有关信息无关。与与SCD相比,分解为三个关系方式后,数据的相比,分解为三个关系方式后,数据的冗余度明显降低。冗余度明显降低。1当新插入一个系时,只需在关系当新插入一个系时,只需在关系D中添加一条中添加一条记录。记录。2当某个学生尚未选课,只需在关系当某个学生尚未选课,只需在关系S中添加一中添加一条学生记录,而与选课关系无关,这就防止了插入条学生记录,而与选课关系无关,这就防止了插入异常。

17、异常。3当一个系的学生全部毕业时,只需在当一个系的学生全部毕业时,只需在S中删除中删除该系的全部学生记录,而关系该系的全部学生记录,而关系D中有关该系的信息中有关该系的信息依然保管,从而不会引起删除异常。依然保管,从而不会引起删除异常。4同时,由于数据冗余度的降低,数据没有反复同时,由于数据冗余度的降低,数据没有反复存储,也不会引起更新异常。存储,也不会引起更新异常。经过上述分析,可以说分解后的关系方经过上述分析,可以说分解后的关系方式是一个好的关系数据库方式。式是一个好的关系数据库方式。从而得出结论,一个好的关系方式应该从而得出结论,一个好的关系方式应该具备以下四个条件:具备以下四个条件:1

18、尽能够少的数据冗余尽能够少的数据冗余2没有插入异常没有插入异常3没有删除异常没有删除异常4没有更新异常没有更新异常但要留意,一个好的关系方式并不是在任但要留意,一个好的关系方式并不是在任何情况下都是最优的。何情况下都是最优的。比如查询某个学生选修课程名及所在系的比如查询某个学生选修课程名及所在系的系主任时,要经过衔接,而衔接所需求的系统开系主任时,要经过衔接,而衔接所需求的系统开销非常大,因此要以实践设计的目的出发进展设销非常大,因此要以实践设计的目的出发进展设计计如何按照一定的规范设计关系方式,将构造如何按照一定的规范设计关系方式,将构造复杂的关系分解成构造简单的关系,从而把不好复杂的关系分

19、解成构造简单的关系,从而把不好的关系数据库方式转变为好的关系数据库方式,的关系数据库方式转变为好的关系数据库方式,这就是关系的规范化。这就是关系的规范化。 规规范范化化又又可可以以根根据据不不同同的的要要求求而而分分成成假假设设干干级别。级别。 我我们们要要设设计计的的关关系系方方式式中中的的各各属属性性是是相相互互依依赖赖、相相互互制制约约的的,这这样样才才构构成成了了一一个个构构造造严严谨谨的的整体。整体。 因因此此在在设设计计关关方方式式时时,必必需需从从语语义义上上分分析析这这些依赖关系。些依赖关系。 数数据据库库方方式式的的好好坏坏和和关关系系中中各各属属性性间间的的依依赖赖关关系系

20、有有关关,因因此此,先先讨讨论论属属性性间间的的依依赖赖关关系系,然然后再讨论关系规范化实际。后再讨论关系规范化实际。 6.2 6.2 规范化规范化6.2.16.2.1函数依赖函数依赖 关关系系方方式式中中的的各各属属性性之之间间相相互互依依赖赖、相相互制约的联络称为数据依赖。互制约的联络称为数据依赖。 数数据据依依赖赖普普通通分分为为函函数数依依赖赖、多多值值依依赖赖和衔接依赖。和衔接依赖。 其中其中, ,函数依赖是最重要的数据依赖。函数依赖是最重要的数据依赖。 函函数数依依赖赖Functional Functional DependencyDependency是是关关系系方方式式中中属属性

21、性之之间间的的一一种种逻逻辑辑依依赖赖关关系。系。例如在上一节引见的关系方式例如在上一节引见的关系方式SCD中,中,SNO与与SN、AGE、DEPT之间都有一种依赖关系。之间都有一种依赖关系。由于一个由于一个SNO只对应一个学生,而一个学生只只对应一个学生,而一个学生只能属于一个系,所以当能属于一个系,所以当SNO的值确定之后,的值确定之后,SN,AGE,DEPT的值也随之被独一确实定了。的值也随之被独一确实定了。这类似于变量之间的单值函数关系。设单值函数这类似于变量之间的单值函数关系。设单值函数Y=F(X),自变量,自变量X的值可以决议一个独一的函数值的值可以决议一个独一的函数值Y。因此,可

22、以说因此,可以说SNO函数决议函数决议SN,AGE,DEPT,或者说,或者说SN,AGE,DEPT函数依赖于函数依赖于SNO。1.函数依赖函数依赖【定定义义6.1】设设关关系系方方式式R(U,F),U是是属属性性选选集集,F是是U上上的的函函数数依依赖赖集集,X和和Y是是U的的子子集集,假假设设对对于于R(U)的的恣恣意意一一个个能能够够的的关关系系r,r中中不不存存在在两两个个元元组组,它它们们在在X上上的的属属性性值值一一样样,而而在在Y上上的的属属性性值值不同,那么称不同,那么称X函数决议函数决议Y,或,或Y函数依赖于函数依赖于X。记作:记作:XYX通常称为通常称为“决议要素决议要素当当

23、Y不函数依赖与不函数依赖与X,那么记作:,那么记作:X Y当当XY,且,且YX,那么记作:,那么记作:XY举例举例:职工号职工号(A) 根本工资根本工资(B)奖金奖金(C)051390500524205005339080ABACB AC A对于关系方式对于关系方式SCDU=SNO,SN,AGE,DEPT,MN,CNO,SCOREF=SNOSN,SNOAGE,SNODEPT一个一个SNO有多个有多个SCORE的值与其对应,的值与其对应,因此因此SCORE不能独一地确定,即不能独一地确定,即SCORE不能不能函数依赖于函数依赖于SNO,所以有:,所以有:SNO SCORE。但是但是SCORE可以被

24、可以被SNO,CNO独一独一地确定。所以可表示为:地确定。所以可表示为:SNO,CNOSCORE。2.有关函数依赖的几点阐明有关函数依赖的几点阐明1平凡函数依赖与非平凡函数依赖。平凡函数依赖与非平凡函数依赖。当属性集当属性集Y是属性集是属性集X的子集时,那么必的子集时,那么必然存在着函数依赖然存在着函数依赖XY,这种类型的函数依赖这种类型的函数依赖称为平凡的函数依赖。称为平凡的函数依赖。假设假设Y不是不是X的子集,那么称的子集,那么称XY为非为非平凡的函数依赖。平凡的函数依赖。假设不特别声明,讨论的都是非平凡的假设不特别声明,讨论的都是非平凡的函数依赖。函数依赖。2函数依赖是语义范畴的概念。函

25、数依赖是语义范畴的概念。只能根据语义来确定一个函数依赖,而不能按只能根据语义来确定一个函数依赖,而不能按照其方式化定义来证明一个函数依赖能否成立。照其方式化定义来证明一个函数依赖能否成立。例如,对于关系方式例如,对于关系方式S,当学生不存在重名的情况下,当学生不存在重名的情况下,可以得到:可以得到:SNAGESNDEPT这种函数依赖关系,必需是在没有重名的学生这种函数依赖关系,必需是在没有重名的学生条件下才成立的,否那么就不存在函数依赖了。条件下才成立的,否那么就不存在函数依赖了。所以函数依赖反映了一种语义完好性约束。所以函数依赖反映了一种语义完好性约束。3函数依赖与属性之间的联络类型有关。函

26、数依赖与属性之间的联络类型有关。在一个关系方式中,假设属性在一个关系方式中,假设属性X与与Y有有1:1联络时,那联络时,那么存在函数依赖么存在函数依赖XY,YX,即,即XY。例如,当学生无重名时,例如,当学生无重名时,SNOSN。假设属性假设属性X与与Y有有m:1的联络时,那么只存在函数依赖的联络时,那么只存在函数依赖XY。(m1)例如,例如,SNO与与AGE、DEPT之间均为之间均为m:1联络,所以联络,所以有有SNOAGE,SNODEPT。假设属性假设属性X与与Y有有m:n的联络时,那么的联络时,那么X与与Y之间不存之间不存在任何函数依赖关系。在任何函数依赖关系。例如,一个学生可以选修多门

27、课程,一门课程又可以例如,一个学生可以选修多门课程,一门课程又可以为多个学生选修,所以为多个学生选修,所以SNO与与CNO之间不存在函数依赖之间不存在函数依赖关系。关系。由于函数依赖与属性之间的联络类型有关,所以在由于函数依赖与属性之间的联络类型有关,所以在确定属性间的函数依赖关系时,可以从分析属性间的联确定属性间的函数依赖关系时,可以从分析属性间的联络类型入手,从而确定属性间的函数依赖。络类型入手,从而确定属性间的函数依赖。4函数依赖关系的存在与时间无关。函数依赖关系的存在与时间无关。函数依赖是指关系中的一切元组应该满足的约束条件,函数依赖是指关系中的一切元组应该满足的约束条件,而不是指关系

28、中某个或某些元组所满足的约束条件。而不是指关系中某个或某些元组所满足的约束条件。当关系中的元组添加、删除或更新后都不能破坏这种函当关系中的元组添加、删除或更新后都不能破坏这种函数依赖。数依赖。因此,必需根据语义来确定属性之间的函数依赖,因此,必需根据语义来确定属性之间的函数依赖,而不能单凭某一时辰关系中的实践数据值来判别。而不能单凭某一时辰关系中的实践数据值来判别。例如,对于关系方式例如,对于关系方式S,假设没有给出无重名的学生这种,假设没有给出无重名的学生这种语义规定,那么即使当前关系中没有重名的记录,也只语义规定,那么即使当前关系中没有重名的记录,也只能存在函数依赖能存在函数依赖SNOSN

29、,而不能存在函数依赖,而不能存在函数依赖SNSNO,由于假设新添加一个重名的学生,函数依赖,由于假设新添加一个重名的学生,函数依赖SNSNO必然不成立。必然不成立。所以函数依赖关系的存在与时间无关,而只与数据所以函数依赖关系的存在与时间无关,而只与数据之间的语义规定有关。之间的语义规定有关。5函数依赖可以保证关系分解的无损衔接性。函数依赖可以保证关系分解的无损衔接性。设设RX,Y,Z,X,Y,Z为不相交的属性集合,假为不相交的属性集合,假设设XY或或XZ,那么有那么有R(X,Y,Z)=RX,Y*RX,Z其中,其中,RX,Y表示关系表示关系R在属性在属性X,Y上的投上的投影,即影,即R等于其投影

30、在等于其投影在X上的自然衔接,这样便保证了上的自然衔接,这样便保证了关系关系R分解后不会丧失原有的信息,称作关系分解的无分解后不会丧失原有的信息,称作关系分解的无损衔接性。损衔接性。例如,对于关系方式例如,对于关系方式SCD,有,有SNOSN,AGE,DEPT,MN,SCDSNO,SN,AGE,DEPT,MN,CNO,SCORE=SCDSNO,SN,AGE,DEPT,MN*SCDSNO,CNO,SCORE,也就是说,用其投,也就是说,用其投影在影在SNO上的自然衔接可复原关系方式上的自然衔接可复原关系方式SCD。这一性质非常重要,在后一节的关系规范化中要用到。这一性质非常重要,在后一节的关系规

31、范化中要用到。3.函数依赖的根本性质函数依赖的根本性质1投影性投影性根据平凡的函数依赖的定义可知,一组属性函根据平凡的函数依赖的定义可知,一组属性函数决议它的一切子集。数决议它的一切子集。例如,在关系例如,在关系SCD中,中,SNO,CNOSNO和和SNO,CNOCNO。2扩张性扩张性假设假设XY且且WZ,那么,那么X,WY,Z。例如,例如,SNOSN,AGE,DEPTMN,那么,那么有有SNO,DEPTSN,AGE,MN。3合并性合并性假设假设XY且且XZ那么必有那么必有XY,Z。例如,在关系例如,在关系SCD中,中,SNOSN,AGE,SNODEPT,MN,那么有,那么有SNOSN,AGE

32、,DEPT,MN。4分解性分解性假设假设XY,Z,那么那么XY且且XZ。很显然,分。很显然,分解性为合并性的逆过程。解性为合并性的逆过程。由合并性和分解性,很容易得到以下现实:由合并性和分解性,很容易得到以下现实:XA1,A2,,An成立的充分必要条件是成立的充分必要条件是XAii=1,2,n成立。成立。2.完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖【定义【定义6.2】设关系方式设关系方式R(U),U是属性选集,是属性选集,X和和Y是是U的子集,假设的子集,假设XY,并且对于,并且对于X的任何一个真的任何一个真子集子集X,都有都有X Y,那么称,那么称Y对对X完全函数依赖完全函数依赖

33、FullFunctionalDependency,记作,记作XY。假设对假设对X的某个真子集的某个真子集X,有,有XY,那么称,那么称Y对部对部分函数依赖分函数依赖PartialFunctionalDependency,记,记作作XY。例如,在关系方式例如,在关系方式SCD中,由于中,由于SNO SCORE,且,且CNO SCORE,所以有:,所以有:SNO,CNOSCORE。而而SNOAGE,所以,所以SNO,CNOAGE。FPPF由定义由定义6.2可知:可知:只需当决议要素是组合属性时,讨论部分函只需当决议要素是组合属性时,讨论部分函数依赖才有意义。数依赖才有意义。当决议要素是单属性时,只

34、能是完全函数依当决议要素是单属性时,只能是完全函数依赖。赖。例如,在关系方式例如,在关系方式SSNO,SN,AGE,DEPT,决议要素为单属性,决议要素为单属性SNO,有,有SNOSN,AGE,DEPT,不存在部分函数依赖。,不存在部分函数依赖。因此:因此:SNOSN,AGE,DEPTF3传送函数依赖传送函数依赖【定义【定义6.3】设有关系方式设有关系方式RU,U是属性是属性选集,选集,X,Y,Z是是U的子集,假设的子集,假设XY,但,但Y X,而,而YZYX,ZY,那么称,那么称Z对对X传送函数依赖传送函数依赖TransitiveFunctionalDependency,记作:,记作:XZ。

35、假设假设YX,那么,那么XY,这时称,这时称Z对对X直直接函数依赖,而不是传送函数依赖。接函数依赖,而不是传送函数依赖。T例如,在关系方式例如,在关系方式SCD中,中,SNODEPT,但,但DEPT SNO,而,而DEPTMN,那么有,那么有SNOMN。当学生不存在重名的情况下,有当学生不存在重名的情况下,有SNOSN,SNSNO,SNOSN,SNDEPT,这时,这时DEPT对对SNO是直接函数依赖,而不是传送函数依赖。是直接函数依赖,而不是传送函数依赖。综上所述,函数依赖分为完全函数依赖、部分函综上所述,函数依赖分为完全函数依赖、部分函数依赖和传送函数依赖三类,它们是规范化实际的根数依赖和传

36、送函数依赖三类,它们是规范化实际的根据和规范化程度的准那么,下面将以引见的这些概念据和规范化程度的准那么,下面将以引见的这些概念为根底,进展数据库的规范设计。为根底,进展数据库的规范设计。T6.2.2码的方式定义码的方式定义【定义【定义6.4】在关系方式】在关系方式R(U)中,中,K是是U中的属性或属性组,假设中的属性或属性组,假设KU,那么那么称称K为关系为关系R(U)的一个候选码;假设的一个候选码;假设关系候选码多于一个,那么选定其中关系候选码多于一个,那么选定其中一个作为主码。其中包含在恣意一个一个作为主码。其中包含在恣意一个候选码中的属性称为主属性候选码中的属性称为主属性;不包含在不包

37、含在恣意一个候选码中的属性称为非主属恣意一个候选码中的属性称为非主属性。性。假设整个属性组都是码,称为全假设整个属性组都是码,称为全码。码。F候选码的两个性质候选码的两个性质:1标识的独一性:对于标识的独一性:对于R(U)中的每一元中的每一元组,组,K的值确定后,该元组就相应确定了的值确定后,该元组就相应确定了.2无冗余性最小性:无冗余性最小性:K是属性组的是属性组的情况下,情况下,K的任何一部分都不能独一标识该的任何一部分都不能独一标识该元组定义中的完全函数依赖的意义。元组定义中的完全函数依赖的意义。【定义【定义6.5】在关系方式】在关系方式R中,属性或属性组中,属性或属性组X并非并非R的码

38、,但的码,但X是另外一个关系方式的码,那是另外一个关系方式的码,那么称么称X是是R的外码。的外码。例如:例如:1.S(S#,SN,AGE,SEX,DEPT)其中其中:S#和和SN是主属性是主属性,其它属性是非主属性其它属性是非主属性2.SC(S#,C#,GRADE)其中其中:S#,C#是主属性是主属性,GRADE属性是非主属性属性是非主属性3.设演奏者、作品和听众分别用设演奏者、作品和听众分别用P、W,A表示,表示,构成一个关系方式构成一个关系方式PWA(P,W,A)其中其中:全属性集全属性集(P,W,A)是码是码(全码全码),P,W,A都是主都是主属性。属性。6.2.3范式范式规范化的根本思

39、想是消除关系方式中的数据冗余,消规范化的根本思想是消除关系方式中的数据冗余,消除数据依赖中的不适宜的部分,处理数据插入、删除时除数据依赖中的不适宜的部分,处理数据插入、删除时发生异常景象。发生异常景象。要求关系数据库设计出来的关系方式要满足一定的条要求关系数据库设计出来的关系方式要满足一定的条件。件。把关系数据库的规范化过程中为不同程度的规范化要把关系数据库的规范化过程中为不同程度的规范化要求设立的不同规范称为范式求设立的不同规范称为范式NormalForm。由于规范化的程度不同,就产生了不同的范式。由于规范化的程度不同,就产生了不同的范式。满足最根本规范化要求的关系方式叫第一范式。在第满足最

40、根本规范化要求的关系方式叫第一范式。在第一范式中进一步满足一些要求为第二范式。以此类推就一范式中进一步满足一些要求为第二范式。以此类推就产生了第三范式等概念。每种范式都规定了一些限制约产生了第三范式等概念。每种范式都规定了一些限制约束条件。束条件。范式的概念最早由范式的概念最早由E.F.Codd提出。提出。从从1971年起,年起,Codd相继提出了关系的三级规范化相继提出了关系的三级规范化方式,即第一范式方式,即第一范式1NF、第二范式、第二范式2NF、第三范式第三范式3NF。1974年,年,Codd和和Boyce共同提出了一个新的范式共同提出了一个新的范式的概念,即的概念,即Boyce-Co

41、dd范式,简称范式,简称BC范式。范式。1976年年Fagin提出了第四范式,后来又有人定义了提出了第四范式,后来又有人定义了第五范式。第五范式。至此在关系数据库规范中建立了一个范式系列:至此在关系数据库规范中建立了一个范式系列:1NF,2NF,3NF,BCNF,4NF,5NF,一级比一级有更严厉一级比一级有更严厉的要求。的要求。各个范式之间的联络可以表示为:各个范式之间的联络可以表示为:5NF4NFBCNF3NF2NF1NF图图6.2 6.2 各种范式之间的关系各种范式之间的关系范式层次范式层次规范与非规范化关系规范与非规范化关系1NF2NF3NFBCNF4NF5NFl第一范式第一范式l 第

42、第一一范范式式First First Normal Normal FormForm是是最最根根本本的的规规范范方方式式,即即关关系系中中每每个个属属性性都都是是不不可可再再分分的简单项。的简单项。l定定义义:假假设设关关系系方方式式R R,其其一一切切的的属属性性均均为为简简单单属属性性,即即每每个个属属性性都都是是不不可可再再分分的的,那那么么称称R R属属于于第一范式,简称第一范式,简称1NF1NF,记作,记作R R1NF1NF。l 在在讨讨论论关关系系的的性性质质时时,把把满满足足这这个个条条件件的的关关系称为规范化关系。系称为规范化关系。l 在在关关系系数数据据库库系系统统中中只只讨讨

43、论论规规范范化化的的关关系系,凡是非规范化的关系方式必需化成规范化的关系。凡是非规范化的关系方式必需化成规范化的关系。l 在在非非规规范范化化的的关关系系中中去去掉掉组组合合项项就就能能化化成成规规范化的关系。范化的关系。l 每每个个规规范范化化的的关关系系都都属属于于1NF1NF,这这也也是是它它之之所以称为所以称为“第一的缘由。第一的缘由。 一个关系方式仅仅属于第一范式是不适用的。一个关系方式仅仅属于第一范式是不适用的。 在前面给出的关系方式在前面给出的关系方式SCD属于第一范式,但其属于第一范式,但其具有大量的数据冗余,具有插入异常、删除异常、具有大量的数据冗余,具有插入异常、删除异常、

44、更新异常等弊端。更新异常等弊端。为什么会存在这种问题呢?为什么会存在这种问题呢? 分析一下分析一下SCD中的函数依赖关系,它的关系码是中的函数依赖关系,它的关系码是SNO,CNO的属性组合,所以有:的属性组合,所以有: SNO,CNO SCORE SNOSN,SNO,CNO SN SNOAGE,SNO,CNO AGE SNODEPT,SNO,CNO DEPT DEPT MN,SNO MN FPPPT可以用函数依赖图表示以上函数依赖关系,如图可以用函数依赖图表示以上函数依赖关系,如图6.36.3所示。所示。 由此可见,在由此可见,在SCDSCD中,既存在完全函数依赖,又存在部分函数中,既存在完全

45、函数依赖,又存在部分函数依赖和传送函数依赖。依赖和传送函数依赖。这种情况往往在数据库中是不允许的,也正是由于关系中存这种情况往往在数据库中是不允许的,也正是由于关系中存在着复杂的函数依赖,才导致数据操作中出现了种弊端。在着复杂的函数依赖,才导致数据操作中出现了种弊端。抑制这些弊端的方法是用投影运算将关系分解,去掉过于复抑制这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进展转换。杂的函数依赖关系,向更高一级的范式进展转换。 DEPTDEPTMNMNSCORESCORE图图6.3 SCD6.3 SCD6.3 SCD6.3 SCD中的函数依中的函数依中的函数依中的

46、函数依赖赖关系关系关系关系SNOSNOCNOCNOPFFT6.2.4第二范式第二范式1.定义定义【定定义义6.6】假假设设关关系系方方式式R1NF,且且每每个个非非主主属属性性都都完完全全函函数数依依赖赖于于R的的码码,那那么么称称R属属于于第第二二范范式式SecondNormalForm,简称简称2NF,记作,记作R2NF。在在关关系系方方式式SCD中中,SNO,CNO为为主主属属性性,AGE,DEPT,MN,MN,SCORE均均为为非非主主属属性性,经经上上述述分分析析,存存在在非非主主属属性性对对码的部分函数依赖,所以码的部分函数依赖,所以SCD2NF。由由SCD分分解解的的三三个个关关

47、系系方方式式S,D,SC,其其中中S的的码码为为SNO,D的的码码为为DEPT,都都是是单单属性,不能够存在部分函数依赖。属性,不能够存在部分函数依赖。而而对对于于SC,SNO,CNOSCORE。所所以以SCD分分解解后后,消消除除了了非非主主属属性性对对码码的的部部分函数依赖,分函数依赖,S,D,SC均属于均属于2NF。F又如关系方式又如关系方式TCST,C,S,一个教师可以讲授多门课程,一门课程可以为多个一个教师可以讲授多门课程,一门课程可以为多个教师讲授;教师讲授;一个学生可以选听多门课程,一门课程可以为多个一个学生可以选听多门课程,一门课程可以为多个学生选听;学生选听;(T,C,S)三

48、个属性的组合是关系码,三个属性的组合是关系码,T,C,S都是主都是主属性,而无非主属性,所以也就不能够存在非主属属性,而无非主属性,所以也就不能够存在非主属性对关系码的部分函数依赖,性对关系码的部分函数依赖,TCS2NF。经以上分析,可以得到两个结论:经以上分析,可以得到两个结论:1从从1NF关系中消除非主属性对关系码的部分函关系中消除非主属性对关系码的部分函数依赖,那么可得到数依赖,那么可得到2NF关系。关系。2假设假设R的关系码为单属性,或的关系码为单属性,或R的全体属性均的全体属性均为主属性,那么为主属性,那么R2NF。2.2NF规范化规范化2NF规范化是指把规范化是指把1NF关系方式经

49、过关系方式经过投影分解转换成投影分解转换成2NF关系方式的集合。关系方式的集合。分解时遵照的根本原那么就是分解时遵照的根本原那么就是“一事一事一地,让一个关系只描画一个实体或一地,让一个关系只描画一个实体或者实体间的联络。假设多于一个实体或者实体间的联络。假设多于一个实体或联络,那么进展投影分解。联络,那么进展投影分解。下面以关系方式下面以关系方式SCD为例,来阐明为例,来阐明2NF规规范化的过程。范化的过程。【例【例6.1】将将CD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)规范到规范到2NF。由由SNOSN,SNOAGE,SNODEPT,SNO,CNOSCORE,可以判别,

50、关系,可以判别,关系SCD至少描画至少描画了两个实体,一个为学生实体,属性有了两个实体,一个为学生实体,属性有SNO、SN、AGE、DEPT、MN;另一个;另一个是学生与课程的联络选课,属性有是学生与课程的联络选课,属性有SNO、CNO和和SCORE。根据分解的原那么,可以将根据分解的原那么,可以将SCD分解成分解成如下两个关系,如图如下两个关系,如图6.5所示。所示。lSD(SNO,SN,AGE,DEPT,MN),描画学生实体;,描画学生实体;lSC(SNO,CNO,SCORE),描画学生与课程的联络。,描画学生与课程的联络。lSDSNOSNOSNSNAGEAGEDEPTDEPTMNMNS1

51、S1赵亦赵亦1717计算机计算机刘伟刘伟S2S2钱尔钱尔1818信息信息王平王平S3S3孙珊孙珊2020信息信息王平王平S4S4李思李思2121自动化自动化刘伟刘伟SC SC SNOSNOCNOCNOSCORESCORES1S1C1C19090S1S1C2C28585S2S2C5C55757S2S2C6C68080S2S2C7C7S2S2C5C57070S3S3C1C10 0S3S3C2C27070S3S3C4C48585S4S4C1C19393图图6.5关系关系SD和和SC对于分解后的两个关系对于分解后的两个关系SD和和SC,主码分别为,主码分别为SNO和和SNO,CNO,非主属性对主码完全

52、函数依赖。,非主属性对主码完全函数依赖。因此,因此,SD2NF,SC2NF,SCD的这种分解没有丧的这种分解没有丧失任何信息,具有无损衔接性。失任何信息,具有无损衔接性。SCDSD*SC分解后,分解后,SD和和SC的函数依赖分别如图的函数依赖分别如图6.6和和6.7所所示。示。SNOSNOSNSNSNOSNOCNOCNOSCORESCOREAGEAGEDEPTDEPTMNMN图图6.6 SD6.6 SD中的函数依赖关系中的函数依赖关系 图图6.7 SC6.7 SC中的函数依赖关系中的函数依赖关系 1NF的关系方式经过投影分解转换成的关系方式经过投影分解转换成2NF后,消除了一后,消除了一些数据

53、冗余。些数据冗余。分析图分析图6.5中中SD和和SC中的数据,可以看出,它们存储的中的数据,可以看出,它们存储的冗余度比关系方式冗余度比关系方式SCD有了较大辐度的降低。有了较大辐度的降低。学生的姓名、年龄不需求反复存储多次。学生的姓名、年龄不需求反复存储多次。在一定程度上防止数据更新所呵斥的数据不一致性的问题。在一定程度上防止数据更新所呵斥的数据不一致性的问题。由于把学生的根本信息与选课信息分开存储,那么学生根本由于把学生的根本信息与选课信息分开存储,那么学生根本信息因没选课而不能插入的问题得到理处理,插入异常景象信息因没选课而不能插入的问题得到理处理,插入异常景象得到了部分改善。得到了部分

54、改善。同样,假设某个学生不再选修同样,假设某个学生不再选修C1课程,只在选课关系课程,只在选课关系SC中中删去该该学生选修删去该该学生选修C1的记录即可,而的记录即可,而SD中有关该学生的其中有关该学生的其它信息不会遭到任何影响,也处理了部分删除异常问题。它信息不会遭到任何影响,也处理了部分删除异常问题。因此可以说关系方式因此可以说关系方式SD和和SC在性能上比在性能上比SCD有了显著提有了显著提高。高。3.对对2NF规范化作方式化的描画规范化作方式化的描画设设关关系系方方式式RX,Y,Z,R1NF,但但R2NF,其其中中,X是是码码属属性性,Y,Z是是非非码码属属性性,且且存存在在部部分分函

55、函数数依依赖赖,XY。设设X可可表表示示为为X1、X2,其其中中X1Y。那那么么RX,Y,Z可可以以分分解解为为RX1,Y和和RX,Z。由由于于X1Y,所所以以R(X,Y,Z)=RX1,Y*RX1,X2,Z=RX1,Y*RX,Z,即即R等等于于其其投投影影RX1,Y和和X,Z在在X1上上的自然衔接,的自然衔接,R的分解具有无损衔接性。的分解具有无损衔接性。由由于于X1Y,因因此此RX1,Y2NF。假假设设RX,Z2NF,可可以以按按照照上上述述方方法法继继续续进进展展投投影影分分解解,直直到到将将RX,Z分分解解为为属属于于2NF关关系系的的集集合合,且且这这种种分分解解必必定定是是有有限的。

56、限的。4.2NF的缺陷的缺陷2NF的关系方式处理了的关系方式处理了1NF中存在的一些中存在的一些问题,问题,2NF规范化的程度比规范化的程度比1NF前进了一步,前进了一步,但但2NF的关系方式在进展数据操作时,依然存的关系方式在进展数据操作时,依然存在着一些问题:在着一些问题:1数据冗余。每个系名和系主任的名字存数据冗余。每个系名和系主任的名字存储的次数等于该系的学生人数。储的次数等于该系的学生人数。2插入异常。当一个新系没有招生时,有插入异常。当一个新系没有招生时,有关该系的信息无法插入。关该系的信息无法插入。3删除异常。某系学生全部毕业而没有招删除异常。某系学生全部毕业而没有招生时,删除全

57、部学生的记录也随之删除了该系生时,删除全部学生的记录也随之删除了该系的有关信息。的有关信息。4更新异常。改换系主任时,仍需改动较更新异常。改换系主任时,仍需改动较多的学生记录。多的学生记录。2NF的缺陷的缺陷之之所所以以存存在在这这些些问问题题,是是由由于于在在SCD中中存存在在着着非非主主属属性性对对码码的的传传送送依依赖。赖。分分析析SCD中中的的函函数数依依赖赖关关系系,SNOSN,SNOAGE,SNODEPT,DEPTMN,SNOMN,非非主主属属性性MN对对码码SNO传送依赖。传送依赖。为为此此,对对关关系系方方式式SCD还还需需进进一一步步简化,消除这种传送依赖,得到简化,消除这种

58、传送依赖,得到3NF。6.2.5第三范式第三范式1.定义定义【定定义义6.7】假假设设关关系系方方式式R2NF,且且每每个个非非主主属属性性都都不不传传送送依依赖赖于于R的的码码,那那么么称称R属属于于第第三三范范式式ThirdNormal Form , 简简 称称 3NF, 记记 作作R3NF。2.第三范式具有如下性质第三范式具有如下性质1假设假设R3NF,那么,那么R也是也是2NF。3NF的另一种等价描画是:对于关系方式的另一种等价描画是:对于关系方式R,不存在如下条件的函数依赖,不存在如下条件的函数依赖,XYY X,YZ,其中,其中X是码属性,是码属性,Y是恣意属是恣意属性组,性组,Z是

59、非主属性,是非主属性,ZY。2假设假设R2NF,那么,那么R不一定是不一定是3NF。例如,前面由关系方式例如,前面由关系方式SCD分解而得到的分解而得到的SD和和SC都为都为2NF,其中,其中,SC3NF,但在,但在SD中中存在着非主属性存在着非主属性MN对主码对主码SNO传送依赖,传送依赖,SD3NF。对于。对于SD,应该进一步进展分解,应该进一步进展分解,使其转换成使其转换成3NF。3.3NF规范化规范化3NF规范化是指把规范化是指把2NF关系方式经过关系方式经过投影分解转换成投影分解转换成3NF关系方式的集合。关系方式的集合。和和2NF的规范化时遵照的原那么一样,的规范化时遵照的原那么一

60、样,即即“一事一地,让一个关系只描画一个一事一地,让一个关系只描画一个实体或者实体间的联络。实体或者实体间的联络。【例【例6.2】将】将SD(SNO,SN,AGE,DEPT,MN)规范到规范到3NF。分析分析SD的属性组成,可以判别,关系的属性组成,可以判别,关系SD实践上实践上描画了两个实体:描画了两个实体:1一个为学生实体,属性有一个为学生实体,属性有SNO,SN,AGE,DEPT;2另一个是系的实体,其属性另一个是系的实体,其属性DEPT和和MN。根据分解的原那么,可以将根据分解的原那么,可以将SD分解成如下两个分解成如下两个关系,如图关系,如图6.8所示。所示。S(SNO,SN,AGE

61、,DEPT),描画学生实体;,描画学生实体;D(DEPT,MN),描画系的实体。,描画系的实体。S DSNOSNOSNSNAGEAGEDEPTDEPTDEPTDEPTMNMNS1S1赵亦赵亦1717计算机计算机计算机计算机刘伟刘伟S2S2钱尔钱尔1818信息信息信息信息王平王平S3S3孙珊孙珊2020信息信息自动化自动化刘伟刘伟S4S4李思李思2121自动化自动化对对于于分分解解后后的的两两个个关关系系S和和D,主主码码分分别别为为SNO和和DEPT,不不存存在在非非主主属属性性对对主主属属性性的的传传送送函函数数依依赖赖。因因此此,S3NF,D3NF。图图6.8 6.8 关系关系S S和和D

62、 D 分解后,分解后,S和和D的函数依赖分别如图的函数依赖分别如图6.9和和6.10所示。所示。SNOSNOSNSNDEPTDEPTAGEAGEDEPTDEPTMNMN图图6.9 S6.9 S中的函数依赖关系图中的函数依赖关系图图图6.10 D6.10 D中的函数依赖关系图中的函数依赖关系图由由以以上上两两图图可可以以看看出出,关关系系方方式式SD由由2NF分分解解为为3NF后后,函函数数依依赖赖关关系系变变得得更更加加简简单单,既既没没有有非非主主属属性性对对码码的的部部分分依依赖赖,也也没没有有非非主主属属性性对对码的传送依赖,处理了码的传送依赖,处理了2NF中存在的四个问题。中存在的四个

63、问题。1 1数数据据冗冗余余降降低低。系系主主任任的的名名字字存存储储的的次次数数与该系的学生人数无关,只在关系与该系的学生人数无关,只在关系D D中存储一次。中存储一次。2 2不不存存在在插插入入异异常常。当当一一个个新新系系没没有有学学生生时时,该该系系的的信信息息可可以以直直接接插插入入到到关关系系D D中中,而而与与学学生生关系关系S S无关。无关。3 3不不存存在在删删除除异异常常。要要删删除除某某系系的的全全部部学学生生而而依依然然保保管管该该系系的的有有关关信信息息时时,可可以以只只删删除除学学生生关关系系S S中中的的相相关关学学生生记记录录,而而不不影影响响系系关关系系D D

64、中中的的数据。数据。4 4不不存存在在更更新新异异常常。改改换换系系主主任任时时,只只需需修修正正关关系系D D中中一一个个相相应应元元组组的的MNMN属属性性值值,从从而而不不会会出现数据的不一致景象。出现数据的不一致景象。 SCDSCD规规范范到到3NF3NF后后,所所存存在在的的异异常常景景象象曾曾经经全全部消逝。部消逝。 但但是是,3NF3NF只只限限制制了了非非主主属属性性对对码码的的依依赖赖关关系系,而没有限制主属性对码的依赖关系。而没有限制主属性对码的依赖关系。 假假设设发发生生了了这这种种依依赖赖,仍仍有有能能够够存存在在数数据据冗冗余、插入异常、删除异常和修正异常。余、插入异

65、常、删除异常和修正异常。 这这时时,那那么么需需对对3NF3NF进进一一步步规规范范化化,消消除除主主属属性性对对码码的的依依赖赖关关系系,为为理理处处理理这这种种问问题题,BoyceBoyce与与CoddCodd共共同同提提出出了了一一个个新新范范式式的的定定义义,这这就就是是Boyce-CoddBoyce-Codd范范式式,通通常常简简称称BCNFBCNF或或BCBC范范式式。它它弥弥补了补了3NF3NF的缺乏。的缺乏。6.2.6 BC6.2.6 BC范式范式1. 1. 定义定义【定定义义6.86.8】假假设设关关系系方方式式R R1NF1NF,且且存存在在函函数数依依赖赖XYXYY Y

66、X X, ,决决议议要要素素X X都都包包含含了了R R的的一一个个候候选选码码,那那么么称称R R属属 于于 BCBC范范 式式 Boyce-Codd Boyce-Codd Normal Normal FormForm,记作,记作R RBCNFBCNF。2.BCNF具有如下性质具有如下性质1满足满足BCNF的关系将消除任何属性主属性的关系将消除任何属性主属性或非主属性对码的部分函数依赖和传送函数依或非主属性对码的部分函数依赖和传送函数依赖。也就是说,假设赖。也就是说,假设RBCNF,那么,那么R也是也是3NF。证明:采用反证法。设证明:采用反证法。设R不是不是3NF。那么必然存。那么必然存在

67、如下条件的函数依赖,在如下条件的函数依赖,XYYX,YZ,其中,其中X是码属性,是码属性,Y是恣意属性组,是恣意属性组,Z是非主属是非主属性,性,Z Y,这样,这样YZ函数依赖的决议要素函数依赖的决议要素Y不包不包含候选码,这与含候选码,这与BCNF范式的定义相矛盾,所以范式的定义相矛盾,所以假设假设RBCNF,那么,那么R也是也是3NF。2假设假设R3NF,那么,那么R不一定是不一定是BCNF。例:设关系方式例:设关系方式SNCSNO,SN,CN0,SCORE,其中,其中SN代表代表学生姓名并假设没有重名,可以断定,学生姓名并假设没有重名,可以断定,SNC有两个候选码有两个候选码SNO,CN

68、O和和SN,CNO,其函数依赖如下:,其函数依赖如下:SNOSNSNO,CNOSCORESN,CNOSCORE。独一的非主属性独一的非主属性SCORE对码不存在部分函数依赖,也不存在传对码不存在部分函数依赖,也不存在传送函数依赖。所以送函数依赖。所以SNC3NF。但是,由于但是,由于SNOSN,即决议要素,即决议要素SNO或或SN不包含候选码,不包含候选码,从另一个角度说,存在着主属性对码的部分函数依赖:从另一个角度说,存在着主属性对码的部分函数依赖:SNO,CNOSN,SN,CNOSNO,所以,所以SNC不是不是BCNF。正是存在着这种主属性对码的部分函数依赖关系,呵斥了关系正是存在着这种主

69、属性对码的部分函数依赖关系,呵斥了关系SNC中存在着较大的数据冗余,学生姓名的存储次数等于该生所选中存在着较大的数据冗余,学生姓名的存储次数等于该生所选的课程数。从而会引起修正异常。的课程数。从而会引起修正异常。比如,当要更改某个学生的姓名时,那么必需搜索出现该姓名比如,当要更改某个学生的姓名时,那么必需搜索出现该姓名的每个学生记录,并对其姓名逐一修正,这样容易呵斥数据的不一的每个学生记录,并对其姓名逐一修正,这样容易呵斥数据的不一致问题。致问题。处理这一问题的方法依然是经过投影分解进一步提高处理这一问题的方法依然是经过投影分解进一步提高SNC的范的范式等级,将式等级,将SNC规范到规范到BC

70、NF。3.BCNF规范化规范化BCNF规范化是指把规范化是指把3NF关系方式经过投关系方式经过投影分解转换成影分解转换成BCNF关系方式的集合。关系方式的集合。【例【例6.3】将】将SNC(SNO,SN,CNO,SCORE)规规范到范到BCNF。分析分析SNC数据冗余的缘由,是由于在这一数据冗余的缘由,是由于在这一个关系中存在两个实体,一个为学生实体,属个关系中存在两个实体,一个为学生实体,属性有性有SNO、SN;另一个是选课联络,属性有;另一个是选课联络,属性有SNO、CNO和和SCORE。根据分解的原那么,可以将根据分解的原那么,可以将SNC分解成如下两分解成如下两个关系:个关系:S1(S

71、NO,SN),描画学生实体;,描画学生实体;S2(SNO,CNO,SCORE),描画学生与课程的联,描画学生与课程的联络。络。对于对于S1,有两个候选码,有两个候选码SNO和和SN,对于对于S2,主码为,主码为SNO,CNO。在这两个关系中,无论主属性还是非主属在这两个关系中,无论主属性还是非主属性都不存在对码的部分依赖和传送依赖,性都不存在对码的部分依赖和传送依赖,S1BCNF,S2BCNF。分解后,分解后,S1和和S2的函数依赖分别如图的函数依赖分别如图6.11和和6.12所示。所示。SNOSNOSNSNSNOSNOCNOCNOSCORESCORE图图6.11 S16.11 S1中的函数依

72、赖关系中的函数依赖关系 图图6.12 S26.12 S2中的函数依赖关系中的函数依赖关系 关系关系SNC转换成转换成BCNF后,数据冗余度明显降低。后,数据冗余度明显降低。学生的姓名只在关系学生的姓名只在关系S1中存储一次,学生要改名时,只中存储一次,学生要改名时,只需改动一条学生记录中的相应的需改动一条学生记录中的相应的SN值,从而不会发生修正值,从而不会发生修正异常。异常。SCTSTC6.13 TCS6.13 TCS中的函数依赖关系中的函数依赖关系 【例【例6.4】设关系方式】设关系方式TCST,C,S,T表示教师,表示教师,C表示课程,表示课程,S表示学生。语义假设是,每一位教师只表示学

73、生。语义假设是,每一位教师只讲授一门课程;每门课程由多个教师讲授;某一学生选讲授一门课程;每门课程由多个教师讲授;某一学生选定某门课程,就对应于一确定的教师。定某门课程,就对应于一确定的教师。根据语义假设,根据语义假设,TCS的函数依赖是:的函数依赖是:S,CT,TC,S,TC。数依赖图如图数依赖图如图6.13所示。所示。对对于于TCS,S,C和和S,T都都是是候候选选码码。TCS中中不不存存在在非非主主属属性性,也也就就不不能能够够存存在在非非主主属属性性对对码码的的部部分分依赖或传送依赖,所以依赖或传送依赖,所以TCS3NF。但但从从TCS的的一一个个关关系系实实例例如如图图6.14分分析

74、析,仍仍存存在在一些问题。一些问题。T TC CS ST1T1C1C1S1S1T1T1C1C1S2S2T2T2C1C1S3S3T2T2C1C1S4S4T3T3C2C2S2S2T4T4C2C2S2S2T4T4C3C3S2S2图图6.14 6.14 关系关系TCS TCS 1数数据据冗冗余余。虽虽然然每每个个教教师师只只开开一一门门课课,但但每每个个选选修该教师该该门课程的学生元组都要记录这一信息。修该教师该该门课程的学生元组都要记录这一信息。2插插入入异异常常。当当某某门门课课程程本本学学期期不不开开,自自然然就就没没有有学学生生选选修修。没没有有学学生生选选修修,由由于于主主属属性性不不能能为

75、为空空,教教师师上上该该门门课课程程的的信信息息就就无无法法插插入入。同同样样缘缘由由,学学生生刚刚入校入校,尚未选课,有关信息也不能输入。尚未选课,有关信息也不能输入。3删删除除异异常常。假假设设选选修修某某门门课课程程的的学学生生全全部部毕毕业业,删删除除学学生生记记录录的的同同时时,随随之之也也删删除除了了教教师师开开设设该该门门课课程程的信息。的信息。4更更新新异异常常。当当某某个个教教师师开开设设的的某某门门课课程程改改名名后后,一一切切选选修修该该教教师师该该门门课课程程的的学学生生元元组组都都要要进进展展修修正正,假设漏改某个数据,那么破坏了数据的完好性。假设漏改某个数据,那么破

76、坏了数据的完好性。分分析析出出现现上上述述问问题题的的缘缘由由在在于于主主属属性性部部分分依依赖赖于于码码,S,TC,因因此此关关系系方方式式还还继继续续分分解解,转转换换成成更更高高一一级级的的范范式式BCNF,以以消消除除数数据据库库操操作作中中的的异常景象。异常景象。将将TCS分分解解为为两两个个关关系系方方式式STS,T和和TCT,C,消消除除函函数数依依赖赖S,TC。其其中中ST的的码码为为(S,T),TC的的码码为为T。STBCNF,TCBCNF。这这两个关系方式的函数依赖图分别如图两个关系方式的函数依赖图分别如图6.15和和6.16所示。所示。S,TTC图图6.15 ST6.15

77、 ST中的函数依赖关系中的函数依赖关系 图图6.16 TC6.16 TC中的函数依赖关系中的函数依赖关系 关系方式关系方式TCS由规范到由规范到BCNF后,使原来存在的四个后,使原来存在的四个异常问题得到处理。异常问题得到处理。1数据冗余降低。每个教师开设课程的信息只在数据冗余降低。每个教师开设课程的信息只在TC关系中存储一次。关系中存储一次。2不存在插入异常。对于所开课程尚未有学生选修的不存在插入异常。对于所开课程尚未有学生选修的教师信息可以直接存储在关系教师信息可以直接存储在关系TC中,而对于尚未选修课中,而对于尚未选修课程的学生可以存储在关系程的学生可以存储在关系ST中。中。3不存在删除

78、异常。假设选修某门课程的学生全部毕不存在删除异常。假设选修某门课程的学生全部毕业,可以只删除关系业,可以只删除关系ST中的相关学生记录,而不影响系中的相关学生记录,而不影响系关系关系TC中相应教师开设该门课程的信息。中相应教师开设该门课程的信息。4不存在更新异常。当某个教师开设的某门课程改不存在更新异常。当某个教师开设的某门课程改名后,只需修正关系名后,只需修正关系TC中的一个相应元组即可,不会破中的一个相应元组即可,不会破坏数据的完好性。坏数据的完好性。假设一个关系数据库中一切关系方式都属假设一个关系数据库中一切关系方式都属于于3NF,那么已在很大程度上消除了插入异常,那么已在很大程度上消除

79、了插入异常和删除异常,但由于能够存在主属性对候选码和删除异常,但由于能够存在主属性对候选码的部分依赖和传送依赖,因此关系方式的分别的部分依赖和传送依赖,因此关系方式的分别仍不够彻底。仍不够彻底。假设一个关系数据库中一切关系方式都属假设一个关系数据库中一切关系方式都属于于BCNF,那么在函数依赖的范畴内,曾经实,那么在函数依赖的范畴内,曾经实现了方式的彻底分解,消除了产生插入异常和现了方式的彻底分解,消除了产生插入异常和删除异常的根源,而且数据冗余也减少到极小删除异常的根源,而且数据冗余也减少到极小程度。程度。关系方式的规范化小结关系方式的规范化小结到到目目前前为为止止,规规范范化化实实际际曾曾

80、经经提提出出了了六六类类范范式。式。各各范范式式级级别别是是在在分分析析函函数数依依赖赖条条件件下下对对关关系系方方式式分分别别程程度度的的一一种种测测度度,范范式式级级别别可可以以逐逐级级升升高。高。一一个个低低一一级级范范式式的的关关系系方方式式,经经过过方方式式分分解解转转化化为为假假设设干干个个高高一一级级范范式式的的关关系系方方式式的的集集合合,这这 种种 分分 解解 过过 程程 叫叫 作作 关关 系系 方方 式式 的的 规规 范范 化化 Normalization。1.关系方式规范化的目的和原那么关系方式规范化的目的和原那么一一个个关关系系只只需需其其分分量量都都是是不不可可分分的

81、的数数据据项项,就就可可称称作作规规范范化化的的关关系系,但但这这只只是是最最根本的规范化。根本的规范化。但但人人们们发发现现有有些些关关系系方方式式存存在在插插入入、删删除、修正异常、数据冗余等弊病。除、修正异常、数据冗余等弊病。规规范范化化的的目目的的就就是是使使构构造造合合理理,消消除除存存储储异异常常,使使数数据据冗冗余余尽尽量量小小,便便于于插插入入、删除和更新。删除和更新。规规范范化化的的根根本本原原那那么么就就是是服服从从概概念念单单一一化化“一一事事一一地地的的原原那那么么,即即一一个个关关系系只只描描画画一一个个实实体体或或者者实实体体间间的的联联络络。假假设设多多于于一个实

82、体,就把它一个实体,就把它“分别出来。分别出来。因因此此,所所谓谓规规范范化化,本本质质上上是是概概念念的的单单一化,即一个关系表示一个实体。一化,即一个关系表示一个实体。2.2.关系规范化的根本步骤关系规范化的根本步骤1NF1NF2NF2NF3NF3NFBCNFBCNF消除非主属性对码的部分函数依赖消除非主属性对码的部分函数依赖消除非主属性对码的传送函数依赖消除非主属性对码的传送函数依赖消除主属性对码的部分和传送函数依赖消除主属性对码的部分和传送函数依赖图图6.17 6.17 规范化过程规范化过程 普通情况下,以为没有异常弊病的数据库设计普通情况下,以为没有异常弊病的数据库设计是好的数据库设

83、计,一个不好的关系方式也总是是好的数据库设计,一个不好的关系方式也总是可以经过分解转换成好的关系方式的集合。可以经过分解转换成好的关系方式的集合。但是在分解时要全面衡量,综合思索,视实践但是在分解时要全面衡量,综合思索,视实践情况而定。情况而定。对于那些只需求查询而不要求插入、删除等操对于那些只需求查询而不要求插入、删除等操作的系统,几种异常景象的存在并不影响数据库作的系统,几种异常景象的存在并不影响数据库的操作。这时便不宜过度分解,否那么当要对整的操作。这时便不宜过度分解,否那么当要对整体查询时,需求更多的多表衔接操作,这有能够体查询时,需求更多的多表衔接操作,这有能够得不偿失。得不偿失。在

84、实践运用中,最有价值的是在实践运用中,最有价值的是3NF和和BCNF,在,在进展关系方式的设计时,通常分解到进展关系方式的设计时,通常分解到3NF就足够就足够了。了。3.关系方式规范化的要求关系方式规范化的要求关关系系方方式式的的规规范范化化过过程程是是经经过过对对关关系系方方式式的的投投影影分分解解来来实实现现的的,但但是是投投影影分分解解方方法法不不是是独独一一的的,不不同同的的投投影影分解会得到不同的结果。分解会得到不同的结果。在在这这些些分分解解方方法法中中,只只需需可可以以保保证证分分解解后后的的关关系系方方式式与与原原关关系系方方式式等等价价的方法才是有意义的。的方法才是有意义的。

85、1无损衔接性无损衔接性LosslessJoin设设关关系系方方式式R(U,F)被被分分解解为为假假设设干干个个关关系系方方式式R1(U1,F1),R2(U2,F2),,Rk(Uk,Fk),其其中中U=U1U2Uk,Fi为为F在在Ui上上的的投投影影,假假设设R与与R1,R2,Rk自自然然衔衔接接的的结结果果相相等等,那么称关系方式那么称关系方式R的分解具有无损衔接性。的分解具有无损衔接性。2函数依赖坚持性函数依赖坚持性PreserveDependency设设关关系系方方式式R(U,F)被被分分解解为为假假设设干干个个关关系系方方式式R1(U1,F1),R2(U2,F2),,Rk(Uk,Fk),

86、其其中中U=U1U2Uk,Fi为为F在在Ui上上的的投投影影,假假设设F所所蕴蕴含含的的函函数数依依赖赖一一定定也也由由分分解解得得到到的的某某个个关关系系方方式式中中的的函函数数依依赖赖Fi所所蕴蕴含含,那那么么称称关关系系方方式式R的分解具有函数依赖坚持性。的分解具有函数依赖坚持性。判别对关系方式的一个分解能否与原关系判别对关系方式的一个分解能否与原关系方式等价可以有三种不同的规范:方式等价可以有三种不同的规范:1分解要具有无损衔接性。分解要具有无损衔接性。2分解要具有函数依赖坚持性。分解要具有函数依赖坚持性。3分解既要具有无损衔接性,又要具有函分解既要具有无损衔接性,又要具有函数依赖坚持

87、性。数依赖坚持性。【例如】对于关系方式【例如】对于关系方式SD(SNO,SN,AGE,DEPT,MN),规范,规范到到3NF,可以有以下三种不同的分解方法:,可以有以下三种不同的分解方法:第一种:第一种:1S(SNO,SN,AGE,DEPT)2D(DEPT,MN)SSNO,SN,AGE,DEPT*DDEPT,MN=SDSNO,SN,AGE,DEPT,MN也就是说,用其两个投影在也就是说,用其两个投影在DEPT上的自然衔接可复原关上的自然衔接可复原关系方式系方式SD。也就是说这种分解具有无损衔接性。也就是说这种分解具有无损衔接性。对于分解后的关系方式对于分解后的关系方式S,有函数依赖,有函数依赖

88、SNODEPT,对,对于于D,有函数依赖,有函数依赖DEPTMN,这种分解方法坚持了原来的,这种分解方法坚持了原来的SD中的两个完全函数依赖中的两个完全函数依赖SNODEPT,DEPTMN。分解。分解既具有无损衔接性,又具有函数依赖坚持性。既具有无损衔接性,又具有函数依赖坚持性。前面曾经给出详细的论述,这是一种正确的分解方法。前面曾经给出详细的论述,这是一种正确的分解方法。SNOSNOSNSNAGEAGEDEPTDEPTSNOSNOMNMNS1S1赵亦赵亦1717计算机计算机S1S1刘伟刘伟S2S2钱尔钱尔1818信息信息S2S2王平王平S3S3孙珊孙珊2020信息信息S3S3王平王平S4S4

89、李思李思2121自动化自动化S4S4刘伟刘伟图图6.18关系关系S1和和D1第二种:第二种:1S1(SNO,SN,AGE,DEPT)2D1(SNO,MN)分解后的关系如图分解后的关系如图6.18所示。所示。S1D1分解以后,两个关系的主码都为分解以后,两个关系的主码都为SNO,也不存在非主属性,也不存在非主属性对主码的传送函数依,所以两个关系均属于对主码的传送函数依,所以两个关系均属于3NF。且且SD=S1*D1,关系方式,关系方式SD等于等于S1和和D1在在SNO上的自然衔接,上的自然衔接,这种分解也具有无损衔接性,保证不丧失原关系中的信息。这种分解也具有无损衔接性,保证不丧失原关系中的信息

90、。但这种分解结果,依然存在着一些问题:但这种分解结果,依然存在着一些问题:1数据冗余。每个系名和系主任的名字存储的次数等于该数据冗余。每个系名和系主任的名字存储的次数等于该系的学生人数。系的学生人数。2插入异常。当一个新系没有招生时,系主任的名字那么插入异常。当一个新系没有招生时,系主任的名字那么无法插入。无法插入。3删除异常。某系学生全部毕业而没有招生时,要删除全删除异常。某系学生全部毕业而没有招生时,要删除全部学生的记录,两个关系都要涉及,有关该系的信息将被删部学生的记录,两个关系都要涉及,有关该系的信息将被删除。除。4更新异常。改换系主任时,需改动较多的学生记录。另更新异常。改换系主任时

91、,需改动较多的学生记录。另外,某个学生要转系,还必需修正两个关系。外,某个学生要转系,还必需修正两个关系。之之所所以以存存在在上上述述问问题题,是是由由于于分分解解得得到到的的两两个关系方式不是相互独立的。个关系方式不是相互独立的。SD中中的的函函数数依依赖赖DEPTMN既既没没有有投投影影到到关关系系方方式式S1上上,也也没没有有投投影影到到关关系系方方式式D1上上,而而是是跨跨在在这这两两个个关关系系方方式式上上,也也就就是是说说这这种种分分解解方方法法没没有有坚坚持持原原关关系系中中的的函函数数依依赖赖,却却用用了了原原关关系系隐隐含的传送函数依赖含的传送函数依赖SNOMN。分分解解只只

92、具具有有无无损损衔衔接接性性,而而不不具具有有函函数数依依赖赖坚持性。因此,坚持性。因此,“弊病依然没有处理。弊病依然没有处理。TSNOSNOSNSNAGEAGEMNMNDEPTDEPTMNMNS1S1赵亦赵亦1717刘伟刘伟计算机计算机刘伟刘伟S2S2钱尔钱尔1818王平王平信息信息王平王平S3S3孙珊孙珊2020王平王平自动化自动化刘伟刘伟S4S4李思李思2121刘伟刘伟图图6.19 6.19 关系关系S2S2和和D2 D2 第三种:第三种:1S2(SNO,SN,AGE,MN)2D2(DEPT,MN)分解后的关系如图分解后的关系如图4.19所示。所示。S2D2分分解解以以后后,两两个个关关

93、系系均均为为3NF,公公共共属属性性为为MN,但,但MN SNO,MN DEPT,所以,所以S2*D2SD。S2和和D2在在MN上的自然衔接的结果如图上的自然衔接的结果如图6.20。SNOSNOSNSNAGEAGEDEPTDEPTMNMNS1S1赵亦赵亦1717计算机计算机刘伟刘伟S1S1赵亦赵亦1717自动化自动化刘伟刘伟S2S2钱尔钱尔1818信息信息王平王平S3S3孙珊孙珊2020信息信息王平王平S4S4李思李思2121计算机计算机刘伟刘伟S4S4李思李思2121自动化自动化刘伟刘伟图图6.20 S26.20 S2和和D2D2的自然衔接的自然衔接S2*D2比比原原来来的的关关系系SD多多

94、了了两两个个元元组组S1,赵赵亦亦,17,自自动动化化,刘刘伟伟和和S4,李李思思,21,计计算算机机,刘刘伟伟,从从这这个个意意义义上上说说,此此分分解解方方法法依依然然丧丧失了信息。所以其分解是不可恢复的。失了信息。所以其分解是不可恢复的。另另外外,这这种种分分解解方方法法只只坚坚持持了了原原来来的的SD中中的的DEPTMN这这个个完完全全函函数数依依赖赖而而未未用用另另外外一一个个SNODEPT完完全全依依赖赖,却却用用了了原原关关系系的的传传送送函函数数依依赖赖SNOMN。所所以以分分解解既既不不具具有有无无损损衔衔接接性性,也也不不具具有有函函数数依依赖赖坚坚持持性性,同同样样存存在

95、在着着数数据据操操作作的的异常情况。异常情况。经经以以上上几几种种分分解解方方法法的的分分析析,假假设设一一个个分分解解具具有有无无损损衔衔接接性性,那那么么可可以以保保证证不不丧丧失失信信息息。假假设设一一个个分分解解具具有有函函数数依依赖赖坚坚持持性性,那那么可以减轻或处理各种异常情况。么可以减轻或处理各种异常情况。分分解解具具有有无无损损衔衔接接性性和和函函数数依依赖赖坚坚持持性性是是两两个个相相互互独独立立的的规规范范。具具有有无无损损衔衔接接性性的的分分解解不不一一定定具具有有函函数数依依赖赖坚坚持持性性。同同样样,具具有有函函数数依依赖赖坚坚持持性性的的分分解解也也不不一一定定具具

96、有有无无损损衔衔接性。接性。规规范范化化实实际际提提供供了了一一套套完完好好的的方方式式分分解解方方法法,按按照照这这套套算算法法可可以以做做到到:假假设设要要求求分分解解既既具具有有无无损损衔衔接接性性,也也具具有有函函数数依依赖赖坚坚持持性性,那那么么分分解解一一定可以到达定可以到达3NF,但不一定可以到达,但不一定可以到达BCNF。所所以以在在3NF的的规规范范化化中中,既既要要检检查查分分解解能能否否具具有有无无损损衔衔接接性性,又又要要检检查查分分解解能能否否具具有有函函数数依依赖赖坚持性。坚持性。只只需需这这两两条条都都满满足足,才才干干保保证证分分解解的的正正确确性性和和有有效效性性,才才既既不不会会发发生生信信息息丧丧失失,又又保保证证关关系系中的数据满足完好性约束。中的数据满足完好性约束。

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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