×
データベース

正規化を行うことで、データを追加した際の登録漏れや、削除した際に関連情報まで消えてしまうといった「更新アノマリー(更新の不整合)」を防ぐことができます。ただし、正規化を進めてテーブルを細かく分割しすぎると、データを検索する際に「結合(JOIN)」処理を多く実行しなければならず、検索パフォーマンスが低下することがあります。そのため、アクセス頻度の高いシステムでは、あえて正規化を崩す「非正規化(逆正規化)」を行うこともあります。

試験でのポイント

IT試験(基本情報技術者や応用情報技術者試験)では、正規化の手順や各正規形の定義に関する選択問題、または実際に未整理のテーブルを第3正規形まで分割する計算・論理問題が頻出します。

試験対策としての重要ポイントは以下の通りです。
・関数従属の種類の分類: - 主キーの一部に依存する関係を排除する → 「第2正規化(部分関数従属の排除)」 - 主キー以外の非キー項目に依存する関係を排除する → 「第3正規化(推移的関数従属の排除)」
・各段階の識別: - 繰り返し部分を排除し、各セルを原子値にする → 第1正規形 - 複合主キーから一部のキーに対する依存を排除する → 第2正規形 - 主キー経由の間接的な依存(A→B→C)を排除する → 第3正規形

問題で与えられたデータ構造を見て、「このテーブルを第2正規化すると、どのテーブルに分割されるか」を判断できるよう、主キーを特定し関数従属の矢印を描いて整理する練習を重ねておくことが大切です。

関連する用語

正規化の対象となる「関係データベース(RDB)」や、行を特定するための基準である「主キー(プライマリキー)」、関連を繋ぐための「外部キー」が最重要の関連用語です。また、テーブルを分割する判断基準となる「関数従属」や、正規化したデータを人が見やすい形に復元する「結合(JOIN)」も深い繋がりを持ちます。