Normalization
データベース正規化は、テーブルを分解して冗長性と更新異常を排除するプロセスである。第一正規形からBCNF/第五正規形へと段階的に厳格になっていく。
目的
データの冗長性と更新異常(挿入・削除・修正)を排除し、データ整合性を保証する。
メカニズム
第一正規形は原子値を要求する。第二正規形は部分依存(非主属性がキーに完全依存すること)を排除する。第三正規形は推移的依存を排除する。BCNFではすべての決定項が候補キーである。正規化は冗長性を減らすがJOINを増やすため、非正規化とのバランスが必要である。
ユースケース
- リレーショナルDBの設計
- データ冗長性の排除
- データ整合性の保証
- 教育とモデリング
例
- 入力
Split an orders table into orders + customers + productsOutput3NF eliminates redundancyTable decomposition
よくあるエラー
- Over-normalization leads to excessive JOINs in queries
- Denormalize moderately for read-heavy scenarios
関連用語
Index
インデックス(Index)は、クエリを高速化するために維持される補助データ構造(B+ 木、ハッシュなど)である。書き込みオーバーヘッドと引き換えに、空間で時間を買う。 用語集
JOIN
JOIN は、結合条件によって複数テーブルの行を組み合わせる SQL 操作である。内部結合、左/右/完全外部結合、交差結合などの型がある。 用語集
Primary Key
主キー(プライマリキー)とは、テーブル内の各行を一意に識別する列または列の組み合わせである。NULL不可かつ一意であり、行の識別子となる。 用語集
Foreign Key
外部キーは他のテーブルの主キーを参照する列であり、テーブル間の参照整合性を確立し、孤立した参照を防ぐ。 用語集