关系数据库规范化理论.doc

上传人:可****阿 文档编号:58266337 上传时间:2022-11-07 格式:DOC 页数:14 大小:177.50KB
返回 下载 相关 举报
关系数据库规范化理论.doc_第1页
第1页 / 共14页
关系数据库规范化理论.doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《关系数据库规范化理论.doc》由会员分享,可在线阅读,更多相关《关系数据库规范化理论.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 .第四章关系数据库规化理论一个关系数据库模式由一组关系模式组成,一个关系模式由一组属性名组成。关系数据库设计,就是如何把已给定的相互关联的一组属性名分组,并把每一组属性名组成关系的问题。然而,属性的分组不是唯一的,不同的分组对应着不同的数据库应用系统,它们的效率往往相差很远。为了使数据库设计合理可靠,简单实用,长期以来,形成了关系数据库设计的理论规化理论。4.1 关系规化的作用规化,就是用形式更为简洁,结构更加规的关系模式取代原有关系模式的过程。如果将两个或两个以上实体的数据存放在一个表里,就会出现以下三个问题: 数据冗余度大 插入异常 删除异常所谓数据冗余,就是相同数据在数据库中多次重复存

2、放的现象。数据冗余不仅会浪费存储空间,而且可能造成数据的不一致性。插入异常是指,当在不规的数据表中插入数据时,由于实体完整性约束要求主码不能为空的限制,而使有用数据无法插入的情况。删除异常是指,当不规的数据表中某条需要删除的元组中包含有一部分有用数据时,就会出现删除困难。(以P98工资表为例)解决上述三个问题的方法,就是将不规的关系分解成为多个关系,使得每个关系中只包含一个实体的数据。(讲例子解)当然,改进后的关系模式也存在另一问题,当查询职工工资时需要将两个关系连接后方能查询,而关系连接的代价也是很大的。那么,什么样的关系需要分解?分解关系模式的理论依据又是什么?分解完后能否完全消除上述三个

3、问题?回答这些问题需要理论指导。下面,将加以讨论:4.2 函数依赖4.2.1属性间关系实体间的联系有两类:一类是实体与实体之间联系;另一类是实体部各属性间的联系。数据库建模一章中讨论的是前一类,在这里我们将学习第二类。和第一类一样,实体部各属性间的联系也分为1:1、1:n和m:n三类:例:职工(职工号,职称,部门)1、 一对一关系(1:1)设X、Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中至多有一个值与之对应,反之,对于Y中的任一具体值,X中也至多有一个值与之对应,则称X、Y两属性间是一对一关系。如本例职工关系中职工号与之间就是一对一关系。2、一对多关系(1:n)设X、Y是关系R

4、的两个属性(集)。如果对于X中的任一具体值,Y中可以找到多个值与之对应,而对于Y中的任一具体值,X中至多只有一个值与之对应,则称属性X对Y是一对多关系。如职工关系中职工号与职称之间就是一对多的关系。3、多对多关系(m:n)设X、Y是关系R的两个属性(集)。如果对于X中的任一具体值,Y中有n个值与之对应,而对于Y中的任一具体值,X中也有m个值与之对应,则称属性X对Y是一对多(m:n)关系。例如,职工关系中,职称与部门之间就是多对多的关系。上述属性间的三种关系,实际上是属性值之间相互依赖与相互制约的反映,因而称之为属性间的数据依赖。数据依赖共有三种: 函数依赖(Functional Depende

5、ncy,FD) 多值依赖(Multivalued Dependency,MVD) 连接依赖(Join Dependency,JD)其中最重要的是函数依赖和多值依赖。4.2.2函数依赖函数依赖,是属性之间的一种联系。在关系R中,X、Y为R的两个属性或属性组,如果对于R的所有关系r 都存在:对于X的每一个具体值,Y都只有一个具体值与之对应,则称属性Y函数依赖于属性X。或者说,属性X函数决定属性Y,记作XY。其中X叫作决定因素,Y叫作被决定因素。上述定义,可简言之:如果属性X的值决定属性Y的值,那么属性Y函数依赖于属性X。换一种说法:如果知道X的值,就可以获得Y的值,则可以说X决定Y。若Y函数不依赖

