收藏 分销(赏)

关系数据模型之函数依赖省公共课一等奖全国赛课获奖课件.pptx

上传人:快乐****生活 文档编号:2835665 上传时间:2024-06-07 格式:PPTX 页数:23 大小:193.05KB
下载 相关 举报
关系数据模型之函数依赖省公共课一等奖全国赛课获奖课件.pptx_第1页
第1页 / 共23页
关系数据模型之函数依赖省公共课一等奖全国赛课获奖课件.pptx_第2页
第2页 / 共23页
关系数据模型之函数依赖省公共课一等奖全国赛课获奖课件.pptx_第3页
第3页 / 共23页
关系数据模型之函数依赖省公共课一等奖全国赛课获奖课件.pptx_第4页
第4页 / 共23页
关系数据模型之函数依赖省公共课一等奖全国赛课获奖课件.pptx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、返回返回第第3章章 关系数据模型(关系关系数据模型(关系数据数据库库理理论论)花些时间设计你数据库花些时间设计你数据库能治疗你头疼能治疗你头疼!也不会在运行数据库时候不停出现让你头也不会在运行数据库时候不停出现让你头疼问题疼问题!1第1页返回返回本章概要本章概要前面已经讲述了前面已经讲述了关系数据库关系数据库、关系模型关系模型基本概念以及基本概念以及E/RE/R转换到关系模式。转换到关系模式。怎样使用关系模型设计关系数据库,也就是面对一个怎样使用关系模型设计关系数据库,也就是面对一个现实问题,怎样选择一个比很好关系模式集合,每个现实问题,怎样选择一个比很好关系模式集合,每个关系又应该由哪些属性

2、组成。这属于数据库设计问题,关系又应该由哪些属性组成。这属于数据库设计问题,确切地讲是数据库确切地讲是数据库逻辑设计逻辑设计问题。问题。本节讲述本节讲述关系数据库规范化理论关系数据库规范化理论,这是数据库逻辑设,这是数据库逻辑设计理论依据。计理论依据。要求了解规范化理论研究动机及其在数据库设计中作用,掌握函数依赖相关概念,第一范式、第二范式、第三范式定义,重点掌握并能够灵活利用关系模式规范化方法和关系模式分解方法,这也是本章难点。2第2页返回返回4.1 4.1 规范化问题提出规范化问题提出4.1.1 4.1.1 规范化理论主要内容规范化理论主要内容关关系系数数据据库库规规范范化化理理论论最最早

3、早是是由由关关系系数数据据库库创创始人始人E.F.CoddE.F.Codd提出,提出,后后经经许许多多教教授授学学者者对对关关系系数数据据库库理理论论作作了了深深入入研研究究和和发发展展,形形成成了了一一整整套套相相关关关关系系数数据据库库设设计理论。计理论。在在该该理理论论出出现现以以前前,层层次次和和网网状状数数据据库库设设计计只只是是遵遵照照其其模模型型本本身身固固有有标标准准,而而无无详详细细理理论论依依据据可可言言,因因而而带带有有盲盲目目性性,可可能能在在以以后后运运行行和和使用中发生许多预想不到问题。使用中发生许多预想不到问题。3第3页返回返回在关系数据库系统中,在关系数据库系统

4、中,关系模型关系模型包含一组包含一组关系关系模式模式,各个关系不是完全孤立,数据库设计较,各个关系不是完全孤立,数据库设计较层次和网状模型更为主要。层次和网状模型更为主要。怎样设计一个适合关系数据库系统,关键是关怎样设计一个适合关系数据库系统,关键是关系数据库系数据库模式模式设计,一个好关系数据库模式应设计,一个好关系数据库模式应该包含多少该包含多少关系模式关系模式,而每一个关系模式又应,而每一个关系模式又应该包含哪些该包含哪些属性属性,又怎样将这些相互关联关系,又怎样将这些相互关联关系模式组建一个适合模式组建一个适合关系模型关系模型,这些工作决定了,这些工作决定了到整个系统运行效率,也是系统

5、成败关键所在,到整个系统运行效率,也是系统成败关键所在,所以必须在关系数据库所以必须在关系数据库规范化理论规范化理论指导下逐步指导下逐步完成。完成。4第4页返回返回关系数据库规范化理论主要包含三个方面内容:关系数据库规范化理论主要包含三个方面内容:函数信赖范式(Normal Form)模式设计其其中中,函函数数信信赖赖起起着着关关键键作作用用,是是模模式式分分解解和和模模式式设设计基础,范式是模式分解标准。计基础,范式是模式分解标准。4.1.2 4.1.2 关系模式存放异常问题关系模式存放异常问题数据库逻辑设计为何要遵照一定规范化理论?数据库逻辑设计为何要遵照一定规范化理论?什么是好关系模式?

6、什么是好关系模式?一些不好关系模式可能造成哪些问题?一些不好关系模式可能造成哪些问题?下面经过例子进行分析下面经过例子进行分析:5第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第6页返回返回图图4.1 4.1 关系关系SCDSCDSNOSNAGEDEPTMNCNOSCORES1赵亦17计算机刘伟C

8、190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C1937第7页返回返回依依据据上上述述语语义义要要求求,并并分分析析以以上上关关系系中中数数据据,我我们们能能够够看看出出:(SNO,CNO)属属性性组组合合能能唯唯一一标标识识一一个个元元组组,所所以以(SNO,CNO)是是该该关关系系模模式式主主关关系系键键。但但在在进进行行数数据据库库操操作作时,会出现以下几方面问题。时,会出现以下几方面问

9、题。1.1.数数据据冗冗余余。每个系名和系主任名字存放次数等于该系学生人数乘以每个学生选修课程门数,同时学生姓名、年纪也都要重复存放屡次,数据冗余度很大,浪费了存放空间。2.2.插插入入异异常常。假如某个新系没有招生,尚无学生时,则系名和系主任信息无法插入到数据库中。因为在这个关系模式中,(SNO,CNO)是主关系键。依据关系实体完整性约束,主关系键值不能为空,而这时没有学生,SNO和CNO均无值,所以不能进行插入操作。另外,当某个学生还未选课,即CNO未知,实体完整性约束还要求,主关系键值不能部分为空,一样不能进行插入操作。8第8页返回返回3.删除异常。某系学生全部毕业而没有招生时,删除全部

10、学生统计则系名、系主任也随之删除,而这个系依然存在,在数据库中却无法找到该系信息。另外,假如某个学生不再选修C1课程,本应该只删去C1,但C1是主关系键一部分,为确保实体完整性,必须将整个元组一起删掉,这么,相关该学生其它信息也随之丢失。4.更新异常。假如学生更名,则该学生全部统计都要逐一修改SN;又如某系更换系主任,则属于该系学生统计都要修改MN内容,稍有不慎,就有可能漏改一些统计,这就会造成数据不一致性,破坏了数据完整性。9第9页返回返回因因为为存存在在以以上上问问题题,我我们们说说,SCDSCD是是一一个个不不好好关关系系模模式式。产产生生上上述述问问题题原原因因,直直观观地地说说,是是

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

12、80S2C7D D D DS2C570DEPTMNS3C10计算机刘伟S3C270信息王平S3C485自动化刘伟S4C193图4.2 分解后关系模式11第11页返回返回在以上三个关系模式中,实现了信息某种程度分离,在以上三个关系模式中,实现了信息某种程度分离,S中存放学生基本信息,与所选课程及系主任无关;D中存放系相关信息,与学生无关;SC中存放学生选课信息,而与所学生及系相关信息无关。与与SCDSCD相比,分解为三个关系模式后,数据冗余度显著相比,分解为三个关系模式后,数据冗余度显著降低。降低。当新插入一个系时,只要在关系D中添加一条统计。当某个学生还未选课,只要在关系S中添加一条学生统计,

13、而与选课关系无关,这就防止了插入异常。当一个系学生全部毕业时,只需在S中删除该系全部学生统计,而关系D中相关该系信息依然保留,从而不会引发删除异常。同时,因为数据冗余度降低,数据没有重复存放,也不会引发更新异常。12第12页返回返回经经过过上上述述分分析析,我我们们说说分分解解后后关关系系模模式式是一个好关系数据库模式。是一个好关系数据库模式。从从而而得得出出结结论论,一一个个好好关关系系模模式式应应该该具具备以下四个条件:备以下四个条件:1.尽可能少数据冗余。2.没有插入异常。3.没有删除异常。4.没有更新异常。13第13页返回返回但但要要注注意意,一一个个好好关关系系模模式式并并不不是是在

14、在任任何何情情况况下下都都是是最优,最优,比如查询某个学生选修课程名及所在系系主任时,要经过连接,而连接所需要系统开销非常大,所以要以实际设计目标出发进行设计怎样按照一定规范设计关系模式,将结构复杂关系分怎样按照一定规范设计关系模式,将结构复杂关系分解成结构简单关系,从而把不好关系数据库模式转变解成结构简单关系,从而把不好关系数据库模式转变为好关系数据库模式,这就是为好关系数据库模式,这就是关系规范化关系规范化。规范化又能够依据不一样要求而分成若干级别。规范化又能够依据不一样要求而分成若干级别。我们要设计关系模式中各属性是相互依赖、相互制约,我们要设计关系模式中各属性是相互依赖、相互制约,这么

15、才组成了一个结构严谨整体。这么才组成了一个结构严谨整体。所以在设计关模式时,必须从语义上分析这些所以在设计关模式时,必须从语义上分析这些依赖关依赖关系系。数据库模式好坏和关系中各属性间依赖关系相关,所数据库模式好坏和关系中各属性间依赖关系相关,所以,我们先讨论属性间依赖关系,然后再讨论关系规以,我们先讨论属性间依赖关系,然后再讨论关系规范化理论。范化理论。14第14页返回返回4.2 4.2 函数依赖函数依赖4.2.14.2.1函数依赖定义及性质函数依赖定义及性质关关系系模模式式中中各各属属性性之之间间相相互互依依赖赖、相相互互制制约约联联络络称称为为数据依赖数据依赖。数据依赖普通分为数据依赖普

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第15页返回返回下面给函数依赖形式化定义。下面给函数依赖形式化定义。4.2.1.14.2.1.1函数依赖定义函数依赖定义定定义义4.14.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

18、 Y,或或Y Y函函数数依依赖赖于于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 SNO SCORESCORE。不过不过SCORESCORE能够被(能够被(SNOSNO,CNOCNO)唯一地确定。所以可表)唯一地确定。所以可表示为:(示为:(SNOSNO,CNOCNO)SCORESCORE。16第16页返回返回相关函数依赖几点说明:相关函数依赖几点说明:1 1平凡函数依赖与非平凡函数依赖。平凡函数依赖与非平凡函数依赖。当属性集Y是属性集X子集时,则必定存在着函数依赖XY,这种类型函数依赖称为平凡函数依赖。假如Y不是X子集,则称XY为非平凡函数依赖。若不尤其申明,我们讨论都是非平凡函数依赖。2 2函数依赖是语义范围概念。函数依赖是语义范围概念。我们只能

20、依据语义来确定一个函数依赖,而不能按照其形式化定义来证实一个函数依赖是否成立。比如,对于关系模式S,当学生不存在重名情况下,能够得到:SNAGESNDEPT这种函数依赖关系,必须是在没有重名学生条件下才成立,不然就不存在函数依赖了。所以函数依赖反应了一个语义完整性约束。17第17页返回返回3函数依赖与属性之间联络类型有关。函数依赖与属性之间联络类型有关。(1)在一个关系模式中,如果属性)在一个关系模式中,如果属性X与与Y有有1:1联络时,则存在函数依赖联络时,则存在函数依赖XY,YX,即,即X Y。例如,当学生无重名时,例如,当学生无重名时,SNO SN。(2)如果属性)如果属性X与与Y有有1

