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

下载本文档

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

文档简介

1、第四章 关系数据库的规范化设计第4章 关系数据库的规范化设计 关系数据库的规范化设计是指如何选择一个 比较好的关系模式集合. 规范化设计理论主要包括三个方面的内容: 数据依赖、范式和模式设计方法. 其中数据依赖起着核心的作用. 数据依赖研究 数据之间的联系,范式是关系模式的标准. 规范化设计理论对关系数据库结构的设计起 着重要的作用.4.1.1 关系模型的外延和内涵外延就是通常所说的关系、表或当前值. 由于用户经常对关系进行插入、删除和修改操作,因此外延是与时间有关的,随着时间的推移在不断变化.内涵是与时间独立的,是对数据的定义以及数据完整性约束的定义. 对数据的定义包括对关系、属性、域的定义

2、和说明.对数据完整性约束的定义涉及面较广,主要包括以下几个方面:静态约束: 涉及到数据之间联系(称为“数据依赖”)、主键和值域的设计.动态约束: 定义各种操作(插入、删除、修改)对关系值的影响. 4.1.2 关系模式的冗余和异常问题例4.1 TNAMEADDRESSC#CNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2c5n2t3a3c6n4 数据冗余 如果一个教师教几门课程,那么这个教师的地址就要重复存储几次。4.1.2 关系模式的冗余和异常问题操作异常修改异常 如教师t1教三门课程,在关系中就会有三个元组. 如果他的地址变了,这三个元组中的地址都要改变. 若

3、有一个元组中的地址未更改,就会造成这个教师的地址不惟一.插入异常 如果一个教师刚调来,尚未分派教学任务,那么要将教师的姓名和地址存储到关系中去时,在属性C#和CNAME上将为空值.删除异常 如果要取消教师t3的教学任务,那么就要把这个教师的元组删去,同时也把t3的地址信息从表中删去了.4.1.3 关系模式的非形式化设计准则 关系模式的设计应尽可能只包含有直接联系的属性,不要包 含有间接联系的属性. 关系模式的设计应尽可能使得相应关系中不出现插入、删除 和修改等操作异常现象。如果出现异常,则要清楚地加以说 明,并确保更新数据库的操作正确. 关系模式的设计应尽可能使得相应关系中避免放置经常为空 值

4、的属性 . 关系模式的设计应尽可能使得关系的等值连接在主键和外键 的属性上进行,并且保证连接以后不会生成额外的元组. 4.2 函数依赖 规范化 规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。 4.2.1 函数依赖的定义(一) 定义4.1 设有关系模式 R(U),X 和 Y 是属性集 U 的子集, 函数依赖是形为 XY 的一个命题, 只要 r 是 R 的当前关系,对 r 中任意两个元组 t 和 s,都有 tX=sX蕴涵 tY=sY,那么称FD XY在关系模式R (U)中成立. “X函数确定Y” 或 “Y函数依赖于X”

5、,记作XY.4.2.1 函数依赖的定义(二)例4.2 ABCDABCDa1b1c1d1a1b1c1d1a1b1c2d2a1b2c2d2a2b2c3d3a2b2c3d3a3b1c4d4a3b2c4d4图 关系模式R 的两个关系 函数依赖的说明: 1. 函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立3. 数据库设计者可以对现实世界作强制的规定。如 规定不允许同名人出现,函数依赖“姓名年龄”成立。所插入的元组必须满足规

6、定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。定义4.2 如果XY和YX同时成立,则可记为XY. 即在关系中,X值和Y值具有一一对应关系.4.2.1 函数依赖的定义(四)例4.3 设有关系模式R(ABCD),在R的关系中,属性值有这样 的联系:A值与B值有一对多联系,C值与D值之间有一 对一联系,试根据这些规则写出相应的函数依赖.B A, C D, D C4.2.2 FD的逻辑蕴涵定义4.3 设F是在关系模式R上成立的函数依赖的集合,XY是一个函数依赖。如果对于R的每个满足F的关系r也满足XY,那么称F逻辑蕴涵XY,记为: F XY.定义4.4 设F是函数依赖集,被 F 逻辑蕴涵的函数

