概要

データベース正規形

データベース正規形は、リレーショナルデータベースの設計においてデータの重複を排除し、データ整合性を保つために定められた段階的な規則群です。第1正規形(1NF)から第5正規形(5NF)まで存在し、それぞれ特定のデータ依存関係の問題を解決します。一般的に第3正規形(3NF)まで適用することで、実用上十分なデータ品質が確保されます。正規化により更新時の不整合を防ぎ、データベースの保守性と効率性が向上します。

データベース 正規化 リレーショナルデータベース データ設計 SQL
コード スラッグ 名称 概要 keyRule level
1NF first-normal-form 第1正規形 テーブルの各セルに単一の値のみを含み、繰り返しグループを排除した状態です。 単一の値(原子値)のみを格納し、繰り返しグループを排除する 1
2NF second-normal-form 第2正規形 1NFを満たし、主キーに対する部分関数従属を排除した状態です。 非キー属性は主キー全体に完全依存していること 2
3NF third-normal-form 第3正規形 2NFを満たし、推移的関数従属を排除した状態です。 非キー属性間に依存関係が存在しないこと 3
BCNF boyce-codd-normal-form ボイス・コッド正規形 3NFより厳格な条件を持ち、すべての決定因子が候補キーである状態です。 すべての決定因子が候補キーであること 4
4NF fourth-normal-form 第4正規形 BCNFを満たし、多値従属を排除した状態です。 多値従属を排除し、独立した多値属性を別テーブルに分割する 5
5NF fifth-normal-form 第5正規形 4NFを満たし、結合従属を排除した状態です。 結合従属を排除し、意味的に独立したテーブルに分解する 6

データベース正規形は、リレーショナルデータベース設計においてデータの重複を排除し、一貫性と整合性を保つために定められた段階的な規則群です。1970年代にエドガー・F・コッドによって提唱されたこの概念は、現代のデータベース設計において依然として重要な基礎理論となっています。

正規化の主な目的は、データの挿入、更新、削除時に発生する可能性のある異常を防ぐことにあります。非正規化されたテーブルでは、同じデータが複数箇所に存在するため、一部だけが更新されて不整合が生じるリスクがあります。正規化によりこのような更新異常を防ぎ、データの信頼性を高めることができます。

第1正規形では、各セルに単一の値のみを格納し、繰り返しグループを排除します。第2正規形では、主キーに対する部分関数従属を解消し、第3正規形では非キー属性間の推移的関数従属を排除します。実務上、多くのデータベース設計で第3正規形まで適用することで十分なデータ品質が確保されます。

より高度な正規形として、ボイス・コッド正規形(BCNF)、第4正規形(4NF)、第5正規形(5NF)が存在します。これらは特殊なデータ依存関係を持つケースで適用されますが、過度な正規化はテーブル数の増加とクエリの複雑化を招くため、データ整合性とパフォーマンスのバランスを考慮した設計が求められます。