收藏 分销(赏)

高等教育关系数据理论与数据库设计一.pptx

上传人:精*** 文档编号:4172370 上传时间:2024-08-11 格式:PPTX 页数:68 大小:500.38KB
下载 相关 举报
高等教育关系数据理论与数据库设计一.pptx_第1页
第1页 / 共68页
高等教育关系数据理论与数据库设计一.pptx_第2页
第2页 / 共68页
高等教育关系数据理论与数据库设计一.pptx_第3页
第3页 / 共68页
高等教育关系数据理论与数据库设计一.pptx_第4页
第4页 / 共68页
高等教育关系数据理论与数据库设计一.pptx_第5页
第5页 / 共68页
点击查看更多>>
资源描述

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

2、的理论依据。计的理论依据。要求了解规范化理论的研究动机及其在数据库设计中的作用掌握函数依赖的有关概念第一范式、第二范式、第三范式的定义重点掌握并能够灵活运用关系模式规范化的方法和关系模式分解的方法,这也是本章的难点。22.1 2.1 规范化问题的提出规范化问题的提出2.1.1 2.1.1 规范化理论的主要内容规范化理论的主要内容关关系系数数据据库库的的规规范范化化理理论论最最早早是是由由关关系系数数据据库库的创始人的创始人E.F.CoddE.F.Codd提出的提出的后后经经许许多多专专家家学学者者对对关关系系数数据据库库理理论论作作了了深深入入的的研研究究和和发发展展,形形成成了了一一整整套套

3、有有关关关关系系数数据据库库设计的理论设计的理论在在该该理理论论出出现现以以前前,层层次次和和网网状状数数据据库库的的设设计计只只是是遵遵循循其其模模型型本本身身固固有有的的原原则则,而而无无具具体体的的理理论论依依据据可可言言,因因而而带带有有盲盲目目性性,可可能能在在以以后后的运行和使用中发生许多预想不到的问题的运行和使用中发生许多预想不到的问题3在关系数据库系统中,在关系数据库系统中,关系模型关系模型包括一组包括一组关系关系模式模式,各个关系不是完全孤立的,数据库的设,各个关系不是完全孤立的,数据库的设计较层次和网状模型更为重要。计较层次和网状模型更为重要。如何设计一个适合的关系数据库系

4、统,关键是如何设计一个适合的关系数据库系统,关键是关系数据库关系数据库模式模式的设计,一个好的关系数据库的设计,一个好的关系数据库模式应该包括多少模式应该包括多少关系模式关系模式,而每一个关系模,而每一个关系模式又应该包括哪些式又应该包括哪些属性属性,又如何将这些相互关,又如何将这些相互关联的关系模式组建一个适合的联的关系模式组建一个适合的关系模型关系模型,这些,这些工作决定了到整个系统运行的效率,也是系统工作决定了到整个系统运行的效率,也是系统成败的关键所在,所以必须在关系数据库的成败的关键所在,所以必须在关系数据库的规规范化理论范化理论的指导下逐步完成。的指导下逐步完成。4关系数据库的规范

5、化理论主要包括三个方面的内容:关系数据库的规范化理论主要包括三个方面的内容:函数依赖范式(Normal Form)模式设计其其中中,函函数数依依赖赖起起着着核核心心的的作作用用,是是模模式式分分解解和和模模式式设计的基础,范式是模式分解的标准。设计的基础,范式是模式分解的标准。2.1.2 2.1.2 关系模式的存储异常问题关系模式的存储异常问题数据库的逻辑设计为什么要遵循一定的规范化理论?数据库的逻辑设计为什么要遵循一定的规范化理论?什么是好的关系模式?什么是好的关系模式?某些不好的关系模式可能导致哪些问题?某些不好的关系模式可能导致哪些问题?下面通过例子进行分析下面通过例子进行分析:5例如例

6、如,要求设计,要求设计教学管理数据库教学管理数据库,其关系模式,其关系模式SCDSCD如下:如下:SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)其其中中,SNOSNO表表示示学学生生学学号号,SNSN表表示示学学生生姓姓名名,AGEAGE表表示示学学生生年年龄龄,DEPTDEPT表表示示学学生生所所在在的的系系别别,MNMN表表示示系系主主任任姓名,姓名,CNOCNO表示课程号,表示课程号,SCORESCORE表示成绩。表示成绩。根据实际情况,这些数据有如下语义规定:根据实际情况,这些数据有如下语义规定:1.一个系有若干个学生,但一个学生只属于一个系;2.一个系只有一名系主

