关系模式设计基础_第1页
关系模式设计基础_第2页
关系模式设计基础_第3页
关系模式设计基础_第4页
关系模式设计基础_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

关系模式设计基础第一页,共五十七页,编辑于2023年,星期日属性之间的联系描述应当具有某种“内在”性质,不能只根据属性之间的某些外在关联表征,随意将一些属性放在一起组成一个关系模式,这样将可能引发一系列问题,其中最突出的就是数据冗余以及由此带来的操作异常。也就是说,如果数据模式设计不当,就会出现数据冗余;有了数据冗余,就可能产生操作异常。

第5章关系模式设计基础:

5.1模式设计与数据冗余

5.1模式设计与数据冗余第二页,共五十七页,编辑于2023年,星期日数据冗余(DataRedundancy)是指同一数据在一个或者多个数据文件中重复存储。系统中如果出现数据冗余,不仅会大量占用消耗系统资源,造成不必要开销,更严重的是会带来各种数据操作异常,对数据库性能正常发挥造成极大影响。第5章关系模式设计基础:

5.1模式设计与数据冗余

5.1.1数据冗余与操作异常第三页,共五十七页,编辑于2023年,星期日从数据结构的角度考察,如果对多个文件之间和同一个文件中数据之间的联系考虑不周或者处理不当,就有可能导致数据冗余。这里有两个层面上的问题:●多个文件之间的联系。●同一个文件中数据之间的联系。第5章关系模式设计基础:

5.1模式设计与数据冗余

5.1.2数据冗余产生原因第四页,共五十七页,编辑于2023年,星期日关系数据库较好地处理了文件层面的联系,但并不意味着数据层面上的联系可以自动解决。恰恰相反,此时,第二个层面上问题反而会凸现出来。在关系数据库中,同一关系模式中各个属性子集之间的依赖关系,通常称为数据依赖(DataIndependence)。关系系统当中数据冗余产生的重要原因就在于对数据依赖处理不当,也就是在于关系模式本身的结构设计可能存在缺陷。第5章关系模式设计基础:

5.1模式设计与数据冗余

5.1.2数据冗余产生原因第五页,共五十七页,编辑于2023年,星期日关系数据库中数据依赖的考虑来源于关系结构本身。在关系模式中,各个属性一般说来是有关联的,但是这些关联有着不同的表现形式。①一部分属性的取值能够决定这个关系表中所有其它属性的取值,也就是部分属性构成的子集合与关系的整个属性集合的关联。事实上,一个关系可以有一个或者多个候选键,其中一个可以选为主键。主键的值唯一确定其它属性的值,它是一个元组存在的标识,也是各个元组相互区别的标识。既然作为“标识”,其取值就必须“确定无疑”,所以候选键的值不可重复出现,也不能全部或者部分设为空值。第5章关系模式设计基础:

5.1模式设计与数据冗余

5.1.2数据冗余产生原因第六页,共五十七页,编辑于2023年,星期日②一部分属性的取值决定表中其它若干属性的取值,也就是一些部分属性组成的子集合与另一些部分属性组成的子集合的关联。这种数据关联可以看作是关系结构中“候选键”问题的推广,而通常所讲的“数据依赖”主要是指这种意义下的问题。第5章关系模式设计基础:

5.1模式设计与数据冗余

5.1.2数据冗余产生原因第七页,共五十七页,编辑于2023年,星期日解决关系数据库冗余问题的基本方案就是分析研究属性之间的联系,按照每个关系中属性间满足某种内在语义条件,以及相应运算当中表现出来某些特定要求,也就是按照属性间联系所处的规范等级来构造关系模式。由此产生的一整套有关理论称之为关系模式规范化理论或关系模式设计理论。在数据管理中,数据冗余一直是影响系统性能的重大问题,规范化理论就成为关系数据库模式设计中的核心部分。第5章关系模式设计基础:

5.1模式设计与数据冗余

5.1.3解决问题思路第八页,共五十七页,编辑于2023年,星期日1基本概念设R(U)是属性集U上的关系模式,X和Y分别是U的属性子集。r是R(U)中任意给定的一个关系实例。若对于r中任意两个元组s和t,当s[X]=t[X]时,就有s[Y]=t[Y],则称属性子集X函数决定属性子集Y或者称Y函数依赖X。第5章关系模式设计基础:

