数据库范式设计(专题)

上传人:子 文档编号:52198655 上传时间:2018-08-19 格式:PPT 页数:16 大小:256.50KB
返回 下载 相关 举报
数据库范式设计(专题)_第1页
第1页 / 共16页
数据库范式设计(专题)_第2页
第2页 / 共16页
数据库范式设计(专题)_第3页
第3页 / 共16页
数据库范式设计(专题)_第4页
第4页 / 共16页
数据库范式设计(专题)_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《数据库范式设计(专题)》由会员分享,可在线阅读,更多相关《数据库范式设计(专题)(16页珍藏版)》请在金锄头文库上搜索。

1、*第1页数据库范式设计专题教学目标教学重点:第一、二、三范式教学过程*第2页2.3.3 范式与规范化数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入 (insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。 第一范式 (1st NF)l在任何一个关系数据库中,第一范式(1NF)是对关

2、系模式的基本要求,不满足第一范式(1NF)的数据 库就不是关系数据库。 l所谓第一范式(1NF)是指数据库表的每一列都是不 可分割的基本数据项,同一列中不能有多个值,即实 体中的某个属性不能有多个值或者不能有重复的属性 。如果出现重复的属性,就可能需要定义一个新的实 体,新的实体由重复的属性构成,新实体与原实体之 间为一对多关系。在第一范式(1NF)中表的每一行 只包含一个实例的信息。简而言之,第一范式就是无 重复的列。BuyerIDCountryCity1142中国中国日本美国北京北京东京纽约BuyerIDAddress1234中国北京市美国纽约市英国利物浦日本东京市 2 第二范式(2NF)

3、l第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满 足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF )要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区 分通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一 属性列被称为主关键字或主键、主码。Orders字 段例 子订单编号产品编号订购日期价 格001A0012000-2-3$29.00 Orders字 段例 子订单编号订购日期0012000-2-3Products字 段例 子产品编号价 格A001$29.003 第三范式(3NF)l满足第三范式(3NF)必须先满足第二范式(2NF)。简 而言

4、之,第三范式(3NF)要求一个数据库表中不能包含 已经在其它表中存在的非主关键字信息。即,第三范式就 是属性不依赖于其它非主属性(即表与表之间存储数据独 立)。Orders字 段例 子订单编号订购日期顾客编号0012000-2-3AB001顾客姓名Tony Orders字 段例 子订单编号订购日期顾客编号0012000-2-3AB001 规范化实例假设某建筑公司要设计一个数据库。公司的业务规 则概括说明如下:l公司承担多个工程项目,每一项工程有:工程号、工程名 称、施工人员等l公司有多名职工,每一名职工有:职工号、姓名、性别、 职务(工程师、技术员)等l公司按照工时和小时工资率支付工资,小时工

5、资率由职工 的职务决定(例如,技术员的小时工资率与工程师不同)l公司定期制定一个工资报表,如图-1所示规范化实例工程号工程名称职工号姓名职务小时工资率工时实发 工资A1花园大厦1001齐光明工程师6513845.001002李思岐技术员6016960.001004葛宇宏律师60191140.00小计2945.00A2立交桥1001齐光明工程师6515975.001003鞠明亮工人5517935.00小计1910.00A3临江饭店1002李思岐技术员60181080.001004葛宇洪技术员6014840.00小计1920.00图-1 某公司的工资表规范化实例 工程 号工程名 称职工 号姓名职务

6、小时工资 率工时A1花园大厦1001齐光明工程师6513A1花园大厦1002李思岐技术员6016A1花园大厦1001齐光明工程师6513A1花园大厦1003鞠明亮工人5517A3临江饭店1002李思岐技术员6018A3临江饭店1004葛宇洪技术员6014图-2 某公司的项目工时表规范化实例 1.表中包含大量的冗余,可能会导致数据异常:l更新异常 例如,修改职工号=1001的职务,则必须修改所有职工号 =1001的行l添加异常 若要增加一个新的职工时,首先必须给这名职工分配一 个工程。或者为了添加一名新职工的数据,先给这名职 工分配一个虚拟的工程。(因为主关键字不能为空)l删除异常 例如,100

7、1号职工要辞职,则必须删除所有职工号 1001的数据行。这样的删除操作,很可能丢失了其它有 用的数据规范化实例2采用这种方法设计表的结构,虽然很容易产生工资报表,但是每当一名职工分配一个工程时,都要重复输入大量的数据。这种重复的输入操作,很可能导致数据的不一致性。一张表描述了多件事情,如图-3所示。应用范式规范化设计工程号工程名称职工号姓名职务小时工资率工时图-3 函数依赖图工程信息员工信息项目工时信息应用第二范式规范化工程号工程名称职工号姓名职务小时工资率工程号职工号工时图-4 应用第二范式工程表员工表项目工时表满足第三范式吗? 应用第三范式规范化工程号工程名称职工号姓名职务职务小时工资率工

8、程号职工号工时工程表员工表职务表工程表鲍依斯-科得范式(BCNF) lBCNF:在3NF基础上,加上主键也不能有 传递依赖 规范化和性能的关系 l为满足某种商业目标,数据库性能比规范化数据 库更重要 通过在给定的表中添加额外的字段,以大 量减少需要从中搜索信息所需的时间 通过在给定的表中插入计算列(如成绩总 分),以方便查询l进行规范化的同时,还需要综合考虑数据库的性 能。总结 :l 规范化的本质是提高数据独立性,解决 插入异常、删除异常、修改复杂、数据冗 余等问题的方法。规范化的基本思想是逐 步消除数据依赖中不合适的部分。 第一范式(1NF)的目标:确保每列的原子性。 第二范式(2NF)的目标:确保表中的每列,都和 主键相关 第三范式(3NF)的目标:确保每列都和主键列直 接相关,而不是间接相关

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

当前位置:首页 > 生活休闲 > 科普知识

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