624第5讲数据库设计规范化理论.ppt

上传人:sccc 文档编号:5581325 上传时间:2023-07-30 格式:PPT 页数:22 大小:185.51KB
返回 下载 相关 举报
624第5讲数据库设计规范化理论.ppt_第1页
第1页 / 共22页
624第5讲数据库设计规范化理论.ppt_第2页
第2页 / 共22页
624第5讲数据库设计规范化理论.ppt_第3页
第3页 / 共22页
624第5讲数据库设计规范化理论.ppt_第4页
第4页 / 共22页
624第5讲数据库设计规范化理论.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《624第5讲数据库设计规范化理论.ppt》由会员分享,可在线阅读,更多相关《624第5讲数据库设计规范化理论.ppt(22页珍藏版)》请在三一办公上搜索。

1、第 5 讲 数据库设计-规范化理论,数据库技术,关系数据库设计中存在的问题,示例:考虑为管理职工的工资信息而设计一个关系模式。,问题:插入异常:如果没有职工具有8 级工资,则8 级工 资的工资数额就难以插入。删除异常:如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了。数据冗余:职工很多,工资级别有限,每一级别的工资数额反复存储多次。更新异常:如果将5级工资的工资数额调为620,则需要找到每个具有5级工资的职工,逐一修改。,解决之道:分解!分解!再分解!,有关学生的关系模式S(学号,姓名,系号,主任,课程编号,成绩),它有哪些数据冗余?,规范化理论问题的提出

2、 针对一个具体问题,如何构造一个合适的数据模式。即应该构造几个关系模式(表),每个关系有那些属性组成?,函数依赖 函数依赖是语义范畴的概念,只能根据语义来确定一个函数依赖。记号 xy 称x函数确定y,或y函数依赖于x。称X为决定因素。如S#SN,(S#,C#)G平凡函数依赖:如果X Y,但Y不是X的子集,则称其为非平凡的函数依赖,否则称为平凡的函数依赖。如(S#,SN)SN是平凡的函数依赖,例 1:某单位有一资料室,它管理的数据有读者信息、图书信息、借阅信息。读者信息:借书证号,读者姓名,性别,部门,学历,部门电话,个人电话,电子信箱等;图书信息:图书编号,分类号,书名,作者,出版社,单价等;

3、借阅信息:借书证号,图书编号,书名,借出日期,应还日期等,函数依赖关系(读者信息):借书证号读者姓名 借书证号性别 借书证号部门 借书证号学历 部门部门电话 借书证号个人电话 借书证号电子信箱,函数依赖关系(图书信息):图书编号分类号 图书编号书名 图书编号作者 图书编号出版社 图书编号单价函数依赖关系(借阅信息):图书编号书名 借书证号、图书编号,借出日期应还日期,范式理论1NF:任一属性不能同时具有多个值(关系中每一分量不可再分。即不能以集合、序列等作为属性值)。2NF:属性必须完全依赖唯一标识符。3NF:属性间不存在传递依赖。BCNF:每一个决定因素都包含码。,例 2:R(学号,姓名,课

4、程编号,课程名称,学分,成绩)唯一标识符(Key):(学号,课程编号)学号姓名,课程编号 课程名称,课程编号学分,(学号,课程编号)成绩不符合2NF,例 3:S(学号,姓名,性别,学院,院长)。唯一标识符(Key):学号 学号姓名,学号性别,学号学院,学院院长不符合3NF,问题的解决办法:拆分关系(表)关于例 2R(学号,姓名,课程编号,课程名称,学分,成绩)R1(学号,姓名)R2(课程编号,课程名称,学分)R3(学号,课程编号,成绩)学号姓名,课程编号 课程名称,课程编号学分,(学号,课程编号)成绩,关于例 3S(学号,姓名,性别,学院,院长)S1(学号,姓名,性别,学院)S2(学院,院长)

5、学号姓名,学号性别,学号学院,学院院长,部门电话,借书证号读者姓名性别部门学历个人电话电子信箱,图书编号分类号书名作者出版社单价,借书证号图书编号借书日期还书日期,关于例 1 的关系图,规范化步骤2NF 3NF BCNF 4NF规范化的目的就是构造合适的关系模式。,范式之间的关系,3NF 2NF反证:若R3NF,但R2NF,则按2NF定义,一定有非主属性部分依赖于码,设X为R的码,则存在X的真子集X,以及非主属性Z(Z X),使得XZ。于是在R中存在码X,属性组X,以及非主属性Z(Z X),使得XX,XZ,XX成立,这与R3NF矛盾。所以R2NF。,模式分解中的问题,实例表(职工,级别,工资)

6、可以有两种分解途径,分解一:(职工,工资),(工资,级别)分解二:(职工,级别),(工资,级别)不同行业机构的不同工资级别会有相同工资数额,因此按分解一,有可能导致同一职工对应不同的工资级别,从而丢失了有关职工工资级别的信息(丢失了函数依赖:职工级别)。,丢失函数依赖,R(A,B,C),AB(R),BC(R),AB(R),BC(R),R(A,B,C),AB(R),BC(R),AB(R),BC(R),有损分解,无损分解,将R分解为R1和R2的分解是无损连接分解的条件是,R1R2 R1,或R1R2 R2。如果有R上的函数依赖X Y成立,且X Y是空集,则分解R Y和XY是无损连接分解。判定一个分解是否为依赖保持分解的算法比较复杂。请看参考文献。,设计目标:无损连接、保持依赖、xNF 无损连接是分解的一个必要条件。BCNF不一定能保持依赖,但3NF可以保证分解是保持依赖的。因此,在工程中一般分解到3NF。此外,有时需要对表进行水平分解。,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号