收藏 分享(赏)

数据库-规范化理论.ppt

上传人:gnk289057 文档编号:4783426 上传时间:2019-01-12 格式:PPT 页数:35 大小:319.50KB
下载 相关 举报
数据库-规范化理论.ppt_第1页
第1页 / 共35页
数据库-规范化理论.ppt_第2页
第2页 / 共35页
数据库-规范化理论.ppt_第3页
第3页 / 共35页
数据库-规范化理论.ppt_第4页
第4页 / 共35页
数据库-规范化理论.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、2007年4月19日星期四,兰州理工大学计算机与通信学院,1,数据库设计规范化理论,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,2,关系数据库设计中存在的问题,示例:考虑为管理职工的工资信息而设计一个关系模式。,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,3,在表中包含着两类信息:职工个人的工资信息;各个级别的工资数额。,数据库原理与应用,Principle and Applica

2、tion of DataBase,问题:如果我希望知道在这个单位8级工的工资是多少,能否查询到?,2007年4月19日星期四,兰州理工大学计算机与通信学院,4,问题:插入异常:如果没有职工具有8 级工资,则8 级工资的工资数额就难以插入,数据库原理与应用,Principle and Application of DataBase,删除异常:如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了。,2007年4月19日星期四,兰州理工大学计算机与通信学院,5,数据冗余:职工很多,工资级别有限,每一级别的工资数额反复存储多次。,数据库原理与应用,Principle

3、and Application of DataBase,更新异常:如果将5级工资的工资数额调为620,则需要找到每个具有5级工资的职工,逐一修改。,2007年4月19日星期四,兰州理工大学计算机与通信学院,6,解决之道:分解 !,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,7,有关学生的关系模式 S(学号 , 姓名 , 系号 , 主任 , 课程编号 , 成绩 ),它有哪些数据冗余?,数据库原理与应用,Principle and Application of DataBase,2007年4

4、月19日星期四,兰州理工大学计算机与通信学院,8, 规范化理论问题的提出针对一个具体问题,如何构造一个合适的数据模式。即应该构造几个关系模式(表),每个关系有那些属性组成?,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,9,数据库原理与应用,Principle and Application of DataBase,定 义:设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定

5、Y或Y函数依赖于X,记为XY。记号 xy 称x函数确定y,或y函数依赖于x。称X为决定因素。如 学号 姓名, (学号,课程) 成绩,2007年4月19日星期四,兰州理工大学计算机与通信学院,10,注 意:函数依赖是语义范畴的概念,我们只能根据语义来确定函数依赖。例如在没有同名的情况下,姓名年龄 是成立的,而在有同名的情况下,这个函数依赖就不成立了。平凡函数依赖:如果X Y,但Y不是X的子集,则称其为非平凡的函数依赖,否则称为平凡的函数依赖。如(学号,姓名) 姓名 是平凡的函数依赖,数据库原理与应用,Principle and Application of DataBase,2007年4月19日

6、星期四,兰州理工大学计算机与通信学院,11,函数依赖可分为三类:完全函数依赖,部分函数依赖和传递函数依赖。 定 义:在R(U)中有X、YU,如果XY,并且对于X的任何一个真子集X ,都有Y不函数依赖于X,则称Y对X是完全函数依赖的。 定 义:在R(U)中,如果XY,并且对于X的某个真子集X,有XY,则称Y对X部分函数依赖。 定 义:在R(U)中,如果XY(Y不包含于X,X不依赖于Y ),且 YZ,则称Z对X传递函数依赖。,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,12,例 1:某单位有

7、一资料室,它管理的数据有读者信息、图书信息、借阅信息。读者信息:借书证号,读者姓名,性别,部门,学历,部门电话,个人电话,电子信箱等; 图书信息:图书编号,分类号,书名,作者,出版社,单价等; 借阅信息:借书证号,图书编号,书名,借出日期,应还日期等。,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,13,函数依赖关系(读者信息):借书证号读者姓名借书证号性别借书证号部门借书证号学历部门部门电话借书证号个人电话借书证号电子信箱,数据库原理与应用,Principle and Applicati

8、on of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,14,函数依赖关系(图书信息):图书编号分类号图书编号书名图书编号作者图书编号出版社图书编号单价函数依赖关系(借阅信息):图书编号书名借书证号、图书编号,借出日期应还日期,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,15,多值依赖函数依赖关系是一种关系模式内属性间较为明显的依赖关系,但是随着人们对关系模式的了解越来越深刻,发现尚有另外的一些依赖关系存在,多值依赖就是其中的一种。例如,有一个课程关系CO

9、URSE(如下表所示)。,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,16,从这个关系中可以看出两点: (1) 该关系的数据冗余很大。 (2) 该关系的属性间有一种有别于函数依赖的依赖关系存在。,2007年4月19日星期四,兰州理工大学计算机与通信学院,17,范式理论1NF:任一属性不能同时具有多个值(关系中每一分量不可再分。即不能以集合、序列等作为属性值)。 2NF:属性必须完全依赖唯一标识符。 3NF:属性间不存在传递依赖。 BCNF:每一个决定因素都包含码。,数据库原理与应用,Pr

