正規化 (1NF〜BCNF)

データベース設計の正規化手順を解説します。

正規化はデータの重複と矛盾を防ぐ設計手法。1NF・2NF・3NF・BCNF の意味を理解しましょう。

日野 こむぎ(普段) 日野 こむぎ

正規化って、何を整えるのー?

藤森 さやか 先生(笑顔) 藤森 さやか 先生

正規化は、データの重複・矛盾を防ぐようテーブルを分割する設計手法よ。
1NFから始めて段階的に進めるの。

青木 澪(普段) 青木 澪

第1正規形 (1NF): 繰り返し列をなくす (1セルに複数値を入れない)。
第2正規形 (2NF): 1NF + 部分関数従属を排除。
第3正規形 (3NF): 2NF + 推移的関数従属を排除。

桃井 すみれ(しょんぼり) 桃井 すみれ

うぅ〜ん…難しい用語ばっかりですぅ…

藤森 さやか 先生(笑顔) 藤森 さやか 先生

ざっくり言うとね、1NFは「セル1個に1値」、2NFは「主キーの一部にしか依存しない列を別表に」、3NFは「主キー以外に依存している列を別表に」、ということね。

青木 澪(普段) 青木 澪

BCNF (Boyce-Codd) は3NFをより厳格にしたもの。
実務では3NFまでで十分な場合が多いわ。

日野 こむぎ(普段) 日野 こむぎ

正規化のメリットってなに?

青木 澪(普段) 青木 澪

更新時のデータ矛盾を防げて、容量効率も上がります。
逆にJOINが多くなって性能が落ちることもあるので、性能重視で意図的に「非正規化」することもあるんですよ。

確認クイズ

「複数の値を1つのセルに入れない」状態を満たす正規形はどれか。

  1. 第1正規形 (1NF)
  2. 第2正規形 (2NF)
  3. 第3正規形 (3NF)
  4. BCNF
こたえを見る

正解: 1. 第1正規形 (1NF)

第1正規形 (1NF) は「各セルに単一値しか入っていない」状態です。繰り返し項目 (例: 1セルに複数の電話番号) を分解することで満たします。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。