令和7年度 春期 応用情報技術者試験 午前 問25

UMLを用いて表した図のデータモデルを関係データベース上に実装する際の解釈のうち,適切なものはどれか。

UMLのクラス図
図の説明テキスト

UMLのクラス図。以下の4つのクラスとそれらの関係、および制約ノートが記載されている。

クラス構成:

  • クラス「顧客」: 属性として「顧客番号」「請求先」「主送付先」を持つ。
  • クラス「注文」: 属性として「注文番号」「受注日」「数量」を持つ。
  • クラス「品目」: 属性として「品目番号」「名称」を持つ。
  • クラス「付加情報」: 属性として「識別番号」「副送付先」を持つ。

関連構成:

  • 「顧客」(1) と 「注文」(*) の間に関連がある。
  • 「顧客」(1) と 「付加情報」(*) の間にコンポジション関連がある(顧客側に黒菱形)。顧客側のロール名は「注文主」。
  • 「付加情報」(0..1) と 「注文」(*) の間に関連がある。付加情報側のロール名は「指定送付先」。
  • 「注文」(*) と 「品目」(1) の間に関連がある。

制約ノート(2つ。いずれも点線で接続されている):

  • 「注文」クラスに接続されたノート: 『制約:“注文”のインスタンスが指定送付先をもつときは,その“付加情報”の注文主と“注文”の顧客は一致すること。』
  • 「付加情報」と「注文」間の関連(指定送付先)に接続されたノート: 『制約:“注文”のインスタンスが指定送付先をもつときは,当該“注文”の“顧客”の主送付先ではなく,“指定送付先”の副送付先を用いること。』
解答・解説

正解: ウ. “付加情報”表には“顧客”表に対する参照制約を指定する。

UMLのクラス図などを関係データベースの表(テーブル)にマッピングする際の、関連と制約に関する問題です。

正解はウです。

正解の根拠

「付加情報」表は「顧客」の追加情報を管理するエンティティです。関係データベース上に実装する場合、「付加情報」表の各レコードがどの「顧客」のものであるかを明確にするため、「顧客」表の主キーを外部キーとしてもたせます。
このとき、存在しない顧客に紐づくデータが作成されるのを防ぐため、「付加情報」表には「顧客」表に対する参照制約(外部キー制約)を指定するのが適切です。

各選択肢の解説

  • ア:“指定送付先”を指定する際、注文を行う顧客自身に紐づく“付加情報”の行を選択する必要があります。どの行でも選択できるわけではありません。
  • イ:すべての顧客が“付加情報”を持つわけではない(多重度が0..1など)場合、“付加情報”表の行数は“顧客”表の行数と一致しません。
  • ウ:正解です。“付加情報”表から“顧客”表への参照制約を指定することで、データの整合性を保ちます。
  • エ:“付加情報”表が“注文”表を参照するのではなく、データモデルの構造上、“付加情報”表は“顧客”表を参照するのが適切です。

Spineチーム