平成31年度 春期 午前Ⅱ 問6
データベース設計
UMLに関する問題
“学生は,学期が異なれば同じ授業科目を何度でも履修できる”を適切に表現しているデータモデルはどれか。ここで,モデルの表記にはUMLを用いる。
選択肢は原典ではUMLのクラス図。
- ア学期 1―* 学生,学生 *―* 授業科目(関連名:履修する)
- イ学生 *―* 授業科目(関連名:履修する)の関連に,学期が点線で付いている(関連クラス)
- ウ学生 1―* 授業科目(関連名:履修する),学生 1―* 学期
- エ菱形で表した3項関連「履修する」に,学生(多重度 *),授業科目(多重度 *),学期(多重度 *)が結ばれている
答えと解説を見る
✓ これが正解エ菱形で表した3項関連「履修する」に,学生(多重度 *),授業科目(多重度 *),学期(多重度 *)が結ばれている
解説
学生・授業科目・学期の3項関連なら、学期ごとの再履修を表せます。
履修は、どの学生が、どの授業科目を、どの学期に履修したかという三つの組で一件の事実になります。学期が異なれば同じ学生と授業科目の組合せを何度でも持てるようにするには、三つを一つの関連で結び、その組ごとに一件の履修として記録できればよいわけです。菱形で表した3項関連の履修するに、学生・授業科目・学期をいずれも多重度*で結んだモデルなら、同じ学生と授業科目でも学期が違えば別の履修として記録できます。二つずつの関連に分けてしまうと、どの学期にどの科目を履修したのかが結び付かなくなります。三つの要素がそろって初めて一件になる事実は3項関連で表す、という見分け方が使えます。
ほかの選択肢はなぜ違うのか
- ア学期 1―* 学生,学生 *―* 授業科…:学期と学生を1対多で結んでいるので、学生はただ一つの学期に属することになります。学生と授業科目の履修するの関連には学期が結び付いておらず、どの学期に履修したかを記録できないため、再履修を表せません。
- イ学生 *―* 授業科目(関連名:履修する…:関連クラスは、関連で結ばれた学生と授業科目の組一つに対して一つ付く形です。同じ学生と同じ授業科目の組には学期を一つしか持たせられないので、学期を変えて同じ科目を何度も履修する状況は表せません。
- ウ学生 1―* 授業科目(関連名:履修する…:学生と授業科目を1対多で結んでいるため、一つの授業科目を履修できる学生が一人に限られてしまいます。学期も学生と結ばれているだけで履修とは結び付いておらず、再履修の表現にはなりません。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問6
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)