平成24年度 春期 午前Ⅱ 問4
データベース設計
適切な多重度が指定されているもの
次の概念データモデルを関係データベース上に実装することとし,実装用のデータモデルを作成した。適切な多重度が指定されているものはどれか。ここで,モデルの表記には UML を用いる。
概念データモデル:
会社 0..5 ―――――― 0..* 人
:
雇用する(関連クラス。破線で関連に付く)
選択肢(原典は図。クラスを横一列に並べて関連線でつないだ図。各関連の両端の多重度を書き写した):
- ア会社 0..5 ―― 1 雇用 1 ―― 0..* 人
- イ会社 0..* ―― 1 雇用 1 ―― 0..5 人
- ウ会社 1 ―― 0..5 雇用 0..* ―― 1 人
- エ会社 1 ―― 0..* 雇用 0..5 ―― 1 人
答えと解説を見る
✓ これが正解エ会社 1 ―― 0..* 雇用 0..5 ―― 1 人
解説
雇用をクラスにして、会社1対雇用0..*、人1対雇用0..5とします。
この概念データモデルでは、会社と人が多対多の関連で結ばれ、関連クラスの雇用が付いています。人の側から見ると勤め先の会社は0から5社、会社の側から見ると雇う人は0人以上です。実装用のモデルでは、関連クラスを独立したクラスにして、会社と人の間に置きます。雇用のインスタンス一つは、ある会社とある人の一つの組を表すので、雇用から見た会社も人もちょうど1です。会社1社に対しては雇う人の数だけ雇用があるので0..*、人1人に対しては勤め先の数だけ雇用があるので0..5です。元の多重度の数字は、雇用を挟んだあとも、何から見た個数なのかをそろえて置き直すと読み替えられます。
ほかの選択肢はなぜ違うのか
- ア会社 0..5 ―― 1 雇用 1 ――…:会社と人の側の多重度をそのまま残し、雇用の側を1にしています。これでは1社に雇用が一つしか無く、一つの雇用に会社が最大5社つながる形になり、組を表すという雇用の役割と合いません。
- イ会社 0..* ―― 1 雇用 1 ――…:雇用の側をどちらも1にして、会社と人の側に多重度を置いています。会社1社に雇用が一つだけとなり、雇用一つに人が最大5人つながるので、人の勤め先が最大5社という制約が表せません。
- ウ会社 1 ―― 0..5 雇用 0..*…:雇用を挟んだ形は合っていますが、0..5 と 0..* の位置が逆です。会社1社の雇用が最大5件になり、人1人の勤め先には上限が無くなるので、元のモデルの制約と入れ替わっています。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:平成24年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問11:参照制約に関する問題(関係データベース)
- 令和6年度 秋期 午前Ⅱ 問5:主キーに関する問題(関係データベース)
- 令和6年度 秋期 午前Ⅱ 問3:ノード分割後のB^+木構造(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問15:入れ子ループ法に関する問題(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問2:UMLに関する問題(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)