7、任,但一个系主任可以同时兼几个系的系主任;3.一个学生可以选修多门功课,每门课程可有若干学生选修;4.每个学生学习课程有一个成绩。在在此此关关系系模模式式中中填填入入一一部部分分具具体体的的数数据据,则则可可得得到到SCDSCD关关系系模模式式的的实实例例,即即一一个个教教学学管管理理数数据据库库,如如图图2.12.1所所示。示。6图图2.1 2.1 关系关系SCDSCDSNOSNAGEDEPTMNCNOSCORES1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C570S3孙珊2

8、0信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C1937根根据据上上述述的的语语义义规规定定,并并分分析析以以上上关关系系中中的的数数据据,我我们们可可以以看看出出:(SNO,CNO)属属性性的的组组合合能能唯唯一一标标识识一一个个元元组组,所所以以(SNO,CNO)是是该该关关系系模模式式的的主主关关系系键键。但但在在进进行行数数据库的操作时,会出现以下几方面的问题。据库的操作时,会出现以下几方面的问题。1.1.数数据据冗冗余余。每个系名和系主任的名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要重复存储多次,

9、数据的冗余度很大,浪费了存储空间2.2.插插入入异异常常。如果某个新系没有招生,尚无学生时,则系名和系主任的信息无法插入到数据库中。因因为为在在这这个个关关系系模模式式中中,(SNO,CNO)是是主主关关系系键键。根根据据关关系系的的实实体体完完整整性性约约束束,主主关关系系键键的的值值不不能能为为空空,而而这这时时没没有有学学生生,SNOSNO和和CNOCNO均均无无值值,因因此此不不能能进进行行插插入操作。入操作。另另外外,当当某某个个学学生生尚尚未未选选课课,即即CNOCNO未未知知,实实体体完完整整性性约约束束还还规规定定,主主关关系系键键的的值值不不能能部部分分为为空空,同同样样不不

10、能进行插入操作。能进行插入操作。83.3.删除异常。删除异常。某某系系学学生生全全部部毕毕业业而而没没有有招招生生时时,删删除除全全部部学学生生的的记记录录则则系系名名、系系主主任任也也随随之之删删除除,而而这这个个系系依依然然存存在在,在数据库中却无法找到该系的信息。在数据库中却无法找到该系的信息。另另外外,如如果果某某个个学学生生不不再再选选修修C1C1课课程程,本本应应该该只只删删去去C1C1,但但C1C1是是主主关关系系键键的的一一部部分分,为为保保证证实实体体完完整整性性,必必须须将将整整个个元元组组一一起起删删掉掉,这这样样,有有关关该该学学生生的的其其它它信息也随之丢失。信息也随

11、之丢失。4.4.更新异常。更新异常。如如果果学学生生改改名名,则则该该学学生生的的所所有有记记录录都都要要逐逐一一修修改改SNSN又又如如某某系系更更换换系系主主任任,则则属属于于该该系系的的学学生生记记录录都都要要修修改改MNMN的的内内容容,稍稍有有不不慎慎,就就有有可可能能漏漏改改某某些些记记录录,这就会造成数据的不一致性,破坏了数据的完整性。这就会造成数据的不一致性,破坏了数据的完整性。9由由于于存存在在以以上上问问题题,我我们们说说,SCDSCD是是一一个个不不好好的的关关系系模模式式。产产生生上上述述问问题题的的原原因因,直直观观地地说说,是是因因为为关关系系中中“包罗万象包罗万象

12、”,内容太杂了。,内容太杂了。那么,怎样才能得到一个好的关系模式呢?那么,怎样才能得到一个好的关系模式呢?我我们们把把关关系系模模式式SCDSCD分分解解为为下下面面三三个个结结构构简简单单的的关关系系模模式,如图式,如图2.22.2所示。所示。学生关系S(SNO,SN,AGE,DEPT)选课关系SC(SNO,CNO,SCORE)系关系D(DEPT,MN)10S SCS SCS SCS SCSNOSNAGEDEPTSNOCNOSCORES1赵亦17计算机S1C190S2钱尔18信息S1C285S3孙珊20信息S2C557S4李思21自动化S2C680S2C7D D D DS2C570DEPTM

13、NS3C10计算机刘伟S3C270信息王平S3C485自动化刘伟S4C193图3.2 分解后的关系模式11在以上三个关系模式中,实现了信息的某种程在以上三个关系模式中,实现了信息的某种程度的分离,度的分离,S中存储学生基本信息,与所选课程及系主任无关D中存储系的有关信息,与学生无关SC中存储学生选课的信息,而与所学生及系的有关信息无关与与SCDSCD相比,分解为三个关系模式后,数据的相比,分解为三个关系模式后,数据的冗余度明显降低。冗余度明显降低。当新插入一个系时,只要在关系D中添加一条记录当某个学生尚未选课,只要在关系S中添加一条学生记录,而与选课关系无关,这就避免了插入异常当一个系的学生全

