正規化の深掘り
luagate/normalization-intro正規化入門23 枚データベース・SQL
上から下へ、全 23 枚そのまま並べています。
発表モードで開く正規化の深掘り
目次
今日のゴール
この時間で身につけてほしいことです。
- 重複データがなぜ問題なのかが分かる
- 正規化が「重複をなくす設計」だと分かる
- 第1〜第3正規形の手順をイメージできる
- やりすぎると逆に使いにくくなると気づける
- あえて崩す非正規化という選択を知る
リレーショナルDB のおさらい
以前学んだリレーショナルデータベースを思い出すところから始めます。
重複データの問題
同じ情報を何度も書くと、ムダが増え、食い違いが生まれます。
重複が招く3つの事故
重複したテーブルでは、更新・追加・削除のそれぞれで不具合が起きやすくなります。
第2部 正規化とは
正規化 とは
重複をなくし、1つの事実を1か所だけに置くようにテーブルを分けていく作業です。
きれいなテーブル設計
情報を意味ごとに別々の表へ分け、共通のIDでつなぐと、重複のない設計になります。
- 意味ごとに別の表へデータを分ける
- 利用者の表と注文の表のように役割で分割
- 共通のIDで表どうしをつなぐ
- 同じ情報は1か所だけに書く
- 変更があってもそこ1か所を直せば済む
非正規形 と 正規化後
第3部 第1〜第3正規形
正規化の3ステップ
正規化は、第1から第3まで順番に進めるのが基本です。
第1〜第3正規形の中身
それぞれの段階で「何をどこへ分けるか」が違います。
3つの正規形のねらい
段階ごとに「なくしたい重複」と「身近なたとえ」を並べます。
正規化による重複の減り方(イメージ)
段階を進めるほど、同じ情報の繰り返しが減っていきます。あくまでイメージです。
第4部 やりすぎと非正規化
やりすぎ問題
きれいに分けすぎると、毎回たくさんの表をつなぐ必要が出て、かえって遅く・複雑になります。
非正規化という選択
あえて重複を許して、よく使う情報を一緒に持たせ、速さを優先する判断もあります。
正規化と非正規化の使い分け
どちらが正しいというより、何を優先するかで選びます。
振り返りクイズ
振り返りクイズ 解答
質疑・次回予告
今日のまとめと、次に学ぶテーマです。質問があればここで受け付けます。
"
正規化は「1つの事実を1か所だけに」置くための整理術。重複をなくせば矛盾は減るが、分けすぎれば遅くなる。きれいさと使いやすさの綱引きを、目的に合わせて見極めるのが設計の腕です。