6、于X,记作:XY。X Y若XY,YX,记作:前面学习的属性间的三种关系,并不是每种关系中都存在着函数依赖。u 如果X、Y间是1:1关系,则存在函数依赖 XYu 如果X、Y间是1:n关系,则存在函数依赖: XY或YX(多方为决定因素)u 如果X、Y间是m:n关系,则不存在函数依赖。注意,属性间的函数依赖不是指R的某个或某些关系子集满足上述限定条件,而是指R的一切关系子集都要满足定义中的限定。只要有一个具体的关系r(R的一个关系子集)不满足定义中的条件,就破坏了函数依赖,使函数依赖不成立。这里的关系子集,指的是R的某一部分元组的集合,例如:地测学院的学生关系中只包含了地测学院学生的数据,所以它是长

7、安大学学生关系的一个子集。4.2.3码的定义前面,我们对码进行了直观化的定义,下面用函数依赖的概念对码作出较为精确的形式化的定义:设K是关系模式R(U,F)中的属性或属性组,K是K的任一子集。若KU,而不存在K,则K为R的候选码(Candidate Key) 若候选码多于一个,则选其中的一个为主码(Primary Key); 包含在任一候选码中的属性,叫做主属性(Primary Attribute); 不包含在任何码中的属性称为非主属性(Nonprime Attribute)或非码属性(Nonkey Attribute) 关系模式中,最简单的情况是单个属性是码,称为单码(Single Key)

8、;最极端的情况是整个属性组是码,称为全码(AllKey)。前面已多次遇到单码的情况,下面是一个全码的例子:签约(演员名,制片公司,电影名)外码:设有两个关系R和S,X是R的属性或属性组,并且X不是R的码,但X是S的码(或与S的码意义相同),则称X是R的外部码(Foreign Key),简称外码或外键。如:职工(职工号,性别,职称,部门号)部门(部门号,部门名,负责人)其中职工关系中的“部门号”就是职工关系的一个外码。在此需要注意,在定义中说X不是R的码,并不是说X不是R的主属性,X不是码,但可以是码的组成属性,或者是任一候选码中的一个主属性。如:学生(学生号,性别,年龄)课程(课程号,课程名,

9、任课老师)选课(学生号,课程号,成绩)在选课关系中,(学生号,课程号)是该关系的码,学生号、课程号又分别是组成主码的属性(但单独不是码),它们分别是学生关系和课程关系的主码,所以是选课关系的两个外码。关系间的联系,可以通过同时存在于两个或多个关系中的主码和外码的取值来建立。如要查询某个职工所在部门的情况,只需查询部门表中的部门号与该职工部门号相同的记录即可。所以,主码和外码提供了一个表示关系间联系的途径。4.2.4函数依赖和码的唯一性由上述码的形式化定义,我们可以说:码是由一个或多个属性组成的,可唯一标识元组的最小属性组。码在关系中总是唯一的,即一个码函数唯一地决定一行。如果码的值重复,则整个

10、元组都会重复。否则,违反了实体完整性规则。而元组的重复则表示存在两个完全相同的实体,这显然是不可能的,所以码是不允许重复取值的。所以,只有当某个属性或属性组能够函数决定关系中的每一个其它的属性,且该属性组的任何一个真子集都做不到这一点时,该属性或属性组才是该关系的码。函数依赖是一个与数据有关的事物规则的概念。如果属性B函数依赖于属性A,那么若知道了A的值,则完全可以找到B的值。这并非是可以由A的值计算出B的值,而是逻辑上只能存在一个B的值。4.3 关系模式的规化一、非规化的关系当一个表中存在还可以再分的数据项时,这个表就是非规化的表。非规化表存在两种情况: 表中具有组合数据项(P102表6-4

11、) 表中具有多值数据项(P103表6-5)例:职工号姓名工资基本工资职务工资工龄工资1002张三1000800200职工号姓名职称系名系办地址学历毕业年份001张三教授计算机1305大学研究生19631982那么什么是规化关系呢?当一个关系中的所有分量都是不可再分的数据项时,该关系是规化的。即当表中不存在组合数据项和多值数据项,只存在不可分的数据项时,这个表是规化的。二维表按其规化程度从低到高可分为5级式(Normal Form),分别称为1NF、2NF、3NF(BCNF)、4NF、5NF。规化程度较高者必是较低者的子集,即:1NF2NF3NFBCNF4NF5NF二、第一式(1NF)定义1:如

