テクノロジ系

データベース正規化 — 重複をなくしてスッキリ整理する

導入

同じ住所や商品名が何度もデータベースに登録されていると、更新のたびに修正箇所が増えてミスが起きやすくなります。こうした「データの重複」をなくして管理しやすい構造に整理するのが、データベース正規化の考え方です。

くわしく知ろう

正規化とは、データベースのテーブル(表)内にある冗長なデータや矛盾を排除し、更新・追加・削除の操作を一貫して行えるように構造を整える設計手法のことです。正規化を行うことで、データの重複が減り、整合性を保ちやすくなります。

第1正規化は、テーブルの各セルに複数の値が入った「繰り返しグループ」を排除するステップです。たとえば1つのセルに「りんご、バナナ」と複数の商品名が入っている場合、それぞれを別の行に分けることで第1正規形(1NF)になります。

第2正規化は、主キーの一部だけに依存している列(部分関数従属)を別テーブルに切り出すステップです。複合主キーを持つテーブルで問題になりやすく、主キー全体に依存する形に整理することを第2正規形(2NF)と呼びます。

第3正規化は、主キー以外の列同士の依存関係(推移的関数従属)を排除するステップです。「社員ID→部門コード→部門名」のように、キーを経由して別の列が決まる関係を切り出し、別テーブルにまとめることで第3正規形(3NF)になります。一般的な業務システムでは、第3正規形まで整えておくことが基本とされています。

具体例

たとえば「注文テーブル」に顧客の住所を都度書き込んでいると、引越しのたびに複数行を修正する必要があります。住所を「顧客テーブル」として切り出して参照する形にすると、1か所を直すだけで済むようになります。これが正規化によるメリットの典型例です。

まとめ・試験ポイント

  • 正規化=テーブルの冗長性を排除して整合性を高める設計手法
  • 第1正規化=繰り返しグループ(複数値)の排除
  • 第2正規化=部分関数従属の排除(複合主キーの場合に注意)
  • 第3正規化=推移的関数従属の排除(非キー列間の依存を切り出す)
  • 正規化のデメリット=テーブルが増えるためJOINが必要になりパフォーマンスに影響することがある
  • 試験では「どの正規形か」や「正規化のメリット」がよく問われる

学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。

入門試験100問に挑戦する