关系数据库的规范化设计(ch4)_第1页
关系数据库的规范化设计(ch4)_第2页
关系数据库的规范化设计(ch4)_第3页
关系数据库的规范化设计(ch4)_第4页
关系数据库的规范化设计(ch4)_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

第四章

关系数据库的规范化设计第4章关系数据库的规范化设计关系数据库的规范化设计是指如何选择一个

比较好的关系模式集合.规范化设计理论主要包括三个方面的内容:

数据依赖、范式和模式设计方法.其中数据依赖起着核心的作用.数据依赖研究数据之间的联系,范式是关系模式的标准.规范化设计理论对关系数据库结构的设计起着重要的作用.4.1.1关系模型的外延和内涵外延就是通常所说的关系、表或当前值.由于用户经常对关系进行插入、删除和修改操作,因此外延是与时间有关的,随着时间的推移在不断变化.内涵是与时间独立的,是对数据的定义以及数据完整性约束的定义.对数据的定义包括对关系、属性、域的定义和说明.对数据完整性约束的定义涉及面较广,主要包括以下几个方面:静态约束:涉及到数据之间联系(称为“数据依赖”)、主键和值域的设计.动态约束:定义各种操作(插入、删除、修改)对关系值的影响.4.1.2关系模式的冗余和异常问题例4.1TNAMEADDRESSC#CNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2c5n2t3a3c6n4数据冗余如果一个教师教几门课程,那么这个教师的地址就要重复存储几次。4.1.2关系模式的冗余和异常问题操作异常修改异常

如教师t1教三门课程,在关系中就会有三个元组.如果他的地址变了,这三个元组中的地址都要改变.若有一个元组中的地址未更改,就会造成这个教师的地址不惟一.插入异常

如果一个教师刚调来,尚未分派教学任务,那么要将教师的姓名和地址存储到关系中去时,在属性C#和CNAME上将为空值.删除异常

如果要取消教师t3的教学任务,那么就要把这个教师的元组删去,同时也把t3的地址信息从表中删去了.4.1.2关系模式的冗余和异常问题TNAMEADDRESSTNAMEC#CNAMEt1a1t1c1n1t2a2t1c2n2t3a3t1c3n3

t2c4n4

t2c5n2

t3c6n4原因:由存在于模式中的某些数据依赖引起的.解决方法:通过分解关系模式来消除其中不合适的数据依赖.4.1.3关系模式的非形式化设计准则关系模式的设计应尽可能只包含有直接联系的属性,不要包含有间接联系的属性.关系模式的设计应尽可能使得相应关系中不出现插入、删除和修改等操作异常现象。如果出现异常,则要清楚地加以说明,并确保更新数据库的操作正确.关系模式的设计应尽可能使得相应关系中避免放置经常为空值的属性.关系模式的设计应尽可能使得关系的等值连接在主键和外键的属性上进行,并且保证连接以后不会生成额外的元组.4.2函数依赖

规范化规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。数据依赖

数据依赖:定义属性值间的相互关连(主要体现于值的相等与否),它是数据库模式设计的关键.是现实世界属性间相互联系的抽象是数据内在的性质是语义的体现

数据依赖的类型函数依赖(FunctionalDependency,简记FD)多值依赖(MultivaluedDependency,简记MVD)4.2.1函数依赖的定义(一)

定义4.1

设有关系模式R(U),X和Y是属性集U的子集,函数依赖是形为X→Y的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FDX→Y在关系模式R(U)中成立.“X函数确定Y”或“Y函数依赖于X”,记作X→Y.4.2.1函数依赖的定义(二)例4.2

ABCDABCDa1b1c1d1a1b1c1d1a1b1c2d2a1b2c2d2a2b2c3d3a2b2c3d3a3b1c4d4a3b2c4d4图关系模式R的两个关系

函数依赖的说明:

1.

函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。2.

函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。

例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立3.

