正規化はデータの重複と矛盾を防ぐ設計手法。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正規形 (1NF)
- 第2正規形 (2NF)
- 第3正規形 (3NF)
- BCNF
こたえを見る
正解: 1. 第1正規形 (1NF)
第1正規形 (1NF) は「各セルに単一値しか入っていない」状態です。繰り返し項目 (例: 1セルに複数の電話番号) を分解することで満たします。