收藏 分销(赏)

2022年数据库对象的操作.ppt

上传人:二*** 文档编号:5456068 上传时间:2024-11-06 格式:PPT 页数:87 大小:934.04KB 下载积分:5 金币
下载 相关 举报
2022年数据库对象的操作.ppt_第1页
第1页 / 共87页
本文档共87页,全文阅读请下载到手机保存,查看更方便
资源描述
6 6.1 .1 规范化问题的提出规范化问题的提出6 6.2 .2 函数依赖函数依赖6 6.3 .3 范式范式 6 6.4 .4 关系模式的规范化关系模式的规范化第第6 6章章 关系数据理论关系数据理论返回目录返回目录本章概要本章概要q前面已经讲述了前面已经讲述了关系数据库关系数据库、关系模型关系模型的基本概念以的基本概念以及关系数据库的及关系数据库的标准语言标准语言SQLSQL。q如何使用关系模型如何使用关系模型设计关系数据库设计关系数据库,也就是面对一个,也就是面对一个现实问题,如何选择一个比较好的关系模式的集合,现实问题,如何选择一个比较好的关系模式的集合,每个关系又应该由哪些属性组成。这属于数据库设计每个关系又应该由哪些属性组成。这属于数据库设计的问题,确切地讲是数据库的问题,确切地讲是数据库逻辑设计逻辑设计的问题。的问题。q本章讲述本章讲述关系数据库规范化理论关系数据库规范化理论,这是数据库逻辑设,这是数据库逻辑设计的理论依据,其知识点包括:计的理论依据,其知识点包括:规范化理论的研究动机及其在数据库设计中的作用,规范化理论的研究动机及其在数据库设计中的作用,函数依赖的有关概念,函数依赖的有关概念,第一范式、第二范式、第三范式等的定义,第一范式、第二范式、第三范式等的定义,关系模式规范化的方法和关系模式分解的方法,这关系模式规范化的方法和关系模式分解的方法,这也是本章的难点。也是本章的难点。6.1 6.1 规范化问题的提出规范化问题的提出一、规范化理论的主要内容一、规范化理论的主要内容关关系系数数据据库库的的规规范范化化理理论论最最早早是是由由关关系系数数据据库库的的创创始始人人提提出出的的,后后经经许许多多专专家家学学者者对对关关系系数数据据库库理理论论作作了了深深入入的的研研究究和和发发展展,形形成成了了一一整整套套有有关关关关系系数数据据库库设设计计的的理理论。论。在在该该理理论论出出现现以以前前,层层次次和和网网状状数数据据库库的的设设计计只只是是遵遵循循其其模模型型本本身身固固有有的的原原则则,而而无无具具体体的的理理论论依依据据可可言言,因因而而带带有有盲盲目目性性,可可能能在在以以后后的的运运行行和和使使用用中中发发生生许许多多预预想不到的问题。想不到的问题。在在关关系系数数据据库库系系统统中中,关关系系模模型型包包括括一一组组关关系系模模式式,各各个个关关系系不不是是完完全全孤孤立立的的,因因此此就就要要遵遵循循一一定定的的数数据据库库的的设计规则,必须有相关的数据库设计理论依据。设计规则,必须有相关的数据库设计理论依据。关系数据库的关系数据库的规范化理论规范化理论主要包括三个方面的内容:主要包括三个方面的内容:函数依赖函数依赖范式(范式(Normal FormNormal Form)模式设计模式设计 其其中中,函函数数依依赖赖起起着着核核心心的的作作用用,是是模模式式分分解解和和模模式式设计的基础,设计的基础,范式范式是模式分解的标准。是模式分解的标准。如如何何设设计计一一个个适适合合的的关关系系数数据据库库系系统统,关关键键是是关关系系数数据据库库模模式式的的设设计计,一一个个好好的的关关系系数数据据库库模模式式应应该该包包括括多多少少关关系系模模式式,而而每每一一个个关关系系模模式式又又应应该该包包括括哪哪些些属属性性,又又如如何何将将这这些些相相互互关关联联的的关关系系模模式式组组建建一一个个适适合合的的关关系系数数据据库库模模型型,这这些些工工作作决决定定了了整整个个系系统统运运行行的的效效率率,也也是是系系统统成成败败的的关关键键所所在在,所所以以必必须须在在关关系系数数据库的规范化理论的指导下逐步完成。据库的规范化理论的指导下逐步完成。数数据据库库的的逻逻辑辑设设计计为为什什么么要要遵遵循循一一定定的的规规范范化化理理论论?什什么么是是好好的的关关系系模模式式?某某些些不不好好的的关关系系模模式式可可能能导致哪些问题?导致哪些问题?下面通过例子进行分析下面通过例子进行分析:例例如如,现现有有一一个个图图书书管管理理数数据据库库,其其中中借借阅阅管管理理表的关系模式表的关系模式BORROWBORROW如下:如下:BORROW(CARDNO,BNAME,DEPT,BNO,DATE)BORROW(CARDNO,BNAME,DEPT,BNO,DATE)其其中中:CARDNOCARDNO表表示示借借书书证证号号,BNAMEBNAME表表示示借借书书学学生生姓姓名名,DEPT,DEPT表示学生所在的系别表示学生所在的系别,BNO,BNO表示图书编号表示图书编号,DATE,DATE表示借阅日期。表示借阅日期。二、关系模式的存储异常问题二、关系模式的存储异常问题数数据据冗冗余余:对对于于借借书书人人每每次次借借一一本本书书,其其姓姓名名NAMENAME及及所所在在系系DEPTDEPT都都要要重重复复存存放放一一次次,数数据据的的冗冗余余度度很很大大,浪费了存储空间。浪费了存储空间。更更新新异异常常:由由于于数数据据冗冗余余,如如果果借借书书人人所所在在系系改改变变了了,有有关关借借书书人人的的所所有有元元组组中中的的所所在在系系的的信信息息都都要要修修改改,这这不不仅仅增增加加了了更更新新代代价价,而而且且存存在在着着潜潜在在的的不不一一致致性性,有有可可能能出出现现一一部部分分数数据据被被修修改改,而而另另一一部部分分数数据据没没有有被被修修改改。因因此此,系系统统要要付付出出很很大大的的代代价价来来维维护护数数据据库库的完整性。的完整性。这个关系模式在使用中会出现什么问题呢?这个关系模式在使用中会出现什么问题呢?删删除除异异常常:借借阅阅人人如如果果在在某某段段时时间间内内把把所所借借书书全全部部还还清清了了,则则在在删删除除借借书书信信息息的的同同时时,连连同同借借阅阅人人姓姓名名及及所在系都被一起从数据库中删除,出现删除异常。所在系都被一起从数据库中删除,出现删除异常。插插入入异异常常:在在BORROWBORROW关关系系模模式式中中,关关键键字字是是由由CARDNOCARDNO和和BNOBNO联联合合组组成成。根根据据关关系系模模型型的的实实体体完完整整性性,关关键键字字不不能能为为空空。因因此此,如如果果一一个个人人没没有有借借书书,就就不不能能办办理理借借阅阅手手续续,即即如如果果一一个个人人没没有有借借书书,有有关关借借书书人人的的信信息息(如如:NAMENAME、DEPTDEPT)就就不不能能存存入入数数据据库库,这这显显然然是是不合理的,被称为插入异常。不合理的,被称为插入异常。那么,怎样才能得到一个好的关系模式呢?那么,怎样才能得到一个好的关系模式呢?我们把我们把BORROWBORROW分解为下面两个结构简单的关系模式:分解为下面两个结构简单的关系模式:BORROW(CARDNO,BNO,DATE)READER (CARDNO,NAME,DEPT)分析:出现存储异常是因为关系模式中的数据键存在分析:出现存储异常是因为关系模式中的数据键存在着一定的依赖关系,而这些关系没有规范化。通过对关着一定的依赖关系,而这些关系没有规范化。通过对关系模式规范化,即对关系模式进行分解,可以消除其中系模式规范化,即对关系模式进行分解,可以消除其中不合适的数据依赖,从而解决存储异常。不合适的数据依赖,从而解决存储异常。由由于于存存在在以以上上问问题题,我我们们说说,BORROWBORROW是是一一个个不不好好的的关关系系模模式式。产产生生上上述述问问题题的的原原因因,直直观观地地说说,是是因因为为关关系系中中“包罗万象包罗万象”,内容太杂了。,内容太杂了。又如,要求设计教学管理数据库,其关系模式又如,要求设计教学管理数据库,其关系模式SCDSCD如下:如下:SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)其其中中,SNOSNO表表示示学学生生学学号号,SNSN表表示示学学生生姓姓名名,AGEAGE表表示示学学生生年年龄龄,DEPTDEPT表表示示学学生生所所在在的的系系别别,MNMN表表示示系系主主任任姓姓名名,CNOCNO表表示示课课程程号号,SCORESCORE表示成绩。表示成绩。该该关关系系模模式式存存在在上上述述存存储储异异常常,可可以以把把SCDSCD分分解解为为下下面面三三个结构简单的关系模式:个结构简单的关系模式:学生关系学生关系S(SNO,SN,AGE,DEPTS(SNO,SN,AGE,DEPT)选课关系选课关系SC(SNO,CNO,SCORE)SC(SNO,CNO,SCORE)系关系系关系D(DEPT,MN)D(DEPT,MN)从而得出结论,一个好的关系模式应具备以下四个条件:从而得出结论,一个好的关系模式应具备以下四个条件:尽可能少的数据冗余。尽可能少的数据冗余。没有插入异常。没有插入异常。没有删除异常。没有删除异常。没有更新异常。没有更新异常。但但要要注注意意,一一个个好好的的关关系系模模式式并并不不是是在在任任何何情情况况下下都都是是最最优优的的,比比如如要要通通过过学学生生姓姓名名查查询询某某个个学学生生所所借借阅阅的的图图书书号号时时,要要通通过过连连接接操操作作才才能能实实现现,而而连连接接所所需需要要的的系系统统开开销非常大,因此要以实际目标出发设计关系模式。销非常大,因此要以实际目标出发设计关系模式。规范化又可以根据不同的要求而分成若干级别。规范化又可以根据不同的要求而分成若干级别。我们要设计的关系模式中的各属性是相互依赖、相互制约我们要设计的关系模式中的各属性是相互依赖、相互制约的,这样才构成了一个结构严谨的整体。的,这样才构成了一个结构严谨的整体。因此在设计关系模式时,必须从语义上分析这些因此在设计关系模式时,必须从语义上分析这些依赖关系依赖关系。数据库模式的好坏和关系中各属性间的依赖关系有关,因数据库模式的好坏和关系中各属性间的依赖关系有关,因此,我们先讨论属性间的依赖关系,然后再讨论关系规范此,我们先讨论属性间的依赖关系,然后再讨论关系规范化理论。化理论。如如何何按按照照一一定定的的规规范范设设计计关关系系模模式式,将将结结构构复复杂杂的的关关系系分分解解成成结结构构简简单单的的关关系系,从从而而把把不不好好的的关关系系数数据据库库模模式式转转变为好的关系数据库模式,这就是变为好的关系数据库模式,这就是关系的规范化关系的规范化。返回目录返回目录6.2 6.2 函数依赖函数依赖一、函数依赖的定义及性质一、函数依赖的定义及性质关关系系模模式式中中的的各各属属性性之之间间相相互互依依赖赖、相相互互制制约约的的联联系系称称为为数据依赖数据依赖。数数据据依依赖赖一一般般分分为为函函数数依依赖赖、多多值值依依赖赖和和连连接接依依赖赖。其其中中,函数依赖函数依赖是最重要的数据依赖。是最重要的数据依赖。函函数数依依赖赖(Functional Functional DependencyDependency)是是关关系系模模式式中中属属性性之之间的一种间的一种逻辑依赖关系逻辑依赖关系。例例如如:在在关关系系模模式式BORROW(CARDNO,BNAME,DEPT,BNO,DATE)BORROW(CARDNO,BNAME,DEPT,BNO,DATE)中中,CARDNOCARDNO与与BNAMEBNAME、DEPTDEPT之之间间都都有有一一种种依依赖赖关关系系。由由于于一一个个CARDNOCARDNO只只对对应应一一个个学学生生,而而一一个个学学生生只只能能属属于于一一个个系系,所所以以当当CARDNOCARDNO的的值值确确定定之之后后,BNAMEBNAME、DEPTDEPT的值也随之被唯一的确定了。的值也随之被唯一的确定了。这这类类似似于于变变量量之之间间的的单单值值函函数数关关系系。设设单单值值函函数数Y=F(X)Y=F(X),自自变变量量X X的的值值可可以以决决定定一一个个唯唯一一的的函函数数值值Y Y。在在这这里里,我我们们说说CARDNOCARDNO函函数数决决定定(BNAMEBNAME,DEPTDEPT),),或者说(或者说(BNAMEBNAME,DEPTDEPT)函数依赖于函数依赖于SNOSNO。定义定义6.16.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的每一个具体值,的每一个具体值,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。1 1、函数依赖的定义、函数依赖的定义OR 设设R(U)是一个属性集是一个属性集U上的关系模式,上的关系模式,X和和Y是是U的子集。的子集。若对于若对于R(U)的的任意任意一个可能的关系一个可能的关系r,r中不可能存在两个元组中不可能存在两个元组在在X上的属性值相等,上的属性值相等,而在而在Y上的属性值不等,上的属性值不等,则称则称“X函数函数确定确定Y”或或 “Y函数依赖于函数依赖于X”,记作,记作XY。X称为这个函数依赖的称为这个函数依赖的决定属性集决定属性集(Determinant)。Y=f(x)例如:对于关系模式例如:对于关系模式SCD:U=SNO,SN,AGE,DEPT,MN,CNO,SCORE F=SNOSN,SNOAGE,SNODEPT,SNOMN,DEPT MN,(,(SNO,CNO)SCORE2、有关函数依赖的几点说明、有关函数依赖的几点说明(1 1)平凡的函数依赖与非平凡的函数依赖)平凡的函数依赖与非平凡的函数依赖在关系模式在关系模式R(U)中,对于中,对于U的子集的子集X和和Y,如果如果XY,但,但Y X,则称,则称XY是是非平凡的函数依赖非平凡的函数依赖若若XY,但,但Y X,则称则称XY是是平凡的函数依赖平凡的函数依赖例:在关系例:在关系SC(Sno,Cno,Grade)中,中,非平凡函数依赖:非平凡函数依赖:(Sno,Cno)Grade 平凡函数依赖:平凡函数依赖:(Sno,Cno)Sno (Sno,Cno)Cno(2 2)函函数数依依赖赖是是语语义义范范畴畴的的概概念念,反反映映了了一一种种语语义义完完整整性性约约束束。我我们们只只能能根根据据语语义义来来确确定定一一个个函函数数依依赖赖,而而不不能能按按照其形式化定义来证明一个函数依赖是否成立。照其形式化定义来证明一个函数依赖是否成立。例例如如,对对于于关关系系模模式式S S,当当学学生生不不存存在在重重名名的的情情况况下下,可可 以以得得到到:SNAGEDEPTSNAGEDEPT,而而这这种种函函数数依依赖赖关关系系,必必须须是是在在没没有有重重名名的的语语义义下下才才成立的,否则就不存在函数依赖了。成立的,否则就不存在函数依赖了。如如果果属属性性X X与与Y Y有有1:m1:m的的联联系系时时,则则只只存存在在函函数数依依赖赖XYXY。例如,例如,SNOSNO与与DEPTDEPT之间均为之间均为1:m1:m联系,所以有联系,所以有SNODEPTSNODEPT。如如果果属属性性X X与与Y Y有有m:m:n n的的联联系系时时,则则X X与与Y Y之之间间不不存存在在任任何函数依赖关系。何函数依赖关系。例例如如,一一个个学学生生可可以以选选修修多多门门课课程程,一一门门课课程程又又可可以以为为多多个个学学生生选选修修,所所以以SNOSNO与与CNOCNO之之间间不不存存在在函函数数依依赖赖关系。关系。由于函数依赖与属性之间的联系类型有关,所以在确由于函数依赖与属性之间的联系类型有关,所以在确定属性间的函数依赖关系时,可以从分析属性间的联定属性间的函数依赖关系时,可以从分析属性间的联系类型入手,便可确定属性间的函数依赖。系类型入手,便可确定属性间的函数依赖。(3 3)函数依赖与属性之间的联系类型有关。)函数依赖与属性之间的联系类型有关。在在一一个个关关系系模模式式中中,如如果果属属性性X X与与Y Y有有1:11:1联联系系时时,则则存存在在函数依赖函数依赖XYXY,YXYX,即,即X YX Y。例如,当学生无重名时,例如,当学生无重名时,SNO SNSNO SN。因因为为函函数数依依赖赖是是指指关关系系中中的的所所有有元元组组应应该该满满足足的的约约束束条条件件,而而不不是是指指关关系系中中某某个个或或某某些些元元组组所所满满足足的的约约束束条条件件。当当关关系系中中的的元元组组增增加加、删删除除或或更更新新后后都都不不能能破破坏坏这这种种函函数依赖。数依赖。因此,必须根据语义来确定属性之间的函数依赖,而不因此,必须根据语义来确定属性之间的函数依赖,而不能单凭某一时刻关系中的实际数据值来判断。即函数依能单凭某一时刻关系中的实际数据值来判断。即函数依赖关系的存在赖关系的存在与时间无关与时间无关,而只与数据之间的,而只与数据之间的语义规定语义规定有关有关。例如,对于关系模式例如,对于关系模式S,假设没有给出无重名的学生这种语义规定,假设没有给出无重名的学生这种语义规定,则即使当前关系中没有重名的记录,也只能存在函数依赖则即使当前关系中没有重名的记录,也只能存在函数依赖SNOSN,而不能存在函数依赖而不能存在函数依赖SNSNO,因为如果新增加一个因为如果新增加一个重名的学生,函数依赖重名的学生,函数依赖SNSNO必然不成立。必然不成立。(6 6)函数依赖关系的存在与时间无关。)函数依赖关系的存在与时间无关。设设R R(X X,Y Y,Z Z),X X,Y Y,Z Z为为不不相相交交的的属属性性集集合合,如如果果XYXY或或XZXZ,则则有有R(XR(X,Y Y,Z)=RXZ)=RX,YYRXRX,ZZ,其其中中:RXRX,YY表表示示关关系系R R在在属属性性(X X,Y Y)上上的的投投影影,即即R R等等于于其其投投影影在在X X上上的的自自然然连连接接,这这样样便便保保证证了了关关系系R R分分解解后后不不会会丢丢失失原原有有的的信信息息,称称作作关关系系分分解解的的无无损损连接性连接性。例如,对于关系模式例如,对于关系模式SCDSCD,有,有SNOSNO(SNSN,AGEAGE,DEPTDEPT,MNMN),),SCDSCD(SNOSNO,SNSN,AGEAGE,DEPTDEPT,MNMN,CNOCNO,SCORESCORE)=SCD=SCD(SNOSNO,SNSN,AGEAGE,DEPTDEPT,MNMN)SCDSCD(SNOSNO,CNOCNO,SCORESCORE),),也就是说,用其也就是说,用其投影在投影在SNOSNO上的自然连接可复原关系模式上的自然连接可复原关系模式SCDSCD。(这一性质非常重要,在后一节的关系规范化中要用到)这一性质非常重要,在后一节的关系规范化中要用到)(5 5)函数依赖可以保证关系分解的无损连接性。)函数依赖可以保证关系分解的无损连接性。(1 1)投影性)投影性根根据据平平凡凡的的函函数数依依赖赖的的定定义义可可知知,一一组组属属性性函函数数决决定定它它的的所有子集。所有子集。例如,在关系例如,在关系SCDSCD中中,(SNO,(SNO,CNO)SNOCNO)SNO、(SNO(SNO,CNO)CNOCNO)CNO。(2 2)扩张性扩张性若若XYXY且且WZWZ,则(则(X X,W W)(Y Y,Z Z)。)。例例 如如,SNOSNO(SNSN,AGEAGE),DEPTMNDEPTMN,则则 有有(SNOSNO,DEPTDEPT)(SNSN,AGEAGE,MNMN)。)。3 3、函数依赖的基本性质、函数依赖的基本性质若若XYXY且且XZXZ则必有则必有XX(Y Y,Z Z)。)。例例 如如,在在 关关 系系 SCDSCD中中,SNOSNO(SN,AGESN,AGE),SNOSNO(DEPT,MNDEPT,MN),),则有则有SNOSNO(SN,AGESN,AGE,DEPTDEPT,MNMN)。)。(6 6)分解性)分解性若若XX(Y Y,Z Z),则则XYXY且且XZXZ。很很显显然然,分分解解性性为为合合并并性的逆过程。性的逆过程。由合并性和分解性,很容易得到以下事实:由合并性和分解性,很容易得到以下事实:XAXA1 1,A A2 2,,A,An n成立的充分必要条件是成立的充分必要条件是XAXAi i(i=1,2,ni=1,2,n)成立。成立。(3 3)合并性)合并性定义定义6.26.2:设关系模式设关系模式R(U)R(U),U U是属性全集,是属性全集,X X和和Y Y是是U U的子集,的子集,如如果果XYXY,并并且且对对于于X X的的任任何何一一个个真真子子集集X,X,都都有有X X Y Y,则则称称Y Y对对X X完完全全函函数数依依赖赖(Full Functional Dependency),记记作作 X YX Y。如如果果对对X X的的某某个个真真子子集集XX,有有XYXY,则则称称Y Y对对部部分分函函数依赖数依赖(Partial Functional Dependency),记作,记作X YX Y。例例如如,在在关关系系模模式式SCDSCD中中,有有(SNOSNO,CNOCNO)SCORESCORE,但但SNO SNO SCORESCORE,而而且且CNO CNO SCORESCORE,所所以以有有:(SNOSNO,CNOCNO)SCORE SCORE。而而(SNOSNO,CNOCNO)AGEAGE,但但SNOAGESNOAGE,所以(,所以(SNOSNO,CNOCNO)AGE AGE。二、完全函数依赖与部分函数依赖二、完全函数依赖与部分函数依赖由定义由定义6.26.2可知:可知:只有当决定因素是组合属性时,讨论部分函数依赖才只有当决定因素是组合属性时,讨论部分函数依赖才有意义,当决定因素是单属性时,只能是完全函数依赖。有意义,当决定因素是单属性时,只能是完全函数依赖。例如,在关系模式例如,在关系模式S S(SNOSNO,SNSN,AGEAGE,DEPTDEPT),决定因素为),决定因素为单属性单属性SNOSNO,有,有SNOSNO(SNSN,AGEAGE,DEPTDEPT),不存在部分函数),不存在部分函数依赖。依赖。定定义义6.36.3:设设有有关关系系模模式式R R(U U),U U是是属属性性全全集集,X X、Y Y、Z Z是是U U的的子子集集,若若XYXY,但但Y Y X X,而而YZYZ(Y Y X X,Z Z Y Y),则则称称Z Z对对X X传传递递函函数数依依赖赖(Transitive Functional Dependency),记作:记作:X X Z Z。如如果果YXYX,则则X X Y Y,这这时时称称Z Z对对X X直直接接函函数数依依赖赖,而而不不是传递函数依赖。是传递函数依赖。例例如如,在在关关系系模模式式SCDSCD中中,SNODEPTSNODEPT,但但 DEPT DEPT SNOSNO,而而DEPTMNDEPTMN,则则有有SNO SNO MNMN。当当学学生生不不存存在在重重名名的的情情况况下下,有有SNOSNSNOSN,SNSNOSNSNO,SNO SNO SNSN,SNDEPTSNDEPT,这时这时DEPTDEPT对对SNOSNO是直接函数依赖,而不是传递函数依赖。是直接函数依赖,而不是传递函数依赖。三、传递函数依赖三、传递函数依赖 综综上上所所述述,函函数数依依赖赖分分为为完完全全函函数数依依赖赖、部部分分函函数数依依赖赖和和传传递递函函数数依依赖赖三三类类,它它们们是是规规范范化化理理论论的的依依据据和和规规范范化化程程度度的的准准则则,下下面面我我们们将将以以这这些些概概念念为为基基础,进行数据库的础,进行数据库的规范化设计规范化设计。返回目录返回目录6.3 范范 式式 规范化的规范化的基本思想基本思想是消除关系模式中的数据冗余,消除数据依是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、删除时发生异常现象。赖中的不合适的部分,解决数据插入、删除时发生异常现象。这就要求关系数据库设计出来的关系模式要满足一定的条件。这就要求关系数据库设计出来的关系模式要满足一定的条件。我们把关系数据库的规范化过程中为不同程度的规范化要求设我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为立的不同标准称为范式范式(Normal FormNormal Form)。)。所谓范式,就是规范所谓范式,就是规范化的关系模式。由于规范化的程度不同,就产生了不同的范式。化的关系模式。由于规范化的程度不同,就产生了不同的范式。满足最基本规范化要求的关系模式叫满足最基本规范化要求的关系模式叫第一范式第一范式,在第一范式中,在第一范式中进一步满足一些要求为进一步满足一些要求为第二范式第二范式,以此类推就产生了,以此类推就产生了第三范式第三范式等概念。每种范式都规定了一些限制约束条件。等概念。每种范式都规定了一些限制约束条件。19761976年年,CoddCodd和和BoyceBoyce共共同同提提出出了了一一个个新新的的范范式式的的概概念,即念,即Boyce-Boyce-CoddCodd范式,简称范式,简称BCBC范式范式。19761976年年FaginFagin提提出出了了第第四四范范式式,后后来来又又有有人人定定义义了了第第五范式五范式。至至此此在在关关系系数数据据库库规规范范中中建建立立了了一一个个范范式式系系列列:1NF,2NF,3NF,BCNF,4NF,5NF,1NF,2NF,3NF,BCNF,4NF,5NF,一一级级比比一一级级有有更更严严格格的的要求。各个范式之间的联系可以表示为:要求。各个范式之间的联系可以表示为:5NF 6NF BCNF 3NF 2NF 1NF5NF 6NF BCNF 3NF 2NF 1NF范范式式的的概概念念最最早早由由提提出出。从从19711971年年起起,CoddCodd相相继继提提出出了了关关系系的的三三级级规规范范化化形形式式,即即第第一一范范式式(1NF1NF)、第第二二范范式式(2NF2NF)、)、第三范式第三范式(3NF3NF)。)。图图6.1 6.1 各种范式之间的关系各种范式之间的关系各种范式之间的关系如图各种范式之间的关系如图所示。所示。第第一一范范式式(First Normal Form)是是最最基基本本的的规规范范形形式式,之后的每个范式必须都要满足之后的每个范式必须都要满足1NF1NF。定定义义:如如果果关关系系模模式式R R,其其所所有有的的属属性性均均为为简简单单属属性性,即即每每个个属属性性都都是是不不可可再再分分的的,则则称称R R属属于于第第一一范范式式,简简称称1NF1NF,记作记作R R 1NF1NF。(在第在第2 2章讨论关系的性质时,我们把满足这个条件的章讨论关系的性质时,我们把满足这个条件的关系称为关系称为规范化关系规范化关系)在关系数据库系统中只讨论规范化的关系,凡是非规范在关系数据库系统中只讨论规范化的关系,凡是非规范化的关系模式必须化成规范化的关系。化的关系模式必须化成规范化的关系。在非规范化的关系中去掉组合项就能化成规范化的关系。在非规范化的关系中去掉组合项就能化成规范化的关系。每个规范化的关系都属于每个规范化的关系都属于1NF1NF,这也是它之所以称为这也是它之所以称为“第一第一”的原因。的原因。一、第一范式(一、第一范式(1NF1NF)如下列关系就不属于如下列关系就不属于1NF1NF姓名姓名年龄年龄 工资工资基本工资基本工资奖金奖金王玲王玲32900200程刚程刚601000300姓名姓名年龄年龄基本工资基本工资奖金奖金王玲王玲32900200程刚程刚601000300应该规范化为:应该规范化为:为什么会存在这种问题呢?为什么会存在这种问题呢?我我们们分分析析一一下下SCDSCD(SNOSNO,SNSN,AGEAGE,DEPTDEPT,MNMN,CNOCNO,SCORESCORE)中中的的函函数数依依赖赖关关系系,它它的的关关系系键键是是(SNOSNO,CNOCNO)的属性组合,所以有:的属性组合,所以有:(SNOSNO,CNOCNO)SCORESCORE 因为因为SNOSNSNOSN,所以(所以(SNOSNO,CNOCNO)SNSN 因为因为SNOAGESNOAGE,所以所以(SNOSNO,CNOCNO)AGEAGE 因为因为SNODEPTSNODEPT,所以所以(SNOSNO,CNOCNO)DEPTDEPT 因为因为SNO MNSNO MN,所以所以(SNOSNO,CNOCNO)MNMN 然而,一个关系模式仅仅属于第一范式是不适用的。然而,一个关系模式仅仅属于第一范式是不适用的。例例如如,关关系系模模式式SCDSCD属属于于第第一一范范式式,但但其其具具有有大大量量的的数数据冗余,具有插入异常、删除异常、更新异常等弊端。据冗余,具有插入异常、删除异常、更新异常等弊端。可以用函数信赖图表示以上函数依赖关系,如图可以用函数信赖图表示以上函数依赖关系,如图6.26.2所示所示:SNMNSCORE图图6.2 SCD6.2 SCD中的函数依赖关系中的函数依赖关系SNOCNOPPf这种情况往往在数据库中是不允许的,也正是由于关这种情况往往在数据库中是不允许的,也正是由于关系中存在着复杂的函数依赖,才导致数据操作中出系中存在着复杂的函数依赖,才导致数据操作中出现了种弊端。现了种弊端。克服这些弊端的方法是用投影运算将关系分解,去掉克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行过于复杂的函数依赖关系,向更高一级的范式进行转换。转换。由由此此可可见见,在在SCDSCD中中,既既存存在在完完全全函函数数依依赖赖,又又存存在在部分函数依赖和传递函数依赖。部分函数依赖和传递函数依赖。1 1、第二范式的定义、第二范式的定义定定义义:如如果果关关系系模模式式R R 1NF1NF,且且每每个个非非主主属属性性都都完完全全函函数数依依赖赖于于R R的的每每个个关关系系键键,则则称称R R属属于于第第二二范范式式(Second Normal Form),简称简称2NF2NF,记作记作R R 2NF2NF。例如:在关系模式例如:在关系模式SCDSCD中,中,SNOSNO,CNOCNO为主属性,为主属性,AGEAGE、DEPTDEPT、MNMN、SCORESCORE均为非主属性,经上述分析,存在非主均为非主属性,经上述分析,存在非主属性对关系键的部分函数依赖,所以属性对关系键的部分函数依赖,所以SCDSCD不属于不属于2NF2NF。而由而由SCDSCD分解的三个关系模式分解的三个关系模式S(SNO,SN,AGE,DEPTS(SNO,SN,AGE,DEPT)SC(SNO,CNO,SCORE)SC(SNO,CNO,SCORE)、D(DEPT,MN)D(DEPT,MN),其中:其中:S S的关系键为的关系键为SNOSNO,D D的关系键为的关系键为DEPTDEPT,都是单属都是单属性,不可能存在部分函数依赖。而对于性,不可能存在部分函数依赖。而对于SCSC,(,(SNOSNO,CNOCNO)SCORESCORE。所以所以SCDSCD分解后,消除了非主属性对关分解后,消除了非主属性对关系键的部分函数依赖,系键的部分函数依赖,S S,D D,SCSC均属于均属于2NF2NF。二、第二范式(二、第二范式(2NF2NF)一一个个教教师师T T可可以以讲讲授授多多门门课课程程C C,一一门门课课程程可可以以为为多多个个教教师师讲讲授授,同同样样一一个个学学生生S S可可以以选选听听多多门门课课程程,一一门门课课程可以为多个学生选听。程可以为多个学生选听。(T,C,S)(T,C,S)三三个个属属性性的的组组合合是是关关系系键键,T,C,ST,C,S都都是是主主属属性性,而而无无非非主主属属性性,所所以以也也就就不不可可能能存存在在非非主主属属性性对对关关系系键的部分函数依赖,键的部分函数依赖,TCSTCS 2NF2NF。经以上分析,可以得到两个结论:经以上分析,可以得到两个结论:从从1NF1NF关关系系中中消消除除非非主主属属性性对对关关系系键键的的部部分分函函数数依依赖赖,则可得到则可得到2NF2NF关系。关系。如如果果R R的的关关系系键键为为单单属属性性,或或R R的的全全体体属属性性均均为为主主属属性性,则则R R 2NF2NF。又如:在关系模式又如:在关系模式TCSTCS(T T,C C,S S)中,中,2NF2NF规规范范化化是是指指把把1NF1NF关关系系模模式式通通过过投投影影分分解解转转换换成成2NF2NF关系模式的集合。关系模式的集合。分分解解时时遵遵循循的的基基本本原原则则就就是是“一一事事一一地地”,让让一一个个关关系系只只描描述述一一个个实实体体或或者者实实体体间间的的联联系系。如如果果多多于于一一个个实体或联系,则进行实体或联系,则进行投影分解投影分解。2 2、2NF2NF规范化规范化该表属于该表属于1NF,其关键字是其关键字是CNO+PNO,是一个联合键。是一个联合键。考察关系中的其余非主属性:考察关系中的其余非主属性:PNAME和和PRICE仅与仅与PNO有有关,而关,而DATE和和DNAME仅与仅与CNO有关,它们都是局部依赖有关,它们都是局部依赖于关键字于关键字CNO+PNO。所以该关系不属于所以该关系不属于2NF。我们可将我们可将SAC投影分解成以下三个关系:投影分解成以下三个关系:CP(CNO,PNO,QTY)F=(CNO,PNO)QTYQTYP(PNO,PNAME,PRICE)F=PNO PNAME,PNO PRICEPNAME,PNO PRICECD(CNO,DNAME,DATE,ADDR)F=CNO DAME,DAME,CNO DATE,DATE,CNO ADDR ADDR例例1 1:现有一销售合同关系模式现有一销售合同关系模式 SACSAC(CNO,PNO,PNAME,PRICE,QTY,DATE,DNAME,ADDR)CNO,PNO,PNAME,PRICE,QTY,DATE,DNAME,ADDR)其中:其中:CNOCNO为为合合同同号号,PNO,PNO为为产产品品号号,PNAME,PNAME为为产产品品名名称称,PRICE,PRICE产产品品单单价价,QTY,QTY为为产品数量产品数量,DATE,DATE供货日期供货日期,DNAME,DNAME购买单位购买单位,ADDR,ADDR购买单位地址。购买单位地址。由由以以上上分分析析可可看看出出,如如果果关关系系R R的的码码是是单单属属性性,则则若若R R 1NF1NF,也也自自然然属属于于2NF2NF,而而对对码码为为多多属属性性的的联联合合键键的的情情况况要要具具体体分分析析。若若关关系系中中的的非非主主属属性性部部分分依依赖赖于于关关键键字字,则则要要对对该该关关系系进进行行投投影影分分解解,消消除除这这种种部分依赖,得到部分依赖,得到2NF2NF。通通过过分分析析CPCP、P P、CDCD三三个个关关系系及及其其函函数数依依赖赖,我我们们可可得出这三个关系均属于得出这三个关系均属于2NF2NF。分析:由分析:由SNOSNSNOSN,SNOAGESNOAGE,SNODEPTSNODEPT,(,(SNOSNO,CNOCNO)SCORESCORE,可以判断,关系,可以判断,关系SCDSCD至少描述了两个实体:一个为学生实体,至少描述了两个实体:一
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服