応用情報技術者試験 令和5年春 午前問30 解説付き過去問
問題
図のような関係データベースの"注文"表と"注文明細"表がある。
"注文"表の行を削除すると、対応する"注文明細"表の行が、自動的に削除されるようにしたい。
参照制約定義の削除規則(ON DELETE)に指定する語句はどれか。
ここで、図中の実線の下線は主キーを、破線の下線は外部キーを表す。


正解
解説
この問題は、関係データベースにおける参照制約と削除規則(ON DELETE)の理解を問うものです。親テーブルの行が削除された際に、子テーブルのデータをどのように扱うかを制御する手法がポイントとなります。
- 参照制約の概要
関係データベースでは、異なるテーブル間の関連を外部キーによって定義できます。
このとき、参照元のテーブル(親)と参照先のテーブル(子)の整合性を保つために、参照制約(外部キー制約)を設定します。 - ON DELETE 句の意味
親テーブルの行が削除されたときに、子テーブルの行をどう処理するかを「ON DELETE」句で指定します。
代表的な指定には以下があります:- CASCADE:親の削除に伴い、子も自動的に削除
- RESTRICT / NO ACTION:子が存在する限り、親を削除できない
- SET NULL:親を削除した場合、子の外部キーをNULLに設定
- SET DEFAULT:外部キーをデフォルト値に設定(使用頻度は低い)
- CASCADE:親の削除に伴い、子も自動的に削除
- 本問の要件に合致する指定
「注文」表が削除されたときに、関連する「注文明細」表の行を自動的に削除したい、という要件は「CASCADE」によって実現できます。
この指定により、親テーブルの行が削除されると、外部キーで参照している子テーブルの行も自動的に削除されます。
したがって、参照制約の削除規則に「ON DELETE CASCADE」を指定することで、本問の要件を満たすことができます。