令和7年度 秋期 午前Ⅱ 問11
データ操作
参照制約に関する問題
図のような関係データベースの“注文”表と“注文明細”表がある。“注文”表の行を削除すると,対応する“注文明細”表の行が,自動的に削除されるようにしたい。参照制約定義の削除規則(ON DELETE)に指定する語句はどれか。ここで,図中の実線の下線は主キーを,破線の下線は外部キーを表す。
表の構造(原典は図。原典の実線の下線は …、破線の下線は〔破線の下線〕で表した):
注文
| 注文番号 | 注文日 | 顧客番号〔破線の下線〕 |
|---|
注文明細
| 注文番号〔破線の下線〕 | 明細番号 | 商品番号〔破線の下線〕 | 数量 |
|---|
- アCASCADE
- イINTERSECT
- ウRESTRICT
- エUNIQUE
答えと解説を見る
✓ これが正解アCASCADE
解説
親の行の削除に合わせて子の行も削除させるには CASCADE を指定します。
参照制約の削除規則(ON DELETE)は、参照される側の表の行を削除しようとしたときに、それを参照している側の行をどう扱うかを決めます。この問では、“注文明細”表の注文番号が外部キーとして“注文”表の注文番号を参照しています。ON DELETE CASCADE を指定すると、注文の行を削除したときに、その注文番号を持つ注文明細の行も連鎖して自動的に削除されます。参照先のない明細が残らないので、参照制約も保たれます。見分ける軸は、削除を連鎖させるのか、参照されている間は削除を拒むのかです。CASCADE は滝のように連鎖するという意味で、子の行に削除が流れ落ちると覚えておきましょう。
ほかの選択肢はなぜ違うのか
- イINTERSECT:INTERSECT は、二つの問合せ結果に共通する行を取り出す集合演算の演算子です。参照制約の削除規則に指定する語句ではなく、行の削除を連鎖させる働きもありません。
- ウRESTRICT:RESTRICT は、参照している行があるかぎり、参照される側の行の削除を拒否する削除規則です。注文明細が残っている注文は削除できなくなるので、明細を自動で削除するという要件とは逆の動きになります。
- エUNIQUE:UNIQUE は、列の値が表の中で重複しないことを求める一意性の制約です。参照制約の削除規則に指定する語句ではなく、削除時に関連する行をどう扱うかを決めるものではありません。
この問題の用語
- 関係データベースデータを表の形で持ち、表どうしを結びつけて扱う、最も広く使われているデータベース。データの定義や操作にはSQLを使います。
出典:令和7年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問11
同じ用語が出る問題
- 令和6年度 秋期 午前Ⅱ 問5:主キーに関する問題(関係データベース)
- 令和6年度 秋期 午前Ⅱ 問3:ノード分割後のB^+木構造(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問15:入れ子ループ法に関する問題(関係データベース)
- 令和3年度 秋期 午前Ⅱ 問2:UMLに関する問題(関係データベース)
- 令和2年度 10月 午前Ⅱ 問6:主キーに関する問題(関係データベース)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)