如何查找函数依赖关系的无关属性?
问题描述:
我有r(A,B,C,D,E,F)
满足关系:如何查找函数依赖关系的无关属性?
AB->C
C->A
BC->D
ACD->B
BE->C
CE->FA
CF->BD
D->EF
我需要找到这种关系的规范封面?
我知道找到规范封面的算法。但是在算法中,我们需要找到无关的属性。有没有一种算法来寻找无关的属性?
答
的算法来寻找外来的属性如下:
let F the initial set of functional dependencies
assume that each dependency F is in the form A1, A2, ..., An -> B
for each functional dependency A1, A2, ..., An -> B in F with n > 1
for each Ai
if B ∈ ({A1, A2, ..., An} - Ai)+
then Ai is an extraneous attribute and must be removed from the left hand side
注意,其余属性关闭必须考虑的F所有的依赖性,包括所检查的依赖(计算这可能是违反直觉的)。
例如,应用该算法到你的例子,从相关性启动:
{ A B → C
A C D → B
B C → D
B E → C
C → A
C E → A
C E → F
C F → B
C F → D
D → E
D → F }
在A C D → B
,A
是因为{C D}+ = (A B C D E F)
estraneous,而在C E → A
,E
是因为{C}+ = (A C)
estraneous。
你的参考文献对于皮肤属性有什么看法? Google提供什么?请谷歌'stackexchange家庭作业'并阅读[问]&downvote向下箭头mouseover文本。 – philipxy