数据库范式设计(专题).ppt

上传人:p** 文档编号:180381 上传时间:2023-03-27 格式:PPT 页数:18 大小:275.50KB
下载 相关 举报
数据库范式设计(专题).ppt_第1页
第1页 / 共18页
数据库范式设计(专题).ppt_第2页
第2页 / 共18页
数据库范式设计(专题).ppt_第3页
第3页 / 共18页
数据库范式设计(专题).ppt_第4页
第4页 / 共18页
数据库范式设计(专题).ppt_第5页
第5页 / 共18页
数据库范式设计(专题).ppt_第6页
第6页 / 共18页
数据库范式设计(专题).ppt_第7页
第7页 / 共18页
数据库范式设计(专题).ppt_第8页
第8页 / 共18页
数据库范式设计(专题).ppt_第9页
第9页 / 共18页
数据库范式设计(专题).ppt_第10页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据库范式设计(专题).ppt》由会员分享,可在线阅读,更多相关《数据库范式设计(专题).ppt(18页珍藏版)》请在第壹文秘上搜索。

1、2023年3月27日第1页数据库范式设计专题数据库范式设计专题第一范式第一范式 (1st NF)l在任何一个关系数据库中,第一范式(在任何一个关系数据库中,第一范式(1NF)是对关)是对关系模式的基本要求,不满足第一范式(系模式的基本要求,不满足第一范式(1NF)的数据)的数据库就不是关系数据库。库就不是关系数据库。 l所谓第一范式(所谓第一范式(1NF)是指数据库表的)是指数据库表的每一列都是不每一列都是不可分割的基本数据项可分割的基本数据项,同一列中不能有多个值同一列中不能有多个值,即实,即实体中的某个属性不能有多个值或者不能有重复的属性体中的某个属性不能有多个值或者不能有重复的属性。如果

2、出现重复的属性,就可能需要定义一个新的实。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(间为一对多关系。在第一范式(1NF)中表的每一行)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无只包含一个实例的信息。简而言之,第一范式就是无重复的列。重复的列。BuyerIDCountryCity1142中国中国日本美国北京北京东京纽约BuyerIDAddress1234中国北京市 美国纽约市英国利物浦日本东京市 2 第二范式(第二范式(2NF)l第二范式(2NF)是在第一范式

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

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

5、l公司有多名职工,每一名职工有:职工号、姓名、性别、公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等职务(工程师、技术员)等l公司按照工时和小时工资率支付工资,小时工资率由职工公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同)的职务决定(例如,技术员的小时工资率与工程师不同)l公司定期制定一个工资报表,如图公司定期制定一个工资报表,如图- -1 1所示所示规范化实例规范化实例工程号工程名称职工号姓名职务小时工资率工时实发工资A1花园大厦花园大厦1001齐光明齐光明工程师工程师6513845.001002李思岐李思岐技术

6、员技术员6016960.001004葛宇宏葛宇宏律师律师60191140.00小计小计2945.00A2立交桥立交桥1001齐光明齐光明工程师工程师6515975.001003鞠明亮鞠明亮工人工人5517935.00小计小计1910.00A3临江饭店临江饭店1002李思岐李思岐技术员技术员60181080.001004葛宇洪葛宇洪技术员技术员6014840.00小计小计1920.00图-1 某公司的工资表规范化实例规范化实例工程号工程名称职工号姓名职务小时工资率工时A1花园大厦花园大厦1001齐光明齐光明工程师工程师6513A1花园大厦花园大厦1002李思岐李思岐技术员技术员6016A1花园大

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

8、工分配一个工程。或者为了添加一名新职工的数据,先给这名职个工程。或者为了添加一名新职工的数据,先给这名职工分配一个虚拟的工程。(因为主关键字不能为空)工分配一个虚拟的工程。(因为主关键字不能为空)l删除异常删除异常 例如,例如,1001号职工要辞职,则必须删除所有职工号号职工要辞职,则必须删除所有职工号1001的数据行。这样的删除操作,很可能丢失了其它有的数据行。这样的删除操作,很可能丢失了其它有用的数据用的数据规范化实例规范化实例2采用这种方法设计表的结构,虽然采用这种方法设计表的结构,虽然很容易产生工资报表,但是每当一名很容易产生工资报表,但是每当一名职工分配一个工程时,都要重复输入职工分

