第3章关系数据模型之范式_第1页
第3章关系数据模型之范式_第2页
第3章关系数据模型之范式_第3页
第3章关系数据模型之范式_第4页
第3章关系数据模型之范式_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、返回返回1第第4章章 关系数据库理论关系数据库理论返回返回24.3 范式范式 规范化的规范化的基本思想基本思想是消除关系模式中的数据冗余,消除数据依赖是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、删除时发生异常现象。中的不合适的部分,解决数据插入、删除时发生异常现象。 这就要求关系数据库设计出来的关系模式要满足一定的条件。这就要求关系数据库设计出来的关系模式要满足一定的条件。 我们把关系数据库的规范化过程中为不同程度的规范化要求设立我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为的不同标准称为范式范式(normal formnormal form

2、)。)。 由于规范化的程度不同,就产生了由于规范化的程度不同,就产生了不同的范式不同的范式。 满足最基本规范化要求的关系模式叫满足最基本规范化要求的关系模式叫第一范式第一范式, 在第一范式中进一步满足一些要求为在第一范式中进一步满足一些要求为第二范式第二范式, 以此类推就产生了以此类推就产生了第三、四范式第三、四范式等概念。等概念。 每种范式都规定了一些限制约束条件。每种范式都规定了一些限制约束条件。 最重要的是最重要的是3nf和和bcnf。这是进行规范化的。这是进行规范化的主要目标。主要目标。 返回返回3范式的概念最早由范式的概念最早由e.f.codde.f.codd提出。提出。从从1971

3、1971年起,年起,coddcodd相继提出了关系的三级规范相继提出了关系的三级规范化形式,即第一范式(化形式,即第一范式(1nf1nf)、第二范式()、第二范式(2nf2nf)、)、第三范式(第三范式(3nf3nf)。)。19741974年,年,coddcodd和和boyceboyce以共同提出了一个新的以共同提出了一个新的范式的概念,即范式的概念,即boyce-coddboyce-codd范式,简称范式,简称bcbc范式。范式。19761976年年faginfagin提出了第四范式,提出了第四范式,后来又有人定义了第五范式。后来又有人定义了第五范式。至此在关系数据库规范中建立了一个范式系列

4、:至此在关系数据库规范中建立了一个范式系列:1nf,2nf,3nf,bcnf,4nf,5nf,1nf,2nf,3nf,bcnf,4nf,5nf,一级比一级有更严一级比一级有更严格的要求。格的要求。各个范式之间的联系可以表示为:各个范式之间的联系可以表示为:5nf 4nf bcnf 3nf 2nf 1nf如图4.3所示。 返回返回4图图4.3 4.3 各种范式之间的关系各种范式之间的关系1nf,2nf,3nf,bcnf,4nf,5nf,1nf,2nf,3nf,bcnf,4nf,5nf,一级比一级有一级比一级有更严格的要求。更严格的要求。下面逐一介绍各级范式及其规范化。下面逐一介绍各级范式及其规范

5、化。 返回返回54.3.1 4.3.1 第一范式第一范式第一范式第一范式(first normal form)是最基本的规是最基本的规范形式,即关系中每个属性都是不可再分的简单范形式,即关系中每个属性都是不可再分的简单项。项。定义定义4.44.4 如果关系模式如果关系模式r r,其所有的属性均为简,其所有的属性均为简单属性,即每个属性都城是不可再分的,则称单属性,即每个属性都城是不可再分的,则称r r属于第一范式,简称属于第一范式,简称1nf1nf,记作,记作r r 1nf1nf。在第在第2 2章讨论关系的性质时,我们把满足这个条件的关章讨论关系的性质时,我们把满足这个条件的关系称为系称为规范

6、化关系规范化关系。在关系数据库系统中只讨论规范化的关系,凡是非规范在关系数据库系统中只讨论规范化的关系,凡是非规范化的关系模式必须化成规范化的关系。化的关系模式必须化成规范化的关系。在非规范化的关系中去掉组合项就能化成规范化的关系。在非规范化的关系中去掉组合项就能化成规范化的关系。每个规范化的关系都属于每个规范化的关系都属于1nf1nf,这也是它之所以称为,这也是它之所以称为“第一第一”的原因。的原因。 返回返回6然而,一个关系模式仅仅属于第一范式是不然而,一个关系模式仅仅属于第一范式是不适用的。适用的。在在4.14.1节中给出的关系模式节中给出的关系模式scdscd属于第一范式,属于第一范式