5.2函数依赖

5.2函数依赖5.2.1函数依赖及相关概念(1)第九页,共五十七页,编辑于2023年,星期日当Y函数依赖于X时,则记为X→Y。如果X→Y,也称X为决定因素(Determinantfactor),Y为依赖因素(Dependentfactor)。当Y不函数依赖于X,则记为X/→Y如果X→Y,且Y→X,则记为X←→Y。第5章关系模式设计基础:

5.2函数依赖

5.2.1函数依赖及相关概念(2)第十页,共五十七页,编辑于2023年,星期日2.函数依赖三种类型(1)平凡与非平凡函数依赖如果X→Y,但Y不是X的子集,则称X→Y是非平凡函数依赖,否则称为平凡函数依赖。按照函数依赖的定义,当Y是X的子集时,Y“自然”是函数依赖于X的,这里“依赖”不反映任何新的语义。通常意义下的函数依赖一般都是指非平凡依赖。第5章关系模式设计基础:

5.2函数依赖

5.2.1函数依赖及相关概念(3)第十一页,共五十七页,编辑于2023年,星期日(2)部分与完全函数依赖如果X→Y,但对于X中的任意一个真子集X‘,都有Y不依赖于X’,则称Y完全依赖于X。当Y完全依赖于X时,记为XY。如果X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记为XY。第5章关系模式设计基础:

5.2函数依赖

5.2.1函数依赖及相关概念(4)第十二页,共五十七页,编辑于2023年,星期日(3)传递与直接函数依赖设有两个非平凡函数依赖X→Y和Y→Z,并且X不函数依赖于Y,则称Z传递函数(TransitiveFunctionalDependency)依赖于X。在上述定义中,X不函数依赖于Y意味着X与Y不是一一对应;否则Z就是直接函数依赖于X,而不是传递函数依赖于X了。第5章关系模式设计基础:

5.2函数依赖

5.2.1函数依赖及相关概念(5)第十三页,共五十七页,编辑于2023年,星期日3.键的形式化定义(1)超键设有关系模式R(U),K是R(U)中的属性子集,如果K→U,则称K为R的超键(2)候选键设有关系模式R(U),K是R(U)中的属性子集,如果KU,则称K为R的候选键

第5章关系模式设计基础:

5.2函数依赖

5.2.1函数依赖及相关概念(6)第十四页,共五十七页,编辑于2023年,星期日(3)主键一个关系模式R的候选键可以有多个。如果在其中选定一个,则称该候选键为主键。(4)外键设U属性子集k不是关系模式R的候选键,但是另一个关系模式S的候选键,则称k是R的外键。第5章关系模式设计基础:

5.2函数依赖

5.2.1函数依赖及相关概念(7)第十五页,共五十七页,编辑于2023年,星期日为了表述简洁和推理方便,在本章的以下部分,对有关记号使用做如下约定:●如果声明X、Y等是属性子集,则将X∪Y简记为XY。●如果声明A、B等是属性,则将集合{A,B}简记为AB。第5章关系模式设计基础:

5.2函数依赖

5.2.2函数依赖集闭包(1)第十六页,共五十七页,编辑于2023年,星期日●如果声明X是属性集,A是属性,则将X∪{A}简记为XA或AX。以上是针对两个对象的情形,对于多个对象也做类似约定。●关系模式简记为三元组R(U,F),其中U为模式的属性集合,F为模式给定的函数依赖集合。第5章关系模式设计基础:

5.2函数依赖

5.2.2函数依赖集闭包(2)第十七页,共五十七页,编辑于2023年,星期日函数依赖集合F的逻辑蕴含设有关系模式R(U,F),又设X和Y是属性集合U的两个子集,如果对于R中每个满足F的关系r也满足X→Y,则称F逻辑蕴含X→Y,记为F╞X→Y。第5章关系模式设计基础:

5.2函数依赖

5.2.2函数依赖集闭包(3)第十八页,共五十七页,编辑于2023年,星期日函数依赖集合F的闭包设F是函数依赖集合,被F逻辑蕴含的函数依赖的全体构成的集合,称为函数依赖集F的闭包(Closure),记为F+,即F+={X→Y|F╞X→Y}在一般情况下,成立F⊆F+。如果有F=F+,则称F是函数依赖的完备集合。第5章关系模式设计基础:

