データベーススペシャリスト試験 2015年 午前2 問04
UMLを用いて記述したデータモデルにおいて, “受講”クラスの属性として, 適切なものはどれか。

ア:学期名
イ:科目名
ウ:氏名
エ:成績(正解)
解説
UMLを用いたデータモデルの“受講”クラスの属性選択【午前2 解説】
要点まとめ
- 結論:受講クラスの属性として適切なのは「成績」である。
- 根拠:受講は学生・授業科目・学期の関係を表す結合クラスであり、属性はその関係に固有の情報を持つ。
- 差がつくポイント:エンティティの属性とリレーションシップの属性の違いを理解し、結合クラスの役割を正確に把握することが重要。
正解の理由
「受講」クラスは「学生」「授業科目」「学期」という3つのエンティティ間の多対多の関係を表す結合クラスです。
このため、「受講」クラスの属性は、これらのエンティティ単体の属性ではなく、受講という関係に固有の情報を持つ必要があります。
「成績」は、学生が特定の学期に特定の授業科目を受講した際に得られる評価であり、受講関係に固有の属性です。
一方、「学期名」「科目名」「氏名」はそれぞれ「学期」「授業科目」「学生」エンティティの属性であり、「受講」クラスの属性としては不適切です。
このため、「受講」クラスの属性は、これらのエンティティ単体の属性ではなく、受講という関係に固有の情報を持つ必要があります。
「成績」は、学生が特定の学期に特定の授業科目を受講した際に得られる評価であり、受講関係に固有の属性です。
一方、「学期名」「科目名」「氏名」はそれぞれ「学期」「授業科目」「学生」エンティティの属性であり、「受講」クラスの属性としては不適切です。
よくある誤解
「学期名」や「科目名」を受講クラスの属性と誤認しがちですが、これらはそれぞれのエンティティの属性であり、結合クラスの属性ではありません。
また、「氏名」は学生の属性であり、受講クラスの属性には含まれません。
また、「氏名」は学生の属性であり、受講クラスの属性には含まれません。
解法ステップ
- UML図のエンティティとリレーションシップを確認する。
- 「受講」クラスが複数のエンティティを結ぶ結合クラスであることを理解する。
- 各エンティティの属性と「受講」クラスの属性の違いを区別する。
- 「受講」クラスに固有の属性(関係に関する情報)を選択肢から探す。
- 「成績」が受講関係に固有の属性であるため正解と判断する。
選択肢別の誤答解説ステップ
- ア: 学期名
→ 学期エンティティの属性であり、受講クラスの属性ではない。 - イ: 科目名
→ 授業科目エンティティの属性であり、受講クラスの属性ではない。 - ウ: 氏名
→ 学生エンティティの属性であり、受講クラスの属性ではない。 - エ: 成績
→ 受講という関係に固有の属性であり、正解。
補足コラム
UMLの結合クラス(Association Class)は、多対多のリレーションシップに属性を持たせたい場合に用いられます。
このクラスは、複数のエンティティ間の関係を表し、その関係に固有の情報(例:成績、契約日、数量など)を属性として持ちます。
エンティティの属性と混同しないように注意しましょう。
このクラスは、複数のエンティティ間の関係を表し、その関係に固有の情報(例:成績、契約日、数量など)を属性として持ちます。
エンティティの属性と混同しないように注意しましょう。
FAQ
Q: なぜ「成績」は受講クラスの属性になるのですか?
A: 成績は学生が特定の授業科目を特定の学期に受講した結果の情報であり、受講という関係に固有の属性だからです。
A: 成績は学生が特定の授業科目を特定の学期に受講した結果の情報であり、受講という関係に固有の属性だからです。
Q: 「学期名」や「科目名」はどこに属する属性ですか?
A: それぞれ「学期」エンティティ、「授業科目」エンティティの属性です。受講クラスの属性ではありません。
A: それぞれ「学期」エンティティ、「授業科目」エンティティの属性です。受講クラスの属性ではありません。
関連キーワード: UML, 結合クラス, 属性設計, 多対多リレーションシップ, データモデリング