平成28年度 春期 午前Ⅱ 問1
データベース設計
UMLに関する問題
UMLを用いて表した商品と倉庫のデータモデルに関する記述のうち,適切なものはどれか。ここで,商品の倉庫間の移動はないものとする。
データモデル:
[入庫] [出庫]
入庫年月日 出庫年月日
数量 数量
1..* 0..*
\ /
1 1
[商品] [在庫商品] 格納先 [倉庫]
商品コード 1 ──── 1..* /在庫数量 0..* ──────── 1 倉庫番号
関連と多重度: 入庫 `1..*` ― `1` 在庫商品,出庫 `0..*` ― `1` 在庫商品,商品 `1` ― `1..*` 在庫商品,在庫商品 `0..*` ― `1` 倉庫(倉庫側の関連端名は“格納先”)。
- ア1種類の商品を二つの倉庫に初めて入庫すると,“在庫商品”データが2件追加される。
- イ2種類の商品を一つの倉庫に入庫すると,“入庫”データが1件追加される。
- ウ格納先となる倉庫が確定していない商品が存在する。
- エ出庫の実績がない在庫商品は存在しない。
答えと解説を見る
✓ これが正解ア1種類の商品を二つの倉庫に初めて入庫すると,“在庫商品”データが2件追加される。
解説
在庫商品は商品と倉庫の組ごとにできるので、2倉庫なら2件です。
多重度を読むと、在庫商品は一つの商品と一つの倉庫に必ず結び付き、商品からは1件以上の在庫商品が、倉庫からは0件以上の在庫商品がつながります。つまり在庫商品は、どの商品がどの倉庫にあるかという組合せごとに1件作られます。1種類の商品を二つの倉庫に初めて入庫すると、商品と倉庫の組が二つ生まれるので、在庫商品のデータは2件追加されます。また、入庫の1件は一つの在庫商品に属し、在庫商品には1件以上の入庫が必要です。どのクラスが何の組合せを表しているかを、関連の両端の多重度から読み取るのが要点です。
ほかの選択肢はなぜ違うのか
- イ2種類の商品を一つの倉庫に入庫すると,“…:入庫の1件は一つの在庫商品に結び付き、在庫商品は商品ごとに分かれています。2種類の商品を入庫すれば在庫商品が二つ関わるので、入庫のデータも少なくとも2件になり、1件では済みません。
- ウ格納先となる倉庫が確定していない商品が存…:在庫商品は必ず一つの倉庫を格納先にもち、商品には1件以上の在庫商品がつながります。どの商品にも格納先の倉庫が決まっていることになるので、倉庫が確定していない商品は存在しません。
- エ出庫の実績がない在庫商品は存在しない。:在庫商品から見た出庫の多重度は0..*なので、出庫が1件もない在庫商品も認められています。入庫してまだ一度も出庫していない商品があっても、このモデルに反しません。
出典:平成28年度 春期 データベーススペシャリスト試験 午前Ⅱ 問1
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)