本文へスキップ
BecomeCoder
Wiki一覧コース一覧

正規化

最終更新: 2026年8月8日

正規化 は、データの 重複や矛盾が起きないように、テーブル の形を整理する 設計手法です。同じ情報をあちこちに持たず、1か所にまとめるのが基本方針です。

たとえば、注文のたびに会員名まで書いていると、こうなります。

【正規化の前】1つの表に何でも詰め込む
注文ID 会員名 会員住所      商品
 1     田中   東京都…       本
 2     田中   東京都…       ペン   ← 田中の情報が重複

会員名が重複し、田中さんが引っ越すと 全部の行を直す 必要が生じ、直し漏れが矛盾を生みます。そこで表を分けます。

【正規化の後】会員は会員表に1回だけ
会員表: 会員ID 会員名 住所
注文表: 注文ID 会員ID(外部キー) 商品

こうすれば、会員情報は1か所。修正も1回で済み、外部キー で正しくつながります。必要なときは JOIN で合流させます。ただし、分けすぎると結合が増えて遅くなる場面もあり、あえて重複を許す「非正規化」を選ぶこともあります。バランスが設計の腕の見せどころです。

← Wiki一覧に戻る