函数依赖集经典求法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三步法求最小函数依赖集

乐乐等待花开总结

一、首先要清楚最小函数依赖集的是什么?

1.定义定义::如果函数依赖集F 满足(1)F 中任一函数依赖的右部仅含一个属性中任一函数依赖的右部仅含一个属性;;(2)F 中不存在这样的函数依赖X →A ,使得F 与F -{X →A}等价;(3)F 中不存在这样的函数依赖X →A ,X 有真子集Z 使得F 与F -{X →A}∪{Z →A}等价。

2.定义分析:

(1)每个函数依赖右边都仅含一个属性每个函数依赖右边都仅含一个属性,,例如对于函数依例如对于函数依赖赖A →B,B,C C 应该分解应该分解为

为A →B,A →C ;(2)判断每一个依赖是否多余,若F 与F -{X →A}等价,则X →A 为多余依赖;

(3)判断A 的子集里边有没有多余属性,若F 与F -{X →A}U{Z →A}等价,则子集Z 多余多余。

。二、要知道什么是闭包

1.闭包定义闭包定义::设F 为属性集U 上的一组函数依赖上的一组函数依赖,,X ,Y 都包含于U ,X F +={A|={A|X

X →A 可以F 根据Armstrong 公理导出},则X F +称为X 关于属性依赖集F 的闭包。

2.举例说明:

求属性集X (X 包含于U )关于U 上的函数依赖集F 的闭包X F +,已知关系模式R

中U={A,B,C,D,E};F={AB →C,B C,B→→D,C D,C→→E,EC E,EC→→B,AC B,AC→

→B },求(AB)F +。解析:分步进行

①设X (0)=AB ;

②X (1)={左边为AB 及其子集的函数依赖集的右边属性},则X (1)=AB ∪C ∪D=ABCD,又因又因为

为ABCD 不等于全集U ,所以继续执行下一步,否则此时的X (1)就是AB 在F 上的闭包上的闭包;

;③同②中求法,得到X (2)=ABCD ∪E=ABCDE=U ,所以不用继续往下求了,此时X (2)就是AB 在F 上的闭包。

最终我们得到:(AB)F +=ABCDE=U

三、三、最小依赖集的求法

最小依赖集的求法三步走:

第一步:右边属性单一化,得到F1;

第二步:将F1中左边属性中多余属性去掉,得到F2;

第三步:将F2中多余的依赖去掉,得到F m 。

四、四、求最小函数依赖集举例

求最小函数依赖集举例给出一个依赖给出一个依赖集

集F={AB →C,C C,C→→A,BC A,BC→→D,ACD D,ACD→→B,D B,D→→EG,BE →C,CG C,CG→→BD,CE BD,CE→

→AG },求F m 例题解析:

第一步:将右边属性单一化,将D →EG 单一化为D →E ,D →G ,同理单一化其他的,同理单一化其他的,

,得到F1={AB →C,C C,C→→A,BC A,BC→→D,ACD D,ACD→→B,D B,D→→E ,D →G ,BE →C,CG C,CG→→B,CG B,CG→→D,CE D,CE→→A,CE A,CE→

→G}第二步第二步::判断F1中左边有没有多余属性中左边有没有多余属性,,以AB →C 为例为例,

,AB 两个属性都应该判断是否多余,首先判断A 是否多余:即判断C 属于(AB-A)F1+是否成立,因为(AB-A)F1+=B ,所以得到C 不属于B ,所以AB →C 不是多余的,其他的判断方法一样,最终得到

F2={AB →C,C C,C→→A,CD A,CD→→B ,D →E ,D →G ,BE →C,CG C,CG→→B,CG B,CG→→D,CE D,CE→

→G}第三步第三步::去掉多余依赖去掉多余依赖,,以C →A 为例为例,,即判即判断断F 与F-{C F-{C→→A}是否等价是否等价::设G=F-{C G=F-{C→

→A},判断A 是否属于C 在G 上的闭包,因为C G +=C ,不包含C ,所以C →A 不是多余依赖不是多余依赖,,其

他依赖同理可求,最终得到F m ={AB →C,C C,C→→A,D A,D→→E ,D →G ,BE →C,CG C,CG→→B,CE B,CE→→G}

相关文档
最新文档