問題 No.2399
ECサイトの注文履歴管理システムにおいて、顧客情報や商品情報を含む1つの非正規化されたテーブルから、繰り返しグループを排除して個別のリレーションに分割する作業を行った。この初期段階のデータ構造の整理において適用された、すべての属性が原子値を持つように整えるプロセスとして、最も適切なものはどれか。
【正解の解説】
第1正規化
これはエクセルで1つのセルに「りんご,みかん」と複数の値が入っている状態を解消し、1セルには必ず1つのデータだけを入れるように整理する作業です。例えるなら、ごちゃ混ぜになったおもちゃ箱から、おもちゃを一つずつ取り出してきれいに一列に並べ直すようなもので、データベース設計のすべての基本となる最初のステップです。
スポンサーリンク
【その他の選択肢の解説】
第2正規化
これは複合主キーの一部だけで決まってしまうデータを別のテーブルに切り出す作業であり、今回の「すべての属性が原子値を持つようにする」という条件とは対象が異なります。初学者は正規化のステップを混同しやすいため、まずはセルの中身を単一にするのが第1段階、主キー全体への依存関係を整えるのが第2段階としっかり区別して覚える必要があります。
第3正規化
「社員IDから部署IDが分かり、部署IDから部署名が分かる」といった連鎖的な依存関係を断ち切るためのステップです。今回はセル内のデータを原子値にすることが目的なのでこの段階ではありません。試験ではステップの順番と目的が入れ替えて出題されることが多いため、各正規化がどの不具合を解消するためのものかを用語とセットで押さえておくことが重要です。
ボイス・コード正規化
通常の正規化では扱いにくい複雑な候補キーの重なりを解消するための高度なステップであり、基本問題で問われる原子値の確保とはレベルが異なります。初学者は難しそうな用語に惑わされがちですが、まずは基本の第1〜第3正規化のストーリーを完璧に理解することが得点アップの近道となります。