5-模式设计理论.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5 关系数据库规范化理论 本章目标 本章主要介绍关系数据库的规范化理论,要求对关系模式设计中可能出现的问题及其产生原因以及解决的途径、分解的原则和方法进行理解和掌握。 5.1 问题的概述 5.1.1 问题的提出与分析 数据库理论与设计中有一个重要的问题,就是在一个数据库中如何构造合适的关系模式,它涉及一系列的理论与技术,从而形成了关系数据库设计理论。由于合适的关系模式要符合一定的规范化要求,所以又可称为关系数据库的规范化理论。 问题的提出 例5.1.1设有一个关系模式R(U),其中U为由属性S#,C#,Tn,Td和G组成的属性集合,其中S#和C#的含义同前,而Tn为任课教师姓名,Td为任课教师所在系别,G为课程成绩。给关系具有如下语义: 一个学生只有一个学号,一门课程只有一个课程号; 每一位学生选修的每一门课程都有一个成绩; 每一门课程只有一位教师任课,但一门教师可以担任多门课程; 教师没有重名,每一位教师只属于一个系。 根据上述语义和常识,可以知道R的候选键有以下三组: {S#,C#}、{C#,Tn}、{Tn,Td} 选定{S#,C#}作为主键 通过分析关系模式R(U),我们可以发现下面两类问题。 第一类问题是所谓数据大量冗余这表现在: 每一门课程的任课教师姓名必须对选修该门课程的学生重复一次; 每一门课程的任课教师所在的系名必须对选修该门课程的学生重复一次。 第二类问题是所谓更新出现异常(update anomalies)这表现在: 修改异常(modification anomalies)修改一门课程的任课教师,或者一门课程由另一个开设,就需要修改多个元组。如果不分修改,部分不修改,就会出现数据间的不一致。 插入异常(insert anomalies)由于主键中元素的属性值不能取空值,如果某系的一位教师不开课,则这位教师的姓名和所属的系名就不能插入;如果一位教师所开的课程无人选修或者一门课程列入计划而目前不开,也无法插入。 删除异常(deletion anomalies)如果所有学生都退选一门课,则有关这门课的其他数据(Tn和Td)也将删除;同样, 如果一位教师因故暂时停开,则这位教师的其他信息(Td,C#)也将被删除。 问题的分析 这两类现象的根本原因在于关系的结构。 一个关系可以有一个或者多个候选键,其中一个可以选为主键。主键的值唯一确定其他属性的值,它是各个元组型和区别的标识,也是一个元组存在的标识。这些候选键的值不能重复出现,也不能全部或者部分设为空值。本来这些候选键都可以作为独立的关系存在,在实际上却是不得不依附其他关系而存在。这就是关系结构带来的限制,它不能正确反映现实世界的真实情况。 如果在构造关系模式的时候,不从语义上研究和考虑到属性间的这种关联,简单地将有关系和无关系的、关系密切的和关系松散的、具有此种关联的和有彼种关联的属性随意编排在一起,就必然发生某种冲突,引起某些“排它”现象出现,即冗余度水平较高,更新产生异常。解决问题的根本方法就是将关系模式进行分解,也就是进行所谓关系的规范化。 5.1.2 问题的解决方案 由上面的讨论可以知道,在关系数据库的设计当中,不是随便一种关系模式设计方案都是可行的,更不是任何一种关系模式都是可以投入应用的。由于数据库中的每一个关系模式的属性之间需要满足某种内在的必然联系,因此,设计一个好的数据库的根本方法是先要分析和掌握属性间的语义关联,然后再依据这些关联得到相应的设计方案。 就目前而言,人们认识到属性之间一般有两种依赖关系,一种是函数依赖关系,一种是多值依赖关系。函数依赖关系与更新异常密切相关,多值依赖与数据冗余密切联系。基于对这两种依赖关系不同层面上的具体要求,人们又将属性之间的联系分为若干等级,这就是所谓的关系的规范化(normalization)。 由此看来,解决问题的基本方案就是分析研究属性之间的联系,按照每个关系中属性间满足某种内在语义条件,也就是按照属性间联系所处的等级规范来构造关系。由此产生的一整套有关理论称之为关系数据库的规范化理论。规范化理论是关系数据库设计中的最重要部分。 5.2 规范化基本理论 5.2.1 函数依赖 函数依赖的概念 设R(U)是属性集U上的关系模式,X、Y是U的一个子集。R是R(U)中的任意给定的一个关系r。若对于r中任意两个元组s和t,当s[X]=t[X]时,就有s[Y]=t[X],则称属性子集X函数决定属性子集Y或者称Y函数依赖于X,否则就称X不函数决定Y或者

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档