14、部毕业时,只需在S中删除该系的全部学生记录,而关系D中有关该系的信息仍然保留,从而不会引起删除异常同时,由于数据冗余度的降低,数据没有重复存储,也不会引起更新异常。12经经过过上上述述分分析析,我我们们说说分分解解后后的的关关系系模模式式是是一一个好的关系数据库模式。个好的关系数据库模式。从从而而得得出出结结论论,一一个个好好的的关关系系模模式式应应该该具具备备以以下四个条件:下四个条件:1.尽可能少的数据冗余。2.没有插入异常。3.没有删除异常。4.没有更新异常。13但但要要注注意意,一一个个好好的的关关系系模模式式并并不不是是在在任任何何情情况下都是最优的况下都是最优的如何按照一定的规范设

15、计关系模式,将结构复如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不好杂的关系分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系数据库模式,的关系数据库模式转变为好的关系数据库模式,这就是这就是关系的规范化,关系的规范化,规范化又可以根据不同规范化又可以根据不同的要求而分成若干级别的要求而分成若干级别我们要设计的关系模式中的各属性是相互依赖、我们要设计的关系模式中的各属性是相互依赖、相互制约的,这样才构成了一个结构严谨的整相互制约的,这样才构成了一个结构严谨的整体。因此在设计关系模式时,必须从语义上分体。因此在设计关系模式时,必须从语义上分析这些析这些

16、依赖关系依赖关系142.2 2.2 函数依赖函数依赖2.2.12.2.1函数依赖的定义及性质函数依赖的定义及性质关关系系模模式式中中的的各各属属性性之之间间相相互互依依赖赖、相相互互制制约约的的联联系系称为称为数据依赖数据依赖。数据依赖一般分为数据依赖一般分为函数依赖函数依赖、多值依赖多值依赖和和连接依赖连接依赖。其中其中,函数依赖函数依赖是最重要的数据依赖。是最重要的数据依赖。函函数数依依赖赖(Functional Functional DependencyDependency)是是关关系系模模式式中中属属性之间的一种性之间的一种逻辑依赖关系逻辑依赖关系。例如在上一节介绍的关系模式SCD中,

17、SNO与SN、AGE、DEPT之间都有一种依赖关系。由于一个SNO只对应一个学生,而一个学生只能属于一个系,所以当SNO的值确定之后,SN,AGE,DEPT的值也随之被唯一的确定了。这类似于变量之间的单值函数关系。设单值函数Y=F(X),自变量X的值可以决定一个唯一的函数值Y。在这里,我们说SNO决定函数(SN,AGE,DEPT),或者说(SN,AGE,DEPT)函数依赖于SNO。15下面给函数依赖的形式化定义。下面给函数依赖的形式化定义。2.2.1.12.2.1.1函数依赖的定义函数依赖的定义定定义义2.12.1设设关关系系模模式式R(UR(U,F)F),U U是是属属性性全全集集,F F是

18、是U U上上的的函函数数依依赖赖集集,X X和和Y Y是是U U的的子子集集,如如果果对对于于R(U)R(U)的的任任意意一一个个可可能能的的关关系系r r,对对于于X X的的每每一一个个具具体体值值,Y Y都都有有唯唯一一的的具具体体值值与与之之对对应应,则则称称X X函函数数决决定定Y Y,或或Y Y函函数数依依赖赖于于X X,记记作作XYXY。我我们们称称X X为为决决定定因因素素,Y Y为为依依赖赖因因素素。当当Y Y不不函函数数依依赖赖于于X X时时,记记作作:X X Y Y。当当XYXY且且YXYX时时,则则记记作作:X YX Y。对于关系模式对于关系模式SCDSCDU=SNO,S

