IPA過去問ドリル

令和元年度 秋期 応用情報技術者試験 午前 問27

テクノロジ/データベース

図のような関係データベースの “注文” 表と “注文明細” 表がある。“注文” 表の行を削除すると,対応する “注文明細” 表の行が,自動的に削除されるようにしたい。SQL 文の ON DELETE 句に指定する語句はどれか。ここで,図中の実線の下線は主キーを,破線の下線は外部キーを表す。

令和元年度 秋期 応用情報技術者試験 午前 問27の図

出典:令和元年度 秋期 応用情報技術者試験 午前 問27

正解:ア

解説

外部キーを定義する際の参照動作として ON DELETE 句を指定します。CASCADE を指定すると,被参照表(“注文” 表)の行が削除されたとき,その行を参照している “注文明細” 表の行も連鎖的に削除されます。図の破線の下線は外部キーを表し,“注文明細” の注文番号が “注文” の主キーを参照しています。

選択肢ごとの解説

  • 正しい。ON DELETE CASCADE を指定すると,親表の行削除に連動して子表の該当行も自動的に削除されます。
  • 誤り。INTERSECT は二つの問合せ結果の共通部分を求める集合演算子であり,参照動作の指定には使えません。
  • 誤り。RESTRICT は,参照している行が存在する場合に親表の行削除を拒否する動作で,自動削除とは逆の指定です。
  • 誤り。UNIQUE は列の値の一意性を保証する制約であり,削除時の連鎖動作とは無関係です。
応用情報技術者の過去問を演習モードで解く