平成27年度 春期 午前Ⅱ 問4
データベース設計
“受講”クラスの属性
UMLを用いて記述したデータモデルにおいて,“受講”クラスの属性として,適切なものはどれか。
クラス図:
[学期]
│1
│
│*
[学生]1 ───── *[受講]* ───── 1[授業科目]- ア学期名
- イ科目名
- ウ氏名
- エ成績
答えと解説を見る
✓ これが正解エ成績
解説
成績は学生・授業科目・学期の組合せで決まるので、受講の属性です。
このクラス図では、受講は学生・授業科目・学期のそれぞれと多重度1でつながり、逆にそれぞれからは複数の受講がつながります。つまり受講の1件は、どの学生が、どの学期に、どの授業科目を受けたかという組合せを表します。属性をどのクラスに置くかは、その値が何によって一つに決まるかで判断します。成績は、同じ学生でも科目や学期が違えば変わり、同じ科目でも学生が違えば変わるので、三つの組合せである受講に持たせるのが自然です。一方、一つのクラスだけで決まる値を受講に置くと、受講のたびに同じ値が繰り返し記録されます。値を決めるものが一つのクラスか、組合せかを見ると見分けられます。
ほかの選択肢はなぜ違うのか
- ア学期名:学期名は学期そのものを表す値で、学期が決まれば一つに定まります。受講に持たせると、同じ学期の受講が何件あっても同じ名前を繰り返し記録することになるので、学期クラスに置く属性です。
- イ科目名:科目名は授業科目が決まれば一つに定まる値です。受講ごとに持たせると、同じ科目を受けた学生の人数ぶん同じ名前が並ぶため、授業科目クラスに置くのが適切です。
- ウ氏名:氏名は学生ごとに決まる値で、どの科目をいつ受けたかとは関係がありません。受講に置くと同じ学生の氏名が受講の件数ぶん繰り返されるので、学生クラスに置く属性です。
出典:平成27年度 春期 データベーススペシャリスト試験 午前Ⅱ 問4
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)