- 1、本文档共133页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
湖南工学院计算机系 学习目标 了解关系规范化的作用; 掌握函数依赖及其公理系统; 掌握关系模式的规范化及其范式; 掌握关系模式的分解; 掌握关系模式规范化步骤。 本章主要内容 4.1 关系规范化的作用 4.2 函数依赖 4.3 * 函数依赖的公理系统 4.4 关系模式的规范化 4.5 * 多值依赖与第四范式 4.6 关系模式的分解 4.7 * 连接依赖与第五范式 4.8 关系模式规范化步骤 4.1 关系规范化的作用 一、问题的提出 二、解决的方法 三、关系模式规范化的作用 一、问题的提出 例:描述学校教学管理的数据库: 学生的学号(Sno)、姓名(Sname)、性别(Ssex)、所在系名(Dname)、所学的课程名(Cname)、任课老师名(Tname)、成绩(Grade),关系描述为: JiaoXue(Sno,Sname,Ssex,Dname,Cname,Tname,Grade) 单一的关系模式 : JiaoXue U、F U ={ Sno,Sname,Ssex,Dname,Cname,Tname,Grade } 此关系的主键为:(Sno,Cname) 问题的提出(续) 学校教学管理数据库的语义: ⒈ 一个系有若干学生, 一个学生只属于一个系; ⒉ 一个系只有一名主任; ⒊ 一个学生可以选修多门课程, 每门课程有若干学生选修; ⒋ 每个学生所学的每门课程都有一个成绩。 5. 每门课程均由一个教师任教。 关系模式JiaoXueU, F中存在的问题 1)、数据冗余(Data Redundancy) l?每一个系名对该系的学生人数乘以每个学生选修的课程门数重复存储。 l ?每一个课程名均对选修该门课程的学生重复存储。 l ?每一个教师都对其所教的学生重复存储。 关系模式JiaoXueU, F中存在的问题(续) 2)、更新异常(Update Anomalies) l? 插入异常(Insert Anomalies):由于主键中元素的属性值不能取空值,如果新分配来一位教师或新成立一个系,则这位教师及新系名就无法插入;如果一位教师所开的课程无人选修或一门课程列入计划但目前不开课,也无法插入。 l 修改异常(Modification Anomalies):如果更改一门课程的任课教师,则需要修改多个元组。如果仅部分修改,部分不修改,就会造成数据的不一致性。同样的情形,如果一个学生转系,则对应此学生的所有元组都必须修改,否则,也出现数据的不一致性。 l 删除异常(Deletion Anomalies):如果某系的所有学生全部毕业,又没有在读及新生,当从表中删除毕业学生的选课信息时,则连同此系的信息将全部丢失。同样地,如果所有学生都退选一门课程,则该课程的相关信息也同样丢失了。 二、解决的方法 关系模式JiaoXueU, F中存在问题的结论: JiaoXue关系模式不是一个好的模式。 “好”的模式: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少。 原因:由存在于模式中的某些数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适 的数据依赖。 关系模式JiaoXueU, F的一种分解方法 教学关系分解为三个关系模式来表达:学生基本信息Student(Sno,Sname,Ssex,Dname),课程信息Course(Cno,Cname,Tname),及学生成绩Grade(Sno,Cno,Grade)。 分解后的关系模式的优点 1)、数据存储量减少。设有n个学生,每个学生平均选修m门课程,则表中学生信息就有4nm之多。经过改进后学生信息及成绩表中,学生的信息仅为3n+mn。学生信息的存储量减少了3(m-1)n。显然,学生选课数绝不会是1,因而,经过分解后数据量要少得多。 2)、更新方便。 插入问题部分解决:对一位教师所开的无人选修的课程可方便地在课程信息表中插入。但是,新分配来的教师、新成立的系或列入计划但目前不开课的课程,还是无法插入。要解决无法插入的问题,还可继续将系名与课程作分解来解决。 修改方便:原关系中对数据修改所造成的数据不一致性,在分解后得到了很好的解决,改进后,只需要修改一处。 删除问题也部分解决:当所有学生都退选一门课程时,删除退选的课程不会丢失该门课程的信息。值得注意的是,系的信息丢失问题依然存在,解决的方法还需继续进行分解。 分解后的关系模式说明 虽然改进后的模式部分地解决了不合理的关系模式所带来的问题,但同时,改进后的关系模式也会带来新的问题,如当查询某个系的学生成绩时,就需要将两个关系连接后进行查询,增加了查询时关系的连接开销,而关系的连接代价却又是很大的。 此外,必须说明的是,不是任何分解都是有效的。若将
文档评论(0)