21、:m联络时,则只联络时,则只存在函数依赖存在函数依赖XY。例如,例如,SNO与与AGE,DEPT之间均为之间均为1:m联络,所以有联络,所以有SNOAGE,SNODEPT。(3)如果属性)如果属性X与与Y有有m:n联络时,则联络时,则X与与Y之间不存在任何函数依赖关系。之间不存在任何函数依赖关系。例如,一个学生可以选修多门课程,例如,一个学生可以选修多门课程,一门课程又可认为多个学生选修,所以一门课程又可认为多个学生选修,所以SNO与与CNO之间不存在函数依赖关系。之间不存在函数依赖关系。因为函数依赖与属性之间联络类型有关,因为函数依赖与属性之间联络类型有关,所以在确定属性间函数依赖关系时,可

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

23、为假如新增加一个重名学生,函数依赖SNSNO必定不成立。所以函数依赖关系存在与时间无关,而只与数据之间语义要求相关。19第19页返回返回5 5函数依赖能够确保关系分解无损连接性。函数依赖能够确保关系分解无损连接性。设R(X,Y,Z),X,Y,Z为不相交属性集合,假如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)=

24、SCDSNO,SN,AGE,DEPT,MN*SCDSNO,CNO,SCORE,也就是说,用其投影在SNO上自然连接可复原关系模式SCD。这一性质非常主要,在后一节关系规范化中要用到。20第20页返回返回4.2.1.2 4.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,DEPT)(SN,AGE,MN)。3 3合并性。合并性。若XY且X

25、Z则必有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)成立。21第21页返回返回4.2.2 4.2.2 完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖定义定义4.24.2 设关系模式设关系模式R(U)R(U),U U是属性全集,是属性全集,X X和和Y Y是是U U子集,子集,假如XY,而

26、且对于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。由定义由定义4.24.2可知:可知:只有当决定原因是组合属性时,讨论部分函数依赖才有意义,当决定原因是单属性时,只能是完全函数依赖。比如,在关系模式S(SNO,SN,AGE,DEPT),决定原因

27、为单属性SNO,有SNO(SN,AGE,DEPT),不存在部分函数依赖。22第22页返回返回4.2.3 4.2.3 传递函数依赖传递函数依赖定定义义4.34.3 设设相相关关系系模模式式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中,SNODEPTN,但DEPTN SNO,而DEPTNMN,则有SNO MN。当学生不存在重名情况下,有SNOSN,SNSNO,SNO SN,SNDEPTN,这时DEPTN对SNO是直接函数依赖,而不是传递函数依赖。总而言之,函数依赖分为完全函数依赖、部分函数依赖和传递函数依赖三类,它们是规范化理论依据和规范化程度准则,下面我们将以介绍这些概念为基础,进行数据库规范设计。23第23页

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服