数据库设计者可以对现实世界作强制的规定。如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在,则拒绝装入该元组。4.2.1函数依赖的定义(三)例4.3有一个关于学生选课、教师任课的关系模式:R(S#,SNAME,C#,SCORE,CNAME,TNAME,TITLE)如果规定,每个学号只能有一个学生姓名,每个课程号只能决定一门课程,那么可写成下列FD形式:

S#→SNAME C#→CNAME每个学生每学一门课程,有一个成绩,那么可写出下列FD:(S#,C#)→SCOREC#→(CNAME,TNAME,TITLE)TNAME→TITLE……定义4.2

如果X→Y和Y→X同时成立,则可记为X←→Y.

即在关系中,X值和Y值具有一一对应关系.4.2.1函数依赖的定义(四)例4.3设有关系模式R(ABCD),在R的关系中,属性值有这样的联系:A值与B值有一对多联系,C值与D值之间有一对一联系,试根据这些规则写出相应的函数依赖.B→A,C→D,D→

C4.2.2FD的逻辑蕴涵定义4.3

设F是在关系模式R上成立的函数依赖的集合,X→Y是一个函数依赖。如果对于R的每个满足F的关系r也满足X→Y,那么称F逻辑蕴涵X→Y,记为:

F⊨X→Y.定义4.4

设F是函数依赖集,被F逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集F的闭包(closure),记为F+.

即F+={X→Y|记为F⊨X→Y.}4.2.3FD的推理规则(一)设U是关系模式R的属性集,F是R上成立的只涉及到U中属性的函数依赖集.

FD的推理规则有以下三条:A1(自反性,Reflexivity):

若Y

X

U,则X→Y在R上成立.A2(增广性,Augmentation):

若X→Y在R上成立,且Z

U,则XZ→YZ在R上成立.A3(传递性,Transitivity):

若X→Y和Y→Z在R上成立,则X→Z在R上成立。4.2.3FD的推理规则(二)定理4.1FD推理规则A1、A2和A3是正确的.即:如果X→Y是从F用推理规则导出的,那么X→Y在F+中.

定理4.2FD的其他5条推理规则:A4(合并性,Union):{X→Y,X→Z}⊨X→YZA5(分解性,Decomposition):{X→Y,Z

Y}⊨X→ZA6(伪传递性):{X→Y,WY→Z}⊨WX→ZA7(复合性,Reflexivity):{X→Y,W→Z}⊨XW→YZA8(通用一致性定理):{X→Y,W→Z}⊨X∪(W-Y)→YZ

平凡函数依赖与非平凡函数依赖

定义4.5

在关系模式R(U)中,对于U的子集X和Y,如果X→Y,但Y

X,则称X→Y是非平凡的FD若X→Y,但Y

X,则称X→Y是平凡的FD例:在关系SC(Sno,Cno,Score)中,

非平凡函数依赖:(Sno,Cno)→

Score

平凡函数依赖:(Sno,Cno)→

Sno

(Sno,Cno)→Cno4.2.4FD和关键码的联系定义4.6

设关系模式R的属性集是U,X是U的一个子集.如果X→U在R上成立,那么称X是R的一个超键.如果X→U在R上成立,但对于X的任一真子集X1都有X1→U不成立,那么称X是R上的一个候选键.本章的键都是指候选键FD和关键码的联系例4.6

在学生选课、教师任课的关系模式中:R(S#,SNAME,C#,SCORE,CNAME,TNAME,TITLE)

如果规定:每个学生每学一门课只有一个成绩;每个学生只有一个姓名;每个课程号只有一个课程名;每门课程只有一个任课教师.

根据这些规则,可以知道(S#,C#)能函数决定R的全部属性,并且是一个候选键。虽然(S#,SNAME,C#,TNAME)也能函数决定R的全部属性,但相比之下,只能说是一个超键,而不能说是候选键,因为其中含有多余属性。4.3关系模式的分解特性把低一级的关系模式分解为若干个高一级的关系模式只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义关系模式分解的标准:⒈分解具有无损连接性⒉分解要保持函数依赖⒊分解既要保持函数依赖,又要具有无损连接性4.3.2无损分解(一)例4.9rCC4343rABCr1AB2A111111112112图未丢失信息的分解

(b)(c)(a)

rABCr1ABr2AC

r1r2AB1141114111231213111212(a)(b)(c)(d)图丢失信息的分解

4.3.3无损分解的测试方法(一) 算法4.3无损分解的测试构造一张k行n列的表格,每列对应一个属性Aj(1≤j≤n),每行对应一个模式Ri(1≤i≤k)。如果Aj在Ri中,那么在表格的第i行第j列处填上符号aj,否则填上bij。把表格看成模式R的一个关系,反复检查F中每个FD在表格中是否成立,若不成立,则修改表格中的值。修改方法如下:对于F中一个FDX→Y,如果表格中有两行在X值上相等,在Y值上不相等,那么把这两行在Y值上也改成相等的值。如果Y值中有一个是aj,那么另一个也改成aj;如果没有aj,那么用其中一个bij替换另一个值(尽量把下标ij改成较小的数).一直到表格不能修改为止。(这个过程称为chase过程)若修改的最后一张表格中有一行是全a,即a1a2…an,那么称ρ相对于F是无损分解,否则称损失分解.4.3.3无损分解的测试方法(二)a4a3b32b31CDb24a3a2b21BCb14b13a2a1ABDCBAa4a3b32b31CDa4a3a2a1BCb14b13a2a1ABDCBA图4.12算法4.3的运用示意图(一)

(a)初始表格

(a)修改后的表格

a4a3b32b31CDb24a3a2b21BCb14b13a2a1ABDCBAa4a3b32b31CDa4a3a2b1BCb14b13a2b1ABDCBA(a)初始表格

(a)修改后的表格

图4.13算法4.3的运用示意图(二)

4.3.3无损分解的测试方法(三)定理4.8如果FDX→Y在模式R上成立,且X∩Y=φ,那么R分解成ρ={R-Y,XY}是无损分解.例4.13设关系模式R(ABC),ρ={AB,AC}是R的一个分解。试分析分别在F1={A→B},F2={A→C,B→C},F3={B→A},F4={C→B,B→A}情况下,ρ是否具有无损分解和保持FD的分解特性。相对于F1={A→B},分解ρ是无损分解且保持FD的分解。相对于F2

={A→C,B→C},分解ρ是无损分解,但不保持FD集。因为B→C丢失了。相对于F3

={B→A},分解ρ是损失分解但保持FD集的分解。相对于F4

={C→B,B→A},分解ρ是损失分解且不保持FD集的分解(丢失了C→B)4.4关系模式的范式关系模式的好与坏,用什么标准衡量?这标准就是模式的范式(NormalForms,简记为NF).范式是符合某一种级别的关系模式的集合.关系数据库中的关系必须满足一定的要求.满足不同程度要求的为不同范式.基于FD的范式有1NF、2NF、3NF、BCNF等多种.1NF是关系模式的基础;2NF已成为历史,一般不再提及;数据库设计中最常用的是3NF和BCNF.4.4.1第一范式(1NF)定义4.13

如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式(firstnormalform,简记为1NF)的模式。满足1NF的关系称为规范化的关系,否则称为非规范化的关系。例如:关系模式R(NAME,ADDRESS,PHONE),如果一个人有两个电话号码(PHONE),那么在关系中至少要出现两个元组,以便存储这两个号码。1NF是关系模式应具备的最起码的条件

4.4.2第二范式(2NF)(一)定义4.14

对于FDW→A,如果存在X⊂W有X→A成立,那么称W→A是局部依赖(A局部依赖于W);否则称W→A是完全依赖。完全依赖也称为“左部不可约依赖”.如果A是关系模式R的候选键中属性,那么称A是R的主属性;否则称A是R的非主属性.定义4.16

如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是第二范式(2NF)的模式.第二范式(2NF)(二)例:R(S#,C#,SCORE,T#,TITLE)

温馨提示

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

最新文档

评论

0/150

提交评论