数据依赖和关系模式规范化.ppt
《数据依赖和关系模式规范化.ppt》由会员分享,可在线阅读,更多相关《数据依赖和关系模式规范化.ppt(62页珍藏版)》请在三一办公上搜索。
1、第10章 数据依赖和关系模式规范化,10.1 关系模式设计中的数据语义问题10.2 函数依赖(FD)10.3 多值依赖(MVD)10.4 联接依赖(JD)*10.5 关系模式的分解及其问题10.6 关系模式的规范化,10.1 关系模式设计中的数据语义问题,前面我们已经讨论了关系数据库的基本概念、关系模型的三个部分以及关系数据库的标准语言SQL。但是还有一个很基本的问题尚未涉及,针对一个具体问题,应该如何构造一个适合于它的数据库模式,即应该构造几个关系模式,每个关系由哪些属性组成等。这是数据库设计的问题,确切地讲是关系数据库逻辑设计问题。,10.1 关系模式设计中的数据语义问题,下面首先回顾一下
2、关系模型的形式化定义。一个关系模式应当是一个五元组。R(U,D,DOM,F)这里:关系名R,它是符号化的元组语义;一组属性U;属性组U中属性所来自的域D;属性到域的映射DOM;属性组U上的一组数据依赖F由于D和DOM对模式设计关系不大,因此我们在本章中把关系模式看作是一个三元组:R 当且仅当U上的一个关系r满足F时,称r为关系模式R的一个关系。,10.1 关系模式设计中的数据语义问题,关系作为一张二维表,我们对它有一个最起键的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。我们的任务是研究模式设计,研究设计一个“好”的(没有“毛病”的)关系模式的办法。数
3、据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。现在人们已经提出了许多种类型的数据依赖,其中最重要的是函数依赖(Functional Dependency简记为FD)和多值依赖(Multivalued Dependency简记为MVD)。函数依赖极为普遍地存在于现实生活中。,10.1 关系模式设计中的数据语义问题,比如描述一个学生的关系,可以有学号(SNO),姓名(SNAME),系名(SDEPT)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习。因而当“学号”值确定之后,姓名和该生所在系的值也就
4、被唯一地确定了。就象自变量x确定之后,相应的函数值f(x)也就唯一地确定了一样,我们说SNO函数决定SNAME和SDEPT,或者说SNAME,SDEPT函数依赖于SNO,记为 SNOSNAME,SNOSDEPT。,10.1 关系模式设计中的数据语义问题,现在我们要建立一个数据库来描述学生的一些倩况。面临的对象有:学生(用学号SNO描述),系(用系名SDEPT描述),系负责人(用其姓名MN描述),课程(用课程名CNAME描述)和成绩(G)。现实世界的已知事实告诉我们 一个系有若干学生,但一个学生只属于一个系;一个系只有一名(正职)负责人;一个学生可以选修多门课程,每门课程有若干学生选修;每个学生
5、学习每一门课程有一个成绩;如果只考虑函数依赖这一种数据依赖,我们就得到了一个描述学校的数据库模式S,它由一个单一的关系模式构成:U=SNO,SDEPT,MN,CNAME,G F=SNOSDEPT,SDEPTMN,(SNO,CNAME)G,10.1 关系模式设计中的数据语义问题,这个模式有下述三个“毛病”:插入异常:如果一个系刚成立尚无学生,或者虽然有了学生但尚未安排课程。那么我们就无法把这个系及其负责人的信息存入数据库。删除异常:反过来,如果某个系的学生全部毕业了,我们在删除该系学生选修课程的同时,把这个系及其负责人的信息也丢掉了。更新异常:比如,某系负责人更换后,就必须逐一修改有关的每一个元
6、组。数据冗余:比如,每一个系负责人的姓名要与该系每一个学生的每一门功课的成绩出现的次数一样多。这样,一方面浪费存储,另一方面系统耍付出很大的代价来维护数据库的完整性。,10.1 关系模式设计中的数据语义问题,为什么会发生插入异常和删除异常呢?这是因为这个模式中的函数依赖存在某些不好的性质。假如我们把这个单一的模式改造一下,分成三个关系模式:S;SG;DEPT;这三个模式都不会发生插入异常、删除异常的毛病,数据的冗佘也得到了控制。一个模式的函数依赖会有哪些不好的性质,如何改造一个不好的模式,这就是本章要讨论的主要内容。,10.2 函数依赖,定义10.1:设R(U)是属性集U上的关系模式。X,Y是
7、U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。下面介绍一些术语和记号:XY,但YX,则称XY为平凡的函数依赖。否则,称XY为非平凡的函数依赖。今后,若不特别声明,我们总是讨论非平凡的函数依赖。若XY,则称X为决定因素(Determinant)。若XY,YX,则记作XY。若Y不函数依赖于X,则记作X Y。,10.2 函数依赖,定义10.2:在R(U)中,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖,记作:X Y。若XY,但Y不完全函数依赖于X,则称Y对X部分
8、函数依赖,记作X Y。定义10.3:在R(U)中,如果XY,(Y X),Y X,YZ,则称Z对X传递函数依赖。加上条件Y X,是因为如果YX,则XY,实际上是,是直接函数依赖而不是传递函数依赖。定义10.4:对于满足一组函数依赖F的关系模式R,其任何一个关系r,若函数依赖XY都成立(即r中任意两元组t,s,若tX=sX,则tY=sY),则称F逻辑蕴含XY,记为F|=XY,10.2 函数依赖,Armstrong公理系统 为了求得给定关系模式的键,为了从一组函数依赖求得蕴含的函数依赖,例如,已知函数依赖集F,要问XY是否为F所蕴含,就需要一套推理规则,这组推理规则是l974年首先由Armstron
9、g提出来的。设U为属性集总体,F是U上的一组函数依赖,于是有关系模式R。对R来说有以下的推理规则:Al.自反律(Reflexivity):若YXU,则XY为F所蕴含。A2.增广律(Augmentation):若XY为F所蕴含,且ZU,则XZYZ为F所蕴含。A3.传递律(Transitivity):若XY及YZ为F所蕴含,则XZ为F所蕴含。注意,由自反律所得到的函数依赖均是平凡的函数依赖,自反律的使用并不依赖于F。,10.2 函数依赖,定理10.l:Armstrong推理规则是正确(sound)的。证:设YX U。对R的任一关系r中的任意两个元组t,s:若tX=sX,由于YX,有ty=sy,所以
10、XY成立,自反律得证。设XY为F所蕴含,且ZU。设R的任一关系r中任意的两个元组t,s;若tXZ=sXZ,则有tX=sX和tZ=sZ;由XY,于是有tY=sY,所以tYZ=sYZ,所以XZYZ为F所蕴含,增广律得证。设XY及YZ为F所蕴含。对R的任一关系r中的任意两个元组t,s。若tX=sX,由于XY,有tY=sY;再由YZ,有tZ=sZ,所以XZ为F所蕴含,传递律得证。,10.2 函数依赖,根据这三条推理规则可以得到下面三条很有用的推理规则:合并规则:由XY,XZ,有XYZ。伪传递规则:由XY,WYZ,有XWZ。分解规则:由XY及Z Y,有XZ。根据合并规则和分解规则,很容易得到这样一个重要
11、事实:引理10.l:XA1 A2.Ak成立的充分必要条件是XAi成立(i=l,2,.,k)。,10.2 函数依赖,定义10.5:在关系模式R中为F所逻辑蕴含的函数依赖的全体叫做F的闭包,记为F+。定义10.6:给定关系模式R,如果能由F根据Armstrong公理导出XY,则称XY是F的逻辑导出,记为F=XY。人们把自反律,传递律和增广律称为Armstrong公理系统。Armstrong公理系统是有效的、完备的。Armsttrong公理的有效性指的是:由F出发根据Armstrong公理推导出来的每一个函数依赖一定在F+中;Armsttrong公理的完备性指的是F+中的每一个函数依赖,必定可以由F
12、出发根据Armstrong公理推导出来。,10.2 函数依赖,要证明Armsttrong公理的完备性,就首先要解决如何判定一个函数依赖是否属于由F根据Armstrong公理推导出来的函数依赖的集合。当然,如果能求出这个集合,问题就解决了。但不幸的是,这是一个NP完全问题。比如从F=XA1.,XAn 出发,我们至少可以推导出2n个不同的函数依赖。为此引入下面概念:定义10.7:设F为属性集U上的一组函数依赖,XU,XF+=A|XA能由F根据Armstrong公理导出,XF+称为属性集X关于函数依赖集F的闭包。,10.2 函数依赖,由引理10.1容易得出:引理10.2:设F为属性集U上的一组函数依
13、赖,X,Y U,XY能由F根据Armstrong公理导出的充分必要条件是YXF+。于是,判定XY是否能由F根据Armstrong公理导出的问题,就转化为求出XF+,并判定Y是否为XF+的子集的问题。这个问题由算法10.l解决了。,10.2 函数依赖,算法10.l:求属性集X(X U)关于U上的函数依赖集F的闭包XF+。输入:X,F 输出:XF+步骤:令X(0)=X,i=0 求B,这里B=A|(存在VW)(VWFVX(i)AW);X(i+1)=X(i)B判断X(i+1)=x(i)吗?若相等或X(i)=U 则X(i)就是XF+,算法终止。若否,则i=i+l,返回第 2)步。,10.2 函数依赖,例
14、1:已知关系模式R,其中U=A,B,C,D,E;F=ABC,BD,CE,ECB,ACB。求(AB)F+。解:由算法5.1,X(0)=AB;计算X(1);逐一的扫描F集合中各个函数依赖,找左部为A,B,或 AB的函数依赖。得到两个:ABC,BD。于是X(1)=ABCD=ABCD。因为 X(0)X(1),所以再找出左部为ABCD子集的那些函数依 赖,又得到CE,ACB,于是X(2)=X(1)BE=ABCDE。因为X(2)已等于全部属性集合,所以(AB)F+=ABCDE。对于算法10.l,令ai=|X(i)|,ai 形成一个步长大于1的严格递增的序列,序列的上界是|U|,因此该算法最多|U|-|X|
15、次循环就会终止。,10.2 函数依赖,定理10.2:Armstrong公理系统是有效的、完备的。Armstrong公理系统的有效性可由定理10.l得到证明。下面我们给出完备性的证明。我们证明完备性的逆否命题,即若函数依赖XY不能由F从Armstrong公理导出,那么它必然不为F所蕴含,其证明分三步:若VW成立,且VXF+,则WXF+。因VXF+,有XV成立;由A3规则有XW成立,所以WXF+。,10.2 函数依赖,由下列两个元组构成的二维表,必是R的一个关系r,即满足F中的全部函数依赖。若r不是R的关系,则必由于F中有函数依赖VW在r上不成立所致。由r的构成可知,V必定是XF+的子集,而W不是
16、XF+的子集,可是由 l),WXF+,矛盾。所以r必是R的一个关系。,10.2 函数依赖,若XY不能由F从Armstrong公理导出,则Y不是XF+的子集,因此必有Y的子集Y满足Y U-XF+,即XY在r上不成立,故XY必不为R蕴含.Armstrong公理的完备性及有效性说明了“逻辑导出”与“逻辑蕴含”是两个完全等阶的概念。于是F+也可以说成是由F出发借助Armstrong公理导出的函数依赖的集合。从蕴含(或导出)的概念出发,又引出了两个函数依赖集等价和最小依赖集的概念。,10.2 函数依赖,定义10.7:如果G+=F+,则称函数依赖集F覆盖G(F是G的覆盖,或G是F的覆盖),或F与G等价。引
17、理10.3:F+=G+的充分必要条件是FG+并且GF+。证:必要性显然,只证充分性。若F G+,则XF+XG+。任取XYF+则有 Y XF+XG+。所以XY(G+)+=G+。即F+G+。同理可证G+F+,所以F+=G+。而要判定F G+,只须逐一对F中的函数依赖XY,考查Y是否属于XG+就行了。因此引理10.3给出了判断两个函数依赖集等价的可行算法。,10.2 函数依赖,定义10.8:如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集。亦称为最小依赖集或最小覆盖(Canonical Cover)。F中任一函数依赖的右部仅含有一个属性。F中不存在这样的函数依赖XA,使得F与F-XA等价。F
18、中不存在这样的函数依赖XA,X有真子集Z使得F-XAZA与F等价。,10.2 函数依赖,例2:考察5关系模式S,其中:U=SNO,SDEPT,MN,CNAME,G,F=SNOSDEPT,SDEPTMN,(SNO,CNAME)G F=SNOSDEPT,SNOMN,SDEPTMN,(SNO,CNAME)G,(SNO,SDEPT)SDEPT 根据定义10.8可以验证F是最小覆盖,而F不是。因为F-SNOMN与F等价,F-(SNO,SDEPT)SDEPT与F等价。,10.2 函数依赖,定理10.3:每一个函数依赖集F均等价于一个极小函数依赖集Fmin。此Fmin称为F的最小依赖集。证:这是一个构造性的
19、证明,我们分三步对F进行“极小化处理”,找出F的一个最小依赖集来。逐一检查F中各函数依赖FDi:XY,若Y=A1A2.Ak,k2,则用XAj|j=1,2,k来取代XY。逐一检查F中各函数依赖FDi:XA,令G=F-XA,若AXG+,则从F中去掉此函数依赖(因为F与G等价的充要条件是AXG+)。逐一取出F中各函数依赖FDi:XA,设X=B1B2.Bm,逐一考查Bi(i=l,2,.,m),若A(X-Bi)F+,则以X-Bi 取代X(因为F与F-XAZA等价的充要条件是AZF+其中Z=X-Bi)。,10.2 函数依赖,最后剩下的F就一定是极小依赖集,并且与原来的F等价。因为我们对F的每一次改造都保证
20、了改造前后的两个函数依赖集等价。这些证明很显然,请读者自行补出。应当指出,F的最小依赖集Fm不一定是唯一的,它和我们对各函数依赖FDi 及XA中X各属性的处置顺序有关。,10.2 函数依赖,例3:F=AB,BA,BC,AC,CA Fmin1=AB,BC,CA Fmin2=AB,BA,AC,CA 这里我们给出了F的两个最小依赖集Fmin1,Fmin2。若改造后的F与原来的F相同,那么就说明F本身就是一个最小依赖集,因此定理10.3的证明给出的极小化过程也可以看成是检验F是否极小依赖集的一个算法。两个关系模式R1,R2,如果F与G等价,那么R1的关系一定是R2的关系。反过来,R2的关系也一定是R1
21、的关系。所以在R中用与F等价的依赖集G来取代F是允许的。,10.2 函数依赖,例4:R(A,B,C,D,E,H,I)F=ABE,AHD,BC,BDE,CD,HI,IH,HBE 试求F的最小依赖集Fmin解:Fmin=AB,BC,BE,CD,HI,IH,HB,10.3 多值依赖,除了函数依赖以外,关系的属性间还存在其他一些数据依赖关系,多值依赖(multivalued dependency,MVD)就是其中之一。下面让我们来看一个例子。例l:学校中某一门课程由多个教员讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。我们可以用一个非规范化的关系来表示教员T,
22、课程C和参考书B之间的关系:课程C 教员T 参考书B-物理 李 勇 普通物理学 王 军 光学原理 物理习题集-数学 李 勇 数学分析 张 平 微分方程 高等代数,10.3 多值依赖,把这张表变成一张规范化的二维表,就成为:Teaching课程C 教员T 参考书B-物 理 李 勇 普通物理学 物 理 李 勇 光学原理 物 理 李 勇 物理习题集 物 理 王 军 普通物理学 物 理 王 军 光学原理 物 理 王 军 物理习题集 数 学 李 勇 数学分析 数 学 李 勇 微分方程 数 学 李 勇 高等代数 数 学 张 平 数学分析 数 学 张 平 微分方程 数 学 张 平 高等代数,10.3 多值依
23、赖,仔细考察这类关系模式,发现它具有一种称之为多值依赖(MVD)的数据依赖。定义10.9:设R(U)是属性集U上的一个关系模式。X,Y,Z是的U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖XY成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。例如,在关系模式TEACHING中,对于一个(物理,光学原理)有一组T值李勇,王军,这组值仅仅决定于课程C上的值(物理)。也就是说对于另一个(物理,普通物理学)它对应的一组T值仍是李勇,王军,尽管这时参考书B的值已经改变了。因此T多值依赖于C,即CT。,10.3 多值依赖,以上对多值依赖进
24、行了一些直观的讨论,下面我们将对MVD进行形式化的描述。定义10.10:设R(U)是属性集U上的一个关系模式。X,Y,Z是的U的子集,并且Z=U-X-Y,如果对R(U)的任一关系r,都有如下性质:如果r中存在2个元组s、t,使得:sX=tX 则r中必存在元组u,使得:(1)sX=tX=uX(2)uY=tY 且 uZ=sZ(即交换s、t在Y上的值得到的2个元组必在r中)则称关系模式R满足多值依赖XY。,10.3 多值依赖,与函数依赖一样,多值依赖也有一组公理:A4:互补律(complementation)如果XY,则X(U-X-Y)以后如果需要,可用XY|(U-X-Y)表示多值依赖,以强调其互补
25、关系。A5:扩展律(MVD)如果XY且VW,则WXVYA6:传递律(MVD)如果XY且YZ,则X(Z-Y)下面两条为(FD+MVD)公理:A7:如果XY,则XY,即FD是MVD的特例。A8:如果XY、ZY且对某一个与Y不相交的W有:如果 WZ,则XZ。,10.3 多值依赖,若XY,而Z=U-X-Y为空,则称XY 为平凡的多值依赖。多值依赖具有以下性质:多值依赖具有对称性。即若XY,则XZ,其中ZUXY。多值依赖的传递性。即若XY,YZ,则XZY。函数依赖可以看作是多值依赖的特殊情况。即若XY,则XY。这是因为当XY时,对X的每一个值x,Y有一个确定的值y与之对应,所以XY。若XY,XZ,则XY
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 依赖 关系 模式 规范化

链接地址:https://www.31ppt.com/p-6296251.html