- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库原理与SQL Server教程第8章 关系数据模式的规范化理论
C++面向对象程序设计 数据库原理及SQL Server 第八章 关系数据模式的规范化理论 第八章 关系数据模式的规范化理论 8.1 关系模式规范化的作用 8.2 函数依赖及其关系范式 8.3 多值依赖及第四范式 8.4 规范化小结 8.1 关系模式规范化的作用 我们在进行数据库设计的时候,无论是关系的还是非关系的,都要考虑应该如何构造一个适合的数据模式,也就是应该构造几个关系模式,每个关系由哪些属性组成等。这就涉及到了关系数据库的逻辑设计问题。由于关系模型有严格的数学理论基础,因此,人们就以关系模型为背景来讨论这个问题,形成了数据库逻辑设计的有力工具-关系数据库的规范化理论。 8.2 函数依赖及其关系范式 8.2.1 函数依赖 8.2.2 关系的1NF、2NF、3NF 8.2.3 BCNF 8.2 函数依赖及其关系范式 要学习关系数据库的规范化理论,首先要了解函数依赖和范式的概念,所谓范式(Normal Form)是指规范化的关系模式。由规范化程度不同,就产生了不同的范式。 从1971年起,E.F.Codd相继提出了第一范式、第二范式、第三范式,Codd与Boyce合作提出了Boyce-Codd范式。在1976-1978年间,Fagin、Delobe以及Zaniolo又定义了第四范式。到目前为止,已经提出了第五范式。每种范式都规定了一些限制约束条件。 8.2.1 函数依赖 关系模式是用来描述关系的,它可以用一个五元组来表示: R(U, D, DOM, F) R表示关系的名称,U 表示组成该关系的属性名集合,D 表示属性组U中属性所来自的域,DOM表示属性向域的映像集合,F表示属性间数据的依赖关系集合 由于属性U和DOM对模式设计关系不大,因此可以把关系的五元组表示简化的看做一个三元组表示: R(U, F) 当且仅当U上的一个关系满足F时,称r为关系模式R(U, F)的一个关系。 8.2.1 函数依赖 F数据依赖集是关系数据库设计理论的中心问题,所谓数据依赖是实体属性值之间相互联系和相互制约的关系,是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。函数依赖(Functional Dependency,简称为FD)和多值依赖(Multivalued Dependency,简称为MVD)是与数据库设计理论中最重要的两种数据依赖类型 8.2.1 函数依赖 函数依赖普遍的存在于现实生活中。比如一个“学校图书管理”数据库,在这个数据库涉及到的对象包括图书的书号(Bid)、读者借书卡号(Cid)、借书时间(Bdate)、还书时间(Sdate)、读者类别(Class)和允许最多的可借书的数量(Mcount)。则该图书关系模式的属性集合可以表示为:U={ Bid , Cid , Bdate , Sdate , Class , Mcount } 8.2.1 函数依赖 从现实世界可以得知: (1)一个读者只属于一个类型,但一个类型一般对应有多名读者。 (2)读者类别决定允许最多可以借书的数量。 (3)一个读者可以同时借阅多本图书,但一个图书不能在同一时间被同一个读者借多次。 (4)一个读者对一本图书的借阅时间被确定之后就会有一个惟一的还书时间。 从以上分析可以得到属性组U上一组函数依赖F(如图所示): 8.2.1 函数依赖 8.2.1 函数依赖 如果仅仅考虑函数依赖这一种数据依赖,还不足以得到一个规范的关系模式 8.2.1 函数依赖 从表中的数据情况可以看出,该关系存在以下问题: (1)存在较大数据冗余(Date Redundancy)每一个系名存储的次数等于该系学生人数乘以每个学生选修的课程门数。 (2)更新异常(Update Anomalies)若某学生转系,系名要更换,数据库中该学生所在的系名要全部修改。如有失误,某些记录漏改了,则会使数据库中的数据发生不一致的错误,出现更新异常。 8.2.1 函数依赖 (3)插入异常(Insertion Anomalies)若学校开设一个新系还没有招生,使得sno和cname无值,而在此关系模式中(sno,cname)为键,所以在插入数据时关系数据库将无法操作,引起了插入异常。 (4)删除异常(Deletion Anomalies)当某个系的学生都毕业了而又没有招新生时,删除了全部学生记录,随之也删除了系名记录,使得一个在现实世界中存的系,在数据库中不存在了,即出现了删除异常。 8.2.1 函数依赖 要解决以上问题可以采用模式分解,模式分解是关系规范化的主要方法。 例如,上述不规范的教学关系模式可以分解为“学生表”Student、“教学系表”Depart“选课表”Study,其关系模式
文档评论(0)