《数据库整理》第4章关系数据库理论.ppt

上传人:牧羊曲112 文档编号:5898638 上传时间:2023-09-01 格式:PPT 页数:30 大小:492KB
返回 下载 相关 举报
《数据库整理》第4章关系数据库理论.ppt_第1页
第1页 / 共30页
《数据库整理》第4章关系数据库理论.ppt_第2页
第2页 / 共30页
《数据库整理》第4章关系数据库理论.ppt_第3页
第3页 / 共30页
《数据库整理》第4章关系数据库理论.ppt_第4页
第4页 / 共30页
《数据库整理》第4章关系数据库理论.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《《数据库整理》第4章关系数据库理论.ppt》由会员分享,可在线阅读,更多相关《《数据库整理》第4章关系数据库理论.ppt(30页珍藏版)》请在三一办公上搜索。

1、第4章 关系数据库理论,2,4.1 规范化问题的提出4.2 函数依赖4.3 关系模式的分解*4.4 关系模式的范式4.5 关系模式的规范化,3,4.1 规范化问题的提出,4.1.1 规范化理论的主要内容关系数据库的规范化理论 函数依赖范式(Normal Form)模式设计,核心,是模式分解和设计的基础,模式分解的标准衡量关系模式分解以后模式的好坏,设计一个合适的关系数据库系统,关键是关系数据库模式的设计。其包含多少关系模式、每个关系模式包括的属性、以及关系模式间的联系,将决定数据库系统的运行效率。而这些工作需要在关系数据库的规范化理论的指导下逐步完成。,4,4.1.2 不合理的关系模式存在的存

2、储异常问题,教学管理数据库SCD(SNo,SN,Age,Dept,MN,CNo,Score)在此关系模式中填入一部分具体的数据,5,该表出现的问题,数据冗余 插入异常 删除异常 更新异常,根本原因:属性间存在着数据依赖关系,包罗万象,6,一个好的关系模式应该具备以下四个条件:(1)尽可能少的数据冗余;(2)没有插入异常;(3)没有删除异常;(4)没有更新异常。,SCD(SNo,SN,Age,Dept,MN,CNo,Score),S(SNo,SN,Age,Dept),SC(SNo,CNo,Score),D(Dept,MN),关系模式分解:,原来的关系模式SCD称为泛模式,用一个大表存放所有数据,

3、易于查询。但各种数据混在一起,数据间相互关联,导致维护困难。我们可以通过关系模式分解,得到更好的关系模式。,按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系数据库模式,这就是关系的规范化。,7,4.2 函数依赖,4.2.1 函数依赖的定义 对于关系模式SCD SNo决定函数(SN,Age,Dept)(SN,Age,Dept)函数依赖于SNo,SCD(SNo,SN,Age,Dept,MN,CNo,Score),SNo,一个学生,SN,Age,Dept,惟一确定,惟一确定,关系模式中各属性之间相互依赖、相互制约的联系称为数据依赖。一般分为函

4、数依赖、多值依赖和连接依赖,其中函数依赖是最重要的数据依赖。函数依赖(Functional Dependency,FD)是关系模式中属性之间的一种逻辑依赖关系。在关系模式分解中,函数依赖起着重要的作用。,8,函数依赖的定义定义4.1 设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y是U的子集,如果对于R(U)的任意一个可能 关系r,对于X的每一个具体值,Y都有一个唯一的具体值与之对应,则称X决定函数Y,或Y函数依赖于X,记作XY。我们称X为决定因素、Y为依赖因素。当Y不函数依赖于X时,记作:X Y。当XY且YX时,则记作:XY。,U,X,Y,9,函数依赖,完全函数依赖,部分函

5、数依赖,传递函数依赖,10,4.2.4 完全函数依赖与部分函数依赖,设有关系模式R(U),U是属性全集,X和Y是U的子集:如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖,记作X Y。如果XY,并且对于X的某个真子集X,有XY,则称Y对X部分函数依赖,记作X Y。在关系模式SCD中,因为SNo Score,且CNo Score,所以有:(SNo,CNo)Score。而SNoAge,所以(SNo,CNo)Age,f,p,f,p,只有当决定因素是组合属性时,讨论部分函数依赖才有意义,当决定因素是单属性时,只能是完全函数依赖。,11,4.2.5 传递函数依赖,设有关系模式R

