文档详情

3-关系数据库规范化理论.ppt

发布:2017-05-06约2.11万字共132页下载文档
文本预览下载声明
第三章 关系数据库规范化理论 3.1 关系规范化的作用 3.2 函数依赖 3.3 函数依赖的公理系统 3.4 关系模式的规范化 3.5 多值依赖与第四范式 3.6 关系模式的分解 3.7 连接依赖与第五范式 3.8 关系模式规范化步骤 3.9 小结 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?? 每一个教师都对其所教的学生重复存储。 2)、更新异常(Update Anomalies) l?? 插入异常(Insert Anomalies):由于主键中元素的属性值不能取空值,如果新分配来一位教师或新成立一个系,则这位教师及新系名就无法插入;如果一位教师所开的课程无人选修或一门课程列入计划但目前不开课,也无法插入。 ?? 修改异常(Modification Anomalies):如果更改一门课程的任课教师,则需要修改多个元组。如果仅部分修改,部分不修改,就会造成数据的不一致性。同样的情形,如果一个学生转系,则对应此学生的所有元组都必须修改,否则,也出现数据的不一致性。 l?删除异常(Deletion Anomalies):如果某系的所有学生全部毕业,又没有在读及新生,当从表中删除毕业学生的选课信息时,则连同此系的信息将全部丢失。同样地,如果所有学生都退选一门课程,则该课程的相关信息也同样丢失了。 二、解决的方法 关系模式JiaoXueU, F中存在问题的结论: JiaoXue关系模式不是一个好的模式。 “好”的模式: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少。 原因:由存在于模式中的某些数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适 的数据依赖。 关系模式JiaoXueU, F的一种分解方法 教学关系分解为三个关系模式来表达:学生基本信息Student(Sno,Sname,Ssex,Dname),课程信息Course(Cno,Cname,Tname),及学生成绩Grade(Sno,Cno,Grade)。 分解后的关系模式的优点 1)、数据存储量减少。 2)、更新方便。 插入问题部分解决:对一位教师所开的无人选修的课程可方便地在课程信息表中插入。但是,新分配来的教师、新成立的系或列入计划但目前不开课的课程,还是无法插入。要解决无法插入的问题,还可继续将系名与课程作分解来解决。 ????? 修改方便:原关系中对数据修改所造成的数据不一致性,在分解后得到了很好的解决,改进后,只需要修改一处。 ?????? 删除问题也部分解决:当所有学生都退选一门课程时,删除退选的课程不会丢失该门课程的信息。值得注意的是,系的信息丢失问题依然存在,解决的方法还需继续进行分解。 分解后的关系模式说明 虽然改进后的模式部分地解决了不合理的关系模式所带来的问题,但同时,改进后的关系模式也会带来新的问题,如当查询某个系的学生成绩时,就需要将两个关系连接后进行查询,增加了查询时关系的连接开销,而关系的连接代价却又是很大的。 此外,必须说明的是,不是任何分解都是有效的。若将JiaoXueU, F分解为(Sno,Sname,Ssex,Dname,)、(Sno,Cno,Cname,Tname)及(Sname,Cno,Grade),不但解决不了实际问题,反面会带来更多的问题。 三、关系模式规范化的作用 规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。
显示全部
相似文档