12、果关系模式R中不包含多值属性,则R满足第一式(First Normal Form),记作:R1NF1NF是对关系的最低要求,不满足1NF的关系是非规化的关系。非规化关系转化为规化关系1NF方法很简单,只要上表分别从横向、纵向展开即可。如下表:职工号姓名基本工资职务工资工龄工资1002张三10008002001005李四1200900150职工号姓名职称系名系办地址学历毕业年份1002张三教授计算机1305大学19631002张三教授计算机1305研究生19821005李四讲师信电2206大学1989上表虽然符合1NF,但仍是有问题的关系,表中存在大量的数据冗余和潜在的数据更新异常。原因是(职工

13、号,学历)是右表的码,但、职称、系名、系办地址却与学历无关,只与码的一部分有关。所以上表还需进一步地规化。三、第二式(2NF)定义1:设X、Y是关系R的两个不同的属性或属性组,且X Y。如果存在X的某一个真子集X,使XY成立,则称Y部分函数依赖于X,记作:X PY(Partial)。反之,则称Y完全函数依赖于X,记作:X FY (Full)定义2:如果一个关系 R1NF,且它的所有非主属性都完全函数依赖于R的任一候选码,则R属于第二式,记作:R2NF。说明:上述定义中所谓的候选码也包括主码,因为码首先应是候选码,才可以被指定为码。例如关系模式:职工(职工号,职称,项目号,项目名称,项目角色)中

14、(职工号,项目号)是该关系的码,而职工号、职工号职称、项目号项目名称所以(职工号,项目号)P 职称、(职工号,项目号)P 项目名称故上述职工关系不符合第二式要求。它存在三个问题:插入异常、删除异常和修改异常。其中修改异常是这样的,当职工关系中项目名称发生变化时,由于参与该项目的人员很多,每人一条记录,要修改项目信息,就得对每一个参加该项目的人员信息进行修改,加大了工作量,还有可能发生遗漏,存在着数据一致性被破坏的可能。可把上述职工关系分解成如下三个关系:职工(职工号,职称)参与项目(职工号,项目号,项目角色)项目(项目号,项目名称)上述三个关系都符合定义2的要求,所以都符合2NF推论:如果关系

15、模式R1NF,且它的每一个候选码都是单码,则R2NF符合第二式的关系模式仍可能存在数据冗余、更新异常等问题。如关系职工信息(职工号,职称,系名,系办地址)虽然也符合2NF,但当某个系中有100名职工时,元组中的系办地址就要重复100次,存在着较高的数据冗余。原因是关系中,系办地址不是直接函数依赖于职工号,而是因为职工号函数决定系名,而系名函数决定系办地址,才使得系办地址函数依赖于职工号,这种依赖是一个传递依赖的过程。所以,上述职工信息的关系模式还需要进一步的规化。四、第三式(3NF)定义1:在关系R中,X、Y、Z是R的三个不同的属性或属性组,如果XY,YZ,但YX,且Y不是X的子集,则称Z传递

16、函数依赖于X。定义2:如果关系模式R2NF,且它的每一个非主属性都不传递依赖于任何候选码,则称R是第三式,记作:R3NF推论1:如果关系模式R1NF,且它的每一个非主属性既不部分依赖、也不传递依赖于任何候选码,则R3NF推论2:不存非主属性的关系模式一定为3NF五、改进的3NFBCNF(BoyeeCodd Normal Form)定义:设关系模式R(U,F)1NF,若F的任一函数依赖XY(YX)中X都包含了R的一个码,则称RBCNF。换言之,在关系模式R中,如果每一个函数依赖的决定因素都包含码,则RBCNF推论:如果RBCNF,则: R中所有非主属性对每一个码都是完全函数依赖; R中所有主属性

17、对每一个不包含它的码,都是完全函数依赖; R中没有任何属性完全函数依赖于非码的任何一组属性。定理:如果RBCNF,则R3NF一定成立。证明:(结合传递依赖的定义,用反证法)注意:当R3NF时,R未必属于BCNF。因为3NF比BCNF放宽了一个限制,它允许决定因素不包含码。例如:通讯(城市名,街道名,邮政编码)中:F(城市名,街道名)邮政编码,邮政编码城市名非主属性邮政编码完全函数依赖于码,且无传递依赖,故属于3NF,但邮政编码也是一个决定因素,而且它没有包含码,所以该关系不属于BCNF。又如:Teaching(Student,Teacher,Course)简记为Teaching(S,T,C)规

