令和7年度 秋期 データベーススペシャリスト試験 午前II 問3

UMLを用いて表した商品と倉庫のデータモデルに関する記述のうち,適切なものはどれか。ここで,商品の倉庫間の移動はないものとする。

UMLを用いて表した商品と倉庫のデータモデル
図の説明テキスト

UMLクラス図。5つのクラス(入庫、出庫、商品、在庫商品、倉庫)とそれらの間の関連が描かれている。
・「入庫」クラス(属性:入庫年月日、数量)と「在庫商品」クラスの関連:入庫側が「1..」、在庫商品側が「1」
・「出庫」クラス(属性:出庫年月日、数量)と「在庫商品」クラスの関連:出庫側が「0..
」、在庫商品側が「1」
・「商品」クラス(属性:商品コード)と「在庫商品」クラス(属性:/在庫数量)の関連:商品側が「1」、在庫商品側が「1..」
・「在庫商品」クラスと「倉庫」クラス(属性:倉庫番号)の関連:在庫商品側が「0..
」、倉庫側に「格納先」というロール名があり、多重度は「1」

解答・解説

正解: ア. 1種類の商品を二つの倉庫に初めて入庫すると,“在庫商品”データが2件追加される。

UMLクラス図の多重度とは

UMLクラス図において、クラス間の関連を示す線に記された数値は「多重度」と呼ばれ、オブジェクトが対応する相手のオブジェクトの数を示します。「1」は必ず1つ、「0..」は0以上(存在しなくてもよい)、「1..」は1以上(必ず1つ以上存在する)を意味します。

正解の根拠

図から、「商品」クラスと「在庫商品」クラスの多重度は「商品」側が「1」、「在庫商品」側が「1..」であり、1つの商品は1つ以上の在庫商品と対応します。また、「在庫商品」クラスと「倉庫」クラスの多重度は「在庫商品」側が「0..」、「倉庫」側が「1」であり、1つの在庫商品は必ず1つの倉庫(格納先)と対応します。

つまり、「在庫商品」は特定の商品と特定の倉庫の組み合わせごとに存在するデータです。1種類の商品を二つの倉庫に初めて入庫する場合、それぞれの倉庫ごとに対応する「在庫商品」データが作成されるため、合計で2件の「在庫商品」データが追加されます。よって正解は「ア」です。

各選択肢の解説

  • ア: 1種類の商品が2つの倉庫に入庫されると、倉庫ごとに「在庫商品」データが作成されるため、2件のデータが追加されます。

  • イ: 図によると、「入庫」クラスと「在庫商品」クラスの関連において「在庫商品」側の多重度は「1」であり、「商品」クラス側も「1」です。1件の「入庫」データは必ず1つの「在庫商品」(1種類の商品と1つの倉庫の組み合わせ)に対応するため、2種類の商品を入庫する際に「入庫」データを1件で済ませることはできません。

  • ウ: 図によると、「商品」クラスと「在庫商品」クラスの関連において「在庫商品」側の多重度は「1..*」であり、「在庫商品」クラスに対する「倉庫」クラスの多重度は「1」です。すべての商品は1つ以上の「在庫商品」データを持ち、それらは必ず1つの倉庫と結びついているため、格納先となる倉庫が確定していない商品は存在しません。

  • エ: 図によると、「出庫」クラスと「在庫商品」クラスの関連において、「出庫」側の多重度は「0..*」です。これは特定の「在庫商品」に対応する「出庫」データが0件でもよいことを示しているため、出庫の実績がない在庫商品は存在します。

Spineチーム