数据库系统原理与应用课件作者孟彩霞第五章节.ppt

数据库系统原理与应用课件作者孟彩霞第五章节.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 关系数据库规范化理论 5.1 问题的提出 5.2 函数依赖 5.3 规范化 5.4 函数依赖的公理系统 5.5 关系模式的分解 5.1 问题的提出 关系数据库逻辑设计 针对具体问题,如何构造一个适合于它的数据模式。即应该构造几个关系模式,每个关系模式应由哪些属性组成等。(不同处理,往往会导致数据管理的效率相差很远) 数据库逻辑设计的工具──关系数据库的规范化理论。 如何设计出“好”的关系模式呢?也即关系数据库规范化要讨论的问题 5.1 问题的提出(续) 一、概念回顾: 关系:描述实体、属性、实体间的联系。 关系模式:用来描述关系。 关系数据库:基于关系模型的数据库,利用关系来描述现实世界。 从形式上看,它由一组关系组成。 关系数据库的模式:定义这组关系的关系模式的集合。 5.1 问题的提出(续) 二、关系模式的形式化定义 关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F) R:关系名 U:组成该关系的属性名集合 D:属性组U中属性所来自的域的集合 DOM:属性向域的映象集合 F:属性间数据的依赖关系集合 5.1 问题的提出(续) 三、关系模式的简化表示 简化为一个三元组: RU, F 当且仅当U上的一个关系r 满足F 时,r 称为关系模式R(U, F)的一个关系 5.1.1 关系模型可能存在的异常 数据依赖 是通过一个关系中属性间值的相等(关联)与否体现出来的数据间的相互关系 是现实世界属性间相互联系的抽象 是数据内在的性质 是语义的体现 数据依赖的类型 函数依赖(Functional Dependency,简记为FD) 多值依赖(Multivalued Dependency,简记为MVD) 其他 5.1.1 关系模型可能存在的异常(续) 函数依赖普遍存在于现实生活中。 例如:设计一个用于学生管理的数据库,该数据库涉及的属性包括学号(Sno)、姓名(Sname)、所在系(Sdept)、住处(Loca)、课程号(Cno)、成绩(Grade)。 假设用一个单一关系模式 SLCU,F 来表示该数据库,则该关系模式为: U = {Sno,Sname,Sdept,Loca,Cno,Grade} 5.1.1 关系模型可能存在的异常(续) 假设有以下语义: (1)学生的学号是唯一的。 (2)一个系有若干个学生,但一个学生只能在一个系学习。 (3)同一个系的学生住在同一个区域。 (4)一个学生可以选修多门课程,每门课程可以被多个学生选修。 (5)每个学生选修一门课程有一个成绩。 5.1.1 关系模型可能存在的异常(续) 关系模式 SLCU,F U = { Sno,Sname,Sdept,Loca,Cno,Grade } F ={ Sno → Sname, Sno → Sdept, Sdept → Loca, (Sno, Cno) → Grade } 5.1.1 关系模型可能存在的异常(续) 上述关系存在以下几个方面的问题: ⒈ 数据冗余太大 ⒉ 更新异常 ⒊ 插入异常 ⒋ 删除异常 结论: SLC关系模式不是一个好的关系模式 好的关系模式:应该不会发生插入异常、更新异常和删除异常,并且数据库的冗余要尽可能地少。 5.1.2 异常原因分析 在关系模式SLC中,(Sno,Cno)为主键。SLC中U上的一组函数依赖F: F = {Sno → Sname, Sno → Sdept, Sdept → Loca, (Sno, Cno) → Grade } 可表示成如图5.1所示: 5.1.2 异常原因分析(续) 在关系模式SLC中: Grade完全由主键(Sno,Cno)决定 Sname、Sdept的值由Sno(主键的一部分)决定 Loca的值由Sdept决定,与Sno无直接联系 关系SLC中存在的这些函数依赖就是问题的根本所在,即关系模式中的属性并非完全是由主键确定,有一部分属性只与键的一部分有关。把无直接联系的属性放在一起构成关系模式,必然会产生上述的异常情况。 5.1.2 异常原因分析(续) 将SLC改造为以下3个关系模式: S(Sno,Sname,Sdept,Sno→Sname,Sno→Sdept) L(Sdept,Loca,Sdept→Loca) SC(Sno,Cno,Grade,(Sno,Cno)→Grade) 这3个关系模式都不会发生插入异常、更新异常和删除异常的情况,并且数据的冗余也得到了较好的控制。 5.2.1 函数依赖的定义 定义5.1 设R(U)是属性集U上的关系模式。X和Y是U的子集。若对于R(U)上的任意一个可能的关系r,如果 r 中不可能存在两个元组,它们在 X 上的属性值相等,而在 Y 上的属性值不等,则称

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档