DBデータベーススペシャリスト試験 午前Ⅱ
平成24年度春期 データベーススペシャリスト 午前Ⅱ 問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による補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針