7、依赖全体构成的集合,称为函数依赖集F的闭包(closure),记为F+.即 F+= XY |记为FXY. 4.2.3 FD的推理规则(二)定理4.1 FD推理规则A1、A2和A3是正确的.即:如果XY是从F用推理规则导出的,那么 XY在F+中. 定理4.2 FD的其他5条推理规则:A4(合并性,Union):XY , XZ XYZ A5(分解性,Decomposition):XY , ZY XZ A6(伪传递性):XY , WYZ WXZ A7(复合性,Reflexivity):XY , WZ XWYZ A8(通用一致性定理):XY , WZ X(W-Y)YZ 平凡函数依赖与非平凡函数依赖 定

8、义4.5 在关系模式R(U)中,对于U的子集X和Y,如果XY,但Y X,则称XY是非平凡的FD若XY,但Y X, 则称XY是平凡的FD例:在关系SC(Sno, Cno, Score)中, 非平凡函数依赖: (Sno, Cno) Score 平凡函数依赖: (Sno, Cno) Sno (Sno, Cno) Cno4.2.4 FD和关键码的联系定义4.6 设关系模式R的属性集是U,X是U的一个子集.如果XU在R上成立,那么称X是R的一个超键.如果XU在R上成立,但对于X的任一真子集X1都有X1U不成立,那么称X是R上的一个候选键.本章的键都是指候选键FD和关键码的联系例4.6 在学生选课、教师任