9、配一个工程时,都要重复输入大量的数据。这种重复的输入操作,大量的数据。这种重复的输入操作,很可能导致数据的不一致性。很可能导致数据的不一致性。一张表描述了多件事情,如图-3所示。应用范式规范化设计应用范式规范化设计工程号工程号工程名称工程名称 职工号职工号姓名姓名职务职务小时工资率小时工资率工时工时图图-3 函数依赖图函数依赖图工程信息员工信息项目工时信息应用第二范式规范化应用第二范式规范化工程号工程号工程名称工程名称职工号职工号姓名姓名职务职务小时工资率小时工资率工程号工程号职工号职工号工时工时图图-4 应用第二范式应用第二范式工程表员工表项目工时表满足第三范式吗?满足第三范式吗? 应用第三

10、范式规范化应用第三范式规范化工程号工程号工程名称工程名称职工号职工号姓名姓名职务职务职务职务小时工资率小时工资率工程号工程号职工号职工号工时工时工程表员工表职务表工程表练习:分析是否满足练习:分析是否满足3NFl 关系模式如下:关系模式如下:l报名(学员编号,学员姓名,培训编号,报名(学员编号,学员姓名,培训编号,培训名称,培训费,报名日期)培训名称,培训费,报名日期)l每项培训有多个学员报名,每位学员可参每项培训有多个学员报名,每位学员可参加多项培训。加多项培训。答案答案主码:主码:学员编号学员编号+培训编号;培训编号;1NF;l学员(学员编号,学员姓名)学员(学员编号,学员姓名)l培训(培

11、训编号,培训名称,培训费)培训(培训编号,培训名称,培训费)l报名(学员编号,培训编号,报名日期)报名(学员编号,培训编号,报名日期)练习练习l请确定下列关系的关键字、范式等级;若请确定下列关系的关键字、范式等级;若不属于不属于3NF,则将其化为,则将其化为3NF,要求每个关,要求每个关系写一条记录。系写一条记录。 l(部门编号,部门名称,所在城市,员工(部门编号,部门名称,所在城市,员工编号,员工姓名,项目编号,项目名称,编号,员工姓名,项目编号,项目名称,预算,职务,加入项目的日期)预算,职务,加入项目的日期)l注注职务指某员工在某项目中的职务。职务指某员工在某项目中的职务。答案答案l部门

12、(部门编号,部门名称,所在城市)部门(部门编号,部门名称,所在城市)l员工(员工编号,员工姓名,部门编号)员工(员工编号,员工姓名,部门编号)l项目(项目编号,项目名称,预算)项目(项目编号,项目名称,预算)l工作(员工编号,项目编号,职务,加入工作(员工编号,项目编号,职务,加入项目的日期)项目的日期)规范化和性能的关系规范化和性能的关系 l为满足某种商业目标,数据库性能比规范化数据为满足某种商业目标,数据库性能比规范化数据库更重要库更重要 通过在给定的表中添加额外的字段,以大量减通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间少需要从中搜索信息所需的时间 通过在给定的表

13、中插入计算列(如成绩总分)通过在给定的表中插入计算列(如成绩总分),以方便查询,以方便查询l进行规范化的同时,还需要综合考虑数据库的性进行规范化的同时,还需要综合考虑数据库的性能能。总结总结 :l 规范化的本质是提高数据独立性,解决规范化的本质是提高数据独立性,解决插入异常、删除异常、修改复杂、数据冗插入异常、删除异常、修改复杂、数据冗余等问题的方法。规范化的基本思想是逐余等问题的方法。规范化的基本思想是逐步消除数据依赖中不合适的部分。步消除数据依赖中不合适的部分。 第一范式(第一范式(1NF)的目标:确保每列的原子性。)的目标:确保每列的原子性。 第二范式(第二范式(2NF)的目标:确保表中的每列,都和主)的目标:确保表中的每列,都和主键相关键相关 第三范式(第三范式(3NF)的目标:确保每列都和主键列直接)的目标:确保每列都和主键列直接相关,而不是间接相关相关,而不是间接相关

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

当前位置:首页 > 中学教育 > 中考

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

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