応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
合格発表日:2025年7月3日(あと59日)

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

問題

SQL文に示す参照制約が存在する"商品"表と"受注"表とがある。 "商品"表の行を削除したとき、削除した行の商品コードと同じ値の商品コードをもつ"受注"表の行を自動的に削除するSQL文として、aに入れる字句はどれか。

〔SQL文〕
CREATE TABLE 商品 (
 商品コード CHAR(4) PRIMARY KEY,
 商品名   VARCHAR(64)
)

CREATE TABLE 受注 (
 受注番号  INTEGER PRIMARY KEY,
 商品コード CHAR(4),
 受注個数  INTEGER,
 納品日   CHAR(8),
 FOREIGN KEY (商品コード) REFERENCES 商品(商品コード)
 ON DELETE a
)

正解

解説

この問題は、データベースの参照制約を使って、関連表間でデータ整合性を保つ方法について問うものです。具体的には、親表(この場合は"商品"表)のレコードが削除された際に、子表("受注"表)にどのような操作が自動的に行われるべきかを設定するSQL文の適切な字句を選ぶ問題です。

  1. 参照制約とは
    参照制約は、データベース内の異なる表間でデータの整合性を保つために使用されます。特定の表(親表)のキーを、別の表(子表)が参照することを許可し、親表におけるデータの更新や削除が子表にどのように影響するかを制御します。

  2. ON DELETE クローズのオプション
    ON DELETE クローズは、親表のレコードが削除されたときの子表の対応を定義します。「CASCADE」は親表のレコード削除時に対応する子表のレコードも削除します。「RESTRICT」は親表のレコードが子表で参照されている場合、その親レコードの削除を制限します。「SET NULL」は親レコードの削除時に子表の対応するカラムをNULLに設定。「SET DEFAULT」はデフォルト値に設定します。

  3. 正解「CASCADE」の意味とその効果
    「CASCADE」オプションを選択すると、"商品"表のある商品コードに対応する行が削除された場合、"受注"表でその商品コードを参照しているすべての行も自動的に削除されます。これにより、データ整合性が保たれ、孤立した参照データが残ることがなくなります。

したがって、「CASCADE」が正解です。これは、"商品"表の特定の商品が削除された場合に、それに依存する"受注"表のデータも同時に削除され、データの整合性を保つための最適な選択です。