応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
次回試験日:2025年4月20日(あと1日)

応用情報技術者試験 令和5年春 午前問30 解説付き過去問

問題

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

正解

解説

この問題は、関係データベースにおける参照制約と削除規則(ON DELETE)の理解を問うものです。親テーブルの行が削除された際に、子テーブルのデータをどのように扱うかを制御する手法がポイントとなります。

  1. 参照制約の概要
    関係データベースでは、異なるテーブル間の関連を外部キーによって定義できます。
    このとき、参照元のテーブル(親)と参照先のテーブル(子)の整合性を保つために、参照制約(外部キー制約)を設定します。

  2. ON DELETE 句の意味
    親テーブルの行が削除されたときに、子テーブルの行をどう処理するかを「ON DELETE」句で指定します。
    代表的な指定には以下があります:
    1. CASCADE:親の削除に伴い、子も自動的に削除

    2. RESTRICT / NO ACTION:子が存在する限り、親を削除できない

    3. SET NULL:親を削除した場合、子の外部キーをNULLに設定

    4. SET DEFAULT:外部キーをデフォルト値に設定(使用頻度は低い)


  3. 本問の要件に合致する指定
    「注文」表が削除されたときに、関連する「注文明細」表の行を自動的に削除したい、という要件は「CASCADE」によって実現できます。
    この指定により、親テーブルの行が削除されると、外部キーで参照している子テーブルの行も自動的に削除されます。

したがって、参照制約の削除規則に「ON DELETE CASCADE」を指定することで、本問の要件を満たすことができます。