18、定:一个教师只能教一门课,每门课程可由多个教师讲授;学生一旦选定某门课程,教师就相应地固定。FTC,(S,C)T,(S,T) C该关系的候选码是(S,C)和(S,T),因此,三个属性都是主属性,由于不存在非主属性,该关系一定是3NF。但由于决定因素T没包含码,故它不是BCNF。关系模式Teaching仍然存在着数据冗余问题,因为存在着主属性对码的部分函数依赖问题。确切地表示:FTC,(S,C)PT,(S,T) PC所以Teaching关系可以分解为以下两个BCNF关系模式:Teacher(Teacher,Course) Student(Student,Teacher)3NF的“不彻底”性,表现

19、在可能存在主属性对码的部分依赖和传递依赖。一个关系模式如果达到了BCNF,那么,在函数依赖围,它就已经实现了彻底的分离,消除了数据冗余、插入和删除异常。4.4 多值依赖和第四式一、多值依赖(Multivalued Dependency)课程C教员T参考书B物理李勇普通物理学物理李勇光学原理物理李勇物理习题集物理王军普通物理学物理王军光学原理物理王军物理习题集数学李勇数学分析数学李勇微分方程数学李勇高等代数数学张平数学分析数学张平微分方程数学张平高等代数计算数学张平数学分析计算数学张平计算数学计算数学周峰数学分析计算数学周峰计算数学课程C教员T参考书B物理李勇王军普通物理学光学原理物理习题集数学

20、李勇张平数学分析微分方程高等代数计算数学张平周峰数学分析计算数学例:学校中某一门课程由多个教员讲授,他们使用相同的一套参考书,每个教员可以讲授多门课程,每种参考书可以供多门课程使用。以下是用一个非规化的表来表示教员T,课程C和参考书B之间的关系。把上表变换成一规化的二维表Teaching,如右表关系模式Teaching(C,T,B)的码是(C,T,B),即AllKey。因而TeachingBCNF。按照上述语义规定,当某门课程增加一名讲课教员时,就要向Teaching表中增加与相应参考书等数目的元组。同样,某门课程要去掉一本参考书时,则必须删除相应数目的元组。对数据的增、删、改很不方便,数据的

21、冗余也十分明显。如果仔细考察这类关系模式,会发现它具有一种称之为多值依赖的数据依赖关系。定义:设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,且ZU-X-Y。如果对R(U)的任一关系r,给定一对(x,z)值,都有一组y值与之对应,这组y值仅仅决定于x值而与z值无关。则称Y多值依赖于X,或X多值决定Y,记作:XY。例如,在关系模式Teaching中,对于一个(C,B)值(物理,普通物理学),有一组T值勇,王军,而这组值仅仅决定于课程C上的值(物理)。即对于另一个(物理,光学原理),它对应的T值仍然是勇,王军,所以T的值与B的值无关,仅决定于C的值,即CT 。多值依赖的另一个等价的形式

22、化定义为:设关系模式R(U),X、Y、Z是U的子集,ZU-X-Y,r是R的任意一个关系,t1、t2是r的任意两个元组。如果t1X=t2X,并在r中存在两个元组t3、t4,使得:t3X=t4X=t1Xt3Y=t1Y,t3Z=t2Z,t4Y=t2Y,t4Z=t1Z成立,则XY。换句话说:如果XY在R(U)中成立,则只要在R的任一关系r中存在两个元组t1、t2在X属性上的值相等,则交换这两个元组在Y(或Z)上的值后得到的两个新元组t3、t4也必是关系r中的元组。定义中如果Z(空集),则称XY为平凡的多值依赖,否则为非平凡的多值依赖。多值依赖具有如下性质:1. 对称性:若XY,则XZ,其中ZU-X-Y

23、2. 传递性:若XY,YZ,则XZ-Y3. 若XY,XZ,则XYZ4. 若XY,XZ,则XYZ5. 若XY,XZ,则XY-Z,XZ-Y多值依赖与函数依赖相比,具有下面两个基本区别:(1)多值依赖的有效性与属性集的围有关若XY在U上成立,则在V(XYVU)上一定成立;反之则不然,即XY在V(VU)上成立,在U上并不一定成立。这是因为多值依赖的定义中不仅涉与属性组X、Y,而且涉与U中的其余属性Z(ZU-X-Y)。一般地说,在R(U)上若有XY在V(VU)上成立,则称XY为R(U)的嵌入型多值依赖。而在关系模式R(U)中函数依赖XY的有效性,仅决定于X和Y这两个属性集的值。只要在R(U)的任何一个关

