データベーススペシャリスト試験 2016年 午前201


UMLを用いて表した商品と倉庫のデータモデルに関する記述のうち, 適切なものはどれか。ここで, 商品の倉庫間の移動はないものとする。
問題画像
1種類の商品を二つの倉庫に初めて入庫すると, “在庫商品”データが2件追加される。(正解)
2種類の商品を一つの倉庫に入庫すると, “入庫”データが1件追加される。
格納先となる倉庫が確定していない商品が存在する。
出庫の実績がない在庫商品は存在しない。

解説

UMLを用いた商品と倉庫のデータモデルに関する問題【午前2 解説】

要点まとめ

  • 結論:1種類の商品を複数の倉庫に入庫すると、それぞれの倉庫ごとに「在庫商品」データが作成される。
  • 根拠:「商品」と「在庫商品」は1対多の関係、「倉庫」と「在庫商品」も1対多の関係であるため、倉庫ごとに在庫商品が区別される。
  • 差がつくポイント:在庫商品は商品と倉庫の組み合わせで管理され、入庫や出庫は在庫商品単位で記録される点を理解すること。

正解の理由

ア: 1種類の商品を二つの倉庫に初めて入庫すると, “在庫商品”データが2件追加される。
この選択肢が正しい理由は、在庫商品は「商品」と「倉庫」の組み合わせを表すエンティティであり、商品1種類が複数倉庫に存在する場合、それぞれの倉庫ごとに別々の在庫商品データが必要になるためです。図のカーディナリティからも、商品1に対して在庫商品は1..*、倉庫1に対して在庫商品は0..*となっており、複数の在庫商品が存在可能です。

よくある誤解

  • 「入庫」や「出庫」の件数が在庫商品の件数と同じになるとは限らない点を誤解しやすいです。
  • 商品単位で在庫を管理するのではなく、倉庫ごとに在庫商品が区別されることを見落としがちです。

解法ステップ

  1. UML図のエンティティと属性を確認し、「在庫商品」が商品と倉庫の関係を表すことを理解する。
  2. 「商品」と「在庫商品」のカーディナリティ(1対多)から、1商品が複数の在庫商品を持てることを把握する。
  3. 「倉庫」と「在庫商品」のカーディナリティ(1対多)から、1倉庫に複数の在庫商品が存在可能であることを確認する。
  4. 商品が複数倉庫に入庫される場合、倉庫ごとに在庫商品が作成されることを導く。
  5. 選択肢の内容と照らし合わせて正誤を判断する。

選択肢別の誤答解説

  • イ: 「2種類の商品を一つの倉庫に入庫すると, “入庫”データが1件追加される。」は誤り。入庫は商品ごとに記録されるため、2種類の商品なら入庫データは2件必要。
  • ウ: 「格納先となる倉庫が確定していない商品が存在する。」は誤り。図のカーディナリティから在庫商品は必ず倉庫に紐づくため、倉庫未定の在庫商品は存在しない。
  • エ: 「出庫の実績がない在庫商品は存在しない。」は誤り。出庫のカーディナリティは0..*であり、出庫実績がない在庫商品も存在可能。

補足コラム

UMLのクラス図では、エンティティ間の関係性とカーディナリティが重要です。特に在庫管理のようなシステムでは、商品単位ではなく「商品×倉庫」の組み合わせで在庫を管理することが多く、これを正しく理解することが合格の鍵となります。

FAQ

Q: 在庫商品と商品はどう違いますか?
A: 商品は製品の種類を表し、在庫商品は特定の倉庫に保管されているその商品の在庫情報を表します。
Q: 出庫のカーディナリティが「0..*」とは何を意味しますか?
A: 出庫がまだ一度もない在庫商品も存在し得ることを示しています。

関連キーワード: UML, データモデル, カーディナリティ, 在庫管理, エンティティ関係, クラス図, データベース設計
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