功能性Dependancies的最小密钥

时间:2018-05-27 11:50:42

标签: sql database relation database-normalization functional-dependencies

我有以下关系:

{ a , b , c , d , e , f , g , h }

具有以下功能依赖性:

A -> B,C,D
A,D -> E
E,F,G -> H
F -> G,H

enter image description here

我的理解是此关系的最小键是{a,f},因为您可以通过b,c,d,e到达a,并从g,h到达f

但是我被告知实际的最小密钥是{a,f,e}

有人可以解释我在这里可能出错的地方吗?

1 个答案:

答案 0 :(得分:2)

你是对的。 AFE实际上是超级密钥而不是(最小)候选密钥,而唯一的候选密钥是AF。通过使用Armstrong's axioms计算其闭包,可以很容易地证明AF是候选键。以下是使用主要和次要规则的派生:

1. A → B C D  (given)
2. F → G H (given)
3. A F → B C D G H (by composition of 1. and 2.)
4. A → D (by decomposition of 1)
5. A → A D (by augmentation of 4)
6. A D → E (given)
7. A → E (by transitivity of 5 and 6)
8. A F → B C D E G H (by composition of 3 and 7)
9. A F → A B C D E F G H (by augmentation of 8)