数据库系统原理及应用教程4.ppt
《数据库系统原理及应用教程4.ppt》由会员分享,可在线阅读,更多相关《数据库系统原理及应用教程4.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章 关系数据关系数据库库理理论论1本章概要本章概要前面已经讲述了前面已经讲述了关系数据库关系数据库、关系模型关系模型的基本概念以的基本概念以及关系数据库的及关系数据库的标准语言标准语言。如何使用关系模型设计关系数据库,也就是面对一个如何使用关系模型设计关系数据库,也就是面对一个现实问题,如何选择一个比较好的关系模式的集合,现实问题,如何选择一个比较好的关系模式的集合,每个关系又应该由哪些属性组成。这属于数据库设计每个关系又应该由哪些属性组成。这属于数据库设计的问题,确切地讲是数据库的问题,确切地讲是数据库逻辑设计逻辑设计的问题,有关数的问题,有关数据库设计的全过程将在第据库设计的全过程
2、将在第6章详细讨论。章详细讨论。本章讲述本章讲述关系数据库规范化理论关系数据库规范化理论,这是数据库逻辑设,这是数据库逻辑设计的理论依据。计的理论依据。要求了解规范化理论的研究动机及其在数据库设计中的作用,掌握函数依赖的有关概念,第一范式、第二范式、第三范式的定义,重点掌握并能够灵活运用关系模式规范化的方法和关系模式分解的方法,这也是本章的难点。2规范化问题的提出规范化问题的提出 规范化理论的主要内容规范化理论的主要内容关关系系数数据据库库的的规规范范化化理理论论最最早早是是由由关关系系数数据据库库的创始人的创始人E.F.E.F.CoddCodd提出的,提出的,后后经经许许多多专专家家学学者者
3、对对关关系系数数据据库库理理论论作作了了深深入入的的研研究究和和发发展展,形形成成了了一一整整套套有有关关关关系系数数据据库库设计的理论。设计的理论。在在该该理理论论出出现现以以前前,层层次次和和网网状状数数据据库库的的设设计计只只是是遵遵循循其其模模型型本本身身固固有有的的原原则则,而而无无具具体体的的理理论论依依据据可可言言,因因而而带带有有盲盲目目性性,可可能能在在以以后后的运行和使用中发生许多预想不到的问题。的运行和使用中发生许多预想不到的问题。3在关系数据库系统中,在关系数据库系统中,关系模型关系模型包括一组包括一组关系关系模式模式,各个关系不是完全孤立的,数据库的设,各个关系不是完
4、全孤立的,数据库的设计较层次和网状模型更为重要。计较层次和网状模型更为重要。如何设计一个适合的关系数据库系统,关键是如何设计一个适合的关系数据库系统,关键是关系数据库关系数据库模式模式的设计,一个好的关系数据库的设计,一个好的关系数据库模式应该包括多少模式应该包括多少关系模式关系模式,而每一个关系模,而每一个关系模式又应该包括哪些式又应该包括哪些属性属性,又如何将这些相互关,又如何将这些相互关联的关系模式组建一个适合的联的关系模式组建一个适合的关系模型关系模型,这些,这些工作决定了到整个系统运行的效率,也是系统工作决定了到整个系统运行的效率,也是系统成败的关键所在,所以必须在关系数据库的成败的
5、关键所在,所以必须在关系数据库的规规范化理论范化理论的指导下逐步完成。的指导下逐步完成。4关系数据库的规范化理论主要包括三个方面的内容:关系数据库的规范化理论主要包括三个方面的内容:函数依赖范式(Normal Form)模式设计其其中中,函函数数依依赖赖起起着着核核心心的的作作用用,是是模模式式分分解解和和模模式式设计的基础,范式是模式分解的标准。设计的基础,范式是模式分解的标准。4.1.2 4.1.2 关系模式的存储异常问题关系模式的存储异常问题数据库的逻辑设计为什么要遵循一定的规范化理论?数据库的逻辑设计为什么要遵循一定的规范化理论?什么是好的关系模式?什么是好的关系模式?某些不好的关系模
6、式可能导致哪些问题?某些不好的关系模式可能导致哪些问题?下面通过例子进行分析下面通过例子进行分析:5例如例如,要求设计,要求设计教学管理数据库教学管理数据库,其关系模式,其关系模式SCDSCD如下:如下:SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)其其中中,SNOSNO表表示示学学生生学学号号,SNSN表表示示学学生生姓姓名名,AGEAGE表表示示学学生生年年龄龄,DEPTDEPT表表示示学学生生所所在在的的系系别别,MNMN表表示示系系主主任任姓名,姓名,CNOCNO表示课程号,表示课程号,SCORESCORE表示成绩。表示成绩。根据实际情况,这些数据有如下语义规定:根
7、据实际情况,这些数据有如下语义规定:1.一个系有若干个学生,但一个学生只属于一个系;2.一个系只有一名系主任,但一个系主任可以同时兼几个系的系主任;3.一个学生可以选修多门功课,每门课程可有若干学生选修;4.每个学生学习课程有一个成绩。在在此此关关系系模模式式中中填填入入一一部部分分具具体体的的数数据据,则则可可得得到到SCDSCD关关系系模模式式的的实实例例,即即一一个个教教学学管管理理数数据据库库,如如图图4.14.1所所示。示。6图图4.1 4.1 关系关系SCDSCDSNOSNAGEDEPTMNCNOSCORES1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息
8、王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C1937根根据据上上述述的的语语义义规规定定,并并分分析析以以上上关关系系中中的的数数据据,我我们们可可以以看看出出:(SNO,CNO)属属性性的的组组合合能能唯唯一一标标识识一一个个元元组组,所所以以(SNO,CNO)是是该该关关系系模模式式的的主主关关系系键键。但但在在进进行行数数据据库的操作时,会出现以下几方面的问题。库的操作时,会出现以下几方面的问题。1.1.数数据据冗冗余余。每个系名和系
9、主任的名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要重复存储多次,数据的冗余度很大,浪费了存储空间。2.2.插插入入异异常常。如果某个新系没有招生,尚无学生时,则系名和系主任的信息无法插入到数据库中。因为在这个关系模式中,(SNO,CNO)是主关系键。根据关系的实体完整性约束,主关系键的值不能为空,而这时没有学生,SNO和CNO均无值,因此不能进行插入操作。另外,当某个学生尚未选课,即CNO未知,实体完整性约束还规定,主关系键的值不能部分为空,同样不能进行插入操作。83.删除异常。某系学生全部毕业而没有招生时,删除全部学生的记录则系名、系主任也随之删除,
10、而这个系依然存在,在数据库中却无法找到该系的信息。另外,如果某个学生不再选修C1课程,本应该只删去C1,但C1是主关系键的一部分,为保证实体完整性,必须将整个元组一起删掉,这样,有关该学生的其它信息也随之丢失。4.更新异常。如果学生改名,则该学生的所有记录都要逐一修改SN;又如某系更换系主任,则属于该系的学生记录都要修改MN的内容,稍有不慎,就有可能漏改某些记录,这就会造成数据的不一致性,破坏了数据的完整性。9由由于于存存在在以以上上问问题题,我我们们说说,SCDSCD是是一一个个不不好好的的关关系系模模式式。产产生生上上述述问问题题的的原原因因,直直观观地地说说,是是因因为为关关系系中中“包
11、罗万象包罗万象”,内容太杂了。,内容太杂了。那么,怎样才能得到一个好的关系模式呢?那么,怎样才能得到一个好的关系模式呢?我我们们把把关关系系模模式式SCDSCD分分解解为为下下面面三三个个结结构构简简单单的的关关系系模模式,如图式,如图4.24.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 DS2C5
12、70DEPTMNS3C10计算机刘伟S3C270信息王平S3C485自动化刘伟S4C193图4.2 分解后的关系模式11在以上三个关系模式中,实现了信息的某种程度在以上三个关系模式中,实现了信息的某种程度的分离,的分离,S中存储学生基本信息,与所选课程及系主任无关;D中存储系的有关信息,与学生无关;SC中存储学生选课的信息,而与所学生及系的有关信息无关。与与SCDSCD相比,分解为三个关系模式后,数据的冗余相比,分解为三个关系模式后,数据的冗余度明显降低。度明显降低。当新插入一个系时,只要在关系D中添加一条记录。当某个学生尚未选课,只要在关系S中添加一条学生记录,而与选课关系无关,这就避免了插
13、入异常。当一个系的学生全部毕业时,只需在S中删除该系的全部学生记录,而关系D中有关该系的信息仍然保留,从而不会引起删除异常。同时,由于数据冗余度的降低,数据没有重复存储,也不会引起更新异常。12经经过过上上述述分分析析,我我们们说说分分解解后后的的关关系系模模式式是是一一个好的关系数据库模式。个好的关系数据库模式。从从而而得得出出结结论论,一一个个好好的的关关系系模模式式应应该该具具备备以以下四个条件:下四个条件:1.尽可能少的数据冗余。2.没有插入异常。3.没有删除异常。4.没有更新异常。13但但要要注注意意,一一个个好好的的关关系系模模式式并并不不是是在在任任何何情情况况下下都都是是最优的
14、,最优的,比如查询某个学生选修课程名及所在系的系主任时,要通过连接,而连接所需要的系统开销非常大,因此要以实际设计的目标出发进行设计如何按照一定的规范设计关系模式,将结构复杂的关系如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不好的关系数据库模式分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系数据库模式,这就是转变为好的关系数据库模式,这就是关系的规范化关系的规范化。规范化又可以根据不同的要求而分成若干级别。规范化又可以根据不同的要求而分成若干级别。我们要设计的关系模式中的各属性是相互依赖、相互制我们要设计的关系模式中的各属性是相互依赖、相互制约的,
15、这样才构成了一个结构严谨的整体。约的,这样才构成了一个结构严谨的整体。因此在设计关模式时,必须从语义上分析这些因此在设计关模式时,必须从语义上分析这些依赖关系依赖关系。数据库模式的好坏和关系中各属性间的依赖关系有关,数据库模式的好坏和关系中各属性间的依赖关系有关,因此,我们先讨论属性间的依赖关系,然后再讨论关系因此,我们先讨论属性间的依赖关系,然后再讨论关系规范化理论。规范化理论。14函数依赖函数依赖函数依赖的定义及性质函数依赖的定义及性质关关系系模模式式中中的的各各属属性性之之间间相相互互依依赖赖、相相互互制制约约的的联联系系称为称为数据依赖数据依赖。数据依赖一般分为数据依赖一般分为函数依赖
16、函数依赖、多值依赖多值依赖和和连接依赖连接依赖。其中其中,函数依赖函数依赖是最重要的数据依赖。是最重要的数据依赖。函函数数依依赖赖(Functional Functional DependencyDependency)是是关关系系模模式式中中属属性之间的一种性之间的一种逻辑依赖关系逻辑依赖关系。例如在上一节介绍的关系模式SCD中,SNO与SN、AGE、DEPT之间都有一种依赖关系。由于一个SNO只对应一个学生,而一个学生只能属于一个系,所以当SNO的值确定之后,SN,AGE,DEPT的值也随之被唯一的确定了。这类似于变量之间的单值函数关系。设单值函数Y=F(X),自变量X的值可以决定一个唯一的
17、函数值Y。在这里,我们说SNO决定函数(SN,AGE,DEPT),或者说(SN,AGE,DEPT)函数依赖于SNO。15下面给函数依赖的形式化定义。下面给函数依赖的形式化定义。函数依赖的定义函数依赖的定义定定义义 设设关关系系模模式式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
18、函函数数依依赖赖于于X X,记记作作XYXY。我我们们称称X X为为决决定定因因素素,Y Y为为依依赖赖因因素素。当当Y Y不不函函数数依依赖于赖于X X时,记作:时,记作:X YX Y。当当XYXY且且YXYX时,则记作:时,则记作:X YX Y。对于关系模式对于关系模式SCDSCDU=SNO,SN,AGE,DEPT,MN,CNO,SCOREF=SNOSN,SNOAGE,SNODEPT一一个个SNOSNO有有多多个个SCORESCORE的的值值与与其其对对应应,因因此此SCORESCORE不不能能唯唯一一地地确确定定,即即SCORESCORE不不能能函函数数依依赖赖于于SNOSNO,所所以以
19、有有:SNO SCORESNO SCORE。但是但是SCORESCORE可以被(可以被(SNOSNO,CNOCNO)唯一地确定。所以可表唯一地确定。所以可表示为:(示为:(SNOSNO,CNOCNO)SCORESCORE。16有关函数依赖的几点说明:有关函数依赖的几点说明:1 1平凡的函数依赖与非平凡的函数依赖。平凡的函数依赖与非平凡的函数依赖。当属性集Y是属性集X的子集时,则必然存在着函数依赖XY,这种类型的函数依赖称为平凡的函数依赖。如果Y不是X的子集,则称XY为非平凡的函数依赖。若不特别声明,我们讨论的都是非平凡的函数依赖。2 2函数依赖是语义范畴的概念。函数依赖是语义范畴的概念。我们只
20、能根据语义来确定一个函数依赖,而不能按照其形式化定义来证明一个函数依赖是否成立。例如,对于关系模式S,当学生不存在重名的情况下,可以得到:SNAGESNDEPT这种函数依赖关系,必须是在没有重名的学生条件下才成立的,否则就不存在函数依赖了。所以函数依赖反映了一种语义完整性约束。173 3函数依赖与属性之间的联系类型有关。函数依赖与属性之间的联系类型有关。(1)在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖XY,YX,即X Y。例如,当学生无重名时,SNO SN。(2)如果属性X与Y有1:m的联系时,则只存在函数依赖XY。例 如,SNO与 AGE,DEPT之 间 均 为 1:m联
21、 系,所 以 有SNOAGE,SNODEPT。(3)如果属性X与Y有m:n的联系时,则X与Y之间不存在任何函数依赖关系。例如,一个学生可以选修多门课程,一门课程又可以为多个学生选修,所以SNO与CNO之间不存在函数依赖关系。由于函数依赖与属性之间的联系类型有关,所以在确定由于函数依赖与属性之间的联系类型有关,所以在确定属性间的函数依赖关系时,可以从分析属性间的函数依赖关系时,可以从分析属性间的联系类属性间的联系类型型入手,便可确定属性间的函数依赖。入手,便可确定属性间的函数依赖。184 4函数依赖关系的存在与时间无关。函数依赖关系的存在与时间无关。因为函数依赖是指关系中的所有元组应该满足的约束
22、条件,而不是指关系中某个或某些元组所满足的约束条件。当关系中的元组增加、删除或更新后都不能破坏这种函数依赖。因此,必须根据语义来确定属性之间的函数依赖,而不能单凭某一时刻关系中的实际数据值来判断。例如,对于关系模式S,假设没有给出无重名的学生这种语义规定,则即使当前关系中没有重名的记录,也只能存在函数依赖SNOSN,而不能存在函数依赖SNSNO,因为如果新增加一个重名的学生,函数依赖SNSNO必然不成立。所以函数依赖关系的存在与时间无关,而只与数据之间的语义规定有关。195 5函数依赖可以保证关系分解的无损连接性。函数依赖可以保证关系分解的无损连接性。设R(X,Y,Z),X,Y,Z为不相交的属
23、性集合,如果XY或XZ,则有R(X,Y,Z)=RX,Y*RX,Z,其中,RX,Y表示关系R在属性(X,Y)上的投影,即R等于其投影在X上的自然连接,这样便保证了关系R分解后不会丢失原有的信息,称作关系分解的无损连接性。例如,对于关系模式SCD,有SNO(SN,AGE,DEPT,MN),SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)=SCDSNO,SN,AGE,DEPT,MN*SCDSNO,CNO,SCORE,也就是说,用其投影在SNO上的自然连接可复原关系模式SCD。这一性质非常重要,在后一节的关系规范化中要用到。20函数依赖的基本性质函数依赖的基本性质1 1投影性。投影性
24、。根据平凡的函数依赖的定义可知,一组属性函数决定它的所有子集。例如,在关系SCD中,(SNO,CNO)SNO和(SNO,CNO)CNO。2 2扩张性。扩张性。若XY且WZ,则(X,W)(Y,Z)。例如,SNO(SN,AGE),DEPTMN,则有(SNO,DEPT)(SN,AGE,MN)。3 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。很显然,分解性为合并性的逆过程。由合并性和分解性,很容易得到以下事实:由合并性和分解性,很
25、容易得到以下事实:XA1,A2,,An成立的充分必要条件是XAi(i=1,2,n)成立。21完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖定定义义4.24.2 设设关关系系模模式式R(U)R(U),U U是是属属性性全全集集,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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 应用 教程
限制150内