19、N,AGE,DEPT,MN,CNO,SCOREF=SNOSN,SNOAGE,SNODEPT一一个个SNOSNO有有多多个个SCORESCORE的的值值与与其其对对应应,因因此此SCORESCORE不不能能唯唯一一地地确确定定,即即SCORESCORE不不能能函函数数依依赖赖于于SNOSNO,所所以以有有:SNO SCORESNO SCORE。但是但是SCORESCORE可以被(可以被(SNOSNO,CNOCNO)唯一地确定。所以可表)唯一地确定。所以可表示为:(示为:(SNOSNO,CNOCNO)SCORESCORE。16有关函数依赖的几点说明:有关函数依赖的几点说明:1 1平凡的函数依赖与非

20、平凡的函数依赖。平凡的函数依赖与非平凡的函数依赖。当属性集Y是属性集X的子集时,则必然存在着函数依赖XY,这种类型的函数依赖称为平凡的函数依赖。如果Y不是X的子集,则称XY为非平凡的函数依赖。若不特别声明,我们讨论的都是非平凡的函数依赖。2 2函数依赖是语义范畴的概念。函数依赖是语义范畴的概念。我们只能根据语义来确定一个函数依赖,而不能按照其形式化定义来证明一个函数依赖是否成立。例如,对于关系模式S,当学生不存在重名的情况下,可以得到:SNAGESNDEPT这种函数依赖关系,必须是在没有重名的学生条件下才成立的,否则就不存在函数依赖了。所以函数依赖反映了一种语义完整性约束。173 3函数依赖与

21、属性之间的联系类型有关。函数依赖与属性之间的联系类型有关。(1)在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖XY,YX,即X Y。例如,当学生无重名时,SNO SN。(2)如果属性X与Y有m:1的联系时,则只存在函数依赖XY。例 如,SNO与 AGE,DEPT之 间 均 为 m:1联 系,所 以 有SNOAGE,SNODEPT。(3)如果属性X与Y有m:n的联系时,则X与Y之间不存在任何函数依赖关系。例如,一个学生可以选修多门课程,一门课程又可以为多个学生选修,所以SNO与CNO之间不存在函数依赖关系。由于函数依赖与属性之间的联系类型有关,所以在确定由于函数依赖与属性之间的联

22、系类型有关,所以在确定属性间的函数依赖关系时,可以从分析属性间的函数依赖关系时,可以从分析属性间的联系类属性间的联系类型型入手,便可确定属性间的函数依赖。入手,便可确定属性间的函数依赖。184 4函数依赖关系的存在与时间无关。函数依赖关系的存在与时间无关。因为函数依赖是指关系中的所有元组应该满足的约束条件,而不是指关系中某个或某些元组所满足的约束条件。当关系中的元组增加、删除或更新后都不能破坏这种函数依赖。因此,必须根据语义来确定属性之间的函数依赖,而不能单凭某一时刻关系中的实际数据值来判断。例如,对于关系模式S,假设没有给出无重名的学生这种语义规定,则即使当前关系中没有重名的记录,也只能存在

23、函数依赖SNOSN,而不能存在函数依赖SNSNO,因为如果新增加一个重名的学生,函数依赖SNSNO必然不成立。所以函数依赖关系的存在与时间无关,而只与数据之间的语义规定有关。195 5函数依赖可以保证关系分解的无损连接性。函数依赖可以保证关系分解的无损连接性。设R(X,Y,Z),X,Y,Z为不相交的属性集合,如果XY或XZ,则有R(X,Y,Z)=RX,Y*RX,Z,其中,RX,Y表示关系R在属性(X,Y)上的投影,RX,Z表示关系R在属性(X,Z)上的投影。即R(X,Y,Z)等于其投影在X上的自然连接,这样便保证了关系R分解后不会丢失原有的信息,称作关系分解的无损连接性。例如,对于关系模式SC

24、D,有SNO(SN,AGE,DEPT,MN),SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)=SCDSNO,SN,AGE,DEPT,MN*SCDSNO,CNO,SCORE,也就是说,用其投影在SNO上的自然连接可复原关系模式SCD。202.2.1.2 2.2.1.2 函数依赖的基本性质函数依赖的基本性质1 1投影性。投影性。根据平凡的函数依赖的定义可知,一组属性函数决定它的所有子集例如,在关系SCD中,(SNO,CNO)SNO和(SNO,CNO)CNO。2 2扩张性。扩张性。若XY且WZ,则(X,W)(Y,Z)。例如,SNO(SN,AGE),DEPTMN,则有(SNO,DE

25、PT)(SN,AGE,MN)。213 3合并性。合并性。若XY且XZ则必有X(Y,Z)。例 如,在 关 系 SCD中,SNO(SN,AGE),SNO(DEPT,MN),则有SNO(SN,AGE,DEPT,MN)。4 4分解性。分解性。若X(Y,Z),则XY且XZ。很显然,分解性为合并性的逆过程由由合合并并性性和和分分解解性性,很很容容易易得得到到以以下下事事实:实:XA1,A2,,An成立的充分必要条件是XAi(i=1,2,n)成立。232.2.3 2.2.3 完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖定定义义2.42.4 设设关关系系模模式式R(U)R(U),U U是是属属性性全全

