ER 図と正規化を、身近な例と厳密な定義で。
「変な ER 図」の間違い探しから ER 図の基本を体感し、そのまま正規化の 3 ステップへ。 「所属 0 人の部署を認めるか」など身近な問いで概念を掴み、 受注データを段階的に整えていく Before/After で正規化の手続きを実感できます。
カテゴリとトピック
- 基礎なぜ正規化が必要かなぜ正規化が必要か
正規化されていないテーブルでは、同じ事実を複数の行に重複して持つために、挿入・更新・削除の各操作で矛盾や情報損失が発生する。この「更新時異常」を体系的に排除するのが正規化の目的である。
- 基礎関数従属性関数従属性 (Functional Dependency)
属性 X の値が決まると属性 Y の値も一意に決まる関係を関数従属という。この概念は 1NF〜3NF、BCNF まで正規化の全ステップの判定基準になる。部分関数従属・推移関数従属など派生概念も整理する。
- 基礎キーの階層キーの階層 (スーパーキー・候補キー・主キー)
正規化の議論に入る前に、スーパーキー・候補キー・主キーの3階層と、外部キー・代替キー・複合キーとの関係を整理する。2NF/3NF の「非キー属性」「部分従属」を語るための語彙を揃える。
- 基礎第1正規形第1正規形 (1NF)
全ての属性がアトミック値をとり、繰り返しグループを含まない状態が第1正規形。非1NF (unnormalized form) の代表例を並置し、1NF に変換する具体的手続きを図解する。
- 基礎第2正規形第2正規形 (2NF)
複合主キーの一部分にだけ関数従属する非キー属性 (部分関数従属) を切り出して別テーブル化するのが 2NF。単一主キーのテーブルは自動的に 2NF を満たす点も整理する。
- 基礎第3正規形第3正規形 (3NF)
非キー属性が別の非キー属性を経由して主キーに従属する「推移関数従属」を排除するのが 3NF。実務ではここまで来れば十分と言われることが多い理由も示す。
- 発展非正規化非正規化とパフォーマンスの実務判断
読み取り性能や運用の都合で、あえて正規化を崩す設計判断が非正規化。何を守り何を捨てるか、カバリングインデックスやマテリアライズドビューとの棲み分けまで含めて整理する。
- →変なER図
9 つの違和感、全て指摘できますか?
- 基礎エンティティエンティティ (実体) とは
ER 図の四角い箱の中身。何をエンティティにするか、何を属性に落とすかの判断基準を、身近な例で整理する。
- 基礎関連関連 (リレーションシップ) とは
ER 図の線が表す「エンティティ同士がどう繋がっているか」の意味。役割名と方向、自己参照 (再帰関連) までを身近な例で整理する。
- 基礎カーディナリティカーディナリティ (多重度) とは
「1 人の部長は何人の部下を持つか」を規定する多重度制約。1:1、1:N、多対多 を身近な例で整理する。
- 基礎参加制約参加制約 (必須参加 / 任意参加) とは
「所属する社員が 0 人の部署を認めるか」「どの部署にも所属していない社員を認めるか」を規定する最小基数の制約。IE 記法の記号の読み方まで。
- 基礎多対多多対多 (N:M) と連関実体
「1 学生は複数科目を取り、1 科目に複数学生が集まる」の多対多関係を、連関実体 (履修登録) で分解する手続き。
- 基礎弱エンティティ弱エンティティと識別関係
「注文書の 3 行目」のように、親がいなければ意味を持たないエンティティ。エンティティ側から見れば「弱」、関連側から見れば「識別関係」— 主キーの構造で判別する。
- 基礎記法ER 図の記法比較 (IE / IDEF1X / Chen)
同じ ER 図を 3 記法で描き分けた 1:1 対応表。実務ではどれを選ぶかの判断基準まで。
もっと深くDBを学びたい方へ。
たいてっくが、SQL・データベース設計・パフォーマンスチューニング・IPAデータベーススペシャリスト対策まで、1対1で学習をサポートします。まずは無料相談から。
「教え方も上手で、お人柄も良いメンターです。DB周りの知識はもちろん、何より、しっかり教えてあげようという姿勢がとてもありがたかったです。データベース、SQLの学習を考えている方にはおススメです。」
— H 様(DB・SQL コース受講)「体系的に知識を教えてくださり、実際の業務でも大変役立っております。特に短い時間で効率よく知識の習得や、練習をできているのは期待以上でした。」
— M 様(DB・SQL コース受講)「大変充実したコンテンツでわかりやすいご説明をありがとうございました。基本的な質問にも丁寧にご説明いただき、また業務のご相談にも乗って頂き大変有意義な時間でした。」
— K 様(DB・SQL コース受講)
このセクションの特徴
1NF から 3NF まで、同じ受注データを 1 つずつ整えていきます。各ステップで「何が変わったか」がひと目で見えます。
関数従属の分析 (グループ箱) と実データ (色分けテーブル) を並べて示すので、理屈と手触りの両方から理解できます。
各ページの最後に別データでの練習問題があります。答え合わせは折りたたみで隠しているので、自分で考えてから確認できます。