🎯 午後問題対策
ER図を読む4ステップ
DBスペシャリスト試験の午後問題では、ER図が与えられて「テーブル定義を完成させる」「SQLを書く」問題が出ます。
ER図をシステム的に読む手順を身につけることが合格への近道です。
STEP 1:エンティティを列挙する
確認すること
- 矩形(四角)の数=テーブルの数
- 二重線の矩形=弱エンティティ(他の主キーが必要)
- 各エンティティの主キー(下線付き属性)を確認
STEP 2:多重度を読む
A ──‖────<── B
Aの1件に対しBは0件以上(1:N)
A ──○────<── B
Aの0件以上に対しBは0件以上(任意:N)
A ──‖────‖── B
A1件にB必ず1件(1:1必須)
試験のポイント:「0以上」と「1以上」の違いに注意。○は任意(NULLあり)、‖は必須(NOT NULL)を意味します。
STEP 3:外部キーの向きを特定する
ルール:外部キーは「多」の側に置く
A(1) ─── B(N) の場合 → BがAの主キーを外部キーとして持つ
A(1) ─── B(N) の場合 → BがAの主キーを外部キーとして持つ
実践例:受注管理ER図
顧客(1) ───────── 注文(N)
→ 注文テーブルに「顧客ID」(FK)が必要
注文(1) ───────── 注文明細(N)
→ 注文明細テーブルに「注文ID」(FK)が必要
顧客(1) ───────── 注文(N)
→ 注文テーブルに「顧客ID」(FK)が必要
注文(1) ───────── 注文明細(N)
→ 注文明細テーブルに「注文ID」(FK)が必要
STEP 4:制約条件を問題文から拾う
ER図だけでは分からない制約が問題文に書かれています。
📌 問題文の定番フレーズと対応するSQL制約
「同一日に同一顧客の注文は1件まで」→ UNIQUE制約(顧客ID, 注文日)
「数量は1以上でなければならない」→ CHECK制約(quantity >= 1)
「受注金額は自動計算」→ 導出属性(テーブルに保存しない場合も)
「注文には必ず1件以上の明細が必要」→ 全参加制約(論理設計の制約)
午後問題の採点ポイント:エンティティ・属性・多重度・主キー・外部キーが揃って初めて満点。1つでも欠けると減点です。
🧠 確認クイズ
Q1. ER図のIE記法で「○」(丸)が示す意味は何か?
Q2. 1:Nの関係で外部キーを置くべきテーブルはどれか?
Q3. 「同一顧客の同一日注文は1件まで」という制約はどのSQL制約で実現するか?