ホーム > システムアーキテクト試験 > 2017年
システムアーキテクト試験 2017年 午前2 問21
UMLを用いて表した図のデータモデルを基にして設計したテーブルのうち、適切なものはどれか。ここで、“担当委員会ID”と“所属委員会ID”は“委員会ID”を参照する外部キーである。“役員ID”と”委員ID”は“生徒ID”を参照する外部キーである。実線の下線は主キー、破線の下線は外部キーを表す。


ウ:
エ:
ア:(正解)
イ:
解説
UMLを用いたデータモデル設計のテーブル選択【午前2 解説】
要点まとめ
- 結論:アが正解で、関連ごとに中間テーブルを設けて外部キーを適切に管理しています。
- 根拠:多対多の関連は中間テーブルで表現し、外部キーは参照先の主キーを指すため正しい設計です。
- 差がつくポイント:関連の多重度を正確に理解し、中間テーブルの有無や外部キーの配置を誤らないことが重要です。
正解の理由
選択肢アは、「担当する」と「所属する」という2つの関連をそれぞれ中間テーブル(所属関連、生徒)で表現しています。
「担当委員会ID」と「所属委員会ID」が委員会の主キー「委員会ID」を参照し、「役員ID」「委員ID」が生徒の主キー「生徒ID」を参照する外部キーとして正しく配置されています。
これにより、多対多の関係を正確にテーブル設計に反映できているため、正解です。
「担当委員会ID」と「所属委員会ID」が委員会の主キー「委員会ID」を参照し、「役員ID」「委員ID」が生徒の主キー「生徒ID」を参照する外部キーとして正しく配置されています。
これにより、多対多の関係を正確にテーブル設計に反映できているため、正解です。
よくある誤解
多対多の関連を単一テーブルにまとめてしまい、外部キーの関係が不明確になることがあります。
また、外部キーを誤ったテーブルに配置し、参照整合性が保てなくなるケースも多いです。
また、外部キーを誤ったテーブルに配置し、参照整合性が保てなくなるケースも多いです。
解法ステップ
- UMLの関連の多重度を確認し、多対多なら中間テーブルが必要と判断する。
- 各クラスの主キーを特定し、外部キーとして参照すべき属性を明確にする。
- 関連名や役割名から外部キーの名称を推測し、テーブルに反映する。
- 選択肢のテーブル構成がUMLの関連構造と整合しているか検証する。
- 外部キーの参照先が正しいか、主キーの設定が適切かを確認する。
選択肢別の誤答解説
- イ:担当委員会IDを役員関連テーブルに置くが、生徒テーブルに所属委員会IDがあり関連の役割が逆転しているため不適切。
- ウ:委員会テーブルに委員IDを持たせているが、多対多の関連を単一テーブルで表現しており正規化の観点で誤り。
- エ:役員IDを委員会テーブルに持たせているが、役員は生徒クラスの属性であり、関連の表現として不適切。
補足コラム
UMLの多対多関連はリレーショナルデータベース設計で中間テーブルを用いて表現します。
外部キーは必ず参照先の主キーを指し、整合性を保つために正確な配置が求められます。
また、役割名や多重度はテーブル設計時の外部キー命名や制約設定に役立ちます。
外部キーは必ず参照先の主キーを指し、整合性を保つために正確な配置が求められます。
また、役割名や多重度はテーブル設計時の外部キー命名や制約設定に役立ちます。
FAQ
Q: 多対多の関連はなぜ中間テーブルが必要ですか?
A: 多対多の関連は直接テーブルに表現できず、中間テーブルで両側の主キーを外部キーとして持つことで関係を管理します。
A: 多対多の関連は直接テーブルに表現できず、中間テーブルで両側の主キーを外部キーとして持つことで関係を管理します。
Q: 外部キーと主キーの違いは何ですか?
A: 主キーはテーブル内で行を一意に識別する属性、外部キーは他テーブルの主キーを参照し関係性を表す属性です。
A: 主キーはテーブル内で行を一意に識別する属性、外部キーは他テーブルの主キーを参照し関係性を表す属性です。
Q: UMLの多重度「0..1」と「1..」はどう設計に影響しますか?
A: 「0..1」は関連先が0か1件、「1..」は1件以上の関連を意味し、テーブル設計でNULL許容や中間テーブルの有無に影響します。
A: 「0..1」は関連先が0か1件、「1..」は1件以上の関連を意味し、テーブル設計でNULL許容や中間テーブルの有無に影響します。
関連キーワード: UML, 多対多関連, 外部キー, 主キー, 正規化, データベース設計, リレーショナルモデル