10、inciple and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,18,例 2 : R(学号,姓名,课程编号,课程名称,学分,成绩) 唯一标识符(Key): (学号,课程编号),数据库原理与应用,Principle and Application of DataBase,不符合2NF,依赖关系: 学号姓名,课程编号 课程名称,课程编号学分 ,(学号,课程编号) 成绩,2007年4月19日星期四,兰州理工大学计算机与通信学院,19,例 3 :S(学号,姓名,性别,学院,院长)。唯一标识符(Key): 学号,数据库原理与应用,Prin

11、ciple and Application of DataBase,不符合3NF,依赖关系: 学号姓名,学号性别,学号学院, 学院院长,2007年4月19日星期四,兰州理工大学计算机与通信学院,20,数据库原理与应用,Principle and Application of DataBase,问题的解决办法:拆分关系(表),2007年4月19日星期四,兰州理工大学计算机与通信学院,21,关于例 2 R(学号,姓名,课程编号,课程名称,学分,成绩) R1 (学号,姓名) R2(课程编号,课程名称,学分) R3(学号,课程编号,成绩)学号姓名,课程编号 课程名称,课程编号学分, (学号,课程编号)

12、 成绩,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,22,关于例 3 S(学号,姓名,性别,学院,院长) S1(学号,姓名,性别,学院) S2(学院,院长)学号姓名,学号性别,学号学院,学院院长,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,23,例 4:某部队拟建立干部档案,数据项有: 编号,姓名,现军衔,现任职务,入伍日期,最高学历,低级军衔及获得日期,曾担任职务及任命日期,所取

13、得各学历及取得日期。,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,24,函数依赖关系: 编号姓名,编号现军衔,编号现任职务,编号入伍日期,编号最高学历,编号之前军衔,(编号,低级军衔)获得日期,编号曾担任职务,(编号,曾担任职务)任命日期,编号各学历,(编号,各学历)取得日期,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,25,表1(编号,姓名,现军衔,现任职务,入伍日期,最高学历)

14、 表2(编号,低级军衔,获得日期) 表3(编号,曾担任职务,任命日期) 表4(编号,学历,取得日期)。,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,26,规范化步骤2NF 3NF BCNF 4NF,数据库原理与应用,Principle and Application of DataBase,规范化的目的就是构造合适的关系模式。,2007年4月19日星期四,兰州理工大学计算机与通信学院,27,数据库原理与应用,Principle and Application of DataBase,范式

15、之间的关系定 理: 3NF 2NF。,反证:若R3NF, 但R2NF,则按2NF定义,一定有非主属性部分依赖于码;,设X为R的码,则存在X的真子集S,以及非主属性Z( 其中S 不包含于Z ),使得S Z 成立;,于是在R中存在码X,属性组S,以及非主属性Z,使得XS,SZ 成立,进而有 SX成立;,这与R3NF矛盾, 所以R2NF。,2007年4月19日星期四,兰州理工大学计算机与通信学院,28,数据库原理与应用,Principle and Application of DataBase,定 理:关系模式R(U)若满足BCNF,则必定满足3NF。证明略,请大家看参考书。,2007年4月19日星

16、期四,兰州理工大学计算机与通信学院,29,模式分解中的问题,实例表(职工,级别,工资)可以有两种分解途径,分解一:(职工,工资),(工资,级别),丢失函 数依赖,分解二:(职工,级别),(工资,级别),不同行业机构的不同工资级别会有相同工资数额。按分解一,有可能导致同一职工对应不同的工资级别,从而丢失了有关职工工资级别的信息(丢失了函数依赖:职工级别)。,2007年4月19日星期四,兰州理工大学计算机与通信学院,30,R(A, B, C),AB(R),BC(R),AB(R),BC(R),R(A, B, C),AB(R),BC(R),AB(R),BC(R),有损分解,无损分解,2007年4月19

17、日星期四,兰州理工大学计算机与通信学院,31,将R分解为R1和R2的分解是无损连接分解的条件是,R1R2 R1,或R1R2 R2。如果有R上的函数依赖X Y成立,且X Y是空集,则分解R Y和X Y是无损连接分解。,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,32,数据库原理与应用,Principle and Application of DataBase,判定一个分解是否为依赖保持分解的算法比较复杂。请看参考文献。,2007年4月19日星期四,兰州理工大学计算机与通信学院,33,设计目

18、标:无损连接、保持依赖、xNF无损连接是分解的一个必要条件。BCNF不一定能保持依赖,但3NF可以保证分解是保持依赖的。因此,在工程中一般分解到3NF。此外,有时需要对表进行水平分解。,数据库原理与应用,Principle and Application of DataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,34,数据库原理与应用,Principle and Application of DataBase,小结规范化理论为数据库设计提供了理论和方法。但是,客观世界是复杂的,在构造模式时尚需考虑到其他的多种因素。在实际应用中,必须结合应用环境和现实世界的具体情况,合理地选择数据库模式。,2007年4月19日星期四,兰州理工大学计算机与通信学院,35,谢谢!,数据库原理与应用,Principle and Application of DataBase,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 规章制度

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报