マナビング基本情報技術者

UMLの多重度は所属先の数をどう示す?

基本情報技術者試験 令和元年度秋期 午前 問25 / データベース › データベース設計

過去問にチャレンジ

令和元年度秋期 午前 問25

UMLを用いて表した図の概念データモデルの解釈として,適切なものはどれか。

令和元年度秋期 午前 問25の図
  1. ア

    従業員の総数と部署の総数は一致する。

  2. イ

    従業員は,同時に複数の部署に所属してもよい。

  3. ウ

    所属する従業員がいない部署の存在は許されない。

  4. エ

    どの部署にも所属しない従業員が存在してもよい。

会話形式の解説

講師講師
この図では、関連の両端にある数値の読み方がポイントです。まず、部署の横にある「1..*」は何を数えているでしょうか。
受験者受験者
部署一つに所属する従業員が、1人以上という意味だと思いました。
講師講師
そこが紛らわしいところです。端の数値は、反対側の対象1件から見て、その端の対象が何件対応するかを示します。部署の横の「1..*」は、従業員1人に対応する部署の数です。
受験者受験者
従業員1人には、部署が少なくとも一つ対応するのですね。「*」なら複数でもよいのでしょうか。
講師講師
はい。上限がないので、従業員が同時に複数の部署に所属してもよい、という選択肢が適切です。
受験者受験者
では、従業員の横の「0..*」は、部署一つに対応する従業員の数ですね。
講師講師
そのとおりです。下限が0なので、所属する従業員がいない部署も認められます。「従業員がいない部署は許されない」という選択肢は不適切です。
受験者受験者
0から始まるなら、どの部署にも所属しない従業員も認められるように感じます。
講師講師
その場合は、従業員1人に対応する部署の数を見ます。部署側は「1..*」なので、所属先が一つもない従業員は認められません。
受験者受験者
従業員と部署の総数が一致する、という判断もできませんね。
講師講師
はい。多重度が示すのは、反対側の対象1件に対する対応数です。両者の総数が同じだとは示していません。
受験者受験者
端の数値を反対側の1件から読み、下限を確認すれば、所属が必須かどうかも判断できますね。
講師講師
その読み方です。この図では「1..*」が所属先の部署、「0..*」が部署に対応する従業員の数を示すと確かめると、取り違えを防げます。

まとめ

UMLの関連の端にある多重度は、反対側の対象1件に対して、その端の対象が何件対応するかを示します。この図では従業員1人に対する部署が「1..*」なので、従業員は複数の部署に所属できます。一方、部署1件に対する従業員は「0..*」なので、従業員がいない部署も認められます。多重度から従業員と部署の総数が一致するとはいえません。

解答・解説

正解はイです

この問題のテーマ

UMLの関連に付いた多重度を読み取り、部署と従業員の対応関係を判断する問題です。

解き方の考え方

関連の端にある数値は、その端の対象が、反対側の対象1件に対して何件対応できるかを表します。図では、従業員1人に対応する部署が「1..*」、部署1件に対応する従業員が「0..*」です。下限と上限をそれぞれ確認して選択肢を判断します。

選択肢ごとの解説

  1. ×ア  従業員の総数と部署の総数は一致する。
    従業員と部署の総数が一致するとはいえません。図の多重度が定めているのは1件ごとの対応数であり、両者の総数ではありません。
  2. ○イ  従業員は,同時に複数の部署に所属してもよい。
    従業員1人に対応する部署は「1..*」なので、少なくとも1件必要です。上限は設けられていないため、複数の部署に所属できます。
  3. ×ウ  所属する従業員がいない部署の存在は許されない。
    部署1件に対応する従業員は「0..*」です。下限が0なので、所属する従業員がいない部署も認められます。
  4. ×エ  どの部署にも所属しない従業員が存在してもよい。
    従業員に対応する部署の下限は1です。したがって、どの部署にも所属しない従業員は、この図の関係を満たしません。

POINT

  • 多重度は、記号が付いた側の対象について、反対側の対象1件から見た対応数を示します。
  • 「1..*」は1件以上、「0..*」は0件以上を表します。
  • 所属先が必須かどうかは、対応する多重度の下限で判断します。

※出典:令和元年度秋期 基本情報技術者試験 午前 問25(一部改変)