- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.范式和其对数据库设计指导意义
第二章 范式及其对数据库设计的指导意义 ;2.1 范式理论及对实践指导意义概述;2)各范式之间关系:1NF?2NF ?3NF ?BCNF ?4NF ?5NF ?DKNF?6NF
3)规范化方法:一个属于低一级的范式的关系模式可以通过模式分解转换成属于高一级范式的关系模式,这个过程称为关系模式的规范化。
;4)规范化目的:消除关系中的数据冗余;插入,更新和删除异常实例:;插入异常:当新成立一个系但还没有学生时,产生插入异常。
删除异常:当一个系的学生被全部删除后,系信息也被删除。
更新异常:当系名称或系主任发生变化,必须同时更新这个系所有学生记录,若漏改一个,就产生更新异常。
;5)规范化理论对实践的指导意义;可避免异常:关系规范化理论对设计者有指导意义的是消除可避免异常引起的数据冗余。
冗余和范式关系:
一般消除了一个关系中的数据冗余(除外键引用为必要的数据冗余外),该关系也就符合了范式要求。
一个关系符合范式要求,一般就不会产生数据冗余,但必须注意的是范式可以消除一个关系中的(单行)数据冗余,但不能消除一个表的行间冗余和多个关系之间的数据冗余。;2.2 范式2.2.1 1NF及对实践的指导意义1)定义;如一个学生的成绩包括数学,语文,外语等,则成绩不能作为学生关系中的一 个属性。
要使其符合1NF,必须把数学,语文,外语成绩直接作为学生关系的属性。
由于关系数据库中表中列之间的关系相互并列,本身不支持层次结构或数组,所以表面上看,只要是二维表,就一定符合1NF ;3)1NF的第二层次的解释;4)1NF的第三层次的解释;2.2.2 2NF及对实践的指导意义; 单据号 单据日期 品号 品名 数量
b001 2003-2-1 G01 A 10
b001 2003-2-1 G02 B 12
b002 2004-2-7 G02 B 20
{单据号,品号}为关系的主码,“单据日期”为非主属性,“单据号”?“单据日期”,即非主属性“单据日期”部分依赖于码,这种设计的数据冗余显而易见。
把关系分解为:单据摘要(单据号*、单据日期)和单据明细(单据号*,品号*,品名,数量),通过单据号建立关联。;思考练习:; 若把学生学科成绩设计成(学号,姓名,学科号,学科名,成绩),该关系就不符合第二范式。(“学号”,“学科号”)为该关系的主键(码),非主属性中,除“成绩”完全依赖于主键,“姓名”和“学科名”不完全依赖于主键,即仅分别完全依赖于主键的子集“学号”和“学科号”。
要使其符合2NF,必须把上述关系分解成三个关系:学生(学号,姓名,…)、学科(学科号,学科名,…)和成绩(学号, 学科号, 成绩)。;2.2.3 3NF及对实践的指导意义;不属于3NF必然存在冗余;如在学生关系中增加所在“系”和“系主任”属性,则该关系就不符合第三范式,因为由依赖关系“学号?系?系主任”,中间就存在了传递函数依赖,学号?系主任。
学号 姓名 系 系主任
001 wang 数学 Li
002 Feng 数学 Li
003 Cheng 数学 Li
004 Huang 物理 Xu
显然这种设计存在数据冗余;正确的做法是在学生关系中增加“系编号”属性,同时增加一个关系:系(系编号,系名,系主任) 。
学号 姓名 系号 系号 系 系主任
001 wang 01 01 数学 Li
002 Feng 01 02 物理 Xu
003 Cheng 01
004 Huang 02
单据中包含商品代码外,还包括商品属性,同样不符合第三范式,因为存在下列传递函数依赖:(单据号,单据明细序号)?商品代码?商品属性。;2.2.4 BCNF-扩充的第三范式;属于3NF但不属于BCNF的例:
学生选课(学号,课程号,教师编号,成绩),假设一个教师只上一门课。则:教师编号?课程号,但教师编号不是关系的码,所以此关系不属于BCNF。
学号 课程号 教师编号 成绩
001 数据库 Li 89
001 C语言 Zhang 76
002 数据库 Li 99
003 数据库 Li 87
显然这种设计存在数据冗余; (学号,课程号)和(学号,教师编号)均为关系的码,所以学号、课程号和教师编号为主属性,成绩为非主属性,显然,成绩不传递函数依赖于上述两个码,所以关系属于3NF。
把上述关系分解成:学生选课(学号,教师,成绩)和教师任课(教师,课程)关系就符合BCNF。
学号 教师 成绩 教师 课程
001 Li 89 Li 数据库
001 Zhang 76 Zhang C语言
002 Li 99
003 Li 87
文档评论(0)