注文の概念データモデル (UML)
出典: 令和3年度 春期 応用情報技術者試験 午前 問29 (IPA)
商品の注文を記録するクラス(顧客,商品,注文,注文明細)の構造を概念データモデルで表現する。a~d に入れるべきクラス名の組合せはどれか。ここで,顧客は何度も注文を行い,一度に一つ以上の商品を注文でき,注文明細はそれぞれ 1 種類の商品に対応している。また,モデルの表記には UML を用いる。

- ア a: 顧客, b: 注文, c: 注文明細, d: 商品
- イ a: 商品, b: 注文, c: 注文明細, d: 顧客
- ウ a: 注文, b: 注文明細, c: 顧客, d: 商品
- エ a: 注文明細, b: 商品, c: 注文, d: 顧客
正解と解説を見る
正解: ア
- ア: 顧客 1 : 多 注文、注文 1 : 多 注文明細、注文明細 多 : 1 商品となり、問題文の条件と一致するので、正しい答えです。
- イ: 商品を 1 側にして注文を多にすると、1 つの商品に 1 回の注文しか対応しない形になり、条件に合いません。
- ウ: 注文 1 : 多 注文明細までは合っていますが、その先の注文明細と顧客の関係が条件に合いません。
- エ: 注文明細が顧客や注文の上位になっており、条件に合いません。
ポイント
図のクラスは、1 対多の関連で a ― b ― c ― d と並んでいます (a 1 : * b、b 1 : * c、c * : 1 d)。
- 顧客は何度も注文する: **顧客 1 : * 注文**
- 注文は一つ以上の明細をもつ: **注文 1 : * 注文明細**
- 注文明細はそれぞれ 1 種類の商品に対応する: **注文明細 * : 1 商品**
よって a = 顧客、b = 注文、c = 注文明細、d = 商品です。