令和4年度 秋期 データベーススペシャリスト試験 午前II 問2

社員と年との対応関係を UMLのクラス図で記述する。二つのクラス間の関連が次の条件を満たす場合,a,b に入れる多重度の適切な組合せはどれか。ここで,“年”クラスのインスタンスは毎年存在する。

〔条件〕

  1. 全ての社員は入社年を特定できる。
  2. 年によっては社員が入社しないこともある。
UMLのクラス図
図の説明テキスト

「社員」クラスと「年」クラスが直線(関連線)で結ばれている。線の「社員」側上部には空欄枠 a 、「年」側上部には空欄枠 b が配置されている。また、線の「年」側下部には関連名として「入社年」と記述されている。

解答・解説

正解: イ. a: 0..*,b: 1

UMLのクラス図における多重度の読み方に関する問題です。
クラス間の関連において、多重度は「相手側のクラスのインスタンスがいくつ対応するか」を示します。

問題文の条件を一つずつ確認します。

  1. 「全ての社員は入社年を特定できる。」
    社員1人に対して、入社した年は必ず1つだけ存在します。
    したがって、「社員」から見た「年」の多重度(図中のb)は 1 となります。

  2. 「年によっては社員が入社しないこともある。」
    ある1つの年に対して、その年に入社した社員は0人の場合もあれば、複数人いる場合もあります。
    したがって、「年」から見た「社員」の多重度(図中のa)は 0..* となります。

よって、a に入るのは 0..*、b に入るのは 1 となり、イ が正解です。

各選択肢の解説

  • ア (a: 0..*、b: 0..1):bが 0..1 だと、「入社年が特定できない社員がいる(年が0)」ことになり、条件1に反します。
  • イ (a: 0..*、b: 1):正解です。
  • ウ (a: 1..、b: 0..1):aが 1.. だと、「毎年必ず1人以上の社員が入社する」ことになり条件2に反します。さらにbが 0..1 なので条件1にも反します。
  • エ (a: 1..、b: 1):aが 1.. だと、「毎年必ず1人以上の社員が入社する」ことになり、条件2に反します。

Spineチーム