5.2函数依赖

5.2.2函数依赖集闭包(4)第十九页,共五十七页,编辑于2023年,星期日为了建立基于函数依赖的语法系统,从而求得已知函数依赖集合F的闭包F+,W.W.Armstrong于1974年提出了一套推导规则。使用这套规则,可以由已有的函数依赖逻辑推导出新的函数依赖。后来又经过不断完善,形成了著名的“Armstrong公理系统”,为关系模式设计提供了一个有效并且完备的理论基础。第5章关系模式设计基础:

5.2函数依赖

5.2.3Armstrong公理系统(1)第二十页,共五十七页,编辑于2023年,星期日(1)基本公理Armstrong公理系统有3条基本公理:●A1(自反律,reflexivity):如果YXU,则X→Y在R上成立。●A2(增广律,augmentation):如果X→Y在R上成立,且ZU,则XZ→YZ。●A3(传递律,Transitivity):如果X→Y和Y→Z在上成立,则X→Z在R上也成立。第5章关系模式设计基础:

5.2函数依赖

5.2.3Armstrong公理系统(2)第二十一页,共五十七页,编辑于2023年,星期日(2)推理规则●A4(合并性规则union):{X→Y,X→Z}ᅡX→YZ。●A5(分解性规则decomposition):{X→Y,ZY}ᅡX→Z。●A6(拟传递性规则pseudotransivity):{X→Y,WY→Z}ᅡWX→Z。第5章关系模式设计基础:

5.2函数依赖

5.2.3Armstrong公理系统(3)第二十二页,共五十七页,编辑于2023年,星期日●A7(复合性规则compositionrule):{X→Y,W→Z}ᅡWX→YZ。●A8(通用一致性规则generalunificationrule):{X→Y,W→Z}╞X(W-Y)→YZ。

第5章关系模式设计基础:

5.2函数依赖

5.2.3Armstrong公理系统(4)第二十三页,共五十七页,编辑于2023年,星期日设F和G是关系模式R上的两个函数依赖集,如果所有为F所蕴含的函数依赖都为G所蕴含,即F+是G+的子集:F+G+,则称G是F的覆盖。如果G是F的函数覆盖,同时F又是G的函数覆盖,即F+=G+,则称F和G是相互等价的函数依赖集。第5章关系模式设计基础:

5.2函数依赖

5.2.4最小函数依赖集Fmin

:覆盖(1)第二十四页,共五十七页,编辑于2023年,星期日当G是F的覆盖时,只要实现了G中的函数依赖,就自动实现了F中的函数依赖。当F和G等价时,只要实现了其中一个的函数依赖,就自动实现了另一个的函数依赖。第5章关系模式设计基础:

5.2函数依赖

5.2.4最小函数依赖集Fmin

:覆盖(2)第二十五页,共五十七页,编辑于2023年,星期日对于一个函数依赖集F,称函数依赖集Fmin为F的最小函数依赖集,如果Fmin满足下述条件:①Fmin与F等价:F+min=F+。②Fmin中每个函数依赖X→Y的依赖因素Y为单元素集,即Y只含有一个属性。第5章关系模式设计基础:

5.2函数依赖

5.2.4最小函数依赖集Fmin

:概念(1)第二十六页,共五十七页,编辑于2023年,星期日③Fmin中每个函数依赖X→Y的决定因素X没有冗余,即只要删除X中任何一个属性就会改变Fmin的闭包F+min,。顺便说一句,一个具有如此性质的函数依赖称为是左边不可约的。④Fmin中每个函数依赖都不是冗余的,即删除Fmin中任何一个函数依赖,就将Fmin变为了另一个不等价于Fmin的集合。第5章关系模式设计基础:

5.2函数依赖

5.2.4最小函数依赖集Fmin

:概念(2)第二十七页,共五十七页,编辑于2023年,星期日最小函数依赖集Fmin实际上是函数依赖集F的一种没有“冗余”的标准或规范形式。定义中的“①”表明F和Fmin具有相同的“功能”;“②”表明Fmin中每一个函数依赖都是“标准”的,即其中依赖因素都是单属性子集;第5章关系模式设计基础:

5.2函数依赖

5.2.4最小函数依赖集Fmin

