函数依赖性判断

分两步

(1)看关系依赖集中每个依赖是否被包括在分解的任何一个模式中

(2)如果每个依赖都包含在分解的某个模式中,则结束算法,判断出保持了函数依赖

(3)如果第二部中某几个函数依赖并不包括在任一分解模式中则执行如下算法               
        对函数依赖α→β使用下面的过程:
        result:=α;
        while(result发生变化)do
            for each 分解后的Ri
                t=(result∩Ri)+ ∩Ri
                result=result∪t


这里的属性闭包是在函数依赖集F下计算出来的。如果result中包含了β的所有属性,则函数依赖α→β。是呗保持的,如果所有的该判断依赖都保持的话,分解时保持函数依赖的。

例子:

R(A,B,C,D) 

F={A->B,B->C,D->A}

模式分解为 R1(AD)  R2(BC)   R3(BD)

(1)显然 B->C,B->C包含在r1 r2中,D->A不包含在任一分解模式中

(2)对A->B运行算法二

                reselt=A

                (result∩R1)F+ ∩R1=空

                    result ∪空=A

result未变化结束循环,经过判断结果显然不包括B,所以对于分解R1不满足函数依赖

对R2 R3做同样算法,经过计算,同样不包含B,所以整个分解是不满足函数依赖的

                                                        欢迎大家指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值