正则覆盖的求法与判断属性是否冗余

正则覆盖的求法与判断属性是否冗余

 

正则覆盖定义:一个依赖集F的正则覆盖Fc也是一个依赖集,F逻辑蕴含Fc中所有依赖,且Fc逻辑蕴涵F的所有依赖。Fc满足以下两个特性

·Fc中任何函数依赖都不含无关属性

·Fc中函数依赖左半部分都是唯一的,不允许重复

 

正则覆盖求解法:

一.使用合并律将所有左部相同的函数依赖合并成一个

例1:设有一函数依赖集F,其中有{A→B,A→E,……},则将这两个函数依赖合并为{A→BE,……}

二.在合并后的函数依赖集中寻找一个无关属性,将它删除

无关属性的定义是什么呢?下面马上就提到

三.重复1、2步骤,直到依赖集不再发生变化

 

无关属性的判断(又称冗余):

给定一个函数依赖集F:

    若要判断的属性位于依赖的右侧,例如{AB→C,……},则删除该属性,在余下的函数依赖集F'中计算该依赖左部集合的闭包α+。若α+中包含要判断的属性,则该属性就是无关属性(冗余)

    例2:F{A→BC,B→AC,C→AB}

             关注B属性。它在依赖右侧。删除该属性,余下F'={A→C,B→AC,C→AB},计算左侧剩余属性集(A)的闭包(A)+。

             因为A→C,C→AB,所以(A)+中包含删去的属性B

             故B是无关属性

 

    若要判断的属性位于依赖的左侧,例如{AB→C},则删除该属性,在原本的依赖集F中计算该依赖左部集合的闭包α+。若α+闭包中包含该依赖右侧所有的属性,则该属性则是无关属性

    例3:函数依赖集F{Z→X,X→P,XY→WP,XYP→ZW}

             关注到XYP中的P属性。它在左侧。删除它,求解左侧剩下属性集XY的闭包,求取域是原来的F{Z→X,X→P,XY→WP,XYP→ZW}。因为XY→WP,所以(XY)+  = XYWP;又因为XYP→ZW,所以(XY)+ = XYWPZ,包含依赖右侧ZW

             故P是无关属性

 

    例4:F{A→BC,B→C,AB→C}

              关注AB→C的A属性。删除它后余下的部分B→C在F中已经存在,故A是无关属性

 

 

一道完整的正则覆盖的题目:

   例5:F={Z→X,X→P,XY→WP,XYP→ZW},求出一个正则覆盖

            第一次循环,未发现可合并项;直接快进至寻找无关属性

            首先关注到XYP→ZW的P属性。根据例题③的步骤,得知它是无关属性,故删除,F'={Z→X,X→P,XY→WP,XY→ZW}

            第二次循环。发现可以合并{XY→WP,XY→ZW},得F'={Z→X,X→P,XY→PWZ}

            寻找无关属性。发现{XY→PWZ}中P属性。删除P属性后,F'={Z→X,X→P,XY→WZ},计算XY+ = XYWZP,包含P属性,故P属性无关,可以删除

            Fc={Z→X,X→P,XY→WZ}中,每个元素都不是无关元素,无法再删,故解得正则覆盖

    

 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值