- 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-1 数据库规范化 * 学习目标与要求 了解范式的基本概念及表的规范方法 掌握将数据表规范化的基本方法 * 主要内容 1. 规范化 2. 范式 * 1. 规范化 规范化指创建用来存储信息的有效的、可靠的、灵活的和适当的“关系”数据库结构的过程,包含将数据库分成两个或更多表和定义它们之间关系。 规范化的目的是隔离数据,所以字段的添加、删除和修改可以在一张表中进行,并且通过已定义的关系传播到数据库的其余部分。 * 1. 规范化 存在问题: 1)数据冗余太大 浪费大量的存储空间 例:班级学生的选课信息(课程信息)出现重复。 2)更新异常 数据冗余,更新数据时,维护数据完整性代价大。 例:某学生更换其家庭地址后,系统必须修改与学生有关的每一个元组。 * 1. 规范化 3)插入异常 该插的数据插不进去 例,如果这门课没有学生选修,而学号和课程编号为关键码,则因没有学生而使得学号无值,缺主键,而无法插入。 4)删除异常 不该删除的数据不得不删除 例,如果一门课程学习结束后,欲删除该课程信息,若一名学生只修了这门课,则学生的基本信息也随之删除。 * 1. 规范化 结论: 这个学生关系模式不是一个好的模式。 “好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。 原因:由存在于模式中的某些数据依赖引起的。 解决方法:通过分解关系模式来消除其中不合适 的数据依赖。 * 1. 规范化 规范化作用: 1)灵活性 规则化使数据结构非常灵活,并能够支持查看数据的不同方法。在前面的示例中,学生课程表允许我们标识选择某个课程的学生,或是标识某个学生所选的课程。 2)数据完整性 数据完整性是 RDBMS 中一个重要的特征。数据的完整性在任何时刻都不能被破坏。像删除、插入和更新这样的修改操作不能损坏数据完整性,否则会导致修改异常。 3)效率 规则化帮助消除冗余数据,以节省空间,并使得数据检索过程更有效率。 * 2. 范式 数据依赖是通过一个关系中,属性间值的相等与否,体现出来的数据间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。 数据依赖中最普遍的就是函数依赖和多值依赖。 函数依赖极为普遍地存在于现实生活中。 比如:描述一个学生的关系,可以有学号(Sno),姓名(Sname),系名(Sdept)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习。因而当“学号”值确定之后,姓名和该生所在系的值也就被唯一地确定了。 函数依赖会导致插入删除异常,以及数据冗余太大。 * 数据依赖 图1 学生关系模式的函数依赖 图2 学生关系模式的一个关系 三个“毛病”: ① 插入异常:如果一个系刚成立尚无学生,或者虽然有了学生但尚未安排课程。那么我们就无法把这个系及其负责人的信息存入数据库。 ② 删除异常:反过来,如果某个系的学生全部毕业了,我们在删除该系学生选修课程的同时,把这个系及其负责人的信息也丢掉了。 ③ 冗余太大:比如,每一个系负责人的姓名要与该系每一个学生的每一门功课的成绩出现的次数一样多。这样,一方面浪费存储,另一方面系统要付出很大的代价来维护数据库的完整性。比如某系负责人更换后,就必须逐一修改有关的每一个元组。 有函数依赖的关系改造 把学生关系分成三个关系模式,如下: S(Sno,Sdept,Sno→Sdept) SG(Sno,Cname,Grade,(Sno,Cname) →Grade) Dept(Sdept,Manager,Sdept→Manager) * 2. 范式 函数依赖的定义 定义1 设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y。 注意:函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均要满足的约束条件。也就是说这个约束是针对这个关系模式的所有关系。 例如:Sno→Sdept, (Sno,Cname)→Grade * 2. 范式 函数依赖的几个术语和记号 X→Y,但Y X则称X→Y是非平凡的函数依赖。若不特别声明,我们总是讨论非平凡的函数依赖。 X→Y,但Y
文档评论(0)