26、集集,X X和和Y Y是是U U的的子子集,集,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖(FullFunctionalDependency),记作 X Y。如果对X的某个真子集X,有XY,则称Y对部分函数依赖(PartialFunctionalDependency),记作X Y。例如,在关系模式SCD中,因为SNO SCORE,且CNO SCORE,所以有:(SNO,CNO)SCORE。而SNOAGE,所以(SNO,CNO)AGE。由定义由定义2.42.4可知:可知:只有当决定因素是组合属性时,讨论部分函数依赖才有意义当决定因素是单属性时,只能是完全函数依赖。

27、例如,在关系模式S(SNO,SN,AGE,DEPT),决定因素为单属性SNO,有SNO(SN,AGE,DEPT),不存在部分函数依赖。242.2.4 2.2.4 传递函数依赖传递函数依赖定定义义2.52.5 设设有有关关系系模模式式R R(U U),U U是是属属性性全全集集,X X,Y Y,Z Z是是U U的子集,的子集,若XY,但Y X,而YZ(Y X,Z Y),则称Z对X传递函数依赖(TransitiveFunctionalDependency),记作:X Z。如果YX,则X Y,这时称Z对X直接函数依赖,而不是传递函数依赖。例如,在关系模式SCD中,SNODEPT,但DEPT SNO,

28、而DEPTNMN,则有SNO MN。当学生不存在重名的情况下,有SNOSN,SNSNO,SNO SN,SNDEPTN,这时DEPT对SNO是直接函数依赖,而不是传递函数依赖。综上所述,函数依赖分为完全函数依赖、部分函数依赖和传递函数依赖三类,它们是规范化理论的依据和规范化程度的准则,下面我们将以介绍的这些概念为基础,进行数据库的规范设计。252.3 范式范式 规范化的规范化的基本思想基本思想是消除关系模式中的数据冗余,消是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、删除除数据依赖中的不合适的部分,解决数据插入、删除时发生异常现象。时发生异常现象。这就要求关系数据库设计

29、出来的关系模式要满足一定这就要求关系数据库设计出来的关系模式要满足一定的条件。的条件。我们把关系数据库的规范化过程中为不同程度的规范我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为化要求设立的不同标准称为范式范式(Normal FormNormal Form)。)。由于规范化的程度不同,就产生了由于规范化的程度不同,就产生了不同的范式不同的范式。满足最基本规范化要求的关系模式叫满足最基本规范化要求的关系模式叫第一范式第一范式,在第一范式中进一步满足一些要求为在第一范式中进一步满足一些要求为第二范式第二范式,以此类推就产生了以此类推就产生了第三范式第三范式等概念。等概念。每

30、种范式都规定了一些限制约束条件。每种范式都规定了一些限制约束条件。26范式的概念最早由范式的概念最早由E.F.CoddE.F.Codd提出。提出。从从19711971年年起起,CoddCodd相相继继提提出出了了关关系系的的三三级级规规范范化化形形式式,即即第第一一范范式式(1NF1NF)、第第二二范范式式(2NF2NF)、第三范式(第三范式(3NF3NF)。)。19741974年年,CoddCodd和和BoyceBoyce以以共共同同提提出出了了一一个个新新的的范范式的概念,即式的概念,即Boyce-CoddBoyce-Codd范式,简称范式,简称BCBC范式。范式。19761976年年Fa

31、ginFagin提出了第四范式,提出了第四范式,后来又有人定义了第五范式。后来又有人定义了第五范式。至至此此在在关关系系数数据据库库规规范范中中建建立立了了一一个个范范式式系系列列:1NF,2NF,3NF,BCNF,4NF,5NF,1NF,2NF,3NF,BCNF,4NF,5NF,一一级级比比一一级级有有更更严严格的要求。格的要求。各个范式之间的联系可以表示为:各个范式之间的联系可以表示为:5NF 4NF BCNF 3NF 2NF 1NF如图2.3所示。27图图2.3 2.3 各种范式之间的关系各种范式之间的关系下面逐一介绍各级范式及其规范化。下面逐一介绍各级范式及其规范化。282.3.1 2

32、.3.1 第一范式第一范式第第一一范范式式(First Normal Form)是是最最基基本本的的规规范范形形式式,即即关关系系中中每每个个属属性性都都是是不不可可再再分分的的简简单单项。项。定定义义2.62.6 如如果果关关系系模模式式R R,其其所所有有的的属属性性均均为为简简单单属属性性,即即每每个个属属性性都都城城是是不不可可再再分分的的,则则称称R R属于第一范式,简称属于第一范式,简称1NF1NF,记作,记作R R 1NF1NF。在第在第2 2章讨论关系的性质时,我们把满足这个条件的关章讨论关系的性质时,我们把满足这个条件的关系称为系称为规范化关系规范化关系。在关系数据库系统中只

