数据依赖的公理系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据依赖的公理系统课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 依赖 公理 系统 课件
- 资源描述:
-
1、6.3 数据依赖的公理系统v在以上的学习中,我们知道了一个关系模式之所以存在一些问题,是因为它的属性组之间存在一些不好的数据依赖关系,通过规范化,逐步消除数据依赖中的不合适部分,可以使关系模式达到某种范式的要求,解决关系模式存在的问题。v现在的问题是,这个规范化过程怎样实现,也就是说,对一个关系模式进行怎样的模式分解,才能使它达到3NF,BCNF或4NF的要求。这就是我们继续要学习的内容模式分解。1v在讲模式分解之前,我们还需要学习函数依赖的公理系统Armstrong 公理系统,它是模式分解算法的理论基础。26.3 数据依赖的公理系统v逻辑蕴含逻辑蕴含定义定义5.11 对于满足一组对于满足一组
2、函数依赖函数依赖 F 的关系的关系模式模式R,其任何一个关系其任何一个关系r,若函数若函数依赖依赖XY都成立都成立,则称则称 F逻辑蕴含逻辑蕴含X Y。(即即XY可以由可以由F推出推出)3v例1:已知关系模式R(ABC),F=AB,B C,判断A C是否为F逻辑蕴含?4v当已知关系模式R满足一组函数依赖F,怎么还能知道R中还有哪些函数依赖,或由F还能推导出哪些函数依赖呢?Armstorng公理系统就是解决这个问题的。5Armstrong公理系统v一套推理规则,是模式分解算法的理论基础一套推理规则,是模式分解算法的理论基础v用途用途求给定关系模式的码求给定关系模式的码从一组函数依赖求得蕴含的函数
3、依赖从一组函数依赖求得蕴含的函数依赖61.Armstrong公理系统 关系模式关系模式R 来说有以下的推理规则:来说有以下的推理规则:Al.自反律自反律(Reflexivity):):若若Y X U,则,则X Y为为F所蕴含。所蕴含。A2.增广律增广律(Augmentation):若):若XY为为F所蕴含,所蕴含,且且Z U,则,则XZYZ为为F所蕴含。所蕴含。A3.传递律传递律(Transitivity):若):若XY及及YZ为为F所蕴所蕴含,则含,则XZ为为F所蕴含。所蕴含。注意:由自反律所得到的函数依赖均是平凡的函数依赖,自反律的使注意:由自反律所得到的函数依赖均是平凡的函数依赖,自反律
4、的使用并不依赖于用并不依赖于F7定理 6.l Armstrong推理规则是正确的(l)自反律自反律:若若Y X U,则,则X Y为为F所蕴含所蕴含证证:设设Y X U 对对R 的任一关系的任一关系r中的任意两个元组中的任意两个元组t,s:若若tX=sX,由于由于Y X,有,有ty=sy,所以所以XY成立成立.自反律得证自反律得证8(2)增广增广律律:若若XY为为F所蕴含,且所蕴含,且Z U,则,则XZYZ 为为F所所蕴含。蕴含。证:证:设设XY为为F所蕴含,且所蕴含,且Z U。设设R 的任一关系的任一关系r中任意的两个元组中任意的两个元组t,s;若若tXZ=sXZ,则有则有tX=sX和和tZ=
5、sZ;由由XY,于是有于是有tY=sY,所以所以tYZ=sYZ,所以所以XZYZ为为F所蕴含所蕴含.增广律得证。增广律得证。9(3)传递律:传递律:若若XY及及YZ为为F所蕴含,则所蕴含,则 XZ为为 F所蕴含。所蕴含。证:证:设设XY及及YZ为为F所蕴含。所蕴含。对对R 的任一关系的任一关系 r中的任意两个元组中的任意两个元组 t,s。若若tX=sX,由于由于XY,有有 tY=sY;再由再由YZ,有,有tZ=sZ,所以所以XZ为为F所蕴含所蕴含.传递律得证。传递律得证。102.导出规则1.根据根据A1,A2,A3这三条推理规则可以得到下这三条推理规则可以得到下面三条推理规则:面三条推理规则:
6、合并规则合并规则:由:由XY,XZ,有,有XYZ。(重要)重要)(A2,A3)伪传递规则伪传递规则:由:由XY,WYZ,有,有XWZ。(A2,A3)分解规则:分解规则:由由XY及及 Z Y,有,有XZ。(重要)重要)(A1,A3)11导出规则2.根据合并规则和分解规则,可得引理6.1 引理引理6.l XA1 A2Ak成立的充分必要条件成立的充分必要条件是是XAi成立(成立(i=l,2,k)。)。合并、分解是对右边而言,对左边分解规则不成立。12v例1:已知关系模式R(ABC),F=AB,B C,判断A C是否为F逻辑蕴含?v现在我们就可以回答这个问题了.v根据Armstrong公理的传递律就可
7、以得出vAB,B C,A C,v所以A C为F逻辑蕴含13v例:已知关系模式R中 U=A,B,C,D,E,G,F=ABC,CA,BCD,ACDB,DEG,BEC,CGBD,CEAG,判断BDAC是否属于F+v解:由DEG知DE,BDBE 又知BEC,CA 所以BEA,BEAC 由、知,BDAC,所以BDAC被F所蕴涵,即BDAC属于F+14v例:已知关系模式R中 U=A,B,C,E,H,P,G,F=ACPE,PGA,BCE,AP,GAB,GCA,PABG,AEGB,ABCPH,证明BGHE属于F+v证:由BCE知BC,BE,BGGC 又知GCA,AP 所以BGA,BGABCP 又ABCPH,由
8、、知BGHE,所以BGHE被F所蕴涵,即BGHE属于F+15v这是一种判断XY是否为F逻辑蕴含的方法,即直接由公理的推理规则来推导,但是很多时候这样直接推导是比较困难的.16v另外一种方法就是根据Armstrong公理先推导出能被F所逻辑蕴含的所有函数依赖,然后看XY是否是其中的一个函数依赖,若是,则XY为F所逻辑蕴含.v这种方法就是求F闭包的方法.173.函数依赖闭包函数依赖闭包定义定义6.l2 在关系模式在关系模式R中为中为F所逻辑蕴所逻辑蕴含的函数依赖的全体叫作含的函数依赖的全体叫作 F的闭包,记为的闭包,记为F+。注意:注意:F+的的元素是函数依赖。元素是函数依赖。F包含于包含于F+,
9、若若X为为U的子集,的子集,X 属于属于F+。不要小看了这个不要小看了这个F+,一个小小的一个小小的F+常常有一个常常有一个很大的闭包。闭包中的函数依赖都是可由很大的闭包。闭包中的函数依赖都是可由F导导出的。出的。18v例1:已知关系模式R(XYZ),F=XY,Y Z,根据推理规则求出F+v提示:诸如X(表示空属性集)也属于F+,一共有42个函数依赖。19F的闭包 F+=X ,Y ,Z,XY ,XZ ,YZ ,XYZ ,X X,Y Y,Z Z,XY X,XZ X,YZ Y,XYZ X,X Y,Y Z,XY Y,XZ Y,YZ Z,XYZ Y,X Z,Y YZ,XY Z,XZ Z,YZ YZ,X
10、YZ Z,X XY,XY XY,XZ XY,XYZ XY,X XZ,XY YZ,XZ XZ,XYZ YZX YZ,XY XZ,XZ XY,XYZ XZ,X ZYZ,XY XYZ,XZ XYZ,XYZ XYZ 20v从上一个例题中可以看出,求F+是一个复杂而且困难的问题,所以这种方法也不太理想.v但是,在实际使用中,要经常要判断能否从已知的FD集F推导出函数依赖XY,经过分析,可以看出以上两种方法(即从公理直接推导和求F+方法)都不太合适,所以我们必须另想办法.21定义定义6.13 设设F为属性集为属性集U上的一组函数依赖,上的一组函数依赖,X U,XF+=A|XA能能由由F 根据根据Armst
11、rong公理导出公理导出,XF+称称为属性集为属性集X关于函数依赖集关于函数依赖集F 的闭包,的闭包,实质是由公理实质是由公理推导出的所有推导出的所有 XAi所形成的属性集。所形成的属性集。注意:注意:XF+中的元素是属性中的元素是属性,而而F+中的元素是函数依赖中的元素是函数依赖.22关于闭包的引理v引理6.2 设F为属性集U上的一组函数依赖,X,Y U,XY能由F 根据Armstrong公理导出的充分必要条件是Y XF+.23证明:设证明:设Y=AY=A1 1A A2 2AAn n (1 1)充分条件:当充分条件:当Y Y属于属于X X+时时,对于每个对于每个i,XAi,XAi i可由公理
12、导出。再用合并可由公理导出。再用合并 规则可得规则可得XYXY。(2 2)必要条件:若必要条件:若XYXY能够由公理导出能够由公理导出,则根据分解规则根据分解规,XAXAi i|i=1,2,n|i=1,2,n 成立,所以成立,所以Y Y属于属于XF+。24v用途用途 将判定将判定XY是否能由是否能由F根据根据Armstrong公理导出的公理导出的问题,问题,就转化为求出就转化为求出XF+,判定判定Y是否为是否为XF+的子集的子集的问题的问题,使复杂问题简单化了使复杂问题简单化了.25求闭包的算法算法6.l 求属性集X(X U)关于U上的函数依 赖集F 的闭包XF+输入:X,F输出:XF+步骤:
13、(1)令X(0)=X,i=0(2)求B,这里B=A|(V)(W)(VWF V X(i)A W);(3)X(i+1)=BX(i)26(4)判断X(i+1)=X(i)吗?(5)若相等或X(i)=U,则X(i)就是XF+,算法终止。(6)若否,则 i=i+l,返回第(2)步。对于算法6.l,令ai=|X(i)|,ai 形成一个步长大于1的严格递增的序列,序列的上界是|U|,因此该算法最多|U|-|X|次循环就会终止。27课本例1:已知关系模式R,其中U=A,B,C,D,E;F=ABC,BD,CE,ECB,ACB。求(AB)F+。解 设X(0)=AB;(1)计算X(1):逐一的扫描F集合中各个函数依赖
14、,找左部为A,B或AB的函数依赖。得到两个:ABC,BD。于是X(1)=ABCD=ABCD。28(2)因为X(0)X(1),所以再找出左部为ABCD子集的那些函数依赖,又得到ABC,BD,CE,ACB,于是X(2)=X(1)BCDE=ABCDE。(3)因为X(2)=U,算法终止所以(AB)F+=ABCDE。29v例:设R=ABC,F=AB,BC当X分别为A,B,C是求XF+。解:当X=A时,XF+=ABC 当X=B时,XF+=BC 当X=C时,XF+=C30v练习:已知关系模式R中 U=A,B,C,D,E,G,F=ABC,CA,BCD,ACDB,DEG,BEC,CGBD,CEAG,求(BD)+
展开阅读全文