9、课的关系模式中:R(S#,SNAME,C#,SCORE,CNAME,TNAME,TITLE) 如果规定:每个学生每学一门课只有一个成绩;每个学生只有一个姓名;每个课程号只有一个课程名;每门课程只有一个任课教师. 根据这些规则,可以知道(S#,C#)能函数决定R的全部属性,并且是一个候选键。虽然(S#,SNAME,C#,TNAME)也能函数决定R的全部属性,但相比之下,只能说是一个超键,而不能说是候选键,因为其中含有多余属性。 4.3 关系模式的分解特性把低一级的关系模式分解为若干个高一级的关系模式只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义关系模式分解的标准: 分解具有无损连

10、接性 分解要保持函数依赖 分解既要保持函数依赖,又要具有无损连接性4.3.2 无损分解(一)例4.9rCC4343rABCr1AB2A111111112112图 未丢失信息的分解 (b)(c)(a) rABCr1ABr2AC r1r2AB1141114111231213111212(a)(b)(c)(d)图 丢失信息的分解 4.3.3 无损分解的测试方法(二)a4a3b32b31CDb24a3a2b21BCb14b13a2a1ABDCBAa4a3b32b31CDa4a3a2a1BCb14b13a2a1ABDCBA图4.12 算法4.3的运用示意图(一) (a) 初始表格 (a) 修改后的表格

11、a4a3b32b31CDb24a3a2b21BCb14b13a2a1ABDCBAa4a3b32b31CDa4a3a2b1BCb14b13a2b1ABDCBA(a) 初始表格 (a) 修改后的表格 图4.13 算法4.3的运用示意图(二) 4.3.3 无损分解的测试方法(三)定理4.8 如果FD XY在模式R上成立,且XY=,那么R分解成=RY,XY 是无损分解.4.4 关系模式的范式关系模式的好与坏,用什么标准衡量? 这标准就是模式的范式(Normal Forms,简记为NF).范式是符合某一种级别的关系模式的集合.关系数据库中的关系必须满足一定的要求. 满足不同程度要求的为不同范式.基于FD

12、的范式有1NF、2NF、3NF、BCNF等多种.1NF是关系模式的基础;2NF已成为历史,一般不再提及;数据库设计中最常用的是3NF和BCNF.4.4.1 第一范式(1NF)定义4.13 如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式(first normal form,简记为1NF)的模式。满足1NF的关系称为规范化的关系,否则称为非规范化的关系。例如: 关系模式R(NAME,ADDRESS,PHONE), 如果一个人有两个电话号码(PHONE),那么在关系中至少要出现两个元组,以便存储这两个号码。1NF是关系模式应具备的最起码的条件 4.4.2 第二范式(2NF)

13、(一)定义4.14 对于FD WA,如果存在XW有XA成立,那么称WA是局部依赖(A局部依赖于W);否则称WA是完全依赖。 完全依赖也称为“左部不可约依赖”.如果A是关系模式R的候选键中属性,那么称A是R的主属性;否则称A是R的非主属性.定义4.16 如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是第二范式(2NF)的模式. 第二范式(2NF)(二)例: R(S#,C#,SCORE,T#,TITLE) (S#,C#)是R的候选键。 R上有两个FD: (S#,C#)(SCORE, T#,TITLE), C#(T#,TITLE). C# S# SCORE T# TITLE非主

14、属性 T# 和 TITLE 局部函数依赖于码(S, C)第二范式(2NF)(三) 因此前一个FD是局部依赖,R不是2NF模式. 此时R的关系就会出现冗余和异常现象.数据冗余度大、插入异常、删除异常、修改复杂. 如果把R分解成 R1(C#,T#,TITLE) R2(S#,C#,SCORE)第二范式(2NF)(四) 局部依赖(S#,C#)(T#,TITLE)就消失了. R1和R2都是2NF模式. S#C#ScoreR2R1C#T#TITLE思考:如何分解模式至第二范式?第二范式(2NF)(五)分解成2NF模式集的算法:设关系模式R(U),主键是W,R上还存在FD XZ,并且Z是非主属性和XW,那么

15、WZ就是一个局部依赖。此时应把R分解成两个模式R1(XZ),主键是X;(存在FD XZ )R2(Y),其中Y=U-Z, 主键仍是W,外键是X(REFERENCES R1)。利用外键和主键的联接可以从R1和R2重新得到R.如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中每一个关系模式都是2NF为止. 4.4.3 第三范式(3NF)(一)定义4.17 如果XY,YA,且YX和 AY,那么称XA是传递依赖(A传递依赖于X).定义4.18 如果关系模式R是1NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。如果数据库模式中每个关系模式都是3NF,则称其为3

16、NF的数据库模式 .第三范式(3NF)(二)若存在函数依赖 C#T# 和 T#TITLE,那么C#TITLE 就是一个传递依赖,即R1不是3NF模式.此时R1的关系中也会出现冗余和异常操作。譬如一个教师开设五门课程,那么关系中就会出现五个元组,教师的地址就会重复五次.R1C#T#TITLE第三范式(3NF)(三)如果把R1分解成R11 (C#,T#) 和R12 (T#,TITLE)后,C#TITLE就不会出现在R11和R12中。这样R11和R12都是3NF模式。C#T#R11T#TITLER12思考:如何分解模式至第三范式?第三范式(3NF)(四)分解成3NF模式集的算法设关系模式R(U),主

17、键是W,R上还存在FD XZ. 并且Z是非主属性,ZX,X不是候选键,这样WZ就是一个传递依赖。此时应把R分解成两个模式:R1(XZ),主键是X; R2(Y),其中Y=U-Z, 主键仍是W, 外键是X(REFERENCES R1).利用外键和主键相匹配机制,R1和R2通过联接可以重新得到R.如果R1和R2还不是3NF,则重复上述过程,一直到数据库模式中每一个关系模式都是3NF为止. 第三范式(3NF)(五)若R3NF,则R的每一个非主属性既不局部函数依赖于候选码也不传递依赖于候选码.如果R3NF,则R也是2NF.定义4.22 设关系模式R,当R上每一个FD XY满足下列三个条件之一时:YXX是R的超键Y是主属性. 关系模式R就是3NF模式. 规范化(小结)关系模式规范化的基本步骤 1NF 消除非主属性对码的局部函数依赖消除决定属性 2NF集非码的非平 消除非主属性对码的传递函数依赖凡函数依赖 3NF 消除主属性对码的局部和传递函数依赖 BCNF 规范化的基本思想 消除不合适的数据依赖

温馨提示

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

评论

0/150

提交评论