- 関数の依存関係の定義:
パターン(id、name)がある場合、idはメインコードです。
次に、機能の依存関係をid-> nameとして記述できます - 機能依存の条件を満たす(a-> b)
インスタンス内のすべてのタプルペアt1とt2について、t1 [a] = t2 [a]の場合、t1 [b] = t2 [b] - 機能的な依存関係の利点は
、スーパーコードでは表現できない制約を表すことができます。
stu(id、name、sex、apartment)など、idがメインコードで、2つのアパート(男性と女性)しかない場合を想定しています。
それから、男の子が男の子の寮にしか住めないので、セックス->アパートが設立されます。性別はアパートの建物を制約する可能性があります - 通常の機能依存
aがbを含む場合、機能依存a-> bは通常と呼ばれます - アームストロング公理
- 再帰則:aが属性のセットであり、aがbを含む場合、a-> b
- 補足法:a-> bおよびrが属性セットの場合、ar-> br
- 移転法:a-> b、b-> cの場合、a-> cが成り立つ
- 推論
- 合併法:a-> b、a-> cの場合、a-> bc
- 分解法:a-> bcの場合、a-> b、a-> c
- 疑似転送法:a-> b、bc-> rの場合、ac-> r
簡単な例
あ | B | C | D |
---|---|---|---|
A1 | b1 | c1 | D1 |
A1 | b2 | c1 | d2 |
a2 | b2 | c2 | d2 |
a2 | b3 | c2 | d3 |
a3 | b3 | c2 | d4 |
A-> C(a3とc2の場合、値a3のタプルAは他にないため、a3がc2を一意に決定できるため)
C-> Aは満たされていないと言えます。
AB-> C、AB-> Dが確立されました