7、,但其具有大量的数据冗余,具有插入异常、删但其具有大量的数据冗余,具有插入异常、删除异常、更新异常等弊端。除异常、更新异常等弊端。为什么会存在这种问题呢?为什么会存在这种问题呢?让我们分析一下让我们分析一下scdscd中的函数依赖关系,它的中的函数依赖关系,它的关系键是(关系键是(snosno,cnocno)的属性组合,所以有:)的属性组合,所以有: (sno,cno) scoresnosn,(sno,cno) snsnoage,(sno,cno) agesnodept,(sno,cno) deptsno mn,(sno,cno) mn fppppt返回返回7我们可以用函数信赖图表示以上函数依

8、赖关系,如图我们可以用函数信赖图表示以上函数依赖关系,如图4.44.4所示。所示。 snmnscoresnocnoppf由此可见,在scd中,既存在完全函数依赖,又存在部分函数依赖和传递函数依赖。这种情况往往在数据库中是不允许的,也正是由于关系中存在着复杂的函数依赖,才导致数据操作中出现了种弊端。克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行转换。 返回返回84.3.2 4.3.2 第二范式第二范式4.3.2.1 4.3.2.1 第二范式的定义第二范式的定义定义定义4.54.5 如果关系模式如果关系模式r r 1nf1nf,且每个非主属性都完全,且每

9、个非主属性都完全函数依赖于函数依赖于r r的每个关系键,则称的每个关系键,则称r r属于属于第二范式第二范式(second normal form),简称,简称2nf2nf,记作,记作r r 2nf2nf。在关系模式在关系模式scdscd中,中,snosno,cnocno为主属性,为主属性,ageage,deptdept,mnmn,mnmn,scorescore均为非主属性,经上述分析,存在非主属均为非主属性,经上述分析,存在非主属性对关系键的部分函数依赖,所以性对关系键的部分函数依赖,所以scdscd 2nf2nf。而如图而如图4.24.2所示的由所示的由scdscd分解的三个关系模式分解的

10、三个关系模式s s,d d,scsc,其中其中s s的关系键为的关系键为snosno,d d的关系键为的关系键为deptdept,都是单属性,都是单属性,不可能存在部分函数依赖。不可能存在部分函数依赖。而对于而对于scsc,(,(snosno,cnocno) scorescore。所以。所以scdscd分解后,分解后,消除了非主属性对关系键的部分函数依赖,消除了非主属性对关系键的部分函数依赖,s s,d d,scsc均均属于属于2nf2nf。 f返回返回9又如在又如在2.4.22.4.2中,讲述全码的概念时给出的关中,讲述全码的概念时给出的关系模式系模式tcstcs(t t,c c,s s),

11、),一个教师可以讲授多门课程,一门课程可以为多个教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听,(t,c,s)三个属性的组合是关系键,t,c,s都是主属性,而无非主属性,所以也就不可能存在非主属性对关系键的部分函数依赖,tcs2nf。经以上分析,可以得到两个结论:经以上分析,可以得到两个结论:1从1nf关系中消除非主属性对关系键的部分函数依赖,则可得到2nf关系。2如果r的关系键为单属性,或r的全体属性均为主属性,则r2nf。 返回返回104.3.2.2 2nf4.3.2.2 2nf规范化规范化2nf2nf规范化是指把规范化是指把1nf1nf关系模式通过投影分解转换成关系模

12、式通过投影分解转换成2nf2nf关系模式的集合。关系模式的集合。分解时遵循的基本原则就是分解时遵循的基本原则就是“一事一地一事一地”,让一个关系,让一个关系只描述一个实体或者实体间的联系。如果多于一个实体只描述一个实体或者实体间的联系。如果多于一个实体或联系,则进行投影分解。或联系,则进行投影分解。下面以关系模式下面以关系模式scdscd为例,来说明为例,来说明2nf2nf规范化的过程规范化的过程例例4.1 4.1 将将scd(sno,sn,age,dept,mn,cno,score)scd(sno,sn,age,dept,mn,cno,score)规范到规范到2nf2nf。 由snosn,s

