戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

データベーススペシャリスト 2011年 午前201


問題文

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

選択肢

(正解)

🔒 解説は解答すると表示されます

UML関連の多重度【午前2解説】

正解の理由

条件(1)「すべての社員は入社年を特定できる」から、各社員に対して入社年が必ず1つ存在する必要があり、社員側から見て関連付けられる年の個数は正確に1つ、すなわち になります。一方、条件(2)「年によっては社員が入社しないこともある」から、ある年に紐づく社員はゼロ人であってもよく、逆に複数人であってもよいので、年から見た社員数は です。
UML の配置規則に従うと、クラス図の線上で「a」は年側から見た(=年に対応する社員数)多重度を、「b」は社員側から見た(=社員に対応する年の数)多重度を表します。したがって a = 、b = を示す選択肢、すなわち が条件を満たします。

解法ステップ

  1. 多重度の意味を確認する:線上のラベルは「そのラベルに近いクラスが、反対側クラスのインスタンスに対していくつ関係を持てるか」を示す。
    • ラベルが「社員」側近くなら「その年に何人の社員がいるか(年→社員)」を示す。
    • ラベルが「年」側近くなら「その社員に対して何年が対応するか(社員→年)」を示す。
  2. 条件を各視点に当てはめる:
    • (1)「すべての社員は入社年を特定できる」→ 社員1人につき入社年は必ず1つ → 社員→年 は
    • (2)「年によっては社員が入社しない」→ 年によっては社員数が0でよい → 年→社員 は
  3. ラベル a, b に対応付ける:図で a は社員側近傍(年→社員)、b は年側近傍(社員→年)なので a = 、b =

選択肢別の誤答解説

  • ア(a: 、b:
    b が は「社員が入社年を持たない(0)可能性」を許すため、条件(1)に反します。条件(1)は各社員に必ず入社年があることを要求するため不適。
  • ウ(a: 、b:
    a が は「どの年にも必ず最低1人は入社する」ことを意味するため、条件(2)(年によっては入社しないこともある)に矛盾します。さらに b の は条件(1)にも反します。従って不適。
  • エ(a: 、b:
    b = は条件(1)に合致しますが、a = は「すべての年に最低1人の入社がある」と読み取られるため条件(2)と矛盾します。したがって不適。
  • 正しい組合せは a が「年から見た社員数(年→社員)」、b が「社員から見た年数(社員→年)」で考えた結果、a = 、b = を満たす です。

よくある誤解

  • 多重度の方向を取り違える:ラベルがどちらのクラスに近いかで「何が何を表すか」が逆になる。多重度は「そこに書かれた方が、反対側のインスタンスをいくつ持てるか」を示す点を必ず確認すること。
  • 「必ず存在する」という語感の混同:条件「社員は存在する」「年は毎年存在する」といった前提と、多重度で表す「ある年に何人の社員がいるか」などの数量的制約は別物。問題文の条件を「どの視点(年または社員)から見た制約か」で整理する。

補足コラム

  • UML の多重度表記の意味(簡潔)
    • または *:ゼロ以上(任意の数)
    • :1以上(少なくとも1つ)
    • または単に 1:ちょうど1つ
    • :最大1つ(オプション)
  • 実務的には「入社年」のように一対一で確定する属性は、関連を使う代わりに社員クラスの属性(hireYear: YearType)で表現する場合もありますが、年クラスに意味(統計や履歴管理など)があり年インスタンスが独立して扱われる設計なら関連+多重度で表すのが適切です。

FAQ

Q. ラベル a, b が線上でどちら側に寄っているか分かりにくいときは?
A. ラベルがどちらのクラスに近いかを基準にし、近い側のラベルは「そのクラスが反対側クラスのインスタンスをいくつ持てるか」を表す、と覚えてください。
Q. 「年クラスのインスタンスは毎年存在する」が多重度にどう影響しますか?
A. これは「年というインスタンス自体は常にある(年が空になることはない)」という前提で、年側に社員が0人という許容()を矛盾させません。むしろ「年が存在するが入社がない年があり得る」ことを明示しています。
Q. 社員が過去の複数年にまたがる入社情報を持つ場合は?
A. その場合は社員→年の多重度 b を にする必要があります(仕様に応じて設計変更)。

関連キーワード: 多重度、クラス図、UML、入社年、関連の方向性
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

データベーススペシャリスト
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

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

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について