您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第4章 关系数据库设计理论.
数据库原理与应用第4章关系数据库设计理论数据库原理与应用--第4章关系数据库设计理论第2页本章主要内容4.1问题的提出4.2关系模式的规范化(重点)4.3数据依赖的公理系统*4.4关系分解保持性*4.5小结第3页数据库原理与应用--第4章关系数据库设计理论4.1问题的提出设计任何一个数据库应用系统,现实世界→E-R模型→关系模型,都会遇到如何构造合适的数据模式,即逻辑结构的问题;对于初步的关系模式,可能存在这样或那样的问题(如插入异常、删除异常等),需要利用关系数据库设计理论进行规范化,以逐步消除存在的问题,从而得到一定规范程度的关系模式,这就是本章的主要内容;本章将阐述关系数据库中最深的一些特性——函数依赖、多值依赖和连接依赖,以及由此引出的诸多异常,如插入异常、更新异常、删除异常及数据冗余等,对于出现的问题,通过理论引入,对关系模式的规范化进行系统阐述。第4页数据库原理与应用--第4章关系数据库设计理论4.1.1概念回顾关系:描述实体、属性、实体间的联系。从形式上看,它是一张二维表;关系模式:对关系的描述;关系数据库中,关系模式是型,关系是值;关系模式的形式化定义关系模式是一个五元组:R(U,D,DOM,F),其中R:关系名;U:组成该关系的属性名集合—一组属性U;D:属性组U中各属性所的域;DOM:属性向域的映象集合F:属性间数据的依赖关系集合第5页数据库原理与应用--第4章关系数据库设计理论4.1.2关系模式中可能存在的异常例1:要求设计学生-课程数据库,其中:SNO:学生学号,SN:学生姓名,AGE:学生年龄,DEPT:学生所在的系别,MN:系主任名,CNO:课程号,SCORE:成绩。假设用单一的关系模式SDC来表示,则关系模式SDC如下:SDC(SNO,SN,AGE,DEPT,MN,CNO,SCORE)现实世界已知事实的语义:•一个系有若干学生,一个学生只属于一个系;•一个系只有一名系主任;•一个学生可以选修多门课程,每门课程有多名学生选修;•每个学生所学的每门课程都有一个成绩。SNOSNAGEDEPTMNCNOSCORES1赵红20计算机张文斌C190S1赵红20计算机张文斌C285S2王小明17外语刘伟华C557S2王小明17外语刘伟华C680S2王小明17外语刘伟华C7S2王小明17外语刘伟华C470S3吴小林19信息刘伟华C175S3吴小林19信息刘伟华C270S3吴小林19信息刘伟华C485S4张涛22自动化钟志强C193关系SDC第7页数据库原理与应用--第4章关系数据库设计理论存在的问题在进行数据库的操作时,会出现以下几方面的问题。数据冗余•如果一个系有多名学生或该学生选修了多门课程,则系名称和系主任姓名就要存储多次,学生的姓名、年龄等信息也要存储多次;操作异常(更新异常、插入异常、删除异常)由于数据的冗余,在对数据操作时会引起各种异常:•更新异常:如果某系更换系主任或更换系名后,系统必须修改与该系所有学生有关的每一个元组;若有一个元组中的数据未更改,就会造成这个系主任姓名不一致现象。--数据冗余,更新数据时,维护数据完整性代价大第8页数据库原理与应用--第4章关系数据库设计理论操作异常•插入异常:如果一个系刚成立,无学生,或者虽然有学生但尚未安排课程,那么就无法把这个系及其负责人的信息加入数据库。--应该插入而未被插入•删除异常:如果某个系的学生全部毕业了,我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。--不该删除的数据被删掉第9页数据库原理与应用--第4章关系数据库设计理论结论:•SDC关系模式不是一个好的关系模式。•“好”的关系模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。如果将关系模式SDC划分为三个关系模式S(Sno,SN,AGE,DEPT)、SC(Sno,Cno,Score)和D(dept,MN),可基本解决以上问题,但分解后是否是最佳的模式,也不是绝对的。SNOSNAGEDEPTS1赵红20计算机S2王小明17外语S3吴小林19信息S4张涛22自动化DDEPTMN计算机张文斌外语刘伟华信息刘伟华自动化钟志强SSNOCNOSCORES1C190S1C285S2C557S2C680S2C7S2C470S3C175S3C270S3C485S4C193SC根据实际设计的目标,选择数据冗余和操作便利性之间的平衡第11页数据库原理与应用--第4章关系数据库设计理论4.1.3关系模式中存在异常的原因事实上,异常现象产生的根源,就是由于关系模式中属性间存在着复杂的依赖关系。如学生学号和学生姓名、学生学号和系名称、系名称和系主任之间都存在着依赖关系,这种依赖都称为数据依赖;数据冗余的产生和数据依赖有着密切的关系;第12页数据库原理与应用--第4章关系数据库设计理论数据依赖•是一个关系内部属性与属性之间的一种约束关系;•是语义的体现;•是现实世界属性间相互联系的抽象;•是数据内在的性质;数据依赖的类型•函数依赖(FunctionalDependency,简记为FD)•多值依赖(MultivaluedDependency,简记为MVD)•其他第13页数据库原理与应用--第4章关系数据库设计理论如何构造一个好的关系模式?•消除关系模式中的数据冗余,更新异常,插入异常和删除异常如何改造关系模式?•如何把一个不好的关系模式分解改造为一个好的关系模式,应分析一个关系模式有哪些数据依赖,消除那些不合适的数据依赖,这就是关系数据库设计过程中要讨论的规范化理论问题。第14页数据库原理与应用--第4章关系数据库设计理论4.2关系模式的规范化关系规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。•4.2.1函数依赖•4.2.2码•4.2.3范式(1NF,2NF,3NF,BCNF,4NF)第15页数据库原理与应用--第4章关系数据库设计理论4.2.1函数依赖函数依赖定义定义4.1设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y是U的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体的值与之对应,则称X函数决定Y,或Y函数依赖于X,记X→Y。我们称X为决定因素,Y为依赖因素。当Y不函数依赖于X时,记作:X→Y。当X→Y且Y→X时,则记作:XY。理解:所谓函数依赖是指一个或一组属性的值可以决定其它属性的值。函数依赖正如一个函数y=f(x),x的值给定后,y的值也就唯一地确定了。第16页数据库原理与应用--第4章关系数据库设计理论对于关系模式SDC,有:U={SNO,SN,AGE,DEPT,MN,CNO,SCORE}F={SNO→SN,SNO→AGE,SNO→DEPT,DEPT→MN,SNO→MN,(SNO,CNO)→SCORE}一个SNO有多个SCORE的值与之对应,因此SCORE不能唯一地确定,即SCORE不能函数依赖于SNO,所以有:SNOSCORE,同样有:CNOSCORE。但是SCORE可以被(SNO,CNO)唯一地确定。所以可表示为:(SNO,CNO)→SCORE。第17页数据库原理与应用--第4章关系数据库设计理论1、函数依赖说明1)函数依赖与属性间的联系有关对于关系模式R,U为属性集合,X、Y为其属性子集,根据函数依赖定义和实体间联系的定义,可得出如下结论:1)若X和Y是1:1的联系,则存在函数依赖X→Y和Y→X;2)若X和Y是1:n的联系,则存在函数依赖Y→X;3)若X和Y是m:n的联系,则X和Y之间不存在函数依赖关系。第18页数据库原理与应用--第4章关系数据库设计理论以关系模式SDC为例系与系主任是1:1,故有dept→mn和mn→dept;系与学生是1:n,故有sno→dept学生与课程是m:n,故sno和cno之间不存在函数依赖由于函数依赖与属性之间的联系类型有关,所以在确定属性间的函数依赖时,可以从分析属性间的联系入手,便可确定属性间的函数依赖。第19页数据库原理与应用--第4章关系数据库设计理论1、函数依赖说明2)函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。•例如,“姓名→年龄”这个函数依赖只有在不允许有同名人时成立。•例如,如果允许一个职工只有一个电话号码,那么,职工号确定了,则其电话号码也就随之确定了。设计者可以对现实世界做强制规定;关系模式的所有关系实例都要满足约束条件。第20页数据库原理与应用--第4章关系数据库设计理论1、函数依赖说明3)函数依赖关系的存在与时间无关必须根据语义来确定属性之间的函数依赖,而不能单凭某一时刻关系中的实际数据值来判断。4)函数依赖可以保证关系分解的无损连接性设R(X,Y,Z),X、Y、Z为不相交的属性集合,如果X→Y或X→Z则有R(X,Y,Z)=R[X,Y]∞R[X,Z],其中R[X,Y]表示关系R在属性(X,Y)上的投影,即R等于两个分别含决定因素X的投影关系(分别是R[X,Y]与R[X,Z])在X上的自然连接,这样便保证了关系R分解后不会丢失原有的信息,称作关系分解的无损连接性。第21页数据库原理与应用--第4章关系数据库设计理论2、函数依赖的基本性质(1)投影性根据平凡的函数依赖的定义可知,一组属性函数决定它的所有子集。例如,在关系SDC中,(SNO,CNO)→SNO和(SNO,CNO)→CNO。说明:投影性产生的是平凡的函数依赖。(2)扩张性若X→Y且W→Z,则(X,W)→(Y,Z)。例如,SNO→(SN,AGE),DEPT→MN,则有(SNO,DEPT)→(SN,AGE,MN)。说明:扩张性实现了两函数依赖决定因素与被决定因素的分别合并后扔保持决定关系。第22页数据库原理与应用--第4章关系数据库设计理论2、函数依赖的基本性质(3)合并性若X→Y且X→Z则必有X→(Y,Z)。例如,在关系SDC中,SNO→(SN,AGE),SNO→DEPT,则有SNO→(SN,AGE,DEPT)。说明:决定因素相同的两函数依赖,他们的被决定因素合并后,函数依赖关系依然保持。(4)分解性若X→(Y,Z),则X→Y且X→Z。很显然,分解性为合并性的逆过程。说明:决定因素能决定全部,当然也能决定全部中的一部分。由合并性和分解性,很容易得到以下事实:X→A1,A2,…,An成立的充分必要条件是X→Ai(i=1,2,…,n)成立。第23页数据库原理与应用--第4章关系数据库设计理论3、函数依赖分类函数依赖分类及其定义•1)平凡函数依赖(TrivialFD)和非平凡函数依赖(NontrivialFD)•2)完全函数依赖(FullFD)和部分函数依赖(PartialFD)•3)传递函数依赖(TransitiveFD)第24页数据库原理与应用--第4章关系数据库设计理论1)平凡函数依赖与非平凡函数依赖在关系模式R(U)中,对于U的子集X和Y:如果X→Y,但YX,则称X→Y是平凡的函数依赖;如果X→Y,但YX,则称X→Y是非平凡的函数依赖;若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素。注:对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,若不特别声明,我们总是讨论非平凡的函数依赖。第25页数据库原理与应用--第4章关系数据库设计理论例1:在关系SC(Sno,Cno,score)中(Sno,Cno)→score,但score(Cno,Sno)(Sno,Cno)→Sno,但Sno(Sno,Cno)非平凡函数依赖:(Sno,Cno)→score平凡函数依赖:(Sno,Cno)→Sno(Sno,Cno)→Cno第26页数据库原理与应用--第4章关系数据库设计理论2)完全函数依赖与部分函数依赖定义4.2在R(U)中,如果X→Y,并且对于X的任何一个真子集X',都有X'→Y,则称Y对X完全函数依赖,记作X→Y;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X→Y。FP第27页数据库原理与应
本文标题:第4章 关系数据库设计理论.
链接地址:https://www.777doc.com/doc-3174258 .html