33、讨论规范化的关系,凡是非规范在关系数据库系统中只讨论规范化的关系,凡是非规范化的关系模式必须化成规范化的关系。化的关系模式必须化成规范化的关系。在非规范化的关系中去掉组合项就能化成规范化的关系在非规范化的关系中去掉组合项就能化成规范化的关系每个规范化的关系都属于每个规范化的关系都属于1NF1NF,这也是它之所以称为,这也是它之所以称为“第一第一”的原因。的原因。29然然而而,一一个个关关系系模模式式仅仅仅仅属属于于第第一一范范式式是是不不适用的。适用的。在在2.12.1节节中中给给出出的的关关系系模模式式SCDSCD属属于于第第一一范范式式,但但其其具具有有大大量量的的数数据据冗冗余余,具具有

34、有插插入入异异常常、删删除异常、更新异常等弊端。除异常、更新异常等弊端。为什么会存在这种问题呢?为什么会存在这种问题呢?让让我我们们分分析析一一下下SCDSCD中中的的函函数数依依赖赖关关系系,它它的的关系键是(关系键是(SNOSNO,CNOCNO)的属性组合,所以有:)的属性组合,所以有:(SNO,CNO)SCORESNOSN,(SNO,CNO)SNSNOAGE,(SNO,CNO)AGESNODEPT,(SNO,CNO)DEPTSNO MN,(SNO,CNO)MN30我们可以用函数信赖图表示以上函数依赖关系,如图我们可以用函数信赖图表示以上函数依赖关系,如图2.42.4所示。所示。SN,AG

35、E,DEPTMNSCORE图图图图2.4 SCD2.4 SCD2.4 SCD2.4 SCD中的函数依赖关系中的函数依赖关系中的函数依赖关系中的函数依赖关系SNOCNOPPf由此可见,在SCD中,既存在完全函数依赖,又存在部分函数依赖和传递函数依赖。这种情况往往在数据库中是不允许的,也正是由于关系中存在着复杂的函数依赖,才导致数据操作中出现了种弊端。克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行转换。T312.3.2 2.3.2 第二范式第二范式2.3.2.1 2.3.2.1 第二范式的定义第二范式的定义定定义义2.72.7 如如果果关关系系模模式式R

36、 R 1NF1NF,且且每每个个非非主主属属性性都都完完全全函函数数依依赖赖于于R R的的每每个个关关系系键键,则则称称R R属属于于第第二二范范式式(Second Normal Form),简称,简称2NF2NF,记作,记作R R 2NF2NF。在关系模式在关系模式SCDSCD中,中,SNOSNO,CNOCNO为主属性,为主属性,AGEAGE,DEPTDEPT,SNSN,MNMN,SCORESCORE均为非主属性,经上述分析,存在非主均为非主属性,经上述分析,存在非主属性对关系键的部分函数依赖,所以属性对关系键的部分函数依赖,所以SCD 2NFSCD 2NF。而而如图如图2.22.2所示的由