6、(U),U是属性全集,X,Y,Z是U的子集 若XY,但Y X,而YZ(Y X,Z Y),则称Z对X传递函数依赖,记作:X Z。如果YX,则X Y,这时称Z对X直接函数依赖,而不是传递函数依赖。例如:在关系模式SCD中,SNoDep,但Dept Sno,而DeptMN,则有Sno MN。,t,t,此处略过关系模式分解的详细过程如有兴趣可参见教材各具体的算法。,12,13,4.4 关系模式的范式,各种范式之间的关系,关系模式分解以后模式的好坏,用什么标准衡量?这个标准就是模式的范式(Normal Forms,NF)关系模式规范化的基本思想就是消除数据冗余,消除数据依赖导致的插入、删除等异常。我们把

7、关系模式规范化的过程中为不同程度的规范化要求设立的不同标准称为范式。由于规范化程度不同,就产生了不同的范式。,14,4.4.1 第一范式,定义4.14 如果关系模式R所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简称1NF,记作R1NF。1NF是关系模式应具备的最起码的条件。第一范式可能具有大量的数据冗余,具有插入异常、删除异常和更新异常等弊端。如关系模式SCD属于1NF,它既存在完全函数依赖,又存在部分函数依赖和传递函数依赖。克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行转换。,15,4.4.2 第二范式,第二范式的定义 如

8、果关系模式R1NF,且每个非主属性都完全函数依赖于R的主关系键,则称R属于第二范式,简称2NF,记作R2NF。如:关系模式TCS(T,C,S)关系键(T,C,S);主属性 T、C、S 不存在非主属性对主关系键的部分函数依赖,因此属于2NF。,从1NF关系中消除非主属性对主关系键的部分函数依赖,则可得到2NF,如果R的关系键为单属性,或R的全体属性均为主属性,则R2NF,16,2NF规范化 2NF规范化是指把1NF关系模式通过投影分解,转换成2NF关系模式的集合。例4-15 将SCD(SNo,SN,Age,Dept,MN,CNo,Score)规范为2NF。,学生SD(SNo,SN,Age,Dep

9、t,MN),学生与课程联系SC(SNo,CNo,Score),SCD,非主属性对主键完全函数依赖。因此,SD2NF,SC2NF。,17,2NF的缺点,数据冗余,插入异常,删除异常,更新异常,每个系名和系主任的名字存储的次数等于该系的学生人数,当一个新系没有招生时,有关该系的信息无法插入,某系学生全部毕业而没有招生时,删除全部学生的记录也随之删除了该系的有关信息,更换系主任时,仍需改动较多的学生记录,之所以存在这些问题,是由于在SD中存在着非主属性对主键的传递函数依赖。SNOSN,SNoAge,SNoDept,DeptMN,SNo MN,即非主属性MN对主键SNo传递函数依赖。为此,对关系SD,

10、还需进一步简化,消除这种传递函数依赖,这样就得到了3NF。,t,18,4.4.3 第三范式,第三范式的定义 如果关系模式R2NF,且每个非主属性都不传递函数依赖于R的主关系键,则称R属于第三范式,简称3NF,记作R3NF。如:SC(SNo,CNo,Score)函数依赖为(SNo,CNo)Score,非主属性Score不传递函数依赖于主关系键(SNo,CNo),因此,SC3NF。又如:SD(SNo,SN,Age,Dept,MN)SNoDep和DeptMN SNo MN 非主属性MN与主关系键SNo间存在着传递函数依赖,所以SD 3NF。,主关系键,非主属性,t,非主属性,主关系键,19,此处略去

11、3NF规范化算法过程,通过语义分析可知,关系SD实际上描述了两个实体,一个为学生实体,属性有SNo,SN,Age,Dept;另一个为系别的实体,其属性有Dept和MN,分解后的两个关系如下图所示。消除了非主属性对主关系键的传递函数依赖,均属于3NF。S(SNO,SN,Age,Dept)描述学生实体;D(Dept,MN)描述系的实体。,3NF解决了2NF中存在的四个问题:,数据冗余降低了,不存在删除异常,不存在更新异常,不存在插入异常,SCD规范到3NF后,所存在冗余,插入、删除、更新等常现象已经全部消失了。但3NF只限制了非主属性对于键的依赖关系,而没有限制主属性对键的依赖关系。如果发生这种依

