平成22年度 春期 午前Ⅱ 問5
データベース設計
UMLに関する問題
“学生は,学期が異なれば同じ授業科目を何度でも履修できる”を適切に表現しているデータモデルはどれか。ここで,モデルの表記法には UML のクラス図を用いる。
選択肢は原典では UML クラス図。各肢のクラスと関連・多重度を文字で書き写した。
- ア(原典は図。学期 1 ―― * 学生,学生 * ―― * 授業科目(関連名“履修する”))
- イ(原典は図。学生 * ―― * 授業科目(関連名“履修する”),その関連線から点線で 学期 クラスにつながる(関連クラス))
- ウ(原典は図。学生 1 ―― * 授業科目(関連名“履修する”),学生 1 ―― * 学期)
- エ(原典は図。“履修する”のひし形から 学生(*),授業科目(*),学期(*)の三つに線が出る 3 項関連)
答えと解説を見る
✓ これが正解エ(原典は図。“履修する”のひし形から 学生(*),授業科目(*),学期(*)の三つに線が出る 3 項関連)
解説
学生・授業科目・学期の 3 項関連なら、学期ごとの履修を表せます。
表したいのは、同じ学生が同じ授業科目を、学期を変えて何度でも履修できることです。そのためには、一つの履修を学生、授業科目、学期の三つの組で識別できる必要があります。“履修する”のひし形から学生、授業科目、学期の三つへ線を出した 3 項関連では、関連の一つ一つがこの三つの組合せになるので、学期が違えば同じ学生と授業科目の組が何度でも現れます。多重度もすべて*なので、どの組合せも制限されません。同じ二者の組が何度も現れる要件では、繰り返しを区別する第三の要素を関連に参加させているかを見ると判断できます。
ほかの選択肢はなぜ違うのか
- ア(原典は図。学期 1 ―― * 学生,学…:学期 1 対多 学生としているので、各学生はただ一つの学期にだけ結び付きます。また履修の関連は学生と授業科目の間だけにあり、どの学期の履修かを表す手段がないので、学期ごとの繰り返し履修を表せません。
- イ(原典は図。学生 * ―― * 授業科目…:学期を関連クラスとして付けると、学生と授業科目の組一つにつき関連クラスの実体も一つになります。同じ学生と授業科目の組を学期を変えて重ねることはできないので、何度でも履修できるという要件を表せません。
- ウ(原典は図。学生 1 ―― * 授業科目…:学生 1 対多 授業科目としているので、一つの授業科目を履修できる学生は 1 人に限られてしまいます。学生と学期も別々に結んでいるだけで、どの授業科目をどの学期に履修したかは表せません。
出典:平成22年度 春期 データベーススペシャリスト試験 午前Ⅱ 問5
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)