正規化(normalization)
- テクノロジ系
- データベース
- 基本情報
- 応用情報
- 重要度 ★★★★★
データの重複と矛盾をなくすため表を分割する設計手法。第1〜第3正規形が頻出。
試験ではこう出る
科目A(旧・午前)では「第◯正規形の条件はどれか」という定義問題と、具体的な表を示して「この表は第何正規形か」を判定させる問題の2パターンが定番です。応用情報の科目Bではデータベース分野の必答に近い頻度で登場し、与えられた業務要件からE-R図と正規化した表を設計させる形式で問われます。
現場のたとえ
品目マスタと発注伝票を分けて、品名の変更を1箇所で済むようにする設計です。発注伝票の1行1行に品番と品名を両方書いていると、品名が変わったとき過去の伝票を全部直さなければならず、直し漏れた伝票と直した伝票で品名が食い違います。だから伝票には品番だけを持たせ、品名は品目マスタ側に1回だけ書く。伝票を見るときにマスタを参照すれば品名が分かる。「同じ事実は1箇所にだけ書く」——これが正規化の考え方そのもので、やっていることはマスタ整備と変わりません。
もう少し正確に言うと
正規化は段階的に進みます。第1正規形は繰返し項目をなくして表を平坦にした状態です。第2正規形は、主キーが複数列で構成されているときに、その一部だけで決まる項目を別表に切り出した状態(部分関数従属の除去)です。第3正規形は、主キー以外の項目によって決まる項目を切り出した状態(推移的関数従属の除去)です。実務では第3正規形まで進めるのが基本ですが、参照が多く結合コストが問題になる場合は、あえて重複を残す非正規化を選ぶこともあります。試験では第3正規形までが範囲です。
よくある勘違い
| 用語 | 違い |
|---|---|
| 非正規化 | 性能を優先してあえて重複を残す設計。正規化の失敗ではなく意図的な判断 |
| インデックス | 検索を速くする索引。表の構造を変える正規化とは目的が違う |
| 主キー | 行を一意に特定する列。正規化の判定はこの主キーとの依存関係を見る |
過去問での問われ方
「次の表は第何正規形か」という判定問題では、まず繰返しがあるか(第1)、主キーの一部で決まる項目があるか(第2)、非キー項目で決まる項目があるか(第3)の順に見ていけば機械的に判定できます。
出典:引用時は「年度・期・試験区分・時間区分・問番号」まで明記すること。
関連用語
ミニクイズ
第2正規形の条件として正しいものはどれか。
正解は1番目。主キーの一部にだけ依存する状態(部分関数従属)を取り除いたものが第2正規形です。2番目は第3正規形(推移的関数従属の除去)、3番目は第1正規形の条件です。
最終更新:2026-08-20