13、noage,snodept,(sno,cno) score,可以判断,关系scd至少描述了两个实体, 一个为学生实体,属性有sno、sn、age、dept、mn; 另一个是学生与课程的联系(选课),属性有sno、cno和score。 根据分解的原则,我们可以将scd分解成如下两个关系,如图4.5所示。 f返回返回11sd(sno,sn,age,dept,mn),描述学生实体;sc(sno,cno,score),描述学生与课程的联系。sdsd snosnagedeptmns1赵亦17计算机刘伟s2钱尔18信息王平s3孙珊20信息王平s4李思21自动化刘伟scsc snocnoscores1c19

14、0s1c285s2c557s2c680s2c7 s2c570s3c10s3c270s3c485s4c193图4.5 关系sd和sc 返回返回12 对于分解后的两个关系对于分解后的两个关系sdsd和和scsc,主键分别为,主键分别为snosno和和(snosno,cnocno),非主属性对主键完全函数依赖。因此,),非主属性对主键完全函数依赖。因此,sdsd 2nf2nf,scsc 2nf2nf,而且前面已经讨论,而且前面已经讨论,scdscd的这种分的这种分解没有丢失任何信息,具有无损连接性。解没有丢失任何信息,具有无损连接性。 分解后,分解后,sdsd和和scsc的函数依赖分别如图的函数依赖

15、分别如图4.64.6和和4.74.7所示。所示。 snosnsnocnoscoreagedeptmn图图4.6 sd4.6 sd中的函数依赖关系中的函数依赖关系 图图4.7 sc4.7 sc中的函数依赖关系中的函数依赖关系 返回返回13 1nf1nf的关系模式经过投影分解转换成的关系模式经过投影分解转换成2nf2nf后,消除了一后,消除了一些数据冗余。些数据冗余。 分析图分析图4.54.5中中sdsd和和scsc中的数据,可以看出,它们存储的中的数据,可以看出,它们存储的冗余度比关系模式冗余度比关系模式scdscd有了较大辐度的降低。有了较大辐度的降低。 学生的姓名、年龄不需要重复存储多次。学

16、生的姓名、年龄不需要重复存储多次。 这样便可在一定程度上避免数据更新所造成的数据不这样便可在一定程度上避免数据更新所造成的数据不一致性的问题。一致性的问题。 由于把学生的基本信息与选课信息分开存储,则学生由于把学生的基本信息与选课信息分开存储,则学生基本信息因没选课而不能插入的问题得到了解决,插基本信息因没选课而不能插入的问题得到了解决,插入异常现象得到了部分改善。入异常现象得到了部分改善。 同样,如果某个学生不再选修同样,如果某个学生不再选修c1c1课程,只在选课关系课程,只在选课关系scsc中删去该该学生选修中删去该该学生选修c1c1的记录即可,而的记录即可,而sdsd中有关该中有关该学生

17、的其它信息不会受到任何影响,也解决了部分删学生的其它信息不会受到任何影响,也解决了部分删除异常问题。除异常问题。 因此可以说关系模式因此可以说关系模式sdsd和和scsc在性能上比在性能上比scdscd有了显著提有了显著提高。高。 返回返回14下面对下面对2nf2nf规范化作规范化作形式化的描述形式化的描述。设关系模式设关系模式r r(x,y,zx,y,z),),r r 1nf1nf,但,但r r 2nf2nf,其中,其中,x x是是键属性键属性,y y,z z是是非键属性非键属性,且存在,且存在部分函数依赖,部分函数依赖,x x y y。设。设x x可表示为可表示为x1x1、x2x2,其中其

18、中x1 yx1 y。则。则r r(x x,y y,z z)可以分解为)可以分解为rx1rx1,yy和和rxrx,zz。因为因为x1yx1y,所以,所以r(xr(x,y y,z)=rx1z)=rx1,yy* *rx1rx1,x2x2,z=rx1z=rx1,yy* *rxrx,zz,即,即r r等等于其投影于其投影rx1rx1,yy和和xx,zz在在x1x1上的上的自然连接自然连接,r r的分解具有的分解具有无损连接性无损连接性。由于由于x1 yx1 y,因此,因此rx1rx1,yy 2nf2nf。若。若rxrx,z z 2nf2nf,可以按照上述方法继续进行投影分,可以按照上述方法继续进行投影分

