データベーススペシャリスト試験 2022年 午前202


社員と年との対応関係をUMLのクラス図で記述する。二つのクラス間の関連が次の条件を満たす場合, a, bに入れる多重度の適切な組合せはどれか。ここで, “年”クラスのインスタンスは毎年存在する。
〔条件〕  (1)全ての社員は入社年を特定できる。  (2)年によっては社員が入社しないこともある。
問題画像選択肢画像
(正解)

解説

社員と年の対応関係の多重度設計【午前2 解説】

要点まとめ

  • 結論:社員から年への多重度は「0..*」、年から社員への多重度は「1」が適切です。
  • 根拠:全社員は必ず入社年(年のインスタンス)を特定できるため、年側は必ず1つ存在し、年側は毎年存在し社員がいなくてもよいので社員側は0以上。
  • 差がつくポイント:多重度の「必須性」と「存在しない可能性」を正確に理解し、条件を正しく反映することが重要です。

正解の理由

「社員は必ず入社年を特定できる」ため、社員から見た年の多重度は必ず1つ存在します。つまり、社員側の多重度は「1」。
一方、「年によっては社員が入社しないこともある」ため、年から社員への多重度は0以上であり、複数の社員が入社する可能性もあるため「0..」となります。
選択肢イはa=0..
(年から社員)、b=1(社員から年)であり、条件に合致しています。

よくある誤解

社員が必ず入社年を持つため、社員側の多重度を0..1と誤解しがちですが、必ず1つ存在するため「1」が正しいです。
また、年に社員がいない場合もあるため、年から社員への多重度を1にすると誤りです。

解法ステップ

  1. 条件(1)「全ての社員は入社年を特定できる」から社員側の多重度を考える。
  2. 条件(2)「年によっては社員が入社しないこともある」から年側の多重度を考える。
  3. 社員から年への多重度は必ず1つなので「1」。
  4. 年から社員への多重度は0以上の複数可能なので「0..*」。
  5. 選択肢の中からこの組み合わせを選ぶ。

選択肢別の誤答解説

  • ア(a:0..*、b:0..1)
    社員から年への多重度が0..1は誤り。社員は必ず入社年を特定できるため「1」が必要。
  • イ(a:0..、b:1)
    正解。社員は必ず1つの年を持ち、年は社員がいない場合もあるため0..
  • ウ(a:1..*、b:0..1)
    年から社員への多重度が1..*は誤り。年に社員がいない場合もあるため0..*が正しい。
  • エ(a:1..*、b:1)
    年から社員への多重度が1..*は誤り。年に社員がいない場合もあるため0..*が正しい。

補足コラム

UMLの多重度は「関連するインスタンスの数の範囲」を示します。
「0..*」は「0以上無制限」、「1」は「必ず1つ存在」を意味し、要件の必須性や存在しない可能性を正確に表現することが重要です。
また、関連の方向性(社員→年、年→社員)で多重度が異なることも理解しましょう。

FAQ

Q: 多重度「1」と「0..1」の違いは何ですか?
A: 「1」は必ず1つ存在することを示し、「0..1」は0か1つ存在する可能性があることを示します。
Q: なぜ年から社員への多重度は「0..*」なのですか?
A: 年によっては社員が入社しないこともあるため、社員が0人の場合も許容され、複数人入社する可能性もあるためです。

関連キーワード: UML, 多重度, クラス図, 関連, 入社年, モデリング
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