24、系r中,元组在X和Y上的值使得XY成立,则XY在任何属性集V(XYVU)上也成立。(2)若函数依赖XY在R(U)上成立,则对于任何Y Y 均有XY 成立。而多值依赖XY若在R(U)上成立,却不能断言对于任何Y Y有XY 成立。多值依赖的约束规则:在具有多值依赖的关系中,如果随便删去一个元组,就会破坏其对称性,那么,为了保持多值依赖关系中的“多值依赖”性,就必须删去另外的相关元组以维持其对称性。这就是多值依赖的约束规则。目前的RDBMS尚不具有维护这种约束的能力,需要程序员在编程中实现。函数依赖可看成是多值依赖的特例,即函数依赖一定是多值依赖。而多值依赖则不一定就有函数依赖。二、第四式(4NF)

25、定义:如果关系模式R1NF,对于R的每个非平凡的多值依赖XY(YX),X含有码,则称R是第四式,即R4NF课程C教员T参考书B物理李勇普通物理学物理李勇光学原理物理李勇物理习题集物理王军普通物理学物理王军光学原理物理王军物理习题集数学李勇数学分析数学李勇微分方程数学李勇高等代数数学张平数学分析数学张平微分方程数学张平高等代数计算数学张平数学分析计算数学张平计算数学计算数学周峰数学分析计算数学周峰计算数学Teaching关系关系模式R4NF时,R中所有的非平凡多值依赖实际上就是函数依赖。因为每一个决定因素中都含有码,所以R一定属于BCNF。4NF实际上就是限制关系模式的属性间不允许有非平凡,而且

26、非函数依赖的多值依赖存在。反过来说,4NF所允许的非平凡多值依赖实际上是函数依赖。例题中的Teaching关系属于BCNF,但它不属于4NF。因为它的码是(C,T,B),关系中存在非平凡多值依赖CT ,CB,但C不包含码,而只是码的一部分。课程C参考书B物理普通物理学物理光学原理物理物理习题集数学数学分析数学微分方程数学高等代数计算数学数学分析计算数学计算数学CB关系课程C教员T物理李勇物理王军数学李勇数学张平计算数学张平计算数学周峰CT关系要使Teaching关系符合4NF,必须将其分解为CT(C,T)和CB(C,B)两个关系模式。如右表:从表中显而易见,符合BCNF的关系Teaching仍

27、然存在着数据冗余,而分解后的关系CT和CB中只有平凡多值依赖,所以符合4NF,它们已经消除了数据冗余。可以说:BCNF是在只有函数依赖的关系模式中,规化程度最高的式,而4NF是在有多值依赖的关系模式中,规化程度最高的式。如果关系模式中存在连接依赖,即便它符合4NF,仍有可能遇到数据冗余与更新异常等问题。所以对于达到4NF的关系模式,还需要消除其中可能存在的连接依赖,才可以进一步达到5NF的关系模式。关于连接依赖和5NF的容,已超出了本课程教学大纲的要求,在此不再介绍。4.5 关系的规化程度在关系数据库中,对关系模式的基本要满足第一式。符合1NF的关系模式就是合法的,允许的。但是人们发现有些关系

28、存在这样那样的问题,就提出了关系规化的要求。 关系规化的目的,是解决关系模式中存在的数据冗余、插入和删除异常、更新繁琐等问题。 关系规化的基本思想是,消除数据依赖中不适宜的部分,使各关系模式达到某种程度的分离,使一个关系只描述一个概念、一个实体或实体间的一种联。所以规化的实质就是概念单一化的过程。 关系规化的过程是通过对关系模式的分解来实现的。把低一级的关系模式分解为若干高一级的关系模式。 规化程度越高,分解就越细,所得关系的数据冗余就越小,更新异常也会越少。 但是,规化在减少关系的数据冗余和消除更新异常的同时,也加大了系统对数据检索的开销,降低了数据检索的效率。因为关系分得越细,数据检索时所

