DBデータベーススペシャリスト試験 午前Ⅰ

平成26年度春期 データベーススペシャリスト 午前Ⅰ 問8

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

UML を用いて表した部門と社員の関係を表すデータモデルの説明のうち,適切なものはどれか。
部門と社員を1対多で結び,社員から部門へ向かう所属する関連を示すUMLクラス図。
部門と社員を1対多で結び,社員から部門へ向かう所属する関連を示すUMLクラス図。

選択肢

  1. ア
    社員が1人も所属していない部門は登録できない。
  2. イ
    社員は複数の部門に所属することができる。
  3. ウ
    どの部門にも所属しない社員は登録できない。
  4. エ
    一つの部門に複数の社員は所属できない。
解き方のヒントを見る

関係の意味を読み解く視点

部門と社員の関係を考えるときは、図の記号を暗記するより、登場する対象同士が業務上どのようなつながりとして表現されているかを、問題文の記述と照らして整理することが大切です。

この問題で問われていること

まず、部門と社員の間に示された関係が、単なる所属の記録なのか、構造上のまとまりを表すものなのかを、図の接続位置と問題文の説明から確認し、意味の対応だけに注目してください。

視点

図を読む際は、対象の名前だけで判断せず、関係線がどの対象を結び、全体のモデルでどんな事実を表そうとしているかを順に確認します。表記の細部は、業務上の意味と対応づけて考えましょう。

確認ポイント

  • 部門と社員の間で、問題文が表している業務上の事実を一文で言い換える。
  • 関係線の両端がどの対象を指し、図全体の構造にどう位置づくかを確認する。
  • 記号の見た目だけで決めず、説明文と図の対応が自然かを読み直す。
正解と解説を見る

正解

ウ

解説

このモデルでは、社員と部門の関連について、社員側から見た所属先の数と、部門側から見た社員数の許容範囲が異なります。多重度を端点の反対側の対象から読むと、正しい説明を判断できます。

理由

部門側の「1」は、社員一人に対して所属する部門がちょうど一つであることを示します。一方、社員側の「*」は、一つの部門に所属する社員数が0人以上で、複数でもよいことを表します。したがって、どの部門にも所属しない社員は登録できない、というウが適切です。

比較

「*」は複数を許すだけでなく、社員が0人である状態も含みます。そのため、社員のいない部門を登録できないとするアや、複数社員の所属を否定するエは誤りです。また、社員が複数部門に所属できるとするイも、社員ごとの所属部門数を1とする図に反します。

選択肢ア

これは不正解だよ。社員側の「*」は、一つの部門に関連付けられる社員数が0人以上であることを表す。したがって、社員が1人も所属していない部門もモデル上は登録でき、「登録できない」とする説明は多重度に反する。

選択肢イ

これは不正解だよ。部門側の「1」は、各社員が所属する部門の数がちょうど一つであることを表す。社員が複数の部門に所属できるなら、この端点は「1」ではなく複数を許す表記になるため、本文の説明は誤り。

選択肢ウ(正解)

これは正解だよ。部門側の「1」は、社員一人につき所属先の部門が必ず一つあることを示す。したがって、どの部門にも所属しない社員は、このデータモデルが定める関連条件を満たさず、登録できない。社員側の「*」は一部門に複数社員を許す。

選択肢エ

これは不正解だよ。社員側の「*」は、一つの部門に関連付く社員数として0人以上の複数を許す表記である。よって、一つの部門に複数の社員が所属できないという制限はなく、説明は図の多重度と逆になる。

学習のポイント

UML関連の端点多重度と、所属の必須・任意を読む力

出典:独立行政法人 情報処理推進機構(IPA)平成26年度春期 データベーススペシャリスト試験 午前Ⅰ 問8(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針