⏱ 6分 ★★★★★ 頻出:高

正規化とは

3つの更新異常と正規化の段階。なぜ正規化が必要かを完全理解

正規化=「データの矛盾が起きないテーブル設計にすること」

正規化(Normalization)とは、テーブルの設計を段階的に改善し、データの更新・挿入・削除で矛盾が起きないようにする手順です。

「冗長なデータを減らし、関係を明確にする」とも言えます。

非正規化テーブルの問題:3つの更新異常

📋 非正規化テーブル(問題あり)
注文ID顧客ID顧客名顧客住所商品名単価
2001C001田中太郎東京都PC89,800
2002C001田中太郎東京都マウス3,200
2003C002鈴木花子大阪府PC89,800
①更新異常:田中太郎の住所が変わったら2行を更新。1行見落とすとデータ矛盾が発生。
②挿入異常:注文のない新規顧客を登録できない(注文IDがNULLになるが主キーはNULL不可)。
③削除異常:注文2003を削除すると鈴木花子の情報も消える。

正規化の段階

非正規形(繰り返しグループあり)
↓ 繰り返しグループを排除
第1正規形(1NF)
↓ 部分関数従属を排除
第2正規形(2NF)
↓ 推移関数従属を排除
第3正規形(3NF)
↓ すべての関数従属が候補キーからのみ
ボイスコッド正規形(BCNF)
試験では通常3NFまでが出題の中心。BCNFは稀に出る。

試験での出方

「このテーブルは何正規形か」「第2正規形にするには何をするか」という問題が多い。更新異常・挿入異常・削除異常の3つは正規化の動機として頻出。
🧠 確認クイズ
Q1. 正規化の主な目的はどれか?
Q2. 非正規化テーブルで「レコードを削除すると他の重要な情報も失われる」問題を何というか?
Q3. 正規化の段階として正しい順序はどれか?