auの日記

プログラミング初心者の日記。(auはハンドルネームです)

第3正規形とボイス・コッド正規形の違い

auです。

データベースの勉強をしていると、スキーマを整理するための正規形を学ぶことになります。

そこで、結構似ていて複雑になるのが、第3正規形とボイス・コッド正規形です。

簡単にまとめると、自由度は「ボイス・コッド<第3正規形」です。

ボイス・コッド正規形は、関係スキーマRがある場合に、関数従属性のX→Y(Xがあることで、Yが定まる)で、XがRの主キーになっている場合に、関係スキーマRはボイス・コッド正規形と言います。

重要だと感じたのが、Xが主キーになっている必要があるというところです。

第3正規形は、同じく関係スキーマRがある際に、関数従属性Rがある際に、ボイス・コッド正規形と同じ条件(X→Y)であるか、またはAがRのキーに含まれていれば、関係スキーマRは第3正規形である。

このとき、Aは主キー出なくてもいい。XとAのORをとる(X∪A)が、関係スキーマRのキーと同じになれば、第3正規系であると証明できる。

何だか書いてみたら難しく感じてきましたが、アルゴリズムさえ理解できれば、第3正規系なのか、ボイス・コッド正規系かを判断できる気がしました。