项目一补充三范式--byanita

上传人:ji****n 文档编号:57182584 上传时间:2018-10-19 格式:PPT 页数:26 大小:808.25KB
返回 下载 相关 举报
项目一补充三范式--byanita_第1页
第1页 / 共26页
项目一补充三范式--byanita_第2页
第2页 / 共26页
项目一补充三范式--byanita_第3页
第3页 / 共26页
项目一补充三范式--byanita_第4页
第4页 / 共26页
项目一补充三范式--byanita_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《项目一补充三范式--byanita》由会员分享,可在线阅读,更多相关《项目一补充三范式--byanita(26页珍藏版)》请在金锄头文库上搜索。

1、关系范式理论,成都东软学院,信息管理教研室:李姗办公室:A4201Email: LiSPhoneNo:028-82878195,表的优化,一个关系模式由五部分组成 关系名 关系中的属性名,也就是列名 属性所属的域名 属性向域的映射 数据间的相互依赖关系 根据对关系的不同数据依赖程度,分为第一范式、第二范式、第三范式、BCNF、第四范式和第五范式 范式就是对关系的不同数据依赖程度的要求,各范式的关系,4NF,BCNF,3NF,2NF,1NF,First Normal Form第一范式,第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多

2、个值或者不能有重复的属性。,First Normal Form第一范式,例如,如下的数据库表是符合第一范式的: 字段1 字段2 字段3 字段4 而这样的数据库表是不符合第一范式的: 字段1 字段2 字段3 字段4 字段3.1 字段3.2,First Normal Form第一范式(续),相关概念 第一范式就是所设计表的每一个分量必须是不可分的数据项,即每一列不许是集合、序列等非原子属性 非第一范式转化成第一范式的方法 把非原子属性的列变为原子属性的列 分解表,关系数据库规范化,关系数据库设计中存在的问题 示例: 考虑为管理职工的工资信息而设计一个关系模式。思考,存在什么问题?,问题:插入异常:

3、如果有职工具有8 级工资,则8 级工资的工资数额就难以插入,删除异常:如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了。,数据冗余:职工很多,工资级别有限,每一级别的工资数额反复存储多次。,更新异常:如果将5级工资的工资数额调为620,则需要找到每个具有5级工资的职工,逐一修改。,解决之道:分解 !,Second Normal Form第二范式,第二范式: 数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字,Second Norma

4、l Form第二范式(续),假定选课关系表为 SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分), 关键字为组合关键字(学号, 课程名称),因为存在如下决定关系:(学号, 课程名称) (姓名, 年龄, 成绩, 学分),Second Normal Form第二范式(续),这个数据库表不满足第二范式,因为存在如下决定关系:(课程名称) (学分)(学号) (姓名, 年龄),不符合第二范式引发的问题,(1) 数据冗余(2) 更新异常 (3) 插入异常(4) 删除异常,解决方法,把选课关系表SelectCourse改为如下三个表: 学生:Student(学号, 姓名, 年龄);

5、 课程:Course(课程名称, 学分);选课关系:SelectCourse(学号, 课程名称, 成绩)。,第三范式,第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。 所谓传递函数依赖,指的是如果存在“A B C“的决定关系,则C传递函数依赖于A,第三范式,假定学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),关键字为单一关键字“学号“,因为存在如下决定关系:(学号) (姓名, 年龄, 所在学院, 学院地点, 学院电话),第三范式,(学号) (姓名, 年龄, 所在学院, 学院地点, 学院电

6、话) 这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:(学号) (所在学院) (学院地点, 学院电话),引起的问题,数据冗余 更新异常 插入异常 删除异常,解决办法,把学生关系表分为如下两个表:学生:(学号, 姓名, 年龄, 所在学院);学院:(学院, 地点, 电话)。,鲍依斯-科得范式(BCNF),在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合第三范式,假设仓库管理关系表为StorehouseManage(仓库ID, 存储物品ID, 管理员ID, 数量),且有一个管理员只在一个仓库工作;一个仓库可以存储多种物品。这个数据库表中存在如下

7、决定关系:(仓库ID, 存储物品ID) (管理员ID, 数量)(管理员ID, 存储物品ID) (仓库ID, 数量)所以,(仓库ID, 存储物品ID)和(管理员ID, 存储物品ID)都是StorehouseManage的候选关键字,表中的唯一非关键字段为数量,它是符合第三范式的。,但是,由于存在如下决定关系:(仓库ID) (管理员ID)(管理员ID) (仓库ID),产生的问题,(1) 删除异常:当仓库被清空后,所有“存储物品ID“和“数量“信息被删除的同时,“仓库ID“和“管理员ID“信息也被删除了。(2) 插入异常:当仓库没有存储任何物品时,无法给仓库分配管理员。 (3) 更新异常:如果仓库换了管理员,则表中所有行的管理员ID都要修改。,解决办法,把仓库管理关系表分解为二个关系表 仓库管理:StorehouseManage(仓库ID, 管理员ID) 仓库:Storehouse(仓库ID, 存储物品ID, 数量)。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号