37、所示的由SCDSCD分解的三个关系模式分解的三个关系模式S S,D D,SCSC,其中,其中S S的关系键为的关系键为SNOSNO,D D的关系键为的关系键为DEPTDEPT,都是单属,都是单属性,不可能存在部分函数依赖。性,不可能存在部分函数依赖。而对于而对于SCSC,(,(SNOSNO,CNOCNO)SCORESCORE。所以。所以SCDSCD分解后,分解后,消除了非主属性对关系键的部分函数依赖,消除了非主属性对关系键的部分函数依赖,S S,D D,SCSC均属于均属于2NF2NF。32经以上分析,可以得到两个结论:经以上分析,可以得到两个结论:1从1NF关系中消除非主属性对关系键的部分函

38、数依赖,则可得到2NF关系。2如果R的关系键为单属性,或R的全体属性均为主属性,则R2NF。332.3.2.2 2NF2.3.2.2 2NF规范化规范化2NF2NF规规范范化化是是指指把把1NF1NF关关系系模模式式通通过过投投影影分分解解转转换换成成2NF2NF关系模式的集合。关系模式的集合。分分解解时时遵遵循循的的基基本本原原则则就就是是“一一事事一一地地”,让让一一个个关关系系只只描描述述一一个个实实体体或或者者实实体体间间的的联联系系。如如果果多多于于一一个个实实体体或联系,则进行投影分解。或联系,则进行投影分解。下面以关系模式下面以关系模式SCDSCD为例,来说明为例,来说明2NF2

39、NF规范化的过程规范化的过程例例2.1 2.1 将将SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)规规范范到到2NF2NF。由SNOSN,SNOAGE,SNODEPT,(SNO,CNO)SCORE,可以判断,关系SCD至少描述了两个实体,一个为学生实体,属性有SNO、SN、AGE、DEPT、MN;另一个是学生与课程的联系(选课),属性有SNO、CNO和SCORE。根据分解的原则,我们可以将SCD分解成如下两个关系,如图2.5所示。34SD(SNO,SN,AGE,DEPT,MN),描述学生实体;SC(SNO,C

40、NO,SCORE),描述学生与课程的联系。SDSD SNOSNAGEDEPTMNS1赵亦17计算机刘伟S2钱尔18信息王平S3孙珊20信息王平S4李思21自动化刘伟SCSC SNOCNOSCORES1C190S1C285S2C557S2C680S2C7S2C570S3C10S3C270S3C485S4C193图3.5 关系SD和SC35对于分解后的两个关系对于分解后的两个关系SDSD和和SCSC,主键分别为,主键分别为SNOSNO和和(SNOSNO,CNOCNO),非主属性对主键完全函数依赖。因此,),非主属性对主键完全函数依赖。因此,SDSD 2NF2NF,SCSC 2NF2NF,而且前面已

41、经讨论,而且前面已经讨论,SCDSCD的这种分的这种分解没有丢失任何信息,具有无损连接性。解没有丢失任何信息,具有无损连接性。分解后,分解后,SDSD和和SCSC的函数依赖分别如图的函数依赖分别如图2.62.6和和2.72.7所示。所示。SNOSNSNOCNOSCOREAGEDEPTMN图图2.6 SD2.6 SD中的函数依赖关系中的函数依赖关系 图图2.7 SC2.7 SC中的函数依赖关系中的函数依赖关系 361NF1NF的关系模式经过投影分解转换成的关系模式经过投影分解转换成2NF2NF后,消除了一后,消除了一些数据冗余。些数据冗余。分析图分析图2.52.5中中SDSD和和SCSC中的数据

42、,可以看出,它们存储的中的数据,可以看出,它们存储的冗余度比关系模式冗余度比关系模式SCDSCD有了较大辐度的降低。有了较大辐度的降低。这样便可在一定程度上避免数据更新所造成的数据不这样便可在一定程度上避免数据更新所造成的数据不一致性的问题。一致性的问题。由于把学生的基本信息与选课信息分开存储,则学生由于把学生的基本信息与选课信息分开存储,则学生基本信息因没选课而不能插入的问题得到了解决,插基本信息因没选课而不能插入的问题得到了解决,插入异常现象得到了部分改善。入异常现象得到了部分改善。同样,如果某个学生不再选修同样,如果某个学生不再选修C1C1课程,只在选课关系课程,只在选课关系SCSC中删

43、去该该学生选修中删去该该学生选修C1C1的记录即可,而的记录即可,而SDSD中有关该中有关该学生的其它信息不会受到任何影响,也解决了部分删学生的其它信息不会受到任何影响,也解决了部分删除异常问题。除异常问题。因此可以说关系模式因此可以说关系模式SDSD和和SCSC在性能上比在性能上比SCDSCD有了显著提有了显著提高。高。37下面对下面对2NF2NF规范化作规范化作形式化的描述形式化的描述。设设关关系系模模式式R R(X X,Y Y,Z Z),R R 1NF1NF,但但R R 不不是是2NF2NF,其其中中,X X是是键键属属性性,Y Y,Z Z是是非非键键属属性性,且且存存在在部部分分函函数

44、数依依赖赖,X X Y Y。设设X X可可表表示示为为X1X1、X2X2,其其中中X1 X1 Y Y。则则R R(X X,Y Y,Z Z)可可以以分分解解为为RX1RX1,YY和和RXRX,ZZ。因因为为X1YX1Y,所所以以R(XR(X,Y Y,Z)=RX1Z)=RX1,Y*RX1Y*RX1,X2X2,Z=RX1Z=RX1,Y*RXY*RX,ZZ,即即R R等等于于其其投投影影RX1RX1,YY和和XX,ZZ在在X1X1上上的的自自然然连连接接,R R的的分分解解具有具有无损连接性无损连接性。由于由于X1 YX1 Y,因此,因此RX1RX1,YY 2NF2NF。若。若RXRX,ZZ不是不是2

