版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第5章章 关系数据库的关系数据库的 规范化设计规范化设计本章概要本章概要 前面曾经讲述了关系数据库、关系模型的根本概念以及关系数据前面曾经讲述了关系数据库、关系模型的根本概念以及关系数据库的规范言语。库的规范言语。 如何运用关系模型设计关系数据库,也就是面对一个现实问题,如何运用关系模型设计关系数据库,也就是面对一个现实问题,如何选择一个比较好的关系方式的集合,每个关系又应该由哪些如何选择一个比较好的关系方式的集合,每个关系又应该由哪些属性组成。这属于数据库设计的问题,确切地讲是数据库逻辑设属性组成。这属于数据库设计的问题,确切地讲是数据库逻辑设计的问题,有关数据库设计的全过程将在后续章节详
2、细讨论计的问题,有关数据库设计的全过程将在后续章节详细讨论 本章讲述关系数据库规范化实际,这是数据库逻辑设计的实际根本章讲述关系数据库规范化实际,这是数据库逻辑设计的实际根据。据。 要求了解规范化实际的研讨动机及其在数据库设计中的作用要求了解规范化实际的研讨动机及其在数据库设计中的作用 掌握函数依赖的有关概念,掌握函数依赖的有关概念, 第一范式、第二范式、第三范式的定义,第一范式、第二范式、第三范式的定义, 重点掌握并可以灵敏运用关系方式规范化的方法和关系方式分解重点掌握并可以灵敏运用关系方式规范化的方法和关系方式分解的方法,这也是本章的难点。的方法,这也是本章的难点。 5.1 5.1 规范化
3、问题的提出规范化问题的提出5.1.1 5.1.1 规范化实际的主要内容规范化实际的主要内容关系数据库的规范化实际最早是由关系数关系数据库的规范化实际最早是由关系数据库的开创人据库的开创人E.F.CoddE.F.Codd提出的提出的在该实际出现以前,层次和网状数据库的在该实际出现以前,层次和网状数据库的设计只是遵照其模型本身固有的原那么,设计只是遵照其模型本身固有的原那么,而无详细的实际根据可言,因此带有盲目而无详细的实际根据可言,因此带有盲目性,能够在以后的运转和运用中发生许多性,能够在以后的运转和运用中发生许多料想不到的问题。料想不到的问题。在关系数据库系统中,关系模型包括一组在关系数据库系
4、统中,关系模型包括一组关系方式,各个关系不是完全孤立的,数关系方式,各个关系不是完全孤立的,数据库的设计较层次和网状模型更为重要据库的设计较层次和网状模型更为重要如何设计一个适宜的关系数据库系统,关键如何设计一个适宜的关系数据库系统,关键是关系数据库方式的设计,一个好的关系数是关系数据库方式的设计,一个好的关系数据库方式应该包括多少关系方式,而每一个据库方式应该包括多少关系方式,而每一个关系方式又应该包括哪些属性,又如何将这关系方式又应该包括哪些属性,又如何将这些相互关联的关系方式组建一个适宜的关系些相互关联的关系方式组建一个适宜的关系模型,这些任务决议了到整个系统运转的效模型,这些任务决议了
5、到整个系统运转的效率,也是系统成败的关键所在,所以必需在率,也是系统成败的关键所在,所以必需在关系数据库的规范化实际的指点下逐渐完成关系数据库的规范化实际的指点下逐渐完成 n关系数据库的规范化实际主要包括三个方面的内容:关系数据库的规范化实际主要包括三个方面的内容:n函数依赖函数依赖n范式范式Normal FormNormal Formn方式设计方式设计n其中,函数依赖起着中心的作用,是方式分解和方式其中,函数依赖起着中心的作用,是方式分解和方式设计的根底,范式是方式分解的规范。设计的根底,范式是方式分解的规范。n5.1.2 5.1.2 关系方式的存储异常问题关系方式的存储异常问题n数据库的逻
6、辑设计为什么要遵照一定的规范化实际?数据库的逻辑设计为什么要遵照一定的规范化实际?n什么是好的关系方式?什么是好的关系方式?n某些不好的关系方式能够导致哪些问题?某些不好的关系方式能够导致哪些问题?n下面经过例子进展分析下面经过例子进展分析: :例如要求设计教学管理数据库,其关系方式例如要求设计教学管理数据库,其关系方式SCDSCD如下:如下: SCD(SNO, SN, AGE, DEPT, MN, CNO, SCORE)SCD(SNO, SN, AGE, DEPT, MN, CNO, SCORE)其中,其中,SNOSNO表示学生学号,表示学生学号,SNSN表示学生姓名,表示学生姓名,AGEA
7、GE表示表示学生年龄,学生年龄,DEPTDEPT表示学生所在的系别,表示学生所在的系别,MNMN表示系主表示系主任姓名,任姓名,CNOCNO表示课程号,表示课程号,SCORESCORE表示成果。表示成果。 根据实践情况,这些数据有如下语义规定:根据实践情况,这些数据有如下语义规定:一个系有假设干个学生,但一个学生只属于一个系;一个系有假设干个学生,但一个学生只属于一个系;一个系只需一名系主任,但一个系主任可以同时兼几一个系只需一名系主任,但一个系主任可以同时兼几个系的系主任;个系的系主任;一个学生可以选修多门功课,每门课程可有假设干学一个学生可以选修多门功课,每门课程可有假设干学生选修生选修每
8、个学生学习课程有一个成果每个学生学习课程有一个成果图图5.1 5.1 关系关系SCDSCDSNOSNOSNSNAGEAGEDEPTDEPTMNMNCNOCNOSCORESCORES1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193 根据上述的语义规定,并分析以上关系中的数据,根据上述的语义规定,并分析以上关系中的数据,我们可以看出:我们可以看出:(SNO,CNO)属性
9、的组合能独一属性的组合能独一标识一个元组,所以标识一个元组,所以(SNO,CNO)是该关系方式是该关系方式的主关系键。但在进展数据库的操作时,会出现的主关系键。但在进展数据库的操作时,会出现以下几方面的问题。以下几方面的问题。 1. 数据冗余。每个系名和系主任的名字存储的次数据冗余。每个系名和系主任的名字存储的次数等于该系的学生人数乘以每个学生选修的课程数等于该系的学生人数乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要反复存储多门数,同时学生的姓名、年龄也都要反复存储多次,数据的冗余度很大,浪费了存储空间。次,数据的冗余度很大,浪费了存储空间。2. 2. 插入异常。假设某个新系没有招生
10、,尚无插入异常。假设某个新系没有招生,尚无学生时,那么系名和系主任的信息无法插学生时,那么系名和系主任的信息无法插入到数据库中。入到数据库中。由于在这个关系方式中,由于在这个关系方式中,(SNO,CNO)(SNO,CNO)是主关系是主关系键。根据关系的实体完好性约束,主关系键。根据关系的实体完好性约束,主关系键的值不能为空,而这时没有学生,键的值不能为空,而这时没有学生,SNOSNO和和CNOCNO均无值,因此不能进展插入操作。均无值,因此不能进展插入操作。另外,当某个学生尚未选课,即另外,当某个学生尚未选课,即CNOCNO未知,实未知,实体完好性约束还规定,主关系键的值不能体完好性约束还规定
11、,主关系键的值不能部分为空,同样不能进展插入操作部分为空,同样不能进展插入操作3. 3. 删除异常删除异常某系学生全部毕业而没有招生时,删除全部学生的某系学生全部毕业而没有招生时,删除全部学生的记录那么系名、系主任也随之删除,而这个系依然记录那么系名、系主任也随之删除,而这个系依然存在,在数据库中却无法找到该系的信息。存在,在数据库中却无法找到该系的信息。另外,假设某个学生不再选修另外,假设某个学生不再选修C1C1课程,本应该只删课程,本应该只删去去C1C1,但,但C1C1是主关系键的一部分,为保证明体完好是主关系键的一部分,为保证明体完好性,必需将整个元组一同删掉,这样,有关该学生性,必需将
12、整个元组一同删掉,这样,有关该学生的其它信息也随之丧失。的其它信息也随之丧失。4. 4. 更新异常更新异常假设学生改名,那么该学生的一切记录都要逐一修假设学生改名,那么该学生的一切记录都要逐一修正正SNSN;又如某系改换系主任,那么属于该系的学生记录都又如某系改换系主任,那么属于该系的学生记录都要修正要修正MNMN的内容,稍有不慎,就有能够漏改某些记的内容,稍有不慎,就有能够漏改某些记录,这就会呵斥数据的不一致性,破坏了数据的完录,这就会呵斥数据的不一致性,破坏了数据的完好性。好性。v由于存在以上问题,我们说,由于存在以上问题,我们说,SCDSCD是一个不好的关系方是一个不好的关系方式。产生上
13、述问题的缘由,直观地说,是由于关系中式。产生上述问题的缘由,直观地说,是由于关系中“包罗万象,内容太杂了。包罗万象,内容太杂了。v那么,怎样才干得到一个好的关系方式呢?那么,怎样才干得到一个好的关系方式呢?v我们把关系方式我们把关系方式SCDSCD分解为下面三个构造简单的关系方分解为下面三个构造简单的关系方式,如图式,如图5.25.2所示。所示。v学生关系学生关系 S (SNO,SN,AGE,DEPT)S (SNO,SN,AGE,DEPT)v选课关系选课关系 SC (SNO,CNO,SCORE)SC (SNO,CNO,SCORE)v系关系系关系 D (DEPT,MN)D (DEPT,MN)SN
14、OSNOSNSNAGEAGEDEPTDEPTSNOSNOCNOCNOSCORESCORES1赵亦17计算机S1S1C1C19090S2钱尔18信息S1C285S3孙珊20信息S2C557S4李思21自动化S2C680S2C7S2C570DEPTDEPTMNMNS3C10计算机计算机刘伟刘伟S3C270信息信息王平王平S3C485自动化自动化刘伟刘伟S4C193图图5.2 5.2 分解后的关系方式分解后的关系方式 n在以上三个关系方式中,实现了信息的某在以上三个关系方式中,实现了信息的某种程度的分别种程度的分别nS S中存储学生根本信息,与所选课程及系中存储学生根本信息,与所选课程及系主任无关;
15、主任无关;nD D中存储系的有关信息,与学生无关;中存储系的有关信息,与学生无关;nSCSC中存储学生选课的信息,而与所学生及中存储学生选课的信息,而与所学生及系的有关信息无关。系的有关信息无关。n与与SCDSCD相比,分解为三个关系方式后,数据的相比,分解为三个关系方式后,数据的冗余度明显降低。冗余度明显降低。n当新插入一个系时,只需在关系当新插入一个系时,只需在关系D D中添加一条中添加一条记录。记录。n当某个学生尚未选课,只需在关系当某个学生尚未选课,只需在关系S S中添加一中添加一条学生记录,而与选课关系无关,这就防止条学生记录,而与选课关系无关,这就防止了插入异常。了插入异常。n当一
16、个系的学生全部毕业时,只需在当一个系的学生全部毕业时,只需在S S中删除中删除该系的全部学生记录,而关系该系的全部学生记录,而关系D D中有关该系的中有关该系的信息依然保管,从而不会引起删除异常。信息依然保管,从而不会引起删除异常。n同时,由于数据冗余度的降低,数据没有反同时,由于数据冗余度的降低,数据没有反复存储,也不会引起更新异常。复存储,也不会引起更新异常。 n经过上述分析,我们说分解后的关系方经过上述分析,我们说分解后的关系方式是一个好的关系数据库方式。式是一个好的关系数据库方式。n从而得出结论,一个好的关系方式应该从而得出结论,一个好的关系方式应该具备以下四个条件:具备以下四个条件:
17、n1. 1. 尽能够少的数据冗余。尽能够少的数据冗余。n2. 2. 没有插入异常。没有插入异常。n3. 3. 没有删除异常。没有删除异常。n4. 4. 没有更新异常。没有更新异常。 v但要留意,一个好的关系方式并不是在任何情况下都是但要留意,一个好的关系方式并不是在任何情况下都是最优的最优的v比如查询某个学生选修课程名及所在系的系主任时,要比如查询某个学生选修课程名及所在系的系主任时,要经过衔接,而衔接所需求的系统开销非常大,因此要以经过衔接,而衔接所需求的系统开销非常大,因此要以实践设计的目的出发进展设计实践设计的目的出发进展设计v如何按照一定的规范设计关系方式,将构造复杂的关系如何按照一定
18、的规范设计关系方式,将构造复杂的关系分解成构造简单的关系,从而把不好的关系数据库方式分解成构造简单的关系,从而把不好的关系数据库方式转变为好的关系数据库方式,这就是关系的规范化。转变为好的关系数据库方式,这就是关系的规范化。v我们要设计的关系方式中的各属性是相互依赖、相互制我们要设计的关系方式中的各属性是相互依赖、相互制约的,这样才构成了一个构造严谨的整体。约的,这样才构成了一个构造严谨的整体。v因此在设计关方式时,必需从语义上分析这些依赖关系。因此在设计关方式时,必需从语义上分析这些依赖关系。v数据库方式的好坏和关系中各属性间的依赖关系有关,数据库方式的好坏和关系中各属性间的依赖关系有关,因
19、此,我们先讨论属性间的依赖关系,然后再讨论关系因此,我们先讨论属性间的依赖关系,然后再讨论关系规范化实际。规范化实际。 5.2 5.2 函数依赖函数依赖5.2.15.2.1函数依赖的定义及性质函数依赖的定义及性质关系方式中的各属性之间相互依赖、相互制约关系方式中的各属性之间相互依赖、相互制约的联络称为数据依赖。的联络称为数据依赖。数据依赖普通分为函数依赖、多值依赖和衔接数据依赖普通分为函数依赖、多值依赖和衔接依赖。依赖。其中其中, ,函数依赖是最重要的数据依赖。函数依赖是最重要的数据依赖。函数依赖函数依赖Functional DependencyFunctional Dependency是关系
20、是关系方式中属性之间的一种逻辑依赖关系。方式中属性之间的一种逻辑依赖关系。v例如在上一节引见的关系方式例如在上一节引见的关系方式SCDSCD中,中,SNOSNO与与SNSN、AGEAGE、DEPTDEPT之间都有一种依赖关系。之间都有一种依赖关系。v由于一个由于一个SNOSNO只对应一个学生,而一个学生只能属只对应一个学生,而一个学生只能属于一个系,所以当于一个系,所以当SNOSNO的值确定之后,的值确定之后,SNSN,AGEAGE,DEPTDEPT的值也随之被独一确实定了。的值也随之被独一确实定了。v这类似于变量之间的单值函数关系。设单值函数这类似于变量之间的单值函数关系。设单值函数Y=F(
21、X)Y=F(X),自变量,自变量X X的值可以决议一个独一的函数值的值可以决议一个独一的函数值Y Y。v在这里,我们说在这里,我们说SNOSNO决议函数决议函数SNSN,AGEAGE,DEPTDEPT,或者说或者说SNSN,AGEAGE,DEPTDEPT函数依赖于函数依赖于SNOSNO5.2 5.2 函数依赖函数依赖定义定义5.15.1设关系方式设关系方式R(UR(U,F)F),U U是属性选集,是属性选集,F F是是U U上的函数依赖集,上的函数依赖集,X X和和Y Y是是U U的子集,假设对于的子集,假设对于R(U)R(U)的恣意一个能够的关系的恣意一个能够的关系r r,对于,对于X X的
22、每一个详细值,的每一个详细值,Y Y都有独一的详细值与之对应,那么称都有独一的详细值与之对应,那么称X X决议函数决议函数Y Y,或或Y Y函数依赖于函数依赖于X X,记作,记作XYXY。我们称我们称X X为决议要素,为决议要素,Y Y为依赖要素。为依赖要素。当当Y Y不函数依赖于不函数依赖于X X时,记作:时,记作:X YX Y。当当XYXY且且YXYX时,那么记作:时,那么记作: X YX Y。5.2.1.15.2.1.1 函数依赖的定义函数依赖的定义v对于关系方式对于关系方式SCDSCDvU=SNO,SN,AGE,DEPT,MN,CNO,SCOREU=SNO,SN,AGE,DEPT,MN
23、,CNO,SCOREvF=SNOSNF=SNOSN,SNOAGESNOAGE,SNODEPTSNODEPTv一个一个SNOSNO有多个有多个SCORESCORE的值与其对应,因此的值与其对应,因此SCORESCORE不能独一地确定,即不能独一地确定,即SCORESCORE不能函数依赖于不能函数依赖于SNOSNO,所以有:所以有:SNO SCORESNO SCORE。v但是但是SCORESCORE可以被可以被SNOSNO,CNOCNO独一地确定。所独一地确定。所以可表示为:以可表示为:SNOSNO,CNOCNOSCORESCORE。 函数依赖函数依赖检验:检验: AC? CA? ABD?辨识:辨
24、识:满足依赖的关系:依赖在方式的某个关系实例上成满足依赖的关系:依赖在方式的某个关系实例上成立立方式上成立的依赖:依赖在方式的一切关系实例上方式上成立的依赖:依赖在方式的一切关系实例上都成立都成立ABCDa1b1c1d1a1b2c1d2a2b2c2d2a2b3c2d3a3b3c2d4ABC123423533练习练习有关函数依赖的几点阐明:有关函数依赖的几点阐明:1 1平凡的函数依赖与非平凡的函数依赖。平凡的函数依赖与非平凡的函数依赖。当属性集当属性集Y Y是属性集是属性集X X的子集时,那么必然存的子集时,那么必然存在着函数依赖在着函数依赖XY,XY,这种类型的函数依赖称这种类型的函数依赖称为
25、平凡的函数依赖。为平凡的函数依赖。假设假设Y Y不是不是X X的子集,那么称的子集,那么称XYXY为非平凡的为非平凡的函数依赖。函数依赖。假设不特别声明,我们讨论的都是非平凡的假设不特别声明,我们讨论的都是非平凡的函数依赖函数依赖2 2函数依赖是语义范畴的概念。函数依赖是语义范畴的概念。我们只能根据语义来确定一个函数依赖,而不我们只能根据语义来确定一个函数依赖,而不能按照其方式化定义来证明一个函数依赖能能按照其方式化定义来证明一个函数依赖能否成立。否成立。例如,对于关系方式例如,对于关系方式S S,当学生不存在重名的,当学生不存在重名的情况下,可以得到:情况下,可以得到:SNAGESNAGES
26、NDEPTSNDEPT这种函数依赖关系,必需是在没有重名的学生这种函数依赖关系,必需是在没有重名的学生条件下才成立的,否那么就不存在函数依赖条件下才成立的,否那么就不存在函数依赖了。了。所以函数依赖反映了一种语义完好性约束所以函数依赖反映了一种语义完好性约束3 3函数依赖与属性之间的联络类型有关。函数依赖与属性之间的联络类型有关。1 1在一个关系方式中,假设属性在一个关系方式中,假设属性X X与与Y Y有有1:11:1联络时,那么存在函数依赖联络时,那么存在函数依赖XYXY,YXYX,即即X YX Y。 例如,当学生无重名时,例如,当学生无重名时,SNO SNSNO SN2 2假设属性假设属性
27、X X与与Y Y有有1:m1:m的联络时,那么只的联络时,那么只存在函数依赖存在函数依赖XYXY。例如,例如,SNOSNO与与AGEAGE,DEPTDEPT之间均为之间均为1:m1:m联络,所联络,所以有以有SNOAGESNOAGE,SNODEPTSNODEPT3 3假设属性假设属性X X与与Y Y有有m: nm: n的联络时,那么的联络时,那么X X与与Y Y之间不存在任何函数依赖关系。之间不存在任何函数依赖关系。 例如,一个学生可以选修多门课程,一门课例如,一个学生可以选修多门课程,一门课程又可以为多个学生选修,所以程又可以为多个学生选修,所以SNOSNO与与CNOCNO之间不存在函数依赖
28、关系。之间不存在函数依赖关系。由于函数依赖与属性之间的联络类型有关,由于函数依赖与属性之间的联络类型有关,所以在确定属性间的函数依赖关系时,可所以在确定属性间的函数依赖关系时,可以从分析属性间的联络类型入手,便可确以从分析属性间的联络类型入手,便可确定属性间的函数依赖定属性间的函数依赖4 4函数依赖关系的存在与时间无关。函数依赖关系的存在与时间无关。由于函数依赖是指关系中的一切元组应该满足的约由于函数依赖是指关系中的一切元组应该满足的约束条件,而不是指关系中某个或某些元组所满足束条件,而不是指关系中某个或某些元组所满足的约束条件。的约束条件。当关系中的元组添加、删除或更新后都不能破坏这当关系中
29、的元组添加、删除或更新后都不能破坏这种函数依赖。种函数依赖。因此,必需根据语义来确定属性之间的函数依赖,因此,必需根据语义来确定属性之间的函数依赖,而不能单凭某一时辰关系中的实践数据值来判别。而不能单凭某一时辰关系中的实践数据值来判别。例如,对于关系方式例如,对于关系方式S S,假设没有给出无重名的学,假设没有给出无重名的学生这种语义规定,那么即使当前关系中没有重名生这种语义规定,那么即使当前关系中没有重名的记录,也只能存在函数依赖的记录,也只能存在函数依赖SNOSNSNOSN,而不能,而不能存在函数依赖存在函数依赖SNSNOSNSNO,由于假设新添加一个重,由于假设新添加一个重名的学生,函数
30、依赖名的学生,函数依赖SNSNOSNSNO必然不成立。必然不成立。所以函数依赖关系的存在与时间无关,而只与数据所以函数依赖关系的存在与时间无关,而只与数据之间的语义规定有关。之间的语义规定有关。 5 5函数依赖可以保证关系分解的无损衔接性。函数依赖可以保证关系分解的无损衔接性。设设R RX X,Y Y,Z Z,X X,Y Y,Z Z为不相交的属性集合,假为不相交的属性集合,假设设XYXY或或XZ,XZ,那么有那么有R(XR(X,Y Y,Z)=RXZ)=RX,Y RXY RX,ZZ,其中,其中,RXRX,YY表示关系表示关系R R在属性在属性X X,Y Y上的投影,上的投影,即即R R等于其投影
31、在等于其投影在X X上的自然衔接,这样便保证了关上的自然衔接,这样便保证了关系系R R分解后不会丧失原有的信息,称作关系分解的分解后不会丧失原有的信息,称作关系分解的无损衔接性。无损衔接性。例如,对于关系方式例如,对于关系方式SCDSCD,有,有SNOSNOSNSN,AGEAGE,DEPTDEPT,MNMN,SCDSCDSNOSNO,SNSN,AGEAGE,DEPTDEPT,MNMN,CNOCNO,SCORESCORE=SCDSNO=SCDSNO,SNSN,AGEAGE,DEPTDEPT,MN MN SCDSNOSCDSNO,CNOCNO,SCORESCORE,也就是说,用其投影在,也就是说,
32、用其投影在SNOSNO上的自然衔接可复原关系方式上的自然衔接可复原关系方式SCDSCD。这一性质非常重要,在后一节的关系规范化中要用到。这一性质非常重要,在后一节的关系规范化中要用到。 5.2.1.2 5.2.1.2 函数依赖的根本性质函数依赖的根本性质1 1投影性投影性根据平凡的函数依赖的定义可知,一根据平凡的函数依赖的定义可知,一组属性函数决议它的一切子集组属性函数决议它的一切子集例如,在关系例如,在关系SCDSCD中,中,SNOSNO,CNOCNOSNOSNO和和SNOSNO,CNOCNOCNOCNO2 2扩张性扩张性假设假设XYXY且且WZWZ,那么,那么X X,W WY Y,Z Z例
33、如,例如,SNOSNOSNSN,AGEAGE,DEPTMNDEPTMN,那么有那么有SNOSNO,DEPTDEPTSNSN,AGEAGE,MNMN3 3合并性合并性假设假设XYXY且且XZXZ那么必有那么必有XXY Y,Z Z。例如,在关系例如,在关系SCDSCD中,中,SNOSNOSN,AGESN,AGE,SNOSNODEPT,MNDEPT,MN,那么有,那么有SNOSNOSN,AGESN,AGE,DEPTDEPT,MNMN。4 4分解性分解性假设假设XXY Y,Z Z, ,那么那么XYXY且且XZXZ。很显然,分解。很显然,分解性为合并性的逆过程。性为合并性的逆过程。由合并性和分解性,很容
34、易得到以下现实:由合并性和分解性,很容易得到以下现实:XA1XA1,A2A2,,An,An成立的充分必要条件是成立的充分必要条件是XAiXAii=1,2,ni=1,2,n成立。成立。 5.2.2 5.2.2 完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖定义定义5.2 5.2 设关系方式设关系方式R(U)R(U),U U是属性选集,是属性选集,X X和和Y Y是是U U的子集的子集假设假设XYXY,并且对于,并且对于X X的任何一个真子集的任何一个真子集X,X,都有都有X YX Y,那么称,那么称Y Y对对X X完全函数依完全函数依赖赖Full Functional Dependency
35、Full Functional Dependency,记作记作 X YX Y。假设对假设对X X的某个真子集的某个真子集XX,有,有XYXY,那,那么 称么 称 Y Y 对 部 分 函 数 依 赖 对 部 分 函 数 依 赖 P a r t i a l P a r t i a l Functional DependencyFunctional Dependency,记作,记作X X Y Y。例 如 , 在 关 系 方 式例 如 , 在 关 系 方 式 S C DS C D 中 , 由 于中 , 由 于 S N O S N O SCORESCORE,且,且CNO SCORECNO SCORE,所
36、以有:,所以有:SNOSNO,CNOCNO SCORE SCORE 。而而SNOAGESNOAGE,所以,所以SNOSNO,CNOCNO AGEAGE。f pfp pn由定义由定义5.25.2可知:可知:n只需当决议要素是组合属性时,讨论部分函数依只需当决议要素是组合属性时,讨论部分函数依赖才有意义,赖才有意义,n当决议要素是单属性时,只能是完全函数依赖。当决议要素是单属性时,只能是完全函数依赖。n例如,在关系方式例如,在关系方式S SSNOSNO,SNSN,AGEAGE,DEPTDEPT,决,决议要素为单属性议要素为单属性SNOSNO,有,有SNOSNOSNSN,AGEAGE,DEPTDEP
37、T,不存在部分函数依赖不存在部分函数依赖5.2.3 5.2.3 传送函数依赖传送函数依赖定义定义5.3 5.3 设有关系方式设有关系方式R RU U,U U是属性选集,是属性选集,X X,Y Y,Z Z是是U U的子集,的子集,假设假设XYXY,但,但Y XY X,而,而YZYZY XY X,Z YZ Y,那么称那么称Z Z对对X X传送函数依赖传送函数依赖Transitive Transitive Functional DependencyFunctional Dependency,记作:,记作:X X Z Z。假设假设YXYX,那么,那么X YX Y,这时称,这时称Z Z对对X X直接函数
38、直接函数依赖,而不是传送函数依赖。依赖,而不是传送函数依赖。例如,在关系方式例如,在关系方式SCDSCD中,中,SNODEPTNSNODEPTN,但,但DEPTN SNODEPTN SNO,而,而DEPTNMNDEPTNMN,那么有,那么有SNO SNO M NM N 。 当 学 生 不 存 在 重 名 的 情 况 下 , 有。 当 学 生 不 存 在 重 名 的 情 况 下 , 有SNOSNSNOSN,SNSNOSNSNO,SNO SNSNO SN,SNDEPTNSNDEPTN,这时这时DEPTNDEPTN对对SNOSNO是直接函数依赖,而不是传是直接函数依赖,而不是传送函数依赖送函数依赖
39、t t5.3 范范 式式 规范化的根本思想是消除关系方式中的数据冗余,消除数据依规范化的根本思想是消除关系方式中的数据冗余,消除数据依赖中的不适宜的部分,处理数据插入、删除时发生异常景象赖中的不适宜的部分,处理数据插入、删除时发生异常景象这就要求关系数据库设计出来的关系方式要满足一定的条件。这就要求关系数据库设计出来的关系方式要满足一定的条件。我们把关系数据库的规范化过程中为不同程度的规范化要求设我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同规范称为范式立的不同规范称为范式Normal FormNormal Form。由于规范化的程度不同,就产生了不同的范式。由于规范化的程度不
40、同,就产生了不同的范式。 满足最根本规范化要求的关系方式叫第一范式,满足最根本规范化要求的关系方式叫第一范式, 在第一范式中进一步满足一些要求为第二范式,在第一范式中进一步满足一些要求为第二范式, 以此类推就产生了第三范式等概念。以此类推就产生了第三范式等概念。每种范式都规定了一些限制约束条件。每种范式都规定了一些限制约束条件。 n范式的概念最早由范式的概念最早由E.F.CoddE.F.Codd提出。提出。n从从19711971年起,年起,CoddCodd相继提出了关系的三级规相继提出了关系的三级规范化方式,即第一范式范化方式,即第一范式1NF1NF、第二范式、第二范式2NF2NF、第三范式、
41、第三范式3NF3NF。n19741974年,年,CoddCodd和和BoyceBoyce以共同提出了一个新的以共同提出了一个新的范式的概念,即范式的概念,即Boyce-CoddBoyce-Codd范式,简称范式,简称BCBC范式。范式。n19761976年年FaginFagin提出了第四范式提出了第四范式( 4NF)( 4NF)n后来又有人定义了第五范式后来又有人定义了第五范式(ProjectJoinNF)(ProjectJoinNF)n各个范式之间的联络可以表示为:各个范式之间的联络可以表示为:n5NF 4NF BCNF 3NF 2NF 1NF 5NF 4NF BCNF 3NF 2NF 1N
42、F 图图5.3 5.3 各种范式之间的关系各种范式之间的关系5.3.1 5.3.1 第一范式第一范式第一范式第一范式First Normal FormFirst Normal Form是是最根本的规范方式,即关系中每个最根本的规范方式,即关系中每个属性都是不可再分的简单项属性都是不可再分的简单项定义定义5.4 5.4 假设关系方式假设关系方式R R,其一切,其一切的属性均为简单属性,即每个属性的属性均为简单属性,即每个属性都城是不可再分的,那么称都城是不可再分的,那么称R R属于第属于第一范式,简称一范式,简称1NF1NF,记作,记作R R1NF1NF。在第在第3 3章讨论关系的性质时,我们把
43、章讨论关系的性质时,我们把满足这个条件的关系称为规范化关满足这个条件的关系称为规范化关系系在关系数据库系统中只讨论规范化在关系数据库系统中只讨论规范化的关系,凡是非规范化的关系方式的关系,凡是非规范化的关系方式必需化成规范化的关系。必需化成规范化的关系。在非规范化的关系中去掉组合项就在非规范化的关系中去掉组合项就能化成规范化的关系。能化成规范化的关系。每个规范化的关系都属于每个规范化的关系都属于1NF1NF,这也,这也是它之所以称为是它之所以称为“第一的缘由。第一的缘由。 1NF分量能否需求再分,与详细运用有关。假设用到分量能否需求再分,与详细运用有关。假设用到值的一部分,那么需求进一步分割值
44、的一部分,那么需求进一步分割假设只是查询出生日期,那么它满足假设只是查询出生日期,那么它满足1NF假设查询两人生日能否一样,那么只比较月、日,假设查询两人生日能否一样,那么只比较月、日,需求将生日分解,就不满足需求将生日分解,就不满足1NF假设比较两人的生肖呢?假设比较两人的生肖呢?姓名姓名生日生日王军王军78.7.10张立张立79.7.10李明李明80.3.28姓名姓名年年月日月日王军王军687.10张立张立697.10李明李明803.28在在5.15.1节中给出的关系方式节中给出的关系方式SCDSCD属于第一属于第一范式,但其具有大量的数据冗余,具有插范式,但其具有大量的数据冗余,具有插入
45、异常、删除异常、更新异常等弊端。入异常、删除异常、更新异常等弊端。为什么会存在这种问题呢?为什么会存在这种问题呢?让我们分析一下让我们分析一下SCDSCD中的函数依赖关系,中的函数依赖关系,它的关系键是它的关系键是SNOSNO,CNOCNO的属性组合,的属性组合,所以有:所以有: SNOSNO,CNOCNO SCORESCORESNOSNSNOSN,SNOSNO,CNOCNO SNSNSNOAGESNOAGE,SNOSNO,CNOCNO AGEAGESNODEPTSNODEPT,SNOSNO,CNOCNO DEPTDEPTSNO MNSNO MN,SNOSNO,CNOCNO MN MN f p
46、 p ppt我们可以用函数信任图表示以上函数依赖关系,如图我们可以用函数信任图表示以上函数依赖关系,如图5.45.4所示。所示。 SNSNMNMNscorescoreSNOSNOCNOCNOPPf由此可见,在由此可见,在SCDSCD中,既存在完全函数依赖,又存在部分函数中,既存在完全函数依赖,又存在部分函数依赖和传送函数依赖。依赖和传送函数依赖。这种情况往往在数据库中是不允许的,也正是由于关系中存在这种情况往往在数据库中是不允许的,也正是由于关系中存在着复杂的函数依赖,才导致数据操作中出现了种弊端。着复杂的函数依赖,才导致数据操作中出现了种弊端。抑制这些弊端的方法是用投影运算将关系分解,去掉过
47、于复杂抑制这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进展转换。的函数依赖关系,向更高一级的范式进展转换。 5.3.2 5.3.2 第二范式第二范式定义定义5.5 5.5 假设关系方式假设关系方式R R1NF1NF,且每,且每个非主属性都完全函数依赖于个非主属性都完全函数依赖于R R的每个的每个关 系 键 , 那 么 称关 系 键 , 那 么 称 R R 属 于 第 二 范 式属 于 第 二 范 式Second Normal FormSecond Normal Form,简称,简称2NF2NF,记作记作R R2NF2NF。在关系方式在关系方式SCDSCD中
48、,中,SNOSNO,CNOCNO为主属性,为主属性,AGEAGE,DEPTDEPT,MNMN,MNMN,SCORESCORE均为非主属均为非主属性,经上述分析,存在非主属性对关系性,经上述分析,存在非主属性对关系键的部分函数依赖,所以键的部分函数依赖,所以SCD 2NFSCD 2NF。而如图而如图5.25.2所示的由所示的由SCDSCD分解的三个关系分解的三个关系方式方式S S,D D,SCSC,其中,其中S S的关系键为的关系键为SNOSNO,D D的关系键为的关系键为DEPTDEPT,都是单属性,不能,都是单属性,不能够存在部分函数依赖。够存在部分函数依赖。而对于而对于SCSC,SNOSN
49、O,CNOCNO SCORESCORE。所以所以SCDSCD分解后,消除了非主属性对关分解后,消除了非主属性对关系键的部分函数依赖,系键的部分函数依赖,S S,D D,SCSC均属于均属于2NF2NF。 fn又如在第又如在第3 3章中,讲述全码的概念时给出的章中,讲述全码的概念时给出的关系方式关系方式TCSTCST T,C C,S S,n一个教师可以讲授多门课程,一门课程可一个教师可以讲授多门课程,一门课程可以为多个教师讲授,以为多个教师讲授,n同样一个学生可以选听多门课程,一门课同样一个学生可以选听多门课程,一门课程可以为多个学生选听,程可以为多个学生选听,n(T,C,S)(T,C,S)三个
50、属性的组合是关系键,三个属性的组合是关系键,T,C,ST,C,S都是主属性,而无非主属性,所以也就不都是主属性,而无非主属性,所以也就不能够存在非主属性对关系键的部分函数依能够存在非主属性对关系键的部分函数依赖,赖,TCSTCS2NF2NF。n经以上分析,可以得到两个结论:经以上分析,可以得到两个结论:n1 1从从1NF1NF关系中消除非主属性对关系键关系中消除非主属性对关系键的部分函数依赖,那么可得到的部分函数依赖,那么可得到2NF2NF关系关系n2 2假设假设R R的关系键为单属性,或的关系键为单属性,或R R的全体的全体属性均为主属性,那么属性均为主属性,那么R R2NF2NF5.3.2
51、.2 2NF5.3.2.2 2NF规范化规范化2NF2NF规范化是指把规范化是指把1NF1NF关系方式经过关系方式经过投影分解转换成投影分解转换成2NF2NF关系方式的集关系方式的集合。合。分解时遵照的根本原那么就是分解时遵照的根本原那么就是“一一事一地,让一个关系只描画一个事一地,让一个关系只描画一个实体或者实体间的联络。假设多于实体或者实体间的联络。假设多于一个实体或联络,那么进展投影分一个实体或联络,那么进展投影分解。解。下面以关系方式下面以关系方式SCDSCD为例,来阐明为例,来阐明2NF2NF规范化的过程规范化的过程v例例5.1 5.1 将将SCD(SNO,SN,AGE,DEPT,M
52、N,CNO,SCORE)SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)规范规范到到2NF2NF。v由由SNOSNSNOSN,SNOAGESNOAGE,SNODEPTSNODEPT,SNOSNO,CNOCNO SCORESCORE,可以判别,关系,可以判别,关系SCDSCD至少描画了两个实体,至少描画了两个实体,v一个为学生实体,属性有一个为学生实体,属性有SNOSNO、SNSN、AGEAGE、DEPTDEPT、MNMN;v另一个是学生与课程的联络选课,属性有另一个是学生与课程的联络选课,属性有SNOSNO、CNOCNO和和SCORESCORE。v根据分解的原那么,我们可以将
53、根据分解的原那么,我们可以将SCDSCD分解成如下两个分解成如下两个关系,如图关系,如图5.55.5所示所示fSNOSNOSNSNAGEAGEDEPTDEPTMNMNS1赵亦17计算机刘伟S2钱尔18信息王平S3孙珊20信息王平S4李思21自动化刘伟SC SC SNOSNOCNOCNOSCORESCORES1C190S1C285S2C557S2C680S2C7S2C570S3C10S3C270S3C485S4C193图图5.5 5.5 关系关系SDSD和和SC SC SDSD 对于分解后的两个关系对于分解后的两个关系SDSD和和SCSC,主键分别为,主键分别为SNOSNO和和SNOSNO,CN
54、OCNO,非主属性对主键完全函数依赖。因此,非主属性对主键完全函数依赖。因此,SDSD2NF2NF,SCSC2NF2NF,而且前面曾经讨论,而且前面曾经讨论,SCDSCD的这种分解没有丧失的这种分解没有丧失任何信息,具有无损衔接性。任何信息,具有无损衔接性。 分解后,分解后,SDSD和和SCSC的函数依赖分别如图的函数依赖分别如图5.65.6和和5.75.7所示。所示。 SNOSNOSNSNSNOSNOCNOCNOSCORESCOREAGEAGEDEPTDEPTMNMN图图5.6 SD5.6 SD中的函数依赖关系中的函数依赖关系 图图5.7 SC5.7 SC中的函数依赖关中的函数依赖关系系 分
55、析图中分析图中SDSD和和SCSC中的数据,可以看出,它们存储中的数据,可以看出,它们存储的冗余度比关系方式的冗余度比关系方式SCDSCD有了较大辐度的降低有了较大辐度的降低学生的姓名、年龄不需求反复存储多次。这样便学生的姓名、年龄不需求反复存储多次。这样便可在一定程度上防止数据更新所呵斥的数据不一可在一定程度上防止数据更新所呵斥的数据不一致性的问题。致性的问题。由于把学生的根本信息与选课信息分开存储,那由于把学生的根本信息与选课信息分开存储,那么学生根本信息因没选课而不能插入的问题得到么学生根本信息因没选课而不能插入的问题得到理处理,插入异常景象得到了部分改善。理处理,插入异常景象得到了部分
56、改善。同样,假设某个学生不再选修同样,假设某个学生不再选修C1C1课程,只在选课课程,只在选课关系关系SCSC中删去该该学生选修中删去该该学生选修C1C1的记录即可,而的记录即可,而SDSD中有关该学生的其它信息不会遭到任何影响,也中有关该学生的其它信息不会遭到任何影响,也处理了部分删除异常问题。处理了部分删除异常问题。因此可以说关系方式因此可以说关系方式SDSD和和SCSC在性能上比在性能上比SCDSCD有了有了显著提高。显著提高。 2NF2NF规范化的方式化描画规范化的方式化描画设关系方式设关系方式R RX X,Y Y,Z Z,R R1NF1NF,但,但R R 2NF 2NF,其中,其中,
57、X X是键属性,是键属性,Y Y,Z Z是非是非键属性,且存在部分函数依赖,键属性,且存在部分函数依赖,X X Y Y。设设X X可表示为可表示为X1X1、X2X2,其中,其中X1 YX1 Y。那么。那么R RX X,Y Y,Z Z可以分解为可以分解为RX1RX1,YY和和RXRX,ZZ。由于由于X1YX1Y,所以,所以R(XR(X,Y Y,Z)=RX1Z)=RX1,Y Y RX1RX1,X2X2,Z=RX1Z=RX1,Y RXY RX,ZZ,即,即R R等于其投影等于其投影RX1RX1,YY和和XX,ZZ在在X1X1上的自上的自然衔接,然衔接,R R的分解具有无损衔接性。的分解具有无损衔接性
58、。由于由于X1 YX1 Y,因此,因此RX1RX1,YY2NF2NF。假。假设设RXRX,Z Z 2NF 2NF,可以按照上述方法继,可以按照上述方法继续进展投影分解,直到将续进展投影分解,直到将RXRX,ZZ分解为分解为属于属于2NF2NF关系的集合,且这种分解必定是关系的集合,且这种分解必定是有限的。有限的。 pf fv2NF2NF的缺陷的缺陷v1 1数据冗余。每个系名和系主任的数据冗余。每个系名和系主任的名字存储的次数等于该系的学生人数。名字存储的次数等于该系的学生人数。v2 2插入异常。当一个新系没有招生插入异常。当一个新系没有招生时,有关该系的信息无法插入。时,有关该系的信息无法插入
59、。v3 3删除异常。某系学生全部毕业而删除异常。某系学生全部毕业而没有招生时,删除全部学生的记录也随没有招生时,删除全部学生的记录也随之删除了该系的有关信息。之删除了该系的有关信息。v4 4更新异常。改换系主任时,仍需更新异常。改换系主任时,仍需改动较多的学生记录。改动较多的学生记录。v之所以存在这些问题,是由于在之所以存在这些问题,是由于在SCDSCD中存在着非主属性对主键的传送依赖。中存在着非主属性对主键的传送依赖。v分析分析SCDSCD中的函数依赖关系,中的函数依赖关系,SNOSNSNOSN,SNOAGESNOAGE,SNODEPTSNODEPT,DEPTMNDEPTMN,SNO SNO
60、 MNMN,非主属性,非主属性MNMN对主键对主键SNOSNO传送依赖传送依赖t5.3.3 5.3.3 第三范式第三范式定义定义5.6 5.6 假设关系方式假设关系方式R R2NF2NF,且每个,且每个非主属性都不传送依赖于非主属性都不传送依赖于R R的每个关系键,的每个关系键,那么称那么称R R属于第三范式属于第三范式Third Normal Third Normal FormForm,简称,简称3NF3NF,记作,记作R R3NF3NF。第三范式具有如下性质:第三范式具有如下性质:1 1假设假设R R3NF3NF,那么,那么R R也是也是2NF2NF。证明:证明:3NF3NF的另一种等价描
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3.5.2 神经调节的结构基础(第一课时)教学设计-2023-2024学年济南版生物七年级下册
- 综合管廊防水防腐工程施工方案及技术措施
- 6.2 制作数字作品 第一课时(教案)三年级下册信息技术苏科版2023
- 5《应对自然灾害》 第二课时 教学设计道德与法治六年级下册统编版
- 2025-2026学年瓶盖教学目标设计
- 2025-2026学年巧妙移动教学设计
- 4.6 循环结构程序设计实例教学设计中职信息技术(信息科技)编程语言基础-C语言(第5版)高教版
- 2026年国学知识竞赛题库题及答案
- 农家乐景观改造施工方案及技术措施
- 2026年中小学生健康知识竞赛题库(附答案)
- 劳动关系协调师竞赛技能竞赛考试题库(含答案)
- DL∕T 5106-2017 跨越电力线路架线施工规程
- 《细胞分子生物学》课件
- 中医诊所防火管理制度
- (完整版)一年级数独100题
- 武术馆聘用教练合同
- 信阳市国企招聘考试真题及答案
- 常州市房屋租赁合同(常州市2021版)
- 高支模工程专项施工方案(附图及计算书)
- 毒理学基础名词解释与问答题
- 安全事故处理监理程序
评论
0/150
提交评论