令和7年春期試験問題 午前問25
問25解説へ
UMLを用いて表した図のデータモデルを関係データベース上に実装する際の解釈のうち,適切なものはどれか。

- "指定送付先"を指定する際,"付加情報"表のどの行でも選択できる。
- "付加情報"表と"顧客"表の行数は一致していなければならない。
- "付加情報"表には"顧客"表に対する参照制約を指定する。
- "付加情報"表には"注文"表に対する参照制約を指定する。
広告
解説
- "注文"には、制約として『"注文"のインスタンスが指定送付先をもつときは,その"付加情報"の注文主と"注文"の顧客は一致すること』があります。この制約により、"注文"のインスタンスと"付加情報"のインスタンスが参照する"顧客"は同じであることが要求されます。そのため選択できるのは、注文をした"顧客"に関連付けられた"付加情報"に限られます。
- "顧客"に対する"付加情報"のカーディナリティ(多重度)は0以上(*)です。1つの"顧客"が複数の"付加情報"をもつことが許容されているため、顧客1行に対し、付加情報が2行以上になるケース、または付加情報がないケース(0行)も存在し得ます。
- 正しい。"顧客"と"付加情報"のカーディナリティは1対多です。つまり、付加情報は1人の顧客と関連をもつことが要求されます。付加情報が単独で存在することは許されず、必ず対応する顧客レコードが存在しなければなりません。この関係性を担保するため、"付加情報"表から"顧客"表に対する参照制約が設定されます。
【別解】
2つのエンティティの関連を関係データベースとして実装すると、主キー側が"顧客"表、外部キー側が"付加情報"表となります。"付加情報"表でには"顧客"表を参照する外部キーが定義され、この列に参照制約が指定されます。 - 記述とは逆で、参照制約は"注文"表から"付加情報"表に対して指定します。
"注文"と"付加情報"のカーディナリティは多対"0..1"です。つまり、1件の注文は0または1つの付加情報と関連をもちます。注文が付加情報をもつ場合、その参照先の付加情報が削除等されるのを禁止しなければなりません。この関係性を担保するため、"注文"表から"付加情報"表に対して参照制約(NULL可)が設定されます。
【別解】
2つのエンティティの関連を関係データベースとして実装すると、主キー側が"付加情報"表、外部キー側が"注文"表となります。"注文"表には"付加情報"表を参照する外部キーが定義され、この列に参照制約が指定されます。
広告