19、解,直到将解,直到将rxrx,zz分解为属于分解为属于2nf2nf关系的集合,关系的集合,且这种分解必定是有限的。且这种分解必定是有限的。 pff返回返回154.3.2.3 2nf4.3.2.3 2nf的缺点的缺点2nf2nf的关系模式解决了的关系模式解决了1nf1nf中存在的一些问题,中存在的一些问题,2nf2nf规范化规范化的程度比的程度比1nf1nf前进了一步,但前进了一步,但2nf2nf的关系模式在进行数据操的关系模式在进行数据操作时,仍然存在着一些问题:作时,仍然存在着一些问题:1数据冗余。每个系名和系主任的名字存储的次数等于该系的学生人数。2插入异常。当一个新系没有招生时,有关该系

20、的信息无法插入。3删除异常。某系学生全部毕业而没有招生时,删除全部学生的记录也随之删除了该系的有关信息。4更新异常。更换系主任时,仍需改动较多的学生记录。之所以存在这些问题,是由于在之所以存在这些问题,是由于在scdscd中存在着非主属性对中存在着非主属性对主键的传递依赖。主键的传递依赖。分析分析scdscd中的函数依赖关系,中的函数依赖关系,snosnsnosn,snoagesnoage,snodeptsnodept,deptmndeptmn,sno mnsno mn,非主属性,非主属性mnmn对主键对主键snosno传递依赖。传递依赖。为此,对关系模式为此,对关系模式scdscd还需进一步

21、简化,消除这种传递依还需进一步简化,消除这种传递依赖,得到赖,得到3nf3nf。 t返回返回164.3.3 4.3.3 第三范式第三范式4.3.3.1 4.3.3.1 第三范式的定义第三范式的定义定义定义4.64.6 如果关系模式如果关系模式r r 2nf2nf,且每个非主属,且每个非主属性都不传递依赖于性都不传递依赖于r r的每个关系键,则称的每个关系键,则称r r属于第属于第三范式三范式(third normal form),简称,简称3nf3nf,记作,记作r r 3nf3nf。第三范式具有如下性质:第三范式具有如下性质:1 1如果如果r r 3nf3nf,则,则r r也是也是2nf2n

22、f。返回返回172 2如果如果r r 2nf2nf,则,则r r不一定是不一定是3nf3nf。例如,我们前面由关系模式scd分解而得到的sd和sc都为2nf,其中,sc3nf,但在sd中存在着非主属性mn对主键sno传递依赖,sd3nf。对于sd,应该进一步进行分解,使其转换成3nf。 4.3.3.2 3nf4.3.3.2 3nf规范化规范化3nf3nf规范化规范化是指把是指把2nf2nf关系模式通过投影分解转换成关系模式通过投影分解转换成3nf3nf关系模式的集合。关系模式的集合。和和2nf2nf的规范化时遵循的原则相同,即的规范化时遵循的原则相同,即“一事一地一事一地”,让一个关系只描述一

23、个实体或者实体间的联系。让一个关系只描述一个实体或者实体间的联系。下面以下面以2nf2nf关系模式关系模式sdsd为例,来说明为例,来说明3nf3nf规范化的过程。规范化的过程。 返回返回18例例4.24.2将将sd(sno,sn,age,dept,mn)sd(sno,sn,age,dept,mn)规范到规范到3nf3nf。 分析sd的属性组成,可以判断,关系sd实际上描述了两个实体: 一个为学生实体,属性有sno,sn,age,dept; 另一个是系的实体,其属性dept和mn。根据分解的原则,我们可以将sd分解成如下两个关系,如图4.8所示。 s(sno,sn,age,dept),描述学生

24、实体; d(dept,mn),描述系的实体。 返回返回19s ds ddeptmn计算机刘伟信息王平自动化刘伟snosnagedepts1赵亦17计算机s2钱尔18信息s3孙珊20信息s4李思21自动化对于分解后的两个关系s和d,主键分别为sno和dept,不存在非主属性对主键的传递函数依赖。因此,s3nf,d3nf。图图4.8 4.8 关系关系s s和和d d 返回返回20 分解后,分解后,s s和和d d的函数依赖分别如图的函数依赖分别如图4.94.9和和4.104.10所示。所示。snosndeptagedeptmn图图4.9 s4.9 s中的函数依赖关系图中的函数依赖关系图图图4.10

25、 d4.10 d中的函数依赖关系图中的函数依赖关系图由以上两图可以看出,关系模式sd由2nf分解为3nf后,函数依赖关系变得更加简单,既没有非主属性对键的部分依赖,也没有非主属性对键的传递依赖,解决了2nf中存在的四个问题。返回返回211数据冗余降低。系主任的名字存储的次数与该系的学生人数无关,只在关系d中存储一次。2不存在插入异常。当一个新系没有学生时,该系的信息可以直接插入到关系d中,而与学生关系s无关。3不存在删除异常。要删除某系的全部学生而仍然保留该系的有关信息时,可以只删除学生关系s中的相关学生记录,而不影响系关系d中的数据。 4不存在更新异常。更换系主任时,只需修改关系d中一个相应

