考虑集合F是一组函数依赖,并且关系中有函数依赖α -> β。
检验无关属性:
A. 检验左端属性A∈α是否是无关的
1. 用函数依赖集F计算
(
a
−
A
)
+
({a} - A)^+
(a−A)+
2.检验
(
a
−
A
)
+
({a} - A)^+
(a−A)+是否包含β,如果包含则A是α的无关属性
B.检验右端属性B∈β是否是无关的
1.用F’ = (F - {α -> β}) ∪ {α -> (β - B)}计算
α
+
α^+
α+
2.检验
α
+
α^+
α+是否包含B,如果包含则B是β的无关属性
依次检验,直到函数依赖左右端都不含有无关属性
最小覆盖算法:
repeat:
1.在F中将函数左端相同的进行合并 eg.α -> a, α -> b合并为α->ab
2.检查任一一个函数依赖x->y左端和右端是否存在有无关属性
3.如果有则将无关属性删除
until: F不再发生变化