版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关系数据库设计理论第一页,共七十三页,2022年,8月28日关系模式的表示定义关系的描述称为关系模式(RelationSchema)。一个关系模式应当是一个五元组。它可以形式化地表示为:R(U,D,dom,F)。其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域的集合,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。关系模式通常可以简记为:R(A1,A2,…,An)或R(U)。其中R为关系名,A1,A2,…,An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。第二页,共七十三页,2022年,8月28日4.1问题的提出
如何使用关系模型设计关系数据库?也就是面对一个现实问题,如何选择一个比较好的关系模式的集合?其中每个关系模式又由哪些属性组成?这就是数据库逻辑设计主要关心的问题第三页,共七十三页,2022年,8月28日4.1.1规范化理论概述关系数据库设计理论主要包括三个方面的内容:函数依赖、范式(NormalForm)和模式设计。其中函数依赖起着核心作用,是模式分解和模式设计的基础,范式是模式分解的标准。关系数据库设计时要遵循一定的规范化理论。只有这样才可能设计出一个较好的数据库来。前面已经讲过关系数据库设计的关键所在是关系数据库模式的设计,也就是关系模式的设计。那么到底什么是好的关系模式呢?某些不好的关系模式可能导致哪些问题?下面通过例子对这些问题进行分析。第四页,共七十三页,2022年,8月28日4.1.2不合理的关系模式存在的问题
[例1]要求设计学生-课程数据库,其关系模式SDC如下:SDC(SNO,SN,AGE,DEPT,MN,CNO,SCORE)根据实际情况,这些数据有如下语义规定:
(1)一个系有若干个学生,但一个学生只属于一个系;
(2)一个系只有一名系主任,但一个系主任可以同时兼几个系的系主任;
(3)一个学生可以选修多门功课,每门课程可被若干个学生选修;
(4)每个学生学习每门课程有一个成绩。第五页,共七十三页,2022年,8月28日4.1.2不合理的关系模式存在的问题
根据上述语义规定并分析以上关系中的数据,我们可以看出,(SNO,CNO)属性的组合能唯一标识一个元组(每行中SNO与CNO的组合均是不同的),所以(SNO,CNO)是该关系模式的主关系键(即主键,又名主码等)。但在进行数据库的操作时,会出现以下几方面的问题。数据冗余(2)插入异常(3)删除异常(4)修改异常因此,把不好的关系数据库模式转变为较好的关系数据库模式,即关系的规范化第六页,共七十三页,2022年,8月28日4.1.2不合理的关系模式存在的问题示例数据主码是(SNO,CNO)SNO(5)SN(8)AGE(4)DEPT(8)MN(8)CNO(3)SCORE(4)S1赵红20计算机张文斌C190S1赵红20计算机张文斌C285S1赵红20计算机张文斌C357S2王小明17计算机张文斌C180S2王小明17计算机张文斌C273S2王小明17计算机张文斌C370S3吴小林19计算机张文斌C175S3吴小林19计算机张文斌C270S3吴小林19计算机张文斌C385第七页,共七十三页,2022年,8月28日4.1.2不合理的关系模式存在的问题数据冗余总字节数=(5+8+4+8+8+3+4)*9系名和系负责人重复9次学号和姓名重复3次课程名重复3次第八页,共七十三页,2022年,8月28日4.1.2不合理的关系模式存在的问题插入异常计算机系成立,尚未招生—无法插入
--在学生表存储数据必须保证其实体完整性-主属性不能为空,故学号和课程名不能为空。招生完毕,但学生尚未选课—无法插入
--学号是有了,但学生尚未选修,所以课程名不知道求学校有多少系?
--结果不正确,在学生表中还未有计算机系含在内问计算机负责人是谁?
--不知道,计算机系不存在
由于信息不全,导致应该存储的数据无法存储。第九页,共七十三页,2022年,8月28日4.1.2不合理的关系模式存在的问题删除异常计算机系06级学生毕业,删除所有该年级学生
--由于计算机系只有06级学生,被删除后,连带计算机系负责人信息一起被删除。问学校有几个系?问计算机系负责人是谁?若s2学生取消三门选修课程,则学要删除对该学生对应的三条记录。该学生记录信息也因此被删除这个时候如果问问计算机系有多少学生?删除元组时导致额外信息的丢失第十页,共七十三页,2022年,8月28日4.1.2不合理的关系模式存在的问题修改异常(更新异常)计算机系负责人改为张文瑞需要修改9条记录某学生改名,则该学生的所有记录都要逐一修改SN的值由于数据重复存储导致更新操作复杂。第十一页,共七十三页,2022年,8月28日4.1.2不合理的关系模式存在的问题上述问题的根本原因学生关系模式的规范化程度较低解决办法通过规范化理论对其进行规范化,可以逐步降低和消除上述问题
第十二页,共七十三页,2022年,8月28日4.2规范化
本节将讨论下述内容:首先讨论一个关系属性间不同的依赖情况,讨论如何根据属性间的依赖情况来判定关系是否具有某些不合适的性质。通常按属性间依赖情况来区分关系规范化的程度为第一范式、第二范式、第三范式、BC范式和第四范式等。然后直观地描述如何将具有不合适性质的关系转换为更合适的形式。第十三页,共七十三页,2022年,8月28日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时,记作:XY。当X→Y且Y→X时,则记作:XY。函数依赖有几点需要说明:(1)平凡的函数依赖与非平凡的函数依赖当属性集Y是属性集X的子集时,则必然存在着函数依赖X→Y,这种类型的函数依赖称为平凡的函数依赖。如果Y不是X子集,则称X→Y为非平凡的函数依赖。若不特别声明,我们讨论的都是非平凡的函数依赖。第十四页,共七十三页,2022年,8月28日4.2.1函数依赖
(2)函数依赖与属性间的联系类型有关①
在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖X→Y,Y→X,即XY。例如,当学生没有重名时,SNOSN。②
如果属性X与Y有m:1的联系时,则只存在函数依赖X→Y。例如,SNO与AGE,DEPT之间均为m:1联系,所以有SNO→AGE,SNO→DEPT。③
如果属性X与Y有m:n的联系时,则X与Y之间不存在任何函数依赖关系。例如,一个学生可以选修多门课程,一门课程又可以为多个学生选修,所以SNO与CNO之间不存在函数依赖关系。第十五页,共七十三页,2022年,8月28日4.2.1函数依赖
(3)函数依赖的语义范畴的概念我们只能根据语义来确定一个函数依赖,而不能按照其形式化定义来证明一个函数依赖是否成立。
(4)函数依赖关系的存在与时间无关
(5)函数依赖可以保证关系分解的无损连接性⒉函数依赖的基本性质
(1)投影性根据平凡的函数依赖的定义可知,一组属性函数决定它的所以子集。例如,在关系SDC中,(SNO,CNO)→SNO和(SNO,CNO)→CNO。说明:投影性产生的是平凡的函数依赖,需要时也能使用的。第十六页,共七十三页,2022年,8月28日4.2.1函数依赖
(2)扩张性若X→Y且W→Z,则(X,W)→(Y,Z)。例如,SNO→(SN,AGE),DEPT→MN,则有(SNO,DEPT)→(SN,AGE,MN)。说明:扩张性实现了两函数依赖决定因素与被决定因素的分别合并作用。
(3)
合并性若X→Y且X→Z则必有X→(Y,Z)。例如,在关系SDC中,SNO→(SN,AGE),SNO→DEPT,则有SNO→(SN,AGE,DEPT)。说明:决定因素相同的两函数依赖被决定因素的可以合并。第十七页,共七十三页,2022年,8月28日4.2.1函数依赖
(4)分解性若X→(Y,Z),则X→Y且X→Z。很显然,分解性为合并性的逆过程。说明:决定因素能决定全部,当然也能决定全部中的部分。由合并性和分解性,很容易得到以下事实:
X→A1,A2,…,An成立的充分必要条件是X→Ai(i=1,2,…,n)成立。
第十八页,共七十三页,2022年,8月28日4.2.1函数依赖
3.完全/部分函数依赖和传递/非传递函数依赖定义4.2
设有关系模式R(U),U是属性全集,X和Y是U的子集,X→Y,并且对于X的任何一个真子集X',都有X‘
Y,则称Y对X完全函数依赖(FullFunctionalDependency),
记作XfY。如果对X的某个真子集X',有X'→Y,则称Y对X部分函数依赖(PartialFunctionalDependency),记作XpY
第十九页,共七十三页,2022年,8月28日4.2.1函数依赖
定义4.3
设有关系模式R(U),U是属性全集,X,Y,Z是U的子集,若X→Y,但YX,而Y→Z,(YX)则称Z对X传递函数依赖(TransitiveFunctionalDependency),记作:XtZ
注意:如果有Y→X,则XY,这时称Z对X直接函数依赖,而不是传递函数依赖。
综上所述,函数依赖可以有不同的分类,即有如下之分:平凡的函数依赖与非平凡的函数依赖;完全函数依赖与部分函数依赖;传递函数依赖与非传递函数依赖(即直接函数依赖),这些是比较重要的概念,它们将在关系模式的规范化进程中作为准则的主要内容而被使用到。第二十页,共七十三页,2022年,8月28日4.2.2码
定义4.4
设K为R(U,F)中的属性或属性集合,若Kf
U,则K为R的候选码(或候选关键字或候选键)(Candidatekey)。若候选码多于一个,则选定其中的一个为主码(或称主键,Primarykey).包含在任何一个候选码中的属性,叫做主属性(Primeattribute)。不包含在任何候选码中的属性称为非主属性(Nonprimeattribute)或非码属性(Non-keyattribute)。在最简单的情况,单个属性是码。最极端的情况,整个属性组U是码,称为全码(All-key)。
第二十一页,共七十三页,2022年,8月28日4.2.2码
已知关系模式R(U,F),如何来找出R的所有候选键呢?方法的步骤为:1、查看函数依赖集F中的每个形如Xi→Yi的(i=1,……,n)函数依赖关系。看哪些属性在所有Yi(i=1,……,n)中没有出现过,设没出现过的属性集为P(P=U-Y1-Y2……-Yn)。则当P=φ(表示空集)时,转4;当P≠φ时,转2。2、根据候选键的定义,候选键中应必含P(因为没有其它属性能决定P)。考察P,若有PfU成立,则P为候选键,并且候选键只有一个P(考虑一下为什么呢?),转5结束;若PfU不成立,则转3。
第二十二页,共七十三页,2022年,8月28日4.2.2码3、P可以分别与{U-P}中的每一个属性合并,形成P1,P2,……,Pm。再分别判断Pj
fU(j=1,……,m)是否成立?能成立则找到了一个候选键,没有则放弃。合并一个属性若不能找到或不能找全候选键,可进一步考虑P与{U-P}中的两个(或三个,四个,……)属性的所有组合分别进行合并,继续判断分别合并后的各属性组对U的完全函数决定情况……;如此直到找出R的所有候选键为止。转5结束。(需要提醒的是:如若属性组K已有Kf
U,则完全不必去考察含K的其它属性组合了,显然它们都不可能再是候选键了)。
第二十三页,共七十三页,2022年,8月28日4.2.2码4、若P=φ,则可以先考察Xi→Yi(i=1,……,n)中的单个Xi,判断是否有Xi
fU?若成立则Xi为候选键。剩下不是候选键的Xi,可以考察它们两个或多个的组合,查看其是否能完全函数决定U,从而找出其它还有可能的候选键。转5结束。5、本方法结束。
定义4.5
关系模式R中属性或属性组X并非R的主码,但X是另外一个关系模式S的主码,则称X是R的外部码或外部关系键(ForeignKey),也称外码。
第二十四页,共七十三页,2022年,8月28日4.2.3范式
规范化的基本思想是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、删除与修改时发生的异常现象。这就要求关系数据库设计出来的关系模式要满足一定的条件。我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同的标准或准则称为范式(NormalForm)。满足最低要求的叫第一范式,简称1NF。当把某范式看成是满足该范式的所有关系模式的集合时,各个范式之间的集合关系可以表示为:一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
第二十五页,共七十三页,2022年,8月28日4.2.4第一范式
第一范式(FirstNormalForm)是最基本的规范化形式,即关系中每个属性都是不可再分的简单项。定义4.6
如果关系模式R所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简称1NF,记作R∈1NF。在关系数据库系统中只讨论规范化的关系,凡是非规范化的关系模式必须转化成规范化的关系。在非规范化的关系中去掉组合项就能转化成规范化的关系。每个规范化的关系都是属于1NF。
第二十六页,共七十三页,2022年,8月28日4.2.5第二范式
1.第二范式的定义定义4.7如果关系模式R∈1NF,R(U,F)中的所有非主属性都完全函数依赖于任意一个候选关键字,则称关系R是属于第二范式(SecondNormalForm),简称2NF,记作R∈2NF。从定义可知,满足第二范式的关系模式R中,不可能有某非主属性对某候选关键字存在部分函数依赖.分析SDC关系模式,它的候选码是(sno,cno),非主属性(sn,age,dept,mn,score)(Sno,cno)f
score(Sno,cno)p
sn(Snof
sn)(Sno,cno)p
age(Sno,cno)p
dept(Sno,cno)p
mn
所以该关系模式不属于第二范式第二十七页,共七十三页,2022年,8月28日4.2.5第二范式2.2NF的规范化
2NF规范化是指把1NF关系模式通过投影分解,消除非主属性对候选关键字的部分函数依赖,转换成2NF关系模式的集合的过程。注意:如果R的候选关键字均为单属性,或R的全体属性均为主属性,则R∈2NF。将SDC关系模式分解成连个关系模式SD(sno,sn,sge,dept,mn)描述学生实体Sc(sno,cno,score)描述学生与课程的联系第二十八页,共七十三页,2022年,8月28日4.2.5第二范式规范化结果SD(sno,sn,sge,dept,mn)Sc(sno,cno,score)SNO(5)SN(8)AGE(4)DEPT(8)MN(8)S1赵红20计算机张文斌S2王小明17计算机张文斌S3吴小林19计算机张文斌SNO(5)CNO(3)SCORE(4)S1C190S1C285S1C357S2C180S2C273S2C370S3C175S3C270S3C385规范化前总字节数=(5+8+4+8+8+3+4)*9=360B规范化后总字节数=(5+8+4+8+8)*3+(5+3+4)*9=99+108=207B第二十九页,共七十三页,2022年,8月28日4.2.5第二范式异常问题缓解数据冗余(减轻,但仍存在)
-系名和系负责人重复存储3次,sc中课程号重复存储3次,学号重复3次更新异常(减轻,但仍存在)
-修改计算机系负责人仍要修改3次插入异常(减轻,但仍存在)
-计算机系成立,没有招生,无法插入(未解决)
-招生完毕,学生尚未选修课程,可以插入学生基本信息表删除异常(减轻,但仍存在)
--取消选修,未删除学生信息
--删除系中学生,仍然活导致系的信息丢失。(未解决)第三十页,共七十三页,2022年,8月28日4.2.6第三范式1.第三范式的定义定义4.8如果关系模式R∈2NF,R(U,F)中所有非主属性对任何候选关键字都不存在传递函数依赖,则称R是属于第三范式(ThirdNormalForm),简称3NF,记作R∈3NF。
第三范式具有如下性质:
(1)如果R∈3NF,则R也是2NF。
(2)如果R∈2NF,则R不一定是3NF。
第三十一页,共七十三页,2022年,8月28日4.2.6第三范式
2NF的关系模式解决了1NF中存在的一些问题,但2NF的关系模式SDC在进行数据操作时,仍然存在下面一些问题:
1.数据冗余2.插入异常3.删除异常4.修改异常之所以存在这些问题,是由于在SD中存在着非主属性对候选关键字的传递依赖。消除这种依赖就转换成了3NF。
2.3NF的规范化
3NF规范化是指把2NF关系模式通过投影分解,消除非主属对候选关键字的传递函数依赖,而转换成3NF关系模式集合的过程。方法:将起传递关系作用函数关系中的主属性(决定方)和非主属性取出单独构成一个关系模式,再将它的决定方和关系式中余下的属性,加上主码,构成另外一个模式。第三十二页,共七十三页,2022年,8月28日4.2.6第三范式对SD关系进行规范化由于只有系负责人(mn)传递函数依赖于sno(snodept,deptmn)故分解得到
D(dept,mn)S(sno,sn,age,dept)DEPT(8)MN(8)计算机张文斌SNO(5)SN(8)AGE(4)DEPT(8)S1赵红20计算机S2王小明17计算机S3吴小林19计算机第三十三页,共七十三页,2022年,8月28日4.2.6第三范式异常问题缓解数据冗余降低-规范前学生情况总字节数(5+8+4+8+8)*3=99B-规范后学生+系总字节数(5+8+4+8)*3+(8+8)=91B更新异常不再
-修改计算机系负责人只修改条记录即可插入异常不再
-计算机系成立可插入系,不需要招生。删除异常不再--删除系中学生,系的信息不会丢失。第三十四页,共七十三页,2022年,8月28日进一步优化将作为外码的字段所占空间减少,即减少重复项的空间占用。例:将系名用系号表示(2B)DNO(2)DEPT(8)MN(8)
CD计算机张文斌SNO(5)SN(8)AGE(4)DNO(2)S1赵红20CDS2王小明17CDS3吴小林19CD优化前总字节数91B优化后总字节数=(5+8+4+2)*3+(2+8+8)=57+18=75B第三十五页,共七十三页,2022年,8月28日4.2.7BC范式1、存在问题的3NF示例例4.3设有关系模式SCS(SNO,SN,CNO,SCORE)假设不重名候选码?(SNO,CNO)和(SN,CNO)
SCS属于第三范式?函数依赖关系图?存在的问题?数据冗余较大,修改异常原因?存在主属性对候选码的部分函数依赖解决办法?消除主属性对候选码的部分函数依赖SNOSNSNOCNOOSCORESNCNOOSCORE第三十六页,共七十三页,2022年,8月28日4.2.7BC范式1.BC范式的定义定义4.9
如果关系模式R∈1NF,且所有的函数依赖X→Y(Y不包含于X,即YX),决定因素X都包含了R的一个候选码,则称R属于BC范式(Boyce-CoddNormalForm),记作R∈BCNF。由BCNF的定义可以得到以下结论,一个满足BCNF的关系模式有:
(1)所有非主属性对每一个候选码都是完全函数依赖。
(2)所有的主属性对每一个不包含它的候选码都是完全函数依赖。(非平凡的函数依赖)
(3)没有任何属性完全函数依赖于非码的任何一组属性。第三十七页,共七十三页,2022年,8月28日4.2.7BC范式
BCNF规范化实例
设有关系模式STK(S,T,K),S表示学生,T表示教师,K表示课程。假设每一位教师只讲授一门课程;每门课程由多个教师讲授;某一学生选定某门课程,就对应一个确定的教师。STK的函数依赖是:(S,K)→T,(S,T)→K,T→K候选码:(S,K)和(S,T)且两个候选码有交集s
关系中的所有属性都是主属性?STK属于第三范式(完美吗?)STK不属于BCNF范式(T→K,T是决定因素,而T不包含候选码)STK的问题:
1)插入异常:
--新生入校,未选修课程,不能插入(K是主属性不能为空)
--新开的课,还未有学生选修,不能插入?第三十八页,共七十三页,2022年,8月28日4.2.7BC范式2)删除异常
--选修过课程的学生全部毕业,学生信息要被删除,相对应教师和课程信息也被删除。造成教师和课程信息丢失。3)数据冗余大
--如一个教师只上一门课,但所有选修该课程的学生都要反复记录这个信息。4)修改复杂
--课程名改,所有选修过该课程的学生所在元组都要改。第三十九页,共七十三页,2022年,8月28日4.2.7BC范式改进将属于第三范式的STK关系采用投影分解法分为两个关系,STK
分解为ST(S,T)其中S是码S→TTK(T,K)其中T是码T→K实际上这一过程消除了原有的主属性传递函数依赖于码和部分函数依赖于码。(前提是一个教师只教授一门课,所以不存在一个学生对应两个教师的情形,否则一个教师就要上两门以上的课程了。)第四十页,共七十三页,2022年,8月28日4.2.7BC范式缓解:1)ST关系中可以存储未选修课程的学生,TK关系可以存储未有学生选修的课程—插入异常缓解2)选修过某门课程的学生全部毕业,只会删除ST中相应的元组不影响TK中教师开课的信息—删除异常缓解3)每个教师开设课程信息只在TK中存储一次—降低冗余4)选课或改名,只在TK中修改一个元组—简化修改第四十一页,共七十三页,2022年,8月28日4.2.7BC范式3NF与BCNF关系1)如果关系模式R属于BCNF,则必属于3NF2)如果关系模式R属于3NF,且只有一个候选码,则R一定属于BCNF3)如果关系模式R属于3NF,R的候选码多于一个,但每个候选码只包含一个属性,则R一定属于BCNF3)如果关系模式R属于3NF,R的候选码多于一个,并且候选码包含多个属性时,则R可能不是BCNF
如:STK关系第四十二页,共七十三页,2022年,8月28日4.2.7BC范式
考察关系S(sno,sn,sex,age,dept)因为sn允许重名,故只有一个码sno,所以S属于BCNF。考察关系C(cno,cname,cpno,credit)因为cname不允许重名,故cno和cname都是码,但cno和cname都是单属性,不存在主属性的部分函数依赖和传递函数依赖所以C属于BCNF考察关系SC(sno,cno,score),(sno,cno)是码且是唯一的码,所以SC属于BCNF事实证明:只有两个属性的关系模式一定是BCNF第四十三页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF属于BCNF的关系模式函数依赖:一个完美的关系模式多值依赖例如:假设学校中一门课程可由多名教师教授,教学中他们使用相同的一套参考书,这样可用表1非规范化的关系来表示课程C、教师T、参考书R间的关系。课程C教师T参考书R数据库系统概论计算数学萨师煊王珊张平周峰数据库与应用数据库系统Sqlserver2000数学分析微分方程第四十四页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF用二维表表示课程C教师T参考书R数据库系统概论数据库系统概论数据库系统概论数据库系统概论数据库系统概论数据库系统概论计算数学计算数学计算数学计算数学萨师煊萨师煊萨师煊王珊王珊王珊张平张平周峰周峰数据库与应用数据库系统Sqlserver2000数据库与应用数据库系统Sqlserver2000数学分析微分方程数学分析微分方程第四十五页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF规范后的关系模式CTR,只有唯一的一个函数依赖(C,T,R)→U,所以该关系模式的码是全码,因而该关系模式属于BCNFCTR存在的问题:1)数据冗余课程、教师、参考书都被多次存储2)插入异常当某一课程增加一名任课教师,有多少参考书就必须插入几条元组。例如:计算数学增加一个任课教师王刚,需要插入两个元组。(计算数学,王刚,数学分析)(计算数学,王刚,微分方程)3)删除异常,若要删除某一门课程的参考书,与该参考书有关的元组都要被删除。第四十六页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF4)修改操作复杂
--某一门课要修改一本参考书,有几个教师任教就要修改几个元组。产生原因:参考书的取值和教师的取值是彼此毫无关系的,都只取决于课程名。第四十七页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF
前面所介绍的规范化都是建立在函数依赖的基础上,函数依赖表示的是关系模式中属性间的一对一或一对多的联系,但它并不能表示属性间多对多的关系,因而某些关系模式虽然已经规范到BCNF,仍然存在一些弊端,本节主要讨论属性间的多对多的联系即多值依赖问题,以及在多值依赖范畴内定义的第四范式。
1.多值依赖
(1)多值依赖的定义
第四十八页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF
定义4.10设有关系模式R(U),U是属性全集,X,Y,Z是属性集U的子集,且Z=U-X-Y,如果对于R的任一关系,对于X的一个确定值,存在Y的一组值与之对应,且Y的这组值仅仅决定于X的值而与Z值无关,此时称Y多值依赖于X,或X多值决定Y,记作:X→→Y。
在多值依赖中,若X→→Y且Z=U-X-Y≠φ,则称X→→Y是非平凡的多值依赖,否则称为平凡的多值依赖。(是非平凡的多值依赖涉及到所有属性)
第四十九页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF如:在关系模式CTR中,对于某一C、R属性值组合(数据库系统概论,数据库系统)来说,有一组T值{萨师煊,王珊},这组值仅仅决定与课程C上的值(数据库系统概论)。也就是说,对于另一个C、R属性值组合(数据库系统概论,SQLServer2000),它对应的一组T值仍是{萨师煊,王珊},尽管这时参考书R的值已经改变了。因此T多值依赖于C,即:C→→T。第五十页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF下面是多值依赖的另一形式化定义:设有关系模式R(U),U是属性全集,X、Y、Z是属性集合U的子集,且Z=U-X-Y,r是关系模式R的任一关系,t,s是r的任意两个元组,如果t[X]=s[X],r中必有的两个元组u、v存在,使得:①s[x]=t[X]=u[X]=v[X]②u[Y]=t[Y]且u[Z]=s[Z]③v[Y]=s[Y]且v[Z]=t[Z]
则称X多值决定Y或Y多值依赖于X。(2)多值依赖与函数依赖的区别第五十一页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF
①在关系模式R中,函数依赖X→Y的有效性仅仅决定与X、Y这两个属性集,不涉及第三个属性集,而在多值依赖中,X→→Y在属性集U(U=X+Y+Z)上是否成立,不仅要检查属性集X、Y上的值,而且要检查属性集U的其余属性Z上的值。因此,如果X→→Y在属性集W(WU)上成立,而在属性集U上不一定成立,所以,多值依赖的有效性与属性集的范围有关。如果在R(U)上有X→→Y,在属性集W(W包含U)上也成立,则称X→→Y为R(U)的嵌入型多值依赖。②如果在关系模式R上存在函数依赖X→Y,则任何Y'包含于Y均有X→Y'成立,而多值依赖X→→Y在R上成立,但不能断言对于任何Y'包含于Y有X→→Y'成立。
第五十二页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF(3)多值依赖的性质①多值依赖具有对称性。即若X→→Y,则X→→Z,其中Z=U-X-Y。②多值依赖具有传递性。即若X→→Y,Y→→Z,则X→→Z-Y。③函数依赖可看作是多值依赖的特殊情况。即若X→Y,则X→→Y。④函数依赖合并性。即若X→→Y,X→→Z,则X→→YZ。⑤多值依赖分解性。即若X→→Y,X→→Z,则X→→(Y∩Z),X→→Y-Z,X→→Z-Y均成立。这说明,如果两个相交的属性子集均多值依赖于另一个属性子集,则这两个属性子集因相交而分割成的三部分也都多值依赖于该属性子集。第五十三页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF2.第四范式(4NF)(1)第四范式(4NF)的定义定义4.11
设有一关系模式R(U),U是其属性全集,X、Y是U的子集,D是R上的数据依赖集。如果对于任一多值依赖X→→Y,此多值依赖是平凡的,或者X包含了R的一个候选码,则称关系模式R是第四范式的,记作:R∈4NF。
经过上面分析可以得知:一个BCNF的关系模式不一定是4NF,而4NF的关系模式必定是BCNF的关系模式,即4NF是BCNF的推广,4NF范式的定义涵盖了BCNF范式的一定。
第五十四页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF
(2)4NF的分解
把一个关系模式分解为4NF的方法与分解为BCNF的方法类似,就是当把一个关系模式利用投影的方法消去非平凡且非函数依赖的多值依赖,并具有无损连接性。
第五十五页,共七十三页,2022年,8月28日4.2.8多值依赖与4NF
数据依赖和多值依赖是两种最重要的数据依赖。如果只考虑函数依赖,则属于BCNF的关系模式的规范化程度已经是最高了。如果考虑多值依赖,则属于4NF的关系模式化程度是最高的。事实上,数据依赖中除了函数依赖和多值依赖之外,还有其他的数据依赖如连接依赖。函数依赖是多值依赖的一种特殊情况,而多值依赖实际上又是连接依赖的一种特殊情况。但连接依赖不像函数依赖和多值依赖那样可由语义直接导出,而是在关系的连接运算时才反映出来。存在连接依赖的关系模式仍可能遇到数据冗余及插入、修改、删除异常问题。如果消除了属于4NF的关系中存在的连接依赖,则可以进一步达到5NF的关系模式。本书不再讨论连接依赖和5NF这方面的内容.第五十六页,共七十三页,2022年,8月28日4.2.9规范化小结
规范化就是对原关系进行投影,消除决定属性不是候选码的任何函数依赖。一个关系只要其分量都是不可分的数据项,就可称作规范化的关系,也称作1NF。消除1NF关系中非主属性对码的部分函数依赖,得到2NF;消除2NF关系中非主属性对码的传递函数依赖,得到3NF;消除3NF关系中主属性对码的部分函数依赖和传递函数依赖,便可得到一组BCNF关系
规范化目的是使结构更合理,消除异常,使数据冗余尽量小,便于插入、删除和修改。原则是遵从概念单一化“一事一地”原则,即一个关系模式描述一个实体或实体间的一种联系。
第五十七页,共七十三页,2022年,8月28日
4.2.9规范化小结
规范的实质就是概念的单一化。方法是将关系模式投影分解成两个或两个以上的关系模式。要求:分解后的关系模式集合应当与原关系模式“等价”,即经过自然联接可以恢复原关系而不丢失信息,并保持属性间合理的联系。注意:一个关系模式的不同分解可以得到不同关系模式集合,也就是说分解方法不是唯一的。最小冗余的要求必须以分解后的数据库能够表达原来数据库所有信息为前提来实现。其根本目标是节省存储空间,避免数据不一致性,提高对关系的操作效率,同时满足应用需求。第五十八页,共七十三页,2022年,8月28日4.3数据依赖的公理系统
数据依赖的公理系统是模式分解算法的理论基础,下面先讨论函数依赖的一个有效而完备的公理系统——Armstrong公理系统。定义4.12
对于满足一组函数依赖F的关系模式R(U,F),其任何一个关系r,若函数依赖X→Y都成立(即r中任意两元组t,s,若t[X]=s[X],则t[Y]=s[Y]),则称F逻辑蕴涵X→Y。
Armstrong公理系统设U为属性集总体,F是U上的一组函数依赖,于是有关系模式R(U,F)。对R(U,F)来说有以下的推理规则:
第五十九页,共七十三页,2022年,8月28日4.3数据依赖的公理系统l
A1自反律(Reflexivity):若YXU,则X→Y为F所蕴含。l
A2增广律(Augmentation):若X→Y为F所蕴含,且ZU,则XZ→YZ为F所蕴含。l
A3传递律(Transitivity):若X→Y及Y→Z为F所含,则X→Z为F所蕴含。注意:由自反律所得到的函数依赖均是平凡的函数依赖,自反律的使用并不依赖于F。
定理4.1Armstrong推理规则是正确的。下面从定义出发证明推理规则的正确性。第六十页,共七十三页,2022年,8月28日4.3数据依赖的公理系统证:(1)YXU。对R(U,F)的任一关系r中的任意两个元组t,s:若t[X]=s[X],由于YX,有t[Y]=s[Y],所以X→Y成立,自反律得证。(2)X→Y为F所蕴含,且ZU。设R(U,F)的任一关系r中的任意两个元组t,s:若t[XZ]=s[XZ],则有t[X]=s[X]和t[Z]=s[Z];由X→Y,于是有t[Y]=s[Y],所以t[YZ]=s[YZ],所以XZ→YZ为F所蕴含,增广律得证。(3)
设X→Y及Y→Z为F所蕴含。设R(U,F)的任一关系r中的任意两个元组t,s:若t[X]=s[X],由X→Y,有t[Y]=s[Y];再由Y→Z,有t[Z]=s[Z],所以X→Z为F所蕴含,传递律得证。
第六十一页,共七十三页,2022年,8月28日4.3数据依赖的公理系统
根据A1,A2,A3这三条推理规则可以得到下面很有用的推理规则:
合并规则:由X→Y,X→Z,X→YZ。伪传递规则:由X→Y,WY→Z,有XW→Z。分解规则:由X→Y及ZY,有X→Z。根据合并规则和分解规则,很容易得到这样一个重要事实:引理4.1X→…成立的充分必要条件是X→成立(i=1,2,…k)。定义4.13
在关系模式R(U,F)中为F所蕴含的函数依赖的全体叫做F的闭包,记为:F+
第六十二页,共七十三页,2022年,8月28日4.3数据依赖的公理系统
人们把自反律,传递律和增广律称为Armstrong公理系统。Armstrong公理系统是有效的、完备的。Armstrong公理的有效性指的是:由F出发根据Armstrong公理推导出来的每一个函数依赖一定在F+中;完备性指的是F+中的每一个函数依赖,必定可以由F出发根据Armstrong公理推导出来。要证明完备性,就首先要解决如何判定一个函数依赖是否属于由F根据Armstrong公理推导出来的函数依赖集合。当然,如果能求出这个集合,问题就解决了。但不幸的是,这是个NP完全问题。比如从F={X→
,…,X→
}出发,至少可以推倒出个不同的函数依赖,为此引出了下面的概念:
第六十三页,共七十三页,2022年,8月28日4.3数据依赖的公理系统
定义4.14
设F为属性集U上的一组函数依赖,X包含于U,Xf+={A|X→A能由F根据Armstrong公理导出},Xf+成为属性集X关于函数依赖集F的闭包。由引理4.1容易得出:引理4.2
设F为属性集U上的一组函数依赖,X,Y包含于U,X→Y能由F根据Armstrong公理导出的充分必要条件是Y包含于
Xf+
。于是,判定X→Y是否能由F根据Armstrong公理推导出的问题,就转化为求出Xf+
的子集的问题。这个问题由算法4.1解决了。第六十四页,共七十三页,2022年,8月28日
由于本节内容为选学内容因此其它内容略,具体内容见书4.3数据依赖的公理系统第六十五页,共七十三页,2022年,8月28日4.4小结
本章讨论如何设计关系模式问题。关系模式设计有好与坏之分的,其设计好坏与数据冗余度和各种数据异常问题直接相关。本章在函数依赖、多值依赖的范畴内讨论了关系模式的规范化,在整个讨论过程中,只采用了两种关系运算——投影和自然连接。关系模式在分解时应保持“等价”,有数据等价和语义等价两种,分别用无损分解和保持依赖两个特征来衡量。前者能保持泛关系在投影联接以后仍能恢复回来,而后者能保证数据在投影或联接中其语义不会发生变化。第六十六页,共七十三页,2022年,8月28日4.4小结范式是衡量关系模式优劣的标准,范式表达了模式中数据依赖应满足的要求。要强调的是,规范化理论主要为数据库设计提供了理论的指南和参考工具,并不是关系模式规范化程度越高,实际应用该关系模式就越好,实际上必须结合应用环境和现实世界的具体情况合理地选择数据库模式的范式等级。本章最后还简介了模式分解相关的理论基础——数据依赖的公理系统。
第六十七页,共七十三页,2022年,8月28日习题
一、选择题1、关系模式中数据依赖问题的存在,可能会导致库中数据插入异常,这是指()。A.插入了不该插入的数据B.数据插入后导致数据库处于不一致状态C.该插入的数据不能实现插入D.以上都不对2、若属性X函数依赖于属性Y时,则属性X与属性Y之间具有()的联系。A.一对一B.一对多C.多对一D.多对多3、关系模式中的候选键()。A.有且仅有一个B.必然有多个C.可以有一或多个D.以上都不对4、规范化的关系模式中,所有属性都必须是()。A.相互关联的B.互不相关的C.不可分解的D.长度可变的5、设关系模式R{A,B,C,D,E},其上函数依赖集F={AB→C,DC→E,D→B},则可导出的函数依赖是()。
A.AD→E
B.BC→E
C.DC→AB
D.DB→A第六十八页,共七十三页,2022年,8月28日6、设关系模式R属于第一范式,若在R中消除了部分函数依赖,则R至少属于()。A.第一范式B.第二范式C.第三范式D.第四范式7、若关系模式R中的属性都是主属性,则R至少属于()。A.第三范式B.BC范式C.第四范式D.第五范式8、下列关于函数依赖的叙述中,哪一个是不正确的。A.由X→Y,X→Z,有X→YZB.由XY→Z,有X→Z或X→ZC.由X→Y,WY→Z,有XW→ZD.由X→Y及Z⊆Y,有X→Z9、在关系模式R(A,B,C)中,有函数依赖集F={AB→C,BC→A},则R最高达到()。A.第一范式B.第二范式C.第三范式D.BC范式10、设有关系模式R(A,B,C),其函数依赖集F={A→B,B→C},则关系R最高达到()。
A.1NFB.2NFC.3NFD.BCNF习题
第六十九页,共七十三页,2022年,8月28日二、填空题1、数据依赖主要包括________依赖、________依赖和连接依赖。2、一个不好的关系模式会存在___________、________
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度电子商务平台客服人员试用期劳动合同样本3篇
- 2024年度学校食堂卫生管理与消毒服务合同2篇
- 2024年度商标转让合同的知识产权变更手续3篇
- 2024年度商场红酒品鉴活动组织合同2篇
- 2024年城市基础设施建设三方共同投资股份合同3篇
- 2024年度设备采购合同付款方式与进度2篇
- 2024年度船舶建造买卖合同技术参数3篇
- 2024年度股权转让中介合同3篇
- 2024年度公司租赁场地合同范本6篇
- 2024年度特许经营合同-餐饮连锁企业3篇
- GB/T 29309-2012电工电子产品加速应力试验规程高加速寿命试验导则
- GB 29216-2012食品安全国家标准食品添加剂丙二醇
- 齐鲁工业大学信息管理学成考复习资料
- 公务员面试-自我认知与职位匹配课件
- 中频电治疗仪操作培训课件
- 柔弱的人课文课件
- 动物寄生虫病学课件
- 电梯曳引系统设计-毕业设计
- 三度房室传导阻滞护理查房课件
- 讲课比赛精品PPT-全概率公式贝叶斯公式-概率论与数理统计
- 药理学39人工合成抗菌药课件
评论
0/150
提交评论