平成25年度 春期 午前Ⅱ 問4
データベース設計
UMLに関する問題
“学生は,学期が異なれば同じ授業科目を何度でも履修できる”を適切に表現しているデータモデルはどれか。ここで,モデルの表記には UML を用いる。
- ア(原典は図。学期 1 ――― * 学生 * ――― * 授業科目。関連名“履修する”は学生と授業科目の間の関連に付く)
- イ(原典は図。学生 * ――― * 授業科目 の関連“履修する”。その関連線から点線で学期のクラスにつながる(関連クラス))
- ウ(原典は図。学生 1 ――― * 授業科目 の関連“履修する”。別に 学生 1 ――― * 学期 の関連)
- エ(原典は図。学生・授業科目・学期の3クラスをひし形で結ぶ3項関連“履修する”。多重度は学生 *,授業科目 *,学期 *)
答えと解説を見る
✓ これが正解エ(原典は図。学生・授業科目・学期の3クラスをひし形で結ぶ3項関連“履修する”。多重度は学生 *,授業科目 *,学期 *)
解説
学生・授業科目・学期の3項関連なら、学期違いの再履修を表せます。
同じ学生が同じ授業科目を、学期を変えて何度も履修できるという条件では、1件の履修を特定するのに学生、授業科目、学期の三つがそろう必要があります。3クラスをひし形で結ぶ3項関連は、この三つの組を一つのリンクとして記録する形です。多重度がすべて*なので、同じ学生と授業科目の組でも、学期が違えば別のリンクとして何件でも記録できます。学生と授業科目の2項関連に学期を付け足す形では、学生と授業科目の組が一つに決まった時点で学期も一つに決まってしまいます。何がそろえば1件の事実が決まるのかを数えると、必要な関連の項数が分かります。
ほかの選択肢はなぜ違うのか
- ア(原典は図。学期 1 ――― * 学生 …:学期と学生を1対多で結ぶと、学生はどれか一つの学期にだけ属することになります。学生と授業科目の関連には学期が入っていないので、どの学期に履修したかを区別して何度も記録できません。
- イ(原典は図。学生 * ――― * 授業科…:関連クラスとしての学期は、学生と授業科目の組一つに対して一つだけ付きます。同じ組で学期を変えて2回目の履修を記録するには、同じ組のリンクを二つ作る必要があり、この形では表せません。
- ウ(原典は図。学生 1 ――― * 授業科…:学生と授業科目が1対多なので、一つの授業科目を履修できる学生が1人に限られます。学期との関連も学生とだけ結ばれていて、どの学期の履修かを授業科目と組にして記録できません。
出典:平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)