数据库原理与应用教程NO.ppt
《数据库原理与应用教程NO.ppt》由会员分享,可在线阅读,更多相关《数据库原理与应用教程NO.ppt(57页珍藏版)》请在三一办公上搜索。
1、4.3 关系模式的分解*,4.3.1 模式分解问题,定义4.11 设有关系模式R(U),属性集为U,R1、Rk都是U的子集,并且有R1R2RkU。关系模式R1、Rk的集合用表示,=R1,Rk。用代替R的过程称为关系模式的分解。这里称为R的一个分解,也称为数据库模式。,泛关系模式R,r泛关系,数据库模式=R1,Rk,=r1,rk数据库实例(数据库),这里就有两个问题:和r是否等价?用“无损分解”表示。F1,Fk与F是否等价?用“保持依赖”表示。,计算机中的数据并不是存储在泛关系r中,而是存储在数据库中。,R上有函数依赖集F,每一个Ri 上有一个函数依赖集 Fi,F1,Fk,4.3.2 无损连接分
2、解,定义4.12:设R是一个关系模式,F是R上的一个FD集。R分解成数据库模式=R1,Rk。如果对R中满足F的每一个关系r,都有r=R1(r)R2(r)Rk(r)那么称分解相对于F是“无损连接分解”(lossless join decomposition),简称为“无损分解”,否则称为“损失分解”(lossy decomposition)。,例4.10(1)未丢失信息的分解:r1 r2=r,(2)丢失信息的分解:r1r2r,多出来的元组称为寄生元组(额外元组)丢失的元组称为悬挂元组。,在泛关系模式R分解成数据库模式=R1,Rk时,泛关系r在的每一模式Ri(1in)上投影后再连接起来,比原来r中
3、多出来的元组,称为“寄生元组”(Spurious Tuple)。实际上,寄生元组表示着错误的信息。寄生元组也就是节模式设计准则4中提到的额外元组(在上节NO15中)。无损的损指的是信息丢失而不是元组丢失.如果一个分解不具有无损的性质,那么泛关系在投影连接后就可能产生寄生元组。寄生元组表示着错误的信息,r的投影连接表达式R1(r)Rk(r)用符号m(r)表示,即m(r)=Ri(r)。设=R1,Rk 是关系模式R的一个分解,r是R的任一关系,ri=Ri(r)(1ik),那么有下列性质:r m(r);若s=m(r),则Ri(s)=ri;m(m(r)=m(r),这个性质称为幂等性(idempotent
4、)。r=m(r)时就是无损连接分解,4.3.3 无损分解的测试算法(算法4.3),构造一张k行n列的表格,每列对应一个属性Aj,每行对应一个模式Ri。如果Aj在Ri中,那么在表格的第i行第j列处填上符号aj,否则填上bij。把表格看成模式R的一个关系,反复检查F中每个FD在表格中是否成立,若不成立,则修改表格中的值。修改方法如下:对函数依赖XY,找X相等的行,改Y的分量值:如果Y值中有一个是aj,那么另一个也改成aj;如果没有aj,那么用其中一个bij替换另一个值(尽量把下标ij改成较小的数)。一直到表格不能修改为止。(这个过程称为追踪chase过程)若修改的最后一张表格中有一行是全a,即a1
5、a2an,那么称相对于F是无损分解,否则称损失分解。,例4.11 设关系模式R(ABCD),R分解成=AB,BC,CD。如果R上成立的函数依赖集F1=BA,CD,那么相对于F1是否无损分解?,(无损分解),续例4.11 设关系模式R(ABCD),R分解成=AB,BC,CD。如果R上成立的函数依赖集F1=AB,CD,那么相对于F1是否无损分解?,(损失分解),再看例4-12(P153),A B C D E,例:设R=(ABCDE)分解成 AD,AB,BE,CDE,AE 函数依赖F=AC,BC,CD,DEC,CEA 判断是否无损连接分解。解:按条件给出初始表,a1 b12 b13 a4 b15,A
6、D,a1 a2 b23 b24 b25,b31 a2 b33 b34 a5,b41 b42 a3 a4 a5,a1 b52 b53 b54 a5,AB,BE,CDE,AE,A B C D E,a1 b12 b13 a4 b15,AD,a1 a2 b13 a4 b25,a1 a2 a3 a4 a5,a1 b42 a3 a4 a5,a1 b52 a3 a4 a5,AB,BE,CDE,AE,通过追踪过程(CHASE)最终得表:,由于第3行全为a,所以该分解是无损连接分解。,定理4.6 设=R1,R2 是关系模式R的一个分解,F是R上成立的FD集,那么分解相对于F是无损分解的充分必要条件是(R1R2)
7、(R1R2)或(R1R2)(R2R1)。(可用CHASE(追踪)算法证明)定理4.7 如果FD XY在模式R上成立,且XY=,那么R分解成=RY,XY 是无损分解。,4.3.4 保持函数依赖的分解,定义4.13:设F是属性集U上的FD集,Z是U的子集,F在Z上的投影用Z(F)表示,定义为 Z(F)=XY|XYF+,且XYZ设=R1,Rk 是R的一个分解,F是R上的FD集 如果有(Ri(F)+=F+,那么称分解保持函数依赖集F的分解。根据定义,测试一个 分解是否保持FD,比较可行的方法是逐步验证F中的每个FD是否被(Ri(F)+=F+蕴涵,两个数据库模式的等价问题,这种等价包括数据等价和依赖等价
8、两个方面。数据等价是指两个数据库实例应表示同样的信息内容,用“无损分解”衡量。如果是无损分解,那么对泛关系反复的投影和连接都不会丢失信息。依赖等价是指两个数据库模式应有相同的依赖集闭包。在依赖集闭包相等情况下,数据的语义是不会出差错的。违反数据等价或依赖等价的分解不是一个好的模式设计。一个无损连接分解不一定是保持函数依赖的一个保持函数依赖的分解也不一定是无损连接的 没有必然联系(见下例),例:设关系模式R(ABC),=AB,AC是R 的一个分解。试分析分别在各种FD的情况下,是否具有无损分解和保持FD的分解特性。解:相对于F1=AB,分解是无损分解,且保持FD的分解。相对于F2=AC,BC,分
9、解是无损分解,但不保持FD集(丢失了BC)。相对于F3=BA,分解是损失分解,但保持FD集的分解。相对于F4=CB,BA,分解是损失分解,且不保持FD集(丢失了CB)。,4.4 关系模式的范式,关系模式的好与坏,用什么标准衡量?这个标准就是模式的范式(Normal Forms,简记为NF)。范式的种类与数据依赖有着直接的联系。范式的概念由于1971年提出。(发展过程见P155)1NF是关系模式的基础;在数据库设计中最常用的是3NF和BCNF。,各种范式之间的关系,4.4.1 第一范式(1NF),定义4.14:如果关系模式R所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简
10、称1NF,记作R1NF。1NF是关系模式应具备的最起码的条件。第一范式可能具有大量的数据冗余,具有插入异常、删除异常和更新异常等弊端。例如关系模式SCD属于1NF,它既存在完全函数依赖,又存在部分函数依赖和传递函数依赖。克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行转换。,4.4.2 第二范式(2NF),定义4.15:如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键,那么称R是第二范式(2NF)的模式。如果数据库模式中每个关系模式都是2NF,则称数据库模式为2NF的数据库模式。(即.没有对候选键的部分函数依赖)从1NF中消除非主属性对主键(
11、主码)的部分函数依赖得到2NF.分解时遵循“一事一地”的基本原则:一个关系只描述一个实体或联系。,违反2NF的局部依赖的情况示意图:,本章开始例:教学管理数据库(P137)SCD(SNo,SN,Age,Dept,MN,CNo,Score),主键:(SNO,CNO),存在数据冗余、修改、删除、插入异常的弊病。原因之一是存在部分函数依赖。,如果把SCD分解成:(将部分函数依赖分离出来)SD(SNo,SN,Age,Dept,MN)C(SNo,CNo,SCORE)SD 与 C 都是2NF模式。部分函数依赖消失,分数关系C不存在冗余、修改、删除、插入异常。但还是有系、系主任的冗余和操作异常。说明2NF不
12、是理想的模式分解。,算法4.5 分解成2NF模式集的算法设关系模式R(U),主键是W,R上还存在FD:XZ,并且Z是非主属性,XW,那么WZ就是一个部分函数依赖。此时应把R分解成两个模式R1(XZ),主键是X;(将部分依赖分解出来)R2(Y),其中Y=U-Z,主键仍是W,外键是 X(REFERENCES参照 R1)。利用外键和主键的连接可以从R1和R2重新得到R。如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中每一个关系模式都是2NF为止。,定义4.16:如果关系模式R是1NF,且每个非主属性都不传递函数依赖于R的候选键,那么称R属于第三范式(3NF)的模式。如果数据库模式中每个
13、关系模式都是3NF,则称其为3NF的数据库模式。,4.4.3 第三范式(3NF),例:在上边例中,SD(SNo,SN,Age,Dept,MN)主键SNO,无部分函数依赖,是2NF模式。SD中存在函数依赖 SNODept 和 DeptMN,那么SNO MN 就是一个传递依赖,SD不是3NF模式。此时也会出现冗余和异常操作。譬如一个系有500学生,那么系和系主任就会重复500次。还有操作异常。若将SD分解成S(SNo,SN,Age,Dept)和D(Dept,MN)已无传递函数依赖,S、D都是3NF模式,冗余和操作异常消失。,算法4.6 分解成3NF模式集的算法设关系模式R(U),主键是W,R上还存
14、在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为止。,由定义可看出:局部依赖必定蕴涵传递依赖的存在定理4.8:如果R是3NF模式,那么R也是2NF模式。证明:只要证明模式中部分依赖的存在蕴涵着传递依赖即可。设A是R的一个非主属性,K是R的一个候选键,且KA是一个部
15、分依赖。那么R中必存在某个 K K,有KA成立。由于A是非主属性,因此AKK=。从K K,可知 KK,但KK成立。因而从KK 和KA可知KA是一个传递依赖。部分依赖和传递依赖是模式产生冗余和异常的两个重要原因。由于3NF模式中不存在非主属性对候选键的部分依赖和传递依赖,因此消除了很大一部分存储异常,具有较好的性能。,4.4.4 BCNF(BoyceCodd NF),定义4.17:如果关系模式R1NF,且所有的函数依赖XY(Y X),决定因素X都包含了R的一个候选键,则称R属于BC范式,记作RBCNF。(3NF不一定是BCNF)例4-19 设有关系模式SNC(SNo,SN,CNo,Score)假
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 教程 NO

链接地址:https://www.31ppt.com/p-6296368.html