26、元组的mn属性值,从而不会出现数据的不一致现象。 scd规范到3nf后,所存在的异常现象已经全部消失。 但是,3nf只限制了非主属性对键的依赖关系,而没有限制主属性对键的依赖关系。 如果发生了这种依赖,仍有可能存在数据冗余、插入异常、删除异常和修改异常。 这时,则需对3nf进一步规范化,消除主属性对键的依赖关系,为了解决这种问题,boyce与codd共同提出了一个新范式的定义,这就是boyce-codd范式,通常简称bcnf或bc范式。它弥补了3nf的不足。返回返回224.3.4 bc4.3.4 bc范式范式4.3.4.1 bc4.3.4.1 bc范式的定义范式的定义定义定义4.74.7 如果

27、关系模式如果关系模式r r 1nf1nf,且所有的函数,且所有的函数依赖依赖xyxy(y xy x), ,决定因素决定因素x x都包含了都包含了r r的一的一个候选键,则称个候选键,则称r r属于属于bcbc范式范式(boyce-codd normal form),记作,记作r r bcnfbcnf。bcnfbcnf具有如下性质:具有如下性质:1满足bcnf的关系将消除任何属性(主属性或非主属性)对键的部分函数依赖和传递函数依赖。也就是说,如果rbcnf,则r也是3nf。证明:采用反证法。设r不是3nf。则必然存在如下条件的函数依赖,xy(y x),yz,其中x是键属性,y是任意属性组,z是非

28、主属性,z y,这样yz函数依赖的决定因素y不包含候选键,这与bcnf范式的定义相矛盾,所以如果rbcnf,则r也是3nf。 返回返回232 2如果如果r r 3nf3nf,则,则r r不一定是不一定是bcnfbcnf。 现举例说明。设关系模式现举例说明。设关系模式sncsnc(snosno,snsn,cn0cn0,scorescore),其中),其中snosno代表学号,代表学号,snsn代表学生姓名并假设没有重名,代表学生姓名并假设没有重名,cnocno代表课程号,代表课程号,scorescore代表成绩。可以判定,代表成绩。可以判定,sncsnc有两个候选键(有两个候选键(snosno,

29、cnocno)和)和(snsn,cnocno),其函数依赖如下:),其函数依赖如下: sno sn(sno,cno)score(sn,cno)score。 唯一的非主属性唯一的非主属性scorescore对键不存在部分函数依赖,也不存在传递对键不存在部分函数依赖,也不存在传递函数依赖。所以函数依赖。所以sncsnc 3nf3nf。 但是,因为但是,因为sno snsno sn,即决定因素,即决定因素snosno或或snsn不包含候选键,从另不包含候选键,从另一个角度说,存在着主属性对键的部分函数依赖:一个角度说,存在着主属性对键的部分函数依赖: (snosno,cnocno) snsn,(,(

30、snsn,cnocno) snosno,所以,所以sncsnc不是不是bcnfbcnf。 正是存在着这种主属性对键的部分函数依赖关系,造成了关系正是存在着这种主属性对键的部分函数依赖关系,造成了关系sncsnc中存在着较大的数据冗余,学生姓名的存储次数等于该生所中存在着较大的数据冗余,学生姓名的存储次数等于该生所选的课程数。从而会引起修改异常。选的课程数。从而会引起修改异常。 比如,当要更改某个学生的姓名时,则必须搜索出现该姓名的每比如,当要更改某个学生的姓名时,则必须搜索出现该姓名的每个学生记录,并对其姓名逐一修改,这样容易造成数据的不一致个学生记录,并对其姓名逐一修改,这样容易造成数据的不

31、一致问题。问题。 解决这一问题的办法仍然是通过投影分解进一步提高解决这一问题的办法仍然是通过投影分解进一步提高sncsnc的范式的范式等级,将等级,将sncsnc规范到规范到bcnfbcnf。 p p返回返回244.3.4.2 bcnf4.3.4.2 bcnf规范化规范化 bcnfbcnf规范化是指把规范化是指把3nf3nf关系模式通过投影分解转换成关系模式通过投影分解转换成bcnfbcnf关系模式的集合。关系模式的集合。下面以下面以3nf3nf关系模式关系模式sncsnc为例,来说明为例,来说明bcnfbcnf规范化的过程。规范化的过程。例例4.34.3将将snc(sno,sn,cnosnc

32、(sno,sn,cno,score)score)规范到规范到bcnfbcnf。 分析分析sncsnc数据冗余的原因,是因为在这一个关系中存在数据冗余的原因,是因为在这一个关系中存在两个实体,一个为学生实体,属性有两个实体,一个为学生实体,属性有snosno、snsn;另一个;另一个是选课实体,属性有是选课实体,属性有snosno、cnocno和和scorescore。 根据分解的原则,我们可以将根据分解的原则,我们可以将sncsnc分解成如下两个关系:分解成如下两个关系:s1(sno,sn),描述学生实体;s2(sno,cno,score),描述学生与课程的联系。 对于对于s1s1,有两个候选

33、键,有两个候选键snosno和和snsn, 对于对于s2s2,主键为(,主键为(snosno,cnocno)。)。 在这两个关系中,无论主属性还是非主属性都不存在在这两个关系中,无论主属性还是非主属性都不存在对键的部分依赖和传递依赖,对键的部分依赖和传递依赖,s1s1 bcnfbcnf,s2s2 bcnfbcnf。 返回返回25分解后,分解后,s1s1和和s2s2的函数依赖分别如图的函数依赖分别如图4.114.11和和4.124.12所示。所示。snosnsnocnoscore图图4.11 s14.11 s1中的函数依赖关系中的函数依赖关系 图图4.12 s24.12 s2中的函数依赖关系中的

34、函数依赖关系 关系snc转换成bcnf后,数据冗余度明显降低。学生的姓名只在关系s1中存储一次,学生要改名时,只需改动一条学生记录中的相应的sn值,从而不会发生修改异常。 返回返回26例例4.44.4设关系模式设关系模式tcstcs(t t,c c,s s),),t t表示教师,表示教师,c c表示课程,表示课程,s s表表示学生。语义假设是,每一位教师只讲授一门课程;每门课程由示学生。语义假设是,每一位教师只讲授一门课程;每门课程由多个教师讲授;某一学生选定某门课程,就对应于一确定的教师。多个教师讲授;某一学生选定某门课程,就对应于一确定的教师。 根据语义假设,根据语义假设,tcstcs的函

