关系模式的规范化.ppt_第1页
关系模式的规范化.ppt_第2页
关系模式的规范化.ppt_第3页
关系模式的规范化.ppt_第4页
关系模式的规范化.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第4讲 关系模式的规范化 授课人:授课人: 李朔李朔 Email:Email: *1南晓数信学院 例:R=(S#,C#,GRADE,TNAME,TADDR), F=C#TNAME,(S#,C#)GRADE,TNAMETADDR 主要问题: C#TNAME C#TNAME TNAMETADDR C#TADDR (S#,C#)TADDR 到底什么样的关系模式是最优的? 标准是什么?如何实现? Date2南晓数信学院 主要内容 n范式 n第一范式 n第二范式 n第三范式 nBCNF n范式之间的关系和关系模式的规范化 n向3NF的模式分解算法 Date3南晓数信学院 一、范式 衡量关系模式好坏的标准就是关系模式的范 式(Normal Forms,简记为NF)。 可以把范式的概念理解为符合某一条件的关 系模式的集合。 Date4南晓数信学院 在一个关系模式R中,如果R的每一个属性的 值值域中的值值都是不可再分的最小数据单单位,则则 称R是第一范式(1NF)的模式,也称R1NF 。 二、第一范式(1NF) 1NF1NF是最基本的范式,满足是最基本的范式,满足1NF1NF的关系称的关系称 为规范化的关系,否则,称为非规范化的为规范化的关系,否则,称为非规范化的 关系。关系。 Date5南晓数信学院 例:R=(S#,C#,GRADE,TNAME,TADDR), F=C#TNAME,(S#,C#)GRADE,TNAMETADDR S#C#GRADETNAMETADDR 200401001 C401001 C402002 C403001 90 90 85 徐 浩 李阳洋 宋 歌 a1 b1 c1 200401002 C401001 C402002 75 88 徐 浩 李阳洋 a1 b1 200401003C40200269李阳洋b1 200402001C40100487徐 浩a1 结论:结论:R R不是不是1NF1NF模式模式 二、第一范式(1NF) (续1) Date6南晓数信学院 解决方法解决方法 对于有子表的非规范关系,一般采用对于有子表的非规范关系,一般采用重复重复 所在行的其它属性的值,增加新的记录所在行的其它属性的值,增加新的记录,从,从 而把子表中的值分开,将非规范关系转换成而把子表中的值分开,将非规范关系转换成 规范关系。规范关系。 二、第一范式(1NF) (续2) Date7南晓数信学院 例:R=(S#,C#,GRADE,TNAME,TADDR), F=C#TNAME,(S#,C#)GRADE,TNAMETADDR S#C#GRADETNAMETADDR 200401001 C401001 C402002 C403001 90 90 85 徐 浩 李阳洋 宋 歌 a1 b1 c1 200401002 C401001 C402002 75 88 徐 浩 李阳洋 a1 b1 200401003C40200269李阳洋b1 200402001C40100487徐 浩a1 200401001C40100190徐 浩a1 200401001C40200290李阳洋b1 200401001C40300185宋 歌c1 200401002C40100175徐 浩a1 200401002C40200288李阳洋b1 结论:结论:R R是是1NF1NF模式模式 二、第一范式(1NF) (续3) Date8南晓数信学院 三、第二范式(2NF) 定义义: 如果一个关系模式R是1NF,且它的每一个非 主属性都完全函数依赖赖于候选键选键 ,那么称R是 满满足第二范式(2NF)的关系模式。(不存在部 分函数依赖赖) Date9南晓数信学院 例:R=(S#,C#,GRADE,TNAME,TADDR), F=C#TNAME,(S#,C#)GRADE,TNAMETADDR 三、第二范式(2NF)(续1) 学号学号(S#)(S#)课程号课程号(C#)(C#) 教师名教师名(TNAME)(TNAME) 部分依赖部分依赖 结论:结论:R R不是不是2NF2NF模式模式 Date10南晓数信学院 S#C#GRADETNAMETADDR 200401001C40100190徐 浩a1 200401001C40200290李阳洋b1 200401001C40300185宋 歌c1 200401002C40100175徐 浩a1 200401002C40200288李阳洋b1 200401003C40200269李阳洋b1 200402001C40100487徐 浩a1 例:R=(S#,C#,GRADE,TNAME,TADDR), F=C#TNAME,(S#,C#)GRADE,TNAMETADDR 三、第二范式(2NF)(续2) Date11南晓数信学院 学号学号(S#)(S#)课程号课程号(C#)(C#) 成绩成绩(GRADE)(GRADE)教师名教师名(TNAME)(TNAME) 教师住址教师住址 (TADDR)(TADDR) R R1 1 R R2 2 例:R=(S#,C#,GRADE,TNAME,TADDR), F=C#TNAME,(S#,C#)GRADE,TNAMETADDR 三、第二范式(2NF)(续3) Date12南晓数信学院 例:R1(S#,C#,GRADE),F1=(S#,C#)GRADE R2(C#,TNAME,TADDR), F2=C#TNAME,TNAMETADDR C#TNAMETADDR C401001徐 浩a1 C402002李阳洋b1 C403001宋 歌c1 C401004徐 浩a1 S#C#GRADE 200401001C40100190 200401001C40200290 200401001C40300185 200401002C40100175 200401002C40200288 200401003C40200269 200402001C40100487 三、第二范式(2NF)(续4) 结论:结论:R R 1 1 和和R R 2 2 是是2NF2NF模式模式 r2 r1 结论:结论:R R 2 2 中仍然存在数据冗余中仍然存在数据冗余 和操作异常和操作异常 Date13南晓数信学院 四、第三范式(3NF) 定义义: 如果一个关系模式R属于1NF,且R的任何一 个非主属性都不传递传递 依赖赖于R的候选键选键 ,那么 称R是满满足第三范式(3NF)的关系模式。 Date14南晓数信学院 例:R1(S#,C#,GRADE), F1=(S#,C#)GRADE R2(C#,TNAME,TADDR), F2=C#TNAME,TNAMETADDR 结论:结论:R1 R1 是是3NF3NF模式模式 R2R2不是不是3NF3NF模式模式 四、第三范式(3NF)(续1) Date15南晓数信学院 例:R2(C#,TNAME,TADDR), F2=C#TNAME,TNAMETADDR R21(C#,TNAME),F21=C#TNAME R22(TNAME,TADDR),F22=TNAMETADDR 课程号课程号(C#)(C#) 教师名教师名(TNAME)(TNAME) 教师住址教师住址 (TADDR)(TADDR) 四、第三范式(3NF)(续2) Date16南晓数信学院 例:在关系模式R(CITY,STREET,ZIP)中,候 选键为选键为 CITY,STREET和ZIP,STREET, F=CITY,STREETZIP,ZIPCITY。 结论:结论:R R是是3NF3NF模式模式 举例: CITYCITYSTREETSTREETZIPZIP 主属性对候选键的部分依赖主属性对候选键的部分依赖 Date17南晓数信学院 五、BCNF 定义: 设有关系模式R(U,F),F是R上的函数依赖 集,X和A是U的子集,且A不是X的子集。如 果对于F中的每一个函数依赖XA,X都是R的 一个候选键,则称R是鲍依斯-柯德范式,记为 BCNF。(决定因素是Key) Date18南晓数信学院 结论:结论:R R不不是是BCBCNFNF模式模式 五、BCNF(续) 例:R(CITY,STREET,ZIP) , 候选键为选键为 CITY,STREET和ZIP,STREET F=CITY,STREETZIP,ZIPCITY。 Date19南晓数信学院 六、范式之间的关系和关系模式的规范化 是是3NF3NF的关系模式,的关系模式, 是否一定就是是否一定就是2NF2NF模式模式 思考思考 是是BCNFBCNF的关系模式,的关系模式, 是否一定就是是否一定就是3NF3NF模式模式 Date20南晓数信学院 1、定理 定理5.6:一个3NF的关系模式一定是2NF的。 定理5.7:一个BCNF的关系模式一定是3NF的。 证明:用反证法。设R是3NF的,但不是2NF的,那 么一定存在非主属性A、候选键X和X的真子集Y,使 得YA XY 与假设矛盾,所以R也是2NF的。证毕。 XA Date21南晓数信学院 2、范式之间的关系 消除非主属性对侯选键的部分函数依赖 消除非主属性对侯选键的传递函数依赖 1NF 2NF 3NF BCNF 消除主属性对侯选键的部分或传递函数依赖 Date22南晓数信学院 3、关系模式的规范化 关系模式的规范化就是通过对模式进行分 解,将一个属于低级范式的关系模式转换成若 干个属于高级范式的关系模式的过程,从而解 决或部分解决数据冗余、更新异常等问题。 Date23南晓数信学院 七、向3NF的模式分解算法 算法5.5 一个关系模式向3NF的保持依赖赖性的分 解 输输入:关系模式R(U,F), R上的函数依赖赖集F(最小依赖赖集) 输输出:R的一个保持依赖赖的分解=R1,R2, Rk,每个Ri为为3NF(i=1,2,k)。 方法: Date24南晓数信学院 七、向3NF的模式分解算法(续1) (1)若有函数依赖XAF,且XA=R,则=R,转(5) ; (2)找出R的不在F中出现的所有属性,并把这些属性构 成一个关系模式。然后把这些属性从U中去掉,将剩余 的属性仍记为U。 (3)对F中的函数依赖按具有相同左部的原则进行分组 ,并按合并规则将每一组合并成一个新的函数依赖。 比如若有XA1,XA2,XAm,则可以将它们合 并成XA1A2Am。 (4)对于F中的每一个XY,都构成一个关系模式Ri=XY 。 (5)停止分解,输出。 Date25南晓数信学院 F F是最小函数依赖集是最小函数依赖集 C#C#, ,TNAMETNAMES#,C#S#,C#, ,GRADEGRADETNAMETNAME, ,TADDRTADDR R R 1 1 ( (C#, C#, TNAME),TNAME),R R 2 2 ( (S#,C#,GRADES#,C#,GRADE), ), R R3 3 (TNAME,TADDR),(TNAME,TADDR),,保持依赖性保持依赖性 例:R=(S#,C#,GRADE,TNAME,TADDR), F=C#TNAME,(S#,C#)GRADE,TNAMETADDR 七、向3NF的模式分解算法(续2) Date26南晓数信学院 定理5.8 逄法5.5给出的分解具有函数依赖赖性. 证证明 P124 略 Date27南晓数信学院 七、向3NF的模式分解算法(续3) 定理5.9 向3NF的无损联损联 接并保持依赖赖的分解 设设=R1,R2,Rk是由算法5.5得到的R的 3NF分解,X是R的一个候选键选键 ,则则 = R1,R2,Rk,X 也是R的一个分解。 分解中的所有关系模式是3NF的,且分解保 持依赖赖和具有无损联损联 接性。 Date28南晓数信学院 R R 1 1 ( (C#, C#, TNAME),TNAME),R R 2 2 ( (S#,C#,GRADES#,C#,GRADE), ), R R3 3 (TNAME,TADDR),(TNAME,TADDR),,保持依赖性保持依赖性 结论:结论:该该分解保持依赖和具有无损联接性分解保持依赖和具有无损联接性 例:R=(S#,C#,GRADE,TNAME,TADDR), F=C#TNAME,(S#,C#)GRADE,TNAMETADDR 七、向3NF的模式分解算法(续4) Date29南晓数信学院 小结 消除非主属性对侯选键的部分函数依赖 消除非主属性对侯选键的传递函数依赖 1NF 2NF 3NF BCNF 消除主属性对侯选键的部分或传递函数依赖保证数据库中各关系模式属于保证数据库中各关系模式属于2NF2NF是数据是数据 库逻辑设计中的最低要求。库逻辑设计中的最低要求。 在多数情况下,数据库

温馨提示

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

评论

0/150

提交评论