応用情報技術者 2017年 春期 午前2 問26
問題文
データモデルを解釈してオブジェクト図を作成した。解釈の誤りを適切に指摘した記述はどれか。ここで、モデルの表記には UML を用い、オブジェクト図の一部の属性の表示は省略した。

選択肢
ア:“123456:注文” が複数の商品にリンクしているのは、誤りである。(正解)
イ:“2ドア冷蔵庫:商品” が複数の注文にリンクしているのは、誤りである。
ウ:“A商店:顧客” が複数の注文にリンクしているのは、誤りである。
エ:“ドラム式洗濯機:商品” がどの注文にもリンクしていないのは、誤りである。
データモデルを解釈してオブジェクト図を作成した問題【午前2 解説】
要点まとめ
- 結論:注文オブジェクトが複数の商品オブジェクトにリンクすることはUMLの多対多関係の解釈として正しいため、アの指摘が誤りです。
- 根拠:注文と商品は「注文側*、商品側1」のリレーションであり、注文は複数の商品を含めることが可能です。
- 差がつくポイント:UMLのカーディナリティの意味を正確に理解し、オブジェクト図のリンク関係を正しく読み取ることが重要です。
正解の理由
アの「123456:注文」が複数の商品にリンクしているのは誤りである、という指摘は誤りです。
データモデルのリレーションでは「注文」から「商品」へは「*(注文側)」と「1(商品側)」の関係であり、注文は複数の商品を含むことができます。
したがって、1つの注文オブジェクトが複数の商品オブジェクトにリンクするのは正しい表現です。
データモデルのリレーションでは「注文」から「商品」へは「*(注文側)」と「1(商品側)」の関係であり、注文は複数の商品を含むことができます。
したがって、1つの注文オブジェクトが複数の商品オブジェクトにリンクするのは正しい表現です。
よくある誤解
注文と商品間のカーディナリティを逆に解釈し、注文が1つの商品しか持てないと誤解しがちです。
また、オブジェクト図のリンク数を見て「多対多」と誤認することもあります。
また、オブジェクト図のリンク数を見て「多対多」と誤認することもあります。
解法ステップ
- データモデルのエンティティとリレーションのカーディナリティを確認する。
- 「注文」と「商品」の関係が「注文側*、商品側1」であることを理解する。
- オブジェクト図のリンクを見て、注文オブジェクトが複数の商品オブジェクトにリンクしていることが妥当か判断する。
- 各選択肢の指摘内容とモデルの関係を照らし合わせて誤りを特定する。
- 正しい解釈に基づき、誤った指摘を選ぶ。
選択肢別の誤答解説
- ア: 「123456:注文」が複数の商品にリンクしているのは誤りである → 誤り。注文は複数の商品を含めるため正しい。
- イ: 「2ドア冷蔵庫:商品」が複数の注文にリンクしているのは誤り → 正しい。商品は複数の注文にリンク可能(1対多の関係)。
- ウ: 「A商店:顧客」が複数の注文にリンクしているのは誤り → 正しい。顧客は複数の注文を持てる(1対多)。
- エ: 「ドラム式洗濯機:商品」がどの注文にもリンクしていないのは誤り → 正しい。図では「123459:注文」からリンクがあるため誤り。
補足コラム
UMLのオブジェクト図は、実際のインスタンス間の関係を示します。
カーディナリティはエンティティ間の関係性を示し、1対多、多対1、多対多などのパターンがあります。
特に注文と商品は多対多の関係を中間エンティティ(注文詳細など)で表現することもありますが、今回のモデルでは注文が複数の商品を持つ形で表現されています。
カーディナリティはエンティティ間の関係性を示し、1対多、多対1、多対多などのパターンがあります。
特に注文と商品は多対多の関係を中間エンティティ(注文詳細など)で表現することもありますが、今回のモデルでは注文が複数の商品を持つ形で表現されています。
FAQ
Q: 注文と商品が多対多関係の場合、オブジェクト図ではどう表現しますか?
A: 多対多の場合は中間オブジェクト(例:注文詳細)を設け、それぞれのオブジェクトとリンクを持たせます。
A: 多対多の場合は中間オブジェクト(例:注文詳細)を設け、それぞれのオブジェクトとリンクを持たせます。
Q: UMLのカーディナリティ「1」と「*」は何を意味しますか?
A: 「1」は1つのインスタンスに対して必ず1つの関連があること、「*」は0個以上の複数の関連があることを示します。
A: 「1」は1つのインスタンスに対して必ず1つの関連があること、「*」は0個以上の複数の関連があることを示します。
関連キーワード: UML, オブジェクト図、カーディナリティ、データモデル、リレーション、インスタンス、多対多、1対多

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

