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

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

関係データベースの「注文」表と「注文明細」表の定義を示す図
図の説明テキスト

関係データベースの「注文」表と「注文明細」表の定義を示す図。列名の実線の下線は主キー、破線の下線は外部キーを表す。

注文

注文番号(実線の下線) 注文日 顧客番号(破線の下線)

注文明細

注文番号(実線と破線の両方の下線) 明細番号(実線の下線) 商品番号(破線の下線) 数量
解答・解説

正解: ア. CASCADE

関係データベースにおいて、親テーブル(ここでは“注文”表)の行を削除した際に、外部キーで関連付けられている子テーブル(ここでは“注文明細”表)の対応する行も連動して自動的に削除するための参照制約定義の削除規則(ON DELETE)には、CASCADEを指定します。

各選択肢の解説

  • ア (CASCADE): 正解です。親テーブルの行削除に連動して、子テーブルの関連行も自動的に削除されます。
  • イ (INTERSECT): 誤りです。INTERSECTは2つの問い合わせ結果の積集合(共通部分)を求める集合演算子であり、削除規則ではありません。
  • ウ (RESTRICT): 誤りです。RESTRICTを指定すると、子テーブルに関連する行が存在する場合、親テーブルの行の削除を制限(禁止)します。
  • エ (UNIQUE): 誤りです。UNIQUEは列の値が重複しないことを保証する一意性制約を指定するものであり、削除規則ではありません。

Spineチーム