《数据库整理》第4章关系数据库理论_第1页
《数据库整理》第4章关系数据库理论_第2页
《数据库整理》第4章关系数据库理论_第3页
《数据库整理》第4章关系数据库理论_第4页
《数据库整理》第4章关系数据库理论_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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时,则记作:X

5、Y。,U,X,Y,9,函数依赖,完全函数依赖,部分函数依赖,传递函数依赖,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,只有当决定因素是组合属性时,讨论部分函数依赖才有意义,当决定因素是单属性时,只

6、能是完全函数依赖。,11,4.2.5 传递函数依赖,设有关系模式R(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,它既存在完全函数依赖,又存在部分函数依赖和传递函数依赖 。 克服这些弊端的方法是用投影运算将关系分解,去掉过于

8、复杂的函数依赖关系,向更高一级的范式进行转换。,15,4.4.2 第二范式,第二范式的定义 如果关系模式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

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

10、SNoAge,SNoDept,DeptMN, SNo MN,即非主属性MN对主键SNo传递函数依赖。为此,对关系SD,还需进一步简化,消除这种传递函数依赖,这样就得到了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 非

11、主属性MN与主关系键SNo间存在着传递函数依赖,所以SD 3NF。,主关系键,非主属性,t,非主属性,主关系键,19,此处略去3NF规范化算法过程,通过语义分析可知,关系SD实际上描述了两个实体,一个为学生实体,属性有SNo,SN,Age,Dept;另一个为系别的实体,其属性有Dept和MN,分解后的两个关系如下图所示。 消除了非主属性对主关系键的传递函数依赖,均属于3NF。 S(SNO,SN,Age,Dept)描述学生实体; D(Dept,MN)描述系的实体。,3NF解决了2NF中存在的四个问题:,数据冗余降低了,不存在删除异常,不存在更新异常,不存在插入异常,SCD规范到3NF后,所存在冗

12、余,插入、删除、更新等常现象已经全部消失了。 但3NF只限制了非主属性对于键的依赖关系,而没有限制主属性对键的依赖关系。如果发生这种依赖,仍有可能导致冗余、插入删除等异常。 这时,就需要对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不

13、一定是BCNF 。 例4-18 设有关系模式SNC(SNo,SN,CNo,Score) 无重名的情况下,有两个候选键(Sno,CNo)和(SN,CNo)。唯一的非主属性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)描述学生与课程的联系。

14、例4-20 设有关系模式TCS(T,C,S) 候选键 :(S,C)和(S,T) 函数依赖是 :F=(S,C)T,(S,T)C,TC 分解TC(T,C),ST(S,T)代替TCS,消除了函数依赖(S,T) C ,STBCNF,TCBCNF,BCNF规范化,以上我们完全是在函数依赖的范畴内讨论问题。属于BCNF的关系模式是否就很完美了呢?,23,前面所介绍的规范化都是建立在函数依赖的基础上,函数依赖表示的是关系模式属性间一对一或一对多的联系,但它并不能表示属性间的多对多的关系,因而某些关系模式虽然已经规范到了BCNF,但仍然存在一些弊端。,24,4.4.5 多值依赖与第四范式,多值依赖的定义 假设

15、学校中一门课程可由多名教师讲授,教学中他们使用相同的一套参考书。,关系CTB,25,CTB转化成规范化的关系如下图所示: C与T间的联系被称为多值依赖 。 多个T对应一个C,同样C和B之间也存在着类似的联系。 一个确定的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值

16、无关,此时称Y多值依赖于X,或X多值决定Y,记作XY。 若XY且Z=UXY,则称XY是非平凡的多值依赖,否则称为平凡的多值依赖 。,27,第四范式(4NF)定义 定义4.19 设有一关系模式R(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 关系模式的规范化,一个低一级范式的关系模式,通过模式分解转化为若干个高一级范式的关系模式的集合,这种分解过程叫作关系模式的规范化。 关系模式规范化的目的和原则 规范化的目的就是使结构合理,消除

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论