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

平成24年度春期 データベーススペシャリスト 午前Ⅱ 問4

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

問題

次の概念データモデルを関係データベース上に実装することとし,実装用のデータモデルを作成した。適切な多重度が指定されているものはどれか。ここで,モデルの表記にはUMLを用いる。
会社と人の関連クラス雇用するを通常クラスに変換したときの多重度について,元の概念モデルと四つの候補を示す図。
会社と人の関連クラス雇用するを通常クラスに変換したときの多重度について,元の概念モデルと四つの候補を示す図。

選択肢

  1. ア
    図ア
  2. イ
    図イ
  3. ウ
    図ウ
  4. エ
    図エ
解き方のヒントを見る

関連の向きと多重度を整理する視点

ERモデルでは、エンティティ間の関係を文章として読み直し、どちらからどちらへの説明か、各側がどの範囲で関わるかを分けて確認する視点を持ちましょう。

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

今回の確認点は、関連の向きと多重度を混同しないことです。主語・対象・参加する単位の範囲を、図の記号と文章の両方から照合する観点に絞りましょう。

視点

関連を読むときは、結び付く対象を左右で区別し、関連名を自然な文に置き換えて意味の向きを確かめます。そのうえで、各対象が何件まで関わり得るかという範囲を別々に記録すると、図の見た目だけに引きずられにくくなります。

確認ポイント

  • 関連名を主語・対象に分けて読めるか
  • 各側の参加範囲を独立して確認したか
  • 図の記号と文章の解釈が一致しているか
正解と解説を見る

正解

エ

解説

元の概念図では、一人が雇用される会社数は0..5、会社が雇用する人の数は0..*です。雇用を関連クラスとして表すと、各雇用は会社一社・一人に対応し、会社側と人側の対応件数は元の多重度を保つ必要がある。

理由

UMLでは、あるクラスの端に書かれた多重度は、反対側の一つのインスタンスに対応する、そのクラスのインスタンス数を表します。したがって元の図は、一人について会社が0..5社、会社について人が0..*人という意味になる。

比較

雇用を一件の関連インスタンスとして分解するなら、各雇用は会社一社と一人に結び付く。一方、会社に対応する雇用件数は0..*、一人に対応する雇用件数は0..5であり、この対応を図に反映する必要がある。

選択肢ア

これは不正解だよ。図アの会社―雇用間は、会社側の端が0..5、雇用側の端が1であるため、雇用一件に対応する会社数が0..5、会社一社に対応する雇用件数が1となる。また、人側も元の概念図の対応数を正しく表していない。

選択肢イ

これは不正解だよ。図イでは、会社―雇用間の端点が、雇用一件に複数の会社が対応し、会社一社には雇用一件が対応する読み方になる。さらに雇用―人間の0..5の位置も元の関連を保っておらず、概念図の多重度を正しく分解できていない。

選択肢ウ

これは不正解だよ。図ウでは、雇用一件が会社一社に対応する点と、人側の端点の一部は整合する。しかし会社側の雇用件数を0..5としており、元の概念図で会社に対応する人の数0..*を、雇用件数へ正しく引き継げていない。

選択肢エ(正解)

これは正解だよ。図エでは、雇用一件が会社一社と一人に対応する。会社一社に対応する雇用件数は0..*、一人に対応する雇用件数は0..5となり、元の会社―人間の多重度を雇用クラスを介して正しく表している。

学習のポイント

UML関連を関連クラスへ分解する際の多重度の読み替え

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

関連する過去問一覧

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