:概念(3)第二十八页,共五十七页,编辑于2023年,星期日“③”表明Fmin中每一个函数依赖的决定因素都没有冗余的属性;“④”表明Fmin中没有可以从F的剩余函数依赖中导出冗余的函数依赖。第5章关系模式设计基础:

5.2函数依赖

5.2.4最小函数依赖集Fmin

:概念(4)第二十九页,共五十七页,编辑于2023年,星期日①由分解性规则A5得到一个与F等价的函数依赖集G,G中任意函数依赖的依赖因素都是单属性集合。②在G的每一个函数依赖中消除决定因素中的冗余属性。③在G中消除冗余的函数依赖。第5章关系模式设计基础:

5.2函数依赖

5.2.4最小函数依赖集Fmin

:算法(1)第三十页,共五十七页,编辑于2023年,星期日例5-7设有关系模式R(U,F),其中U=ABC,F={A→BC,B→C,A→B,AB→C},按照上述算法,可以求出Fmin。第5章关系模式设计基础:

5.2函数依赖

5.2.4最小函数依赖集Fmin

:算法(2)第三十一页,共五十七页,编辑于2023年,星期日①将F中所有函数依赖的依赖因素写成单属性集形式:G={A→B,A→C,B→C,A→B,AB→C}这里多出一个A→B,可以删掉,得到:G={A→B,A→C,B→C,AB→C}。第5章关系模式设计基础:

5.2函数依赖

5.2.4最小函数依赖集Fmin

:算法(3)第三十二页,共五十七页,编辑于2023年,星期日②G中的A→C可以从A→B和B→C推导出来,A→C是冗余的,删掉A→C可得:G={A→B,B→C,AB→C}③G中的AB→C可以从B→C推导出来,是冗余的,删掉AB→C最后得:G={A→B,B→C}所以F的最小函数依赖集Fmin={A→B,B→C}。第5章关系模式设计基础:

5.2函数依赖

5.2.4最小函数依赖集Fmin

:算法(4)第三十三页,共五十七页,编辑于2023年,星期日函数依赖是关系模式中数据依赖语义范围较小但很基本的一个部分。函数依赖引起的问题主要是数据冗余及其数据操作异常,解决的办法是进行关系模式的合理分解。那么,分解时应当遵循怎样的思路?分解到怎样的程度才算是“规范”模式?

第5章关系模式设计基础:

5.4关系模式范式

5.4关系模式范式第三十四页,共五十七页,编辑于2023年,星期日1.第一范式——1NF如果一个关系模式R中每个属性值都是一个不可分解的数据量,则称该关系模式满足第一范式(FirstNormalForm),记为R∈1NF。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(1)第三十五页,共五十七页,编辑于2023年,星期日2.第2范式如果关系模式R(U)∈1NF,并且R(U)中的每一个非主属性完全函数依赖于R(U)的候选键,则称该关系模式R(U)满足第二范式,记为R(U)∈2NF。由定义,第二范式的实质是要从第一范式中消除非主属性对键的部分函数依赖。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(2)第三十六页,共五十七页,编辑于2023年,星期日不满足第二范式的关系模式R中存在非主属性对键的部分函数依赖,即存在X→Y,其中Y是非主属性,X是键K的真子集,

第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(3)第三十七页,共五十七页,编辑于2023年,星期日

分解成2NF模式集的算法

设关系模式R(U),主键是K,R上还存在FDX→Z,并且Z是非主属性和XK,那么K→Z就是一个局部依赖。此时应把R分解成两个模式

R1(XZ),主键是X;

R2(Y),其中Y=U-Z,主键仍是K,外键是X(REFERENCESR1)。 利用外键和主键的联接可以从R1和R2重新得到R。 如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中每一个关系模式都是2NF为止。

第5章关系模式设计基础:

5.4关系模式范式第三十八页,共五十七页,编辑于2023年,星期日(1)第三范式的概念如果关系模式R(U)∈1NF,且R(U)中的每一个非主属性都不传递依赖于R的候选键,则称关系模式R(U)属于第三范式,记为R(U)∈3NF。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(4)第三十九页,共五十七页,编辑于2023年,星期日

