平成25年度 春期 午前Ⅱ 問1
データベース設計
データモデルの解釈
UML を用いて表した図のデータモデルの解釈として,適切なものはどれか。
UMLクラス図:
品目(品目コード,名称) 1 ――― * 在庫品(在庫数量) 倉庫(倉庫コード,住所) 1 ――― * 在庫品 在庫品 1 ――移動元――― * 在庫取引(取引番号,取引日,計上日,移動数量) 在庫品 1 ――移動先――― * 在庫取引 在庫取引 に点線で注記「制約:同一品目間の移動だけを許す」
- ア1件の“在庫取引”データを記録する際,2件の“在庫品”データも更新する。
- イ“在庫品”データは,現在の在庫数量だけでなく,過去の在庫数量も保持する。
- ウ倉庫別,品目別に入出庫の状況を把握することはできない。
- エ品目の異なる“在庫品”データ間で“在庫取引”データを記録できる。
答えと解説を見る
✓ これが正解ア1件の“在庫取引”データを記録する際,2件の“在庫品”データも更新する。
解説
在庫取引1件で、移動元と移動先の2件の在庫品を更新します。
クラス図を読むときは、関連の線が何本あり、それぞれの多重度がどうなっているかを軸に見ます。在庫取引は在庫品と2本の関連で結ばれ、一方が移動元、もう一方が移動先です。どちらも在庫品の側の多重度が1なので、1件の在庫取引には移動元の在庫品と移動先の在庫品がちょうど1件ずつ対応します。在庫を移せば移動元の在庫数量は減り、移動先の在庫数量は増えるので、取引を1件記録するたびに在庫品のデータを2件更新することになります。在庫品は品目と倉庫のそれぞれに多重度1で結ばれており、ある倉庫にある、ある品目の在庫を表すデータです。関連名の付いた線は、両端を一つずつ数えると読み違えません。
ほかの選択肢はなぜ違うのか
- イ“在庫品”データは,現在の在庫数量だけで…:在庫品クラスがもつ属性は在庫数量の一つだけで、日付のように時点を区別する属性はありません。在庫品のデータが保持するのは今の数量であり、過去の数量を時点ごとに残す形にはなっていません。
- ウ倉庫別,品目別に入出庫の状況を把握するこ…:在庫品は倉庫1件と品目1件に結び付いたデータなので、倉庫と品目の組ごとに在庫をもちます。さらに在庫取引を移動元・移動先からたどれば、倉庫別・品目別の入出庫の状況をつかめます。
- エ品目の異なる“在庫品”データ間で“在庫取…:在庫取引には、同一品目間の移動だけを許すという制約が注記されています。品目の異なる在庫品どうしで取引を記録することは、この制約に反するので認められません。
出典:平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問1
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)