関係の正規化
第4正規形の関係が第5正規形の条件を満たさないケースは、稀でありほとんどない。 第4正規形の関係が第5正規形の条件を満たさない稀なケースとは、第4正規形の関係の属性値の組み合わせを正当にするための複雑な現実世界の制約が、その関係では強制できない場合である。
もしこのような関係が第5正規形に正規化されていないのであれば、その関係に含まれるデータの論理的一貫性を保つための負担の一部を、アプリケーションソフトウェアが担わなければならないのである。 アプリケーションソフトウェアは、その関係に対して追加・削除・更新を行う際に、その関係に含まれるデータの論理的一貫性を保つようにする責任を、担わなければならない。 そしてその関係に含まれるデータの論理的一貫性が損なわれるリスクは、日を追うごとに増えてゆく。
対照的に、関係が第5正規形として設計されていれば、データの論理的一貫性が損なわれるこのようなリスクは、除去される。
第5正規形の有用性についての警句:
先述の例での3つの関係のうち2つの関係だけを結合するだけでは、「誤った組」が現れる可能性がある。
正しい結果セットを求めるには、3つの関係すべてを (再) 結合しなければならない。
これまでに様々な正規形が定義されてきているが、第1~第5正規形及びボイス・コッド正規形がとくに広く知られている。以下ではこれらの正規形の定義を列挙する。
以下で、後に示した正規形は、それより前に示した正規形の十分条件になっている。例えば、第3正規形は常に第2正規形である。なお、歴史的な順序としては、まずエドガー・F・コッドにより第3正規形までが定義され、次に第3正規形の「修正」としてボイス・コッド正規形が定義された後、ロナルド・フェイギンにより第4正規形及び第5正規形が定義された。
これらの定義に沿った正規化は実務的にもよく行われるが、その際は、第3正規形までに止めて、それで一応、十分に正規化されたと考えることが多い。
ある関係上に存在する自明でない全ての関数従属性の決定項が候補キーであるとき、かつそのときに限り、その関係はボイス・コッド正規形 (Boyce/Codd normal form; BCNF) であるという。すなわち、ボイス・コッド正規形では、すべての属性が候補キーに完全従属する。この定義には第3正規形への言及がないが、ボイス・コッド正規形の関係はすべて第3正規形でもある。
ボイス・コッド正規形は、ほとんどの場合第3正規形と等価であり、複数の属性からなる候補キーが複数存在する場合にのみ差異が生じうる。第3正規形は非キー属性を従属項とする関数従属性だけを問題とするので、候補キーを構成する属性の間に候補キーを決定項としない関数従属性が存在することを許す。ボイス・コッド正規形では、この問題が存在することを許さない。ボイス・コッド正規形は、いわば第3正規形をより完全にしたものである。
第3正規形の関係は、常に無損失なようにボイス・コッド正規形に分解することができる。