第5章 关系数据库规范化理论1

第5章 关系数据库规范化理论1

ID:42923607

大小:1.95 MB

页数:121页

时间:2019-09-25

第5章 关系数据库规范化理论1_第1页
第5章 关系数据库规范化理论1_第2页
第5章 关系数据库规范化理论1_第3页
第5章 关系数据库规范化理论1_第4页
第5章 关系数据库规范化理论1_第5页
资源描述:

《第5章 关系数据库规范化理论1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第5章关系数据库规范化理论5.1关系规范化的作用5.2函数依赖5.3关系模式的规范化5.4多值依赖和第四范式5.5关系的规范化程度5.6函数依赖公理与模式分解5.7小结5.1关系规范化的作用所谓规范化,就是用形式更为简洁、结构更加规范的关系模式取代原有关系的过程。例有三个属性的工资表(姓名,级别,工资)关系模式。对应此模式建立的表如表5―1所示。表5―1工资表5.1.1表5―1存在的问题1.数据冗余度大表5―1中,工资是从级别推导出的,但却重复存放。数据在数据库中的重复存放称为数据冗余。冗余度大,不仅浪费存储空间,重

2、要的是在对数据进行修改时,又易造成数据的不一致性。如10级的工资变化时,如果表中有K个职工的工资为10级,就需要修改K次,一旦遗漏就使数据不一致。2.插入与删除异常无法插入某部分信息或删除掉不应删除的信息称为插入或删除异常。例如,9级工资为550元的信息无法插入表。因为该表的码是姓名,而目前无职工工资级别为9级,表中不能插入码为空值的记录。即在插入一行时,此关系模式强迫同时增加关于两个实体的数据。又如,要删除姓名为C的职工记录时,又将7级工资的信息一起删去了。即在删除一行时,删除了关于两个实体的数据。5.1.2解决方

3、法上述现象的产生,是由于关系模式不合理。如果一个关系中,存储了两个或两个以上实体的数据,一般应将它分解为多个关系,使每个关系只有一个实体。将表5―1分解为两个模式表达:职工级别(姓名,级别),级别工资(级别,工资),如表5―2、表5―3所示。表5―2职工级别表5―3级别工资改进后,有如下好处:(1)数据量减少。设有n个职工,m个工资级别,则表5―1有n*m个数据,表5―2和表5―3共有2n+2m个数据,显然后者的数据量要少得多。(2)表达能力强。表5―1中无法进入的信息(如9级工资),而在采用改进后的两个模式表达时则

4、可加入;当删除职工C时,也不会丢失7级工资信息。(3)修改方便。改进后,修改某一级别工资时只要修改一处。当然,改进后的关系模式也存在另外一个问题,当查询某个职工的工资时,需要将两个关系连接后进行查询,而关系的连接代价是很大的。那么,什么样的关系模式需要分解?分解关系模式的理论依据又是什么?分解后能完全消除上述三种问题吗?回答这些问题需要理论的指导。下面将加以讨论。5.2函数依赖5.2.1属性间的关系前面章节讲到客观世界的事务间有着错综复杂的联系。实体间的联系有两类,一类是实体与实体之间的联系;另一类是实体内部各属性间

5、的联系。在数据库建模一章中主要讨论了前一类联系,现在讨论第二类联系。属性间的联系可分为以下三类:1.一对一关系(1∶1)以职工模式为例:职工(职工号,姓名,职称,部门),如果该企业(或单位)中职工无重名,则属性职工号与姓名之间是1∶1关系。一个职工号唯一地决定一个姓名,一个姓名也可决定唯一的职工号。设X、Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中至多有一个值与之对应,且反之亦然,则称X、Y两属性间是一对一关系。2.一对多关系(1∶m)职工模式中,职工号和职称间是一对多关系。一个职工号只对应一种职称(如

6、胡一民只能对应工程师),但一种职称却可对应多个职工号(如工程师可对应多名职工)。设X、Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中至多有一个值与之对应,而Y中的一个值却可以和X中的n个值(n≥0)相对应,则称Y对X是一对多关系。3.多对多关系(m∶m)在职工模式中,职称和部门之间是多对多关系。一种职称可分布在多个部门中(如每一个部门中均可有工程师),而一个部门中也可有多个职称。设X、Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中有m(m≥0)个值与之对应,而Y中的一个值也可以和X中的n个值(

7、n≥0)相对应,则称Y对X是多对多关系。上述属性间的三种关系实际上是属性值之间相互依赖又相互制约的反映,称为属性间的数据依赖。数据依赖是现实世界属性间相互联系的抽象,是世界内在的性质,是语义的体现。数据依赖共有三种:函数依赖(FunctionalDependency,简称FD)、多值依赖(MultivaluedDependency,简称MVD)和连接依赖(JoinDependency,简称JD),其中最重要的是函数依赖和多值依赖。5.2.2函数依赖函数依赖是属性之间的一种联系。假设给定一个属性的值,就可以唯一确定(查

8、到)另一个属性的值。例如,知道职工号的值,可以得出其对应的职称的值。如果这种情况成立,就可以说职称函数依赖于职工号。定义1所谓函数依赖是指在关系R中,X、Y为R的两个属性或属性组,如果对于R的所有关系r都存在:对于X的每一个具体值,Y都只有一个具体值与之对应,则称属性Y函数依赖于属性X。或者说,属性X函数决定属性Y,记作X→Y。其中X叫决定因素

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。