第三正規形では補助テーブルを使う
大抵のデータベースは、第二正規化ぐらいで大丈夫です。
ですが、もう少し複雑な場合には、第三正規形というものがあります。
第二正規形と第三正規形との違いは、
どの候補キーに対しても推移的に関数従属でない
という言い方をしますが、ええ、訳が分かりませんね(苦笑)。
具体的に、趣味の表を使うと、こんな感じです。
こんな風に年上の彼に○印を付ける列を加えました。
これを普通に、第二正規化まですると、
個人テーブルに、年上の○×が付くのですが、この年上の列って、「年齢」と「年上」だけに分離できますよね。
ってのが第三正規形です。
こんな風に、年上テーブルみたいなのを作れば、簡単に年上が分かりますよね。
ってことです。
正確にはちょっと違うのですが、まぁ、普通のデータベースの設計ではここまでやりません。
第2.5正規化と言って、あまり厳密に第三正規化しない方法が多いのです。