数据库-规范化理论.ppt

上传人:tian****1990 文档编号:13270691 上传时间:2020-06-11 格式:PPT 页数:35 大小:319.50KB
返回 下载 相关 举报
数据库-规范化理论.ppt_第1页
第1页 / 共35页
数据库-规范化理论.ppt_第2页
第2页 / 共35页
数据库-规范化理论.ppt_第3页
第3页 / 共35页
点击查看更多>>
资源描述
2007年4月19日星期四,兰州理工大学计算机与通信学院,1,数据库设计规范化理论,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,2,关系数据库设计中存在的问题,示例:考虑为管理职工的工资信息而设计一个关系模式。,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,3,在表中包含着两类信息:职工个人的工资信息;各个级别的工资数额。,数据库原理与应用,PrincipleandApplicationofDataBase,问题:如果我希望知道在这个单位8级工的工资是多少,能否查询到?,2007年4月19日星期四,兰州理工大学计算机与通信学院,4,问题:插入异常:如果没有职工具有8级工资,则8级工资的工资数额就难以插入,数据库原理与应用,PrincipleandApplicationofDataBase,删除异常:如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了。,2007年4月19日星期四,兰州理工大学计算机与通信学院,5,数据冗余:职工很多,工资级别有限,每一级别的工资数额反复存储多次。,数据库原理与应用,PrincipleandApplicationofDataBase,更新异常:如果将5级工资的工资数额调为620,则需要找到每个具有5级工资的职工,逐一修改。,2007年4月19日星期四,兰州理工大学计算机与通信学院,6,解决之道:分解!,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,7,有关学生的关系模式S(学号,姓名,系号,主任,课程编号,成绩),它有哪些数据冗余?,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,8,规范化理论问题的提出针对一个具体问题,如何构造一个合适的数据模式。即应该构造几个关系模式(表),每个关系有那些属性组成?,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,9,数据库原理与应用,PrincipleandApplicationofDataBase,定义:设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记为XY。记号xy称x函数确定y,或y函数依赖于x。称X为决定因素。如学号姓名,(学号,课程)成绩,2007年4月19日星期四,兰州理工大学计算机与通信学院,10,注意:函数依赖是语义范畴的概念,我们只能根据语义来确定函数依赖。例如在没有同名的情况下,姓名年龄是成立的,而在有同名的情况下,这个函数依赖就不成立了。平凡函数依赖:如果XY,但Y不是X的子集,则称其为非平凡的函数依赖,否则称为平凡的函数依赖。如(学号,姓名)姓名是平凡的函数依赖,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,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传递函数依赖。,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,12,例1:某单位有一资料室,它管理的数据有读者信息、图书信息、借阅信息。读者信息:借书证号,读者姓名,性别,部门,学历,部门电话,个人电话,电子信箱等;图书信息:图书编号,分类号,书名,作者,出版社,单价等;借阅信息:借书证号,图书编号,书名,借出日期,应还日期等。,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,13,函数依赖关系(读者信息):借书证号读者姓名借书证号性别借书证号部门借书证号学历部门部门电话借书证号个人电话借书证号电子信箱,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,14,函数依赖关系(图书信息):图书编号分类号图书编号书名图书编号作者图书编号出版社图书编号单价函数依赖关系(借阅信息):图书编号书名借书证号、图书编号,借出日期应还日期,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,15,多值依赖函数依赖关系是一种关系模式内属性间较为明显的依赖关系,但是随着人们对关系模式的了解越来越深刻,发现尚有另外的一些依赖关系存在,多值依赖就是其中的一种。例如,有一个课程关系COURSE(如下表所示)。,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,16,从这个关系中可以看出两点:(1)该关系的数据冗余很大。(2)该关系的属性间有一种有别于函数依赖的依赖关系存在。,2007年4月19日星期四,兰州理工大学计算机与通信学院,17,范式理论1NF:任一属性不能同时具有多个值(关系中每一分量不可再分。即不能以集合、序列等作为属性值)。2NF:属性必须完全依赖唯一标识符。3NF:属性间不存在传递依赖。BCNF:每一个决定因素都包含码。,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,18,例2:R(学号,姓名,课程编号,课程名称,学分,成绩)唯一标识符(Key):(学号,课程编号),数据库原理与应用,PrincipleandApplicationofDataBase,不符合2NF,依赖关系:学号姓名,课程编号课程名称,课程编号学分,(学号,课程编号)成绩,2007年4月19日星期四,兰州理工大学计算机与通信学院,19,例3:S(学号,姓名,性别,学院,院长)。唯一标识符(Key):学号,数据库原理与应用,PrincipleandApplicationofDataBase,不符合3NF,依赖关系:学号姓名,学号性别,学号学院,学院院长,2007年4月19日星期四,兰州理工大学计算机与通信学院,20,数据库原理与应用,PrincipleandApplicationofDataBase,问题的解决办法:拆分关系(表),2007年4月19日星期四,兰州理工大学计算机与通信学院,21,关于例2R(学号,姓名,课程编号,课程名称,学分,成绩)R1(学号,姓名)R2(课程编号,课程名称,学分)R3(学号,课程编号,成绩)学号姓名,课程编号课程名称,课程编号学分,(学号,课程编号)成绩,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,22,关于例3S(学号,姓名,性别,学院,院长)S1(学号,姓名,性别,学院)S2(学院,院长)学号姓名,学号性别,学号学院,学院院长,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,23,例4:某部队拟建立干部档案,数据项有:编号,姓名,现军衔,现任职务,入伍日期,最高学历,低级军衔及获得日期,曾担任职务及任命日期,所取得各学历及取得日期。,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,24,函数依赖关系:编号姓名,编号现军衔,编号现任职务,编号入伍日期,编号最高学历,编号之前军衔,(编号,低级军衔)获得日期,编号曾担任职务,(编号,曾担任职务)任命日期,编号各学历,(编号,各学历)取得日期,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,25,表1(编号,姓名,现军衔,现任职务,入伍日期,最高学历)表2(编号,低级军衔,获得日期)表3(编号,曾担任职务,任命日期)表4(编号,学历,取得日期)。,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,26,规范化步骤2NF3NFBCNF4NF,数据库原理与应用,PrincipleandApplicationofDataBase,规范化的目的就是构造合适的关系模式。,2007年4月19日星期四,兰州理工大学计算机与通信学院,27,数据库原理与应用,PrincipleandApplicationofDataBase,范式之间的关系定理:3NF2NF。,反证:若R3NF,但R2NF,则按2NF定义,一定有非主属性部分依赖于码;,设X为R的码,则存在X的真子集S,以及非主属性Z(其中S不包含于Z),使得SZ成立;,于是在R中存在码X,属性组S,以及非主属性Z,使得XS,SZ成立,进而有SX成立;,这与R3NF矛盾,所以R2NF。,2007年4月19日星期四,兰州理工大学计算机与通信学院,28,数据库原理与应用,PrincipleandApplicationofDataBase,定理:关系模式R(U)若满足BCNF,则必定满足3NF。证明略,请大家看参考书。,2007年4月19日星期四,兰州理工大学计算机与通信学院,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日星期四,兰州理工大学计算机与通信学院,31,将R分解为R1和R2的分解是无损连接分解的条件是,R1R2R1,或R1R2R2。如果有R上的函数依赖XY成立,且XY是空集,则分解RY和XY是无损连接分解。,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,32,数据库原理与应用,PrincipleandApplicationofDataBase,判定一个分解是否为依赖保持分解的算法比较复杂。请看参考文献。,2007年4月19日星期四,兰州理工大学计算机与通信学院,33,设计目标:无损连接、保持依赖、xNF无损连接是分解的一个必要条件。BCNF不一定能保持依赖,但3NF可以保证分解是保持依赖的。因此,在工程中一般分解到3NF。此外,有时需要对表进行水平分解。,数据库原理与应用,PrincipleandApplicationofDataBase,2007年4月19日星期四,兰州理工大学计算机与通信学院,34,数据库原理与应用,PrincipleandApplicationofDataBase,小结规范化理论为数据库设计提供了理论和方法。但是,客观世界是复杂的,在构造模式时尚需考虑到其他的多种因素。在实际应用中,必须结合应用环境和现实世界的具体情况,合理地选择数据库模式。,2007年4月19日星期四,兰州理工大学计算机与通信学院,35,谢谢!,数据库原理与应用,PrincipleandApplicationofDataBase,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!