29、涉与的关系个数就越多,系统只有对所有这些关系的进行自然连接,才能获取所需的全部信息。而连接操作所需的系统资源和开销是比较大的。所以不能说,规化程度越高的关系模式优良。 规化应满足的基本原则是:由低到高,逐步规,权衡利弊,适可而止。通常以满足第三式为基本要求。 关系模式的分解是通过投影运算实现的。而这种投影分解的方案不是唯一的。所以投影的过程还应满足以下三个条件:n 分解是无损连接分解,分解后所得各关系,通过连接要能恢复出分解前的数据。不能少也不能多。n 分解所得的所有关系都是高一级的式的关系n 分解所得关系的个数要最少。4.6 函数依赖公理与模式分解在规化理论中,模式分解以与分解是否等价是有一

30、定算法的。函数依赖公理系统是模式分解算法的基础,它可以从已知的函数依赖推导出其它的函数依赖。下面首先讨论函数依赖的一套推理规则,这套规则是由Armstrong于1974年提出来的,因此常被称为Armstrong公理系统。一、函数依赖公理Armstrong公理系统:设有关系模式R(U,F),X,Y,Z,WU,则对R(U,F)有: A1(自反律):若YX,则XY;(由自反律所得到的函数依赖均是平凡的函数依赖) A2(增广律):若XY,则XZYZ (YZYZ) A3(传递律):若XY,YZ,则XZ。这些规则是保真的,它们不会产生错误的函数依赖。引理1:Armstrong公理是正确的。即如果函数依赖F

31、成立,则由F根据Armstrong公理所推导的函数依赖总是成立的。(并且被称为F所蕴含的函数依赖)证明:设t1,t2是关系R中的任意两个元组。假设t1Xt2X已知YXt1Yt2YXY成立A1:若 t1XZt2XZt1Xt2Xt1Zt2Z已知XYt1Yt2Yt1YZt2YZXZYZ 成立A2:已知:XY已知:YZ若 t1Xt2Xt1Yt2Yt1Zt2ZXZ成立A3:定理1:Armstrong公理是正确的、完备的。由Armstrong公理系统,可以得到以下三个推论: 合成规则:若XY,XZ,则XYZ; 分解规则:若XYZ,则XY,XZ; 伪传递规则:若XY,YWZ,则XWZ。根据合成规则和分解规则

32、很容易得到这样的重要事实。称之为引理2:引理2:XA1 A2Ak成立的充分必要条件是XAi成立(i1,2,k)。例:证明:对R(A,B,C,G,H,I),FAB,AC,CGH,CGI,BH,存在:AH,CGHI,AGI求证:(1)由于AB,BH,依传递律,可得AH (2)由于CGH,CGI,依合成规则,可得 CGHI(3)由于AC,CGI,依伪传递律,可得AGI。也可另证为:由AC,依增广律,得AGCG,又CGI,依传递律,得:AGI二、闭包与其计算定义:R(U,F),由Armstrong公理从F推出的函数依赖XAi中Ai的属性集合,为X的属性闭包,记作:X,读作X关于函数依赖集F的闭包。也有

33、的书上这样表示:XFAXA能由F根据Armstrong公理导出由引理2可以推出引理3:设R(U,F),X,YU,则从F推导出XY的充要条件是YX如果要判断XY是否能由F根据Armstrong公理导出,只需求出X,并判断Y是否为X的子集即可。那么,只要求出X,一切问题就都解决了。书上有一个求X的算法。其基本思想是:首先明确X的含义是X所能函数决定的所有被决定因素的集合。然后,只要能证明某个属性或属性组函数依赖于X,便能确定它属于X,因为XX是无争的事实,所以X应属于X,然后在F中寻找其决定因素包含于X的函数依赖,若存在,则它的被决定因素也应属于X,(若YZ,则WYWZ,从而可分解为WYW和WYZ

34、)。依次类推,找出F中所有决定因素包含于所求出的中间集的所有函数依赖,并把它们的被决定因素都并到该闭包的中间集中。直到在F中再也找不到符合上述条件的函数依赖时。所求的闭包集就是最终的闭包。下面通过一个例子来说明。例:R(U,F),其中UA,B,C,D,E,I,FAD,ABC,BIC,EDI,CE,求(AC)解:(1)令XAC,则X(0)AC;(2)在F中找出左边是AC子集的函数依赖:AD,CE;(3)X(1)X(0)DEACDE;(4)很明显X(1)X(0);(5)在F中找左边是ACDE子集的函数依赖:EDI;(6)X(2)X(1)I =ACDEI ;(7)虽然X(2)X(1),但是F中未用过

