令和7年度 春期 午前 問25
データベース
多重度に関する問題
UML を用いて表した図のデータモデルを関係データベース上に実装する際の解釈のうち,適切なものはどれか。
クラスと属性
| クラス | 属性 |
|---|---|
| 顧客 | 顧客番号,請求先,主送付先 |
| 注文 | 注文番号,受注日,数量 |
| 品目 | 品目番号,名称 |
| 付加情報 | 識別番号,副送付先 |
関連と多重度
- 顧客 1 ── \* 注文
- 注文 \* ── 1 品目
- 顧客 1 ◆── \* 付加情報(顧客側の関連端の役割名:注文主)
- 注文 \* ── 0..1 付加情報(付加情報側の関連端の役割名:指定送付先)
注記(原典の逐語)
- 「制約:“注文”のインスタンスが指定送付先をもつときは,その“付加情報”の注文主と“注文”の顧客は一致すること。」
- 「制約:“注文”のインスタンスが指定送付先をもつときは,当該“注文”の“顧客”の主送付先ではなく,“指定送付先”の副送付先を用いること。」
- ア“指定送付先”を指定する際,“付加情報”表のどの行でも選択できる。
- イ“付加情報”表と“顧客”表の行数は一致していなければならない。
- ウ“付加情報”表には“顧客”表に対する参照制約を指定する。
- エ“付加情報”表には“注文”表に対する参照制約を指定する。
答えと解説を見る
✓ これが正解ウ“付加情報”表には“顧客”表に対する参照制約を指定する。
解説
付加情報は顧客に属するので、顧客表を参照する制約を置きます。
関連を関係データベースの表に落とすときは、多重度を見て外部キーを置く側を決めます。片方が1で他方が多数のときは、多数の側の表に1の側を指す列を持たせ、その列に参照制約をかけるのが基本の形です。設問のデータモデルには関連が二つあり、向きが互いに違っています。顧客と付加情報の関連は顧客の側が1で付加情報の側が多数、しかも付加情報は顧客に属する形で結ばれているので、付加情報の表に顧客を指す列を置き、顧客の表に対して参照制約を指定することになります。もう一方の注文と付加情報の関連は、注文の側が多数で付加情報の側が0または1なので、こちらの外部キーは注文の表の側に置かれます。どちらの関連で1になっているのかを取り違えないことが分かれ目です。
ほかの選択肢はなぜ違うのか
- ア“指定送付先”を指定する際,“付加情報”…:指定送付先はどの付加情報の行からでも選べると述べていますが、モデルに添えられた制約は、注文が指定送付先をもつときその付加情報の注文主と注文の顧客が一致することを求めています。選べる範囲は同じ顧客に結び付いた行に限られます。
- イ“付加情報”表と“顧客”表の行数は一致し…:二つの表の行数が一致していなければならないと述べていますが、顧客から見た付加情報の多重度は0以上の多数です。付加情報を一つも持たない顧客も、複数持つ顧客もあり得るので、行数がそろう理由がありません。
- エ“付加情報”表には“注文”表に対する参照…:付加情報の表に注文の表を指す参照制約を置くと述べていますが、注文から見た付加情報は0または1です。この向きでは注文の表の側に付加情報を指す列を置くことになるため、制約をかける表が逆になっています。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:令和7年度 春期 応用情報技術者試験 午前 問25
同じ用語が出る問題
- 令和7年度 秋期 午前 問28:ビューに関する記述(関係データベース)
- 令和5年度 春期 午前 問30:参照制約に関する問題(関係データベース)
- 令和5年度 春期 午前 問26(関係データベース)
- 令和3年度 春期 午前 問28:NoSQLに関する問題(関係データベース)
- 令和2年度 10月 午前 問27(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)