35、数依赖是:的函数依赖是:(s s,c c)tt,(,(s s,t t)cc,tctc。 函数依赖图如图函数依赖图如图4.134.13所示。所示。 sctstc4.13 tcs4.13 tcs中的函数依赖关系中的函数依赖关系 返回返回27对于对于tcstcs,(,(s s,c c)和()和(s s,t t)都是候选键,两个候选键相交,有)都是候选键,两个候选键相交,有公共的属性公共的属性s s。tcstcs中不存在非主属性,也就不可能存在非主属性对中不存在非主属性,也就不可能存在非主属性对键的部分依赖或传递依赖,所以键的部分依赖或传递依赖,所以tcstcs 3nf3nf。但从但从tcstcs的一

36、个关系实例(如图的一个关系实例(如图4.144.14)分析,仍存在一些问题。)分析,仍存在一些问题。 tcst1c1s1t1c1s2t2c1s3t2c1s4t3c2s2t4c2s2t4c3s2图图4.14 4.14 关系关系tcstcs 返回返回281 1数据冗余。数据冗余。虽然每个教师只开一门课,但每个选修该虽然每个教师只开一门课,但每个选修该教师该该门课程的学生元组都要记录这一信息。教师该该门课程的学生元组都要记录这一信息。2 2插入异常。插入异常。当某门课程本学期不开,自然就没有学生当某门课程本学期不开,自然就没有学生选修。没有学生选修,因为主属性不能为空,教师上选修。没有学生选修,因为主属性不能为空,教师上该门课程的信息就无法插入。同样原因,学生刚入校该门课程的信息就无法插入。同样原因,学生刚入校, ,尚未选课,有关信息也不能输入。尚未选课,有关信息也不能输入。3 3删除异常。删除异常。如果选修某门课程的学生全部毕业,删除如果选修某门课程的学生全部毕业,删除学生记录的同时学生记录的同时, ,随之也删除了教师开设该门课程的信随之也删除了教师开设该门课程的信息。息。4 4更新异

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论