45、NF2NF,可以按照上述方法继续进行投影分,可以按照上述方法继续进行投影分解,直到将解,直到将RXRX,ZZ分解为属于分解为属于2NF2NF关系的集合,关系的集合,且这种分解必定是有限的。且这种分解必定是有限的。382.3.2.3 2NF2.3.2.3 2NF的缺点的缺点2NF2NF的的关关系系模模式式解解决决了了1NF1NF中中存存在在的的一一些些问问题题,2NF2NF规规范范化化的的程程度度比比1NF1NF前前进进了了一一步步,但但2NF2NF的的关关系系模模式式在在进进行行数数据操作时,仍然存在着一些问题:据操作时,仍然存在着一些问题:1数据冗余。每个系名和系主任的名字存储的次数等于该系

46、的学生人数。2插入异常。当一个新系没有招生时,有关该系的信息无法插入。3删除异常。某系学生全部毕业而没有招生时,删除全部学生的记录也随之删除了该系的有关信息。4更新异常。更换系主任时,仍需改动较多的学生记录。之所以存在这些问题,是由于在之所以存在这些问题,是由于在SCDSCD中存在着非主属性中存在着非主属性对主键的传递依赖。对主键的传递依赖。分析分析SCDSCD中的函数依赖关系,中的函数依赖关系,SNOSNSNOSN,SNOAGESNOAGE,SNODEPTSNODEPT,DEPTMNDEPTMN,SNO MNSNO MN,非主属性,非主属性MNMN对主键对主键SNOSNO传递依赖。传递依赖。

47、为此,对关系模式为此,对关系模式SCDSCD还需进一步简化,消除这种传递还需进一步简化,消除这种传递依赖,得到依赖,得到3NF3NF。392.3.3 2.3.3 第三范式第三范式2.3.3.1 2.3.3.1 第三范式的定义第三范式的定义定定义义2.82.8 如如果果关关系系模模式式R R 2NF2NF,且且每每个个非非主主属属性性都都不不传传递递依依赖赖于于R R的的每每个个关关系系键键,则则称称R R属属于于第第三三范范式式(Third Normal Form),简称简称3NF3NF,记作,记作R R 3NF3NF。第三范式具有如下性质:第三范式具有如下性质:1 1如果如果R R 3NF3

48、NF,则,则R R也是也是2NF2NF。2 2如果如果R R 2NF2NF,则,则R R不一定是不一定是3NF3NF。402.3.3.2 3NF2.3.3.2 3NF规范化规范化3NF3NF规规范范化化是是指指把把2NF2NF关关系系模模式式通通过过投投影影分分解解转转换成换成3NF3NF关系模式的集合。关系模式的集合。和和2NF2NF的的规规范范化化时时遵遵循循的的原原则则相相同同,即即“一一事事一一地地”,让让一一个个关关系系只只描描述述一一个个实实体体或或者者实实体体间间的的联系。联系。下面以下面以2NF2NF关系模式关系模式SDSD为例,来说明为例,来说明3NF3NF规范化规范化的过程

49、。的过程。41例例2.22.2将将SD(SNO,SN,AGE,DEPT,MN)SD(SNO,SN,AGE,DEPT,MN)规范到规范到3NF3NF。分析SD的属性组成,可以判断,关系SD实际上描述了两个实体:一个为学生实体,属性有SNO,SN,AGE,DEPT;另一个是系的实体,其属性DEPT和MN。根据分解的原则,我们可以将SD分解成如下两个关系,如图2.8所示。S(SNO,SN,AGE,DEPT),描述学生实体;D(DEPT,MN),描述系的实体。42S DS DSNOSNAGEDEPTDEPTMNS1赵亦17计算机计算机刘伟S2钱尔18信息信息王平S3孙珊20信息自动化刘伟S4李思21自

50、动化对于分解后的两个关系S和D,主键分别为SNO和DEPT,不存在非主属性对主键的传递函数依赖。因此,S3NF,D3NF。图图3.8 3.8 关系关系S S和和D D 43分解后,分解后,S S和和D D的函数依赖分别如图的函数依赖分别如图2.92.9和和2.102.10所示。所示。SNOSNDEPTAGEDEPTMN图图2.9 S2.9 S中的函数依赖关系图中的函数依赖关系图图图2.10 D2.10 D中的函数依赖关系图中的函数依赖关系图由以上两图可以看出,关系模式SD由2NF分解为3NF后,函数依赖关系变得更加简单,既没有非主属性对键的部分依赖,也没有非主属性对键的传递依赖,解决了2NF中

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服