如果关系模式R(U)不满足3NF,则其中一定存在着非主属性Y对键K的传递依赖,此时有着下述三种情形:●存在X→Y,其中Y是非主属性,X是键K的真子集,这实际上是一种基于部分依赖的传递依赖,其示意如前图所示。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(5)第四十页,共五十七页,编辑于2023年,星期日●存在X→Y,其中Y是非主属性,而X既非超键,又非键K的真子集,但X和键K的交集非空。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(6)第四十一页,共五十七页,编辑于2023年,星期日●存在X→Y,其中Y是非主属性,而X既不是超键,又不是键的真子集,但X和键K的交集为空。。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(7)第四十二页,共五十七页,编辑于2023年,星期日模式分解为3NF模式集算法设有R(U),K是主键,X→Z是R(U)函数依赖,Z是非主属性集且不是X的子集,而X不是候选键,此时K→Z是R(U)的传递依赖。将R(U)分解为新关系模式:●R1(XZ),主键是X。●R2(Y),其中Y=U-Z,主键是K,外键是X。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(8)第四十三页,共五十七页,编辑于2023年,星期日4.BC范式设关系模式R(U)∈1NF,如果R(U)中每一个属性都不传递依赖于R(U)的候选键,则称关系模式R(U)满足Boyce-Codd范式,简称BC范式,记为R(U)∈BCNF。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(9)第四十四页,共五十七页,编辑于2023年,星期日由定义可以知道,非BC范式有下面情形:●属性A含于某键W当中,属性集X与键K的交集非空,且X→A。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(10)第四十五页,共五十七页,编辑于2023年,星期日●属性A含于某键K中,属性集X与键K的交集为空,且X→A。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(11)第四十六页,共五十七页,编辑于2023年,星期日BC范式算法①如果ρ中有一个关系模式Ri相对于(F)不是BCNF,则Ri中存在非平凡函数依赖X→Y,使得X不包含超键。此时将Ri分解为XY和Ri-Y两个模式。②重复上述步骤直到ρ中每一个模式都是BCDF。第5章关系模式设计基础:

5.4关系模式范式

5.4.1函数依赖与范式(12)第四十七页,共五十七页,编辑于2023年,星期日(1)多值依赖概念设有关系模式R(U),X、Y是属性集U中的两个子集,而r是R(U)中任意给定的一个关系实例r。如果有下述条件成立,则称Y多值依赖于X,记为X→→Y:①对于r在X上的一个确定的值(元组),都有r在Y中一组值与之对应。②Y的这组对应值与r在Z=U-X-Y中属性值无关。第5章关系模式设计基础:

5.4关系模式范式

5.4.2多值依赖与4范式(1)第四十八页,共五十七页,编辑于2023年,星期日此时,如果X→→Y,但Z=U-X-Y≠Φ,则称其为非平凡多值依赖,否则称为平凡多值依赖。平凡多值依赖的一个常见情形是U=X∪Y,此时Z=Φ,多值依赖定义中关于X→→Y的要求总是满足的。第5章关系模式设计基础:

5.4关系模式范式

5.4.2多值依赖与4范式(2)第四十九页,共五十七页,编辑于2023年,星期日“①”说明X与Y之间的对应关系是相当宽泛的,即X一个值所对应的Y值的个数没有作任何强制性规定,Y值的个数可以是从零到任意多个自然数,是“一对多”的情形。“②”说明这种“宽泛性”应当受必要的限制,即X所对应的Y的取值与U-X-Y无关,是一种特定的“一对多”情形。确切地说,如果用形式化语言描述,则有:第5章关系模式设计基础:

5.4关系模式范式

5.4.2多值依赖与4范式(3)第五十页,共五十七页,编辑于2023年,星期日在R(U)中如果存在X→→Y,则对R中任意一个关系实例r,当元组s和t属于r,并且在X上的投影相等:s[X]=t[X],此时由s=s[X]+s[Y]+s[U-X-Y]和t=t[X]+t[Y]+t[U-X-Y]可以做出两个新元组:u=s[X]+t[Y]+s[U-X-Y]和v=t[X]+s[Y]+t[U-X-Y]则u和v还应当属于r。第5章关系模式设计基础:

5.4关系模式范式

5.4.2多值依赖与4范式(4)第五十一页,共五十七页,编辑于2023年,星期日第5章关系模式设计基础:

温馨提示

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

评论

0/150

提交评论