数据库函数依赖问题

数据库函数依赖问题,第1张

你好!

首先我们可以看到,C→D在R2上保持函数依赖,但是A→D,B→D在R1,R2上都不保持,所以做进一步判断——

判断的算法如下:

对F上的每一个α→β使用下面的过程:

①令result=α;

②t=(result∩Ri)+ ∩Ri;

result=result∪t

(第二步的Ri={R1(),R2(),,Rn()},该步骤遍历一遍分解出的关系模式)

要注意的是这里的属性闭包是在函数依赖集F下计算出来的,如果result中包含了β的所有属性,则函数依赖α→β,分解是保持依赖的(当且仅当上述过程中F的所有依赖都被保持)。

那么我们来判断一下,首先是A→D

先对R1,令result=A,result∩R1=A,A+=AD,t=A+∩R1=A,result=A;

再对R2,令result=A,result∩R2=空集,空集无法求闭包,那么t=空集,result=A。

可以发现无论对于R1还是R2最后的result都是A,并未包含D,所以A→D未被保持,这里已经可以得出该分解不保持函数依赖

对于B→D也是一样的方法:

先对R1,令result=B,result∩R1=B,B+=BD,t=B+∩R1=B,result=B;

再对R2,令result=B,result∩R2=空集,空集无闭包,t=空集,result=B;

result并未包含D,所以B→D也同样未被保持,该分解不保持函数依赖

1:将F中的所有依赖右边化为单一元素 AB->C C->A BC->D ACD->B BE->C CE->F CE->A CF->B CF->D D->E D->F 2:去掉F中所有冗余依赖关系做法为从F中去掉某关系,如去掉(X->Y),然后在F中求X+,如果Y在X+中,则表明x->是多余的需要去掉 去掉AB->C

以上就是关于数据库函数依赖问题全部的内容,包括:数据库函数依赖问题、数据库 函数依赖中的闭包问题、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9757779.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存