DBの更新時異常と推移関数従属性
更新時異常
正規化されていないテーブルの更新時にどのような異常が発生するかという話
- 本来別テーブル(マスタ)にあるべきデータが、異なる値として格納されてしまう
- 事前にマスタデータを用意しておくべきものが用意せずとも格納されてしまう
同じことを言ってるつもり。分かりづらい場合は実例を考えると良い。
推移関数従属性
推移関数従属性の成立条件は次のとおり
- X -> Y
- Y -> Xではない
- Y -> Z(ただし、ZはYの部分集合ではない)
H25年午後1問1のように、
{a, b, c} -> リソースID <-> URI -> {d, e, f} の関数従属性がある場合、
リソースIDとURI間に推移関数従属性は存在しない。
結局、推移関数従属性としては次の2つが存在することになる。
- {a, b, c} -> リソースID -> {d, e, f}
- {a, b, c} -> URI -> {d, e, f}
ここは完全に知識不足なので補う必要がある。