ホーム > データベーススペシャリスト試験 > 2011年
データベーススペシャリスト試験 2011年 午前2 問01
社員と年の関連が次の条件を満たす場合を UML のクラス図で記述するとき, a, b に入る多重度の適切な組合せはどれか。ここで, 年クラスのインスタンスは毎年存在する。
[条件]
(1) すべての社員は入社年を特定できる。
(2)年によっては社員が入社しないこともある。


ア:
イ:(正解)
ウ:
エ:
解説
社員と年の関連の多重度選択問題【午前2 解説】
要点まとめ
- 結論:社員側の多重度は「0..*」、年側は「1..1」が適切です。
- 根拠:すべての社員は必ず入社年(年のインスタンス)を特定できるため、年側は必ず1つ存在します。
- 差がつくポイント:年によっては社員が入社しないため、社員側は0以上の多重度で表現し、年側は必ず1つであることを見抜くことが重要です。
正解の理由
選択肢イの「a=0..、b=1..1」が正解です。
(1)「すべての社員は入社年を特定できる」ため、社員から見た年の多重度は必ず1つ(1..1)でなければなりません。
(2)「年によっては社員が入社しない」ため、年から見た社員の多重度は0以上(0..)で表現されます。
この条件を満たすのは、社員側が0..*、年側が1..1の組み合わせです。
(1)「すべての社員は入社年を特定できる」ため、社員から見た年の多重度は必ず1つ(1..1)でなければなりません。
(2)「年によっては社員が入社しない」ため、年から見た社員の多重度は0以上(0..)で表現されます。
この条件を満たすのは、社員側が0..*、年側が1..1の組み合わせです。
よくある誤解
社員側の多重度を1以上と誤解しがちですが、社員は複数存在するため0..*が正しいです。
また、年側の多重度を0..1とすると、社員が必ず入社年を持つ条件に反します。
また、年側の多重度を0..1とすると、社員が必ず入社年を持つ条件に反します。
解法ステップ
- 条件(1)から「すべての社員は入社年を特定できる」→社員から年への多重度は必ず1つ。
- 条件(2)から「年によっては社員が入社しない」→年から社員への多重度は0以上。
- UMLの多重度の意味を確認し、社員側は0..*、年側は1..1と判断。
- 選択肢の中から該当する組み合わせを選ぶ。
選択肢別の誤答解説
- ア(0..*、0..1):年側が0..1は社員が必ず入社年を持つ条件に合わない。
- イ(0..*、1..1):正解。社員は複数、年は必ず1つの入社年を持つ。
- ウ(1..*、0..1):社員側が1..*は社員が必ず存在することを示すが、問題文では社員の存在は前提。年側が0..1は誤り。
- エ(1..*、1..1):社員側が1..*は問題ないが、年側が1..1は社員が必ず入社する年を示すため、年によっては社員が入社しない条件に反する。
補足コラム
UMLの多重度は「関連するインスタンスの数の範囲」を示します。
「0..*」は0個以上、「1..1」は必ず1つを意味し、要件に応じて正確に設定することが重要です。
多重度の誤設定はシステム設計の誤解を招くため、要件の読み取り力が問われます。
「0..*」は0個以上、「1..1」は必ず1つを意味し、要件に応じて正確に設定することが重要です。
多重度の誤設定はシステム設計の誤解を招くため、要件の読み取り力が問われます。
FAQ
Q: 多重度「0..」と「1..」の違いは何ですか?
A: 「0..」は0個以上の関連を許容し、「1..」は最低1個以上の関連が必須です。
A: 「0..」は0個以上の関連を許容し、「1..」は最低1個以上の関連が必須です。
Q: なぜ年側の多重度は「1..1」なのですか?
A: すべての社員が入社年を特定できるため、社員から見た年は必ず1つ存在する必要があるからです。
A: すべての社員が入社年を特定できるため、社員から見た年は必ず1つ存在する必要があるからです。
関連キーワード: UML, 多重度, クラス図, 関連, 入社年, システム設計, オブジェクト指向