令和5年度 秋期 システム監査技術者試験 午前II 問題 問21
UMLを用いて表した図のデータモデルを関係データベース上に実装する際の解釈のうち,適切なものはどれか。

図の説明テキスト
UMLのクラス図。以下の4つのクラスとそれらの関係、および制約ノートが記載されている。
クラス構成:
- クラス「顧客」: 属性として「顧客番号」「請求先」「主送付先」を持つ。
- クラス「注文」: 属性として「注文番号」「受注日」「数量」を持つ。
- クラス「品目」: 属性として「品目番号」「名称」を持つ。
- クラス「付加情報」: 属性として「識別番号」「副送付先」を持つ。
関連構成:
- 「顧客」(1) と 「注文」(*) の間に関連がある。
- 「顧客」(1) と 「付加情報」(*) の間にコンポジション関連がある(顧客側に黒菱形)。顧客側のロール名は「注文主」。
- 「付加情報」(0..1) と 「注文」(*) の間に関連がある。付加情報側のロール名は「指定送付先」。
- 「注文」(*) と 「品目」(1) の間に関連がある。
制約ノート(2つ。いずれも点線で接続されている):
- 「注文」クラスに接続されたノート: 『制約:“注文”のインスタンスが指定送付先をもつときは,その“付加情報”の注文主と“注文”の顧客は一致すること。』
- 「付加情報」と「注文」間の関連(指定送付先)に接続されたノート: 『制約:“注文”のインスタンスが指定送付先をもつときは,当該“注文”の“顧客”の主送付先ではなく,“指定送付先”の副送付先を用いること。』
解答・解説
正解: ウ. “付加情報”表には“顧客”表に対する参照制約を指定する。
UMLのクラス図を関係データベース(RDB)に実装する際、クラスは「表(テーブル)」に、クラス間の関連は「外部キー」による参照制約として実装されます。
本問の「付加情報」は「顧客」に関連づけられ、従属するデータであると推測されます。一般的に、従属する側の表(付加情報)に、独立している親の表(顧客)の主キーを外部キーとして持たせ、参照制約を設定します。したがって、「付加情報」表には「顧客」表に対する参照制約を指定するのが適切な実装となります。
各選択肢の解説
- ア: 不適切。「指定送付先」を指定する際、対象となる注文を行う顧客に関連づけられた「付加情報」に絞り込む必要があります。無条件にどの行でも選択できる設計は不適切です。
- イ: 不適切。クラス間の関連の多重度が「1対0..1」や「1対多」などの場合、「顧客」表と「付加情報」表の行数は必ずしも一致しません。
- ウ: 適切。「付加情報」は「顧客」に関連するデータであるため、「付加情報」表には、対象の顧客を特定するための参照制約(外部キー制約)を「顧客」表に対して指定します。
- エ: 不適切。「付加情報」は「顧客」に関連するエンティティであり、「注文」表に対する参照制約を持つのは通常は誤りです。