12、赖,仍有可能导致冗余、插入删除等异常。这时,就需要对3NF进一步规范化,消除主属性对于键的依赖关系。为此,Boyce和Codd共同提出Boyce-Codd范式,简称BCNF或B范式,弥补了3NF的不足。,20,21,4.4.4 BC范式,BC范式的定义 如果关系模式R1NF,且所有的函数依赖XY(Y X),决定因素X都包含了R的一个候选键,则称R属于BC范式,记作RBCNF。BCNF具有如下性质:如果RBCNF,则R也是3NF。如果R3NF,则R不一定是BCNF。例4-18 设有关系模式SNC(SNo,SN,CNo,Score)无重名的情况下,有两个候选键(Sno,CNo)和(SN,CNo)。

13、唯一的非主属性Score对键不存在部分函数依赖和传递函数依赖,所以SNC3NF。但是,SNo SN即决定因素Sno或SN不包含候选键,从另一角度说,存在着主属性对键的部分函数依赖:(SNo,CNo)SN,(SN,CNo)SNo,所以SNC不是BCNF。,22,分解S1(SNo,SN),S2(SNo,CNo,Score)代替SNC。分解结果为:S1(SNo,SN)描述学生实体;S2(SNo,CNo,Score)描述学生与课程的联系。例4-20 设有关系模式TCS(T,C,S)候选键:(S,C)和(S,T)函数依赖是:F=(S,C)T,(S,T)C,TC 分解TC(T,C),ST(S,T)代替TC

14、S,消除了函数依赖(S,T)C,STBCNF,TCBCNF,BCNF规范化,以上我们完全是在函数依赖的范畴内讨论问题。属于BCNF的关系模式是否就很完美了呢?,23,前面所介绍的规范化都是建立在函数依赖的基础上,函数依赖表示的是关系模式属性间一对一或一对多的联系,但它并不能表示属性间的多对多的关系,因而某些关系模式虽然已经规范到了BCNF,但仍然存在一些弊端。,24,4.4.5 多值依赖与第四范式,多值依赖的定义 假设学校中一门课程可由多名教师讲授,教学中他们使用相同的一套参考书。,关系CTB,25,CTB转化成规范化的关系如下图所示:C与T间的联系被称为多值依赖。多个T对应一个C,同样C和B

15、之间也存在着类似的联系。一个确定的C值,与其所对应的一组T值与B值无关,数据冗余大,插入异常,删除异常,关系模型TEACHING(C,T,B)的码是(C,T,B),即All_Key。因而TEACHINGBCNF。,26,定义4.18 设有关系模式R(U),U是属性全集,X、Y、Z是属性集U的子集,且Z=UXY如果对于R的任一关系,对于X的一个确定值,存在Y的一组值与之对应,且Y的这组值仅仅决定于X的值而与Z值无关,此时称Y多值依赖于X,或X多值决定Y,记作XY。若XY且Z=UXY,则称XY是非平凡的多值依赖,否则称为平凡的多值依赖。,27,第四范式(4NF)定义 定义4.19 设有一关系模式R

16、(U),U是其属性全集,X、Y是U的子集,D是R上的数据依赖集。如果对于任一多值依赖XY,此多值依赖是平凡的,或者X包含了R的一个候选关键字,则称R是第四范式的关系模式,记为R4NF。,一个BCNF的关系模式不一定是4NF,4NF的关系模式必定是BCNF的关系模式,4NF是BCNF的推广,由此定义可知:关系模式CTB分解后产生的CTB1(C,T)和CTB2(C,B)中,因为CT,CB均是平凡的多值依赖,所以CTB1和CTB2都是4NF。,28,4.5 关系模式的规范化,一个低一级范式的关系模式,通过模式分解转化为若干个高一级范式的关系模式的集合,这种分解过程叫作关系模式的规范化。关系模式规范化的目的和原则规范化的目的就是使结构合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。规范化的基本原则就是遵循“一事一地”的原则,即一个关系只描述一个实体或实体间的联系。,29,4.5.2 关系模式规范化的步骤,规范化过程,30,4.5.3 关系模式规范化的要求,关系模式的规范化过程是通过对关系模式的投影分解来实现的。在这些分解中,只有保证分解后的关系模式与原关系模式是等价的,才有意义。等价的三种标准:分解要具有无损连接性;分解要具有函数依赖保持性;分解既要具有无损连接性,又要具有函数依赖保持性。,保证不丢失信息,减轻或解决各种异常情况,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号