35、的函数依赖的左边属性已没有X(2)的子集,所以停止计算,输出(AC)X(2)ACDEI。三、函数依赖的覆盖函数依赖集的闭包:关系模式R(U,F)中为F所逻辑蕴含的函数依赖的全体叫做F的闭包,记为F。函数依赖的覆盖:设F和G是关系模式R(U)上的两个函数依赖集,如果FG,则称F和G是等价的,记作FG。也可以说F覆盖G,或G覆盖F,或F、G相互覆盖。两个引理:(1)FG的充分必要条件是FG、GF(2)任一函数依赖集,总可以为一右边全是单属性的函数依赖集所覆盖。对上述引理(1)是显而易见的。引理(2)可以这样理解,根据函数依赖的分解规则,任一个右部为属性组的函数依赖都可以分解为右部为单属性的若干个函

36、数依赖。所以,对于任一个函数依赖集,总可以找到一个右边全是单属性的函数依赖集覆盖它。定义:如果函数依赖集F满足以下条件,则称F为一个极小函数依赖集,或称最小依赖集或最小覆盖。 F中任一函数依赖的右部都是单属性; F中任一函数依赖XA,都不会使F与FXA等价。 F中任一函数依赖XA,X的任一真子集Z,不会使FXAZA与F等价。上述第二个条件保证了F中不存在多余的函数依赖,第三个条件保证了F中每个函数依赖左部没有多余的属性。要注意上列条件三中的下划线部分,并注意 ZA不是一个函数依赖,而是指ZX的一组ZA。并且FXAZA是不确切的。定理:任一函数依赖集F均等价于一个极小的函数依赖集Fm。最小的依赖

37、集可以上述定义为基本思想所确定的算法求解。四、关系模式的分解关系模式经分解后,应与原来的关系模式等价。即两者对数据的使用者来说应是等价的。即对分解前后的关系,做相同容的查询,应产生相同的结果。这是对模式分解的基本要求。历年来,人们对等价的概念形成了三种不同的定义: 分解具有“无损连接性”(Lossless join); 分解具有“函数依赖保持性”(Preserve dependency); 分解既要具有“无损连接性”,又要具有“函数依赖保持性”下面分别介绍无损连接性和函数依赖保持性两个概念的含义与其判定算法。1、无损连接性:对关系模式分解时,原关系模式下任一合法的关系实例,在分解之后,应能通过

38、自然连接运算恢复起来。所以无损连接性有时也称为无损分解。(以下定义按照课时的情况选择讲解或不讲)定义:设R1,R2,Rk是关系模式R(U,F)的一个分解,如果对于R的任一满足F的关系r,都有 rR1(r)R2(r)Rk(r),则称分解是满足函数依赖集F的无损连接分解或无损分解。关于无损连接性的判断算法很巧妙,也很容易理解,在课堂上不讲,但有可能出现此类考题,请同学们自己看书学习。(有时间时可以讲书上例子P114下部例6.6)2、函依赖保持性:函数依赖集的投影:设有关系模式R(U,F),ZU,则Z所涉与到的F中所有函数依赖为F在Z上的投影,记为Z(F),有Z(F)XY(XY)F且XYZ函数依赖保

39、持性:设R(U,F)的一个分解R1,R2,Rk,如果F等价于R1(F)R2(F)Rk(F)则称分解具有函数依赖保持性。一个无损连接的分解不一定具有函数依赖保持性;同样地,一个具有函数依赖保持性的分解也不一定具无损连接性。检验一个分解是否具有依赖保持性,实际上是检验R1(F)R2(F)Rk(F)是否覆盖F。(书上关于它的算法令人费解。可以不讲)介绍P114页例6.6是一个具有依赖保持性的分解。在实际数据库设计中,关系模式的分解主要有两种准则:(1) 只满足无损连接性;(2) 既满足无损连接性,又满足函数依赖保持性。准则(2)比(1)更理想,但分解时受到更多的限制。如果一个分解,只满足函数依赖保持性,而不满足无损连接性,是没有实用价值的。所以无损连接性是模式分解必须满足的条件。14 / 14

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