SMITサービスマネージャ試験 午前Ⅰ

令和7年度春期 ITサービスマネージャ 午前Ⅰ 問10

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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 )

選択肢

  1. ア
    CASCADE
  2. イ
    RESTRICT
  3. ウ
    SET DEFAULT
  4. エ
    SET NULL
解き方のヒントを見る

削除時の影響範囲を考える視点

参照関係をもつデータの削除を検討するときは、対象行だけでなく関連する行への影響範囲と、制約が要求する扱いを順に整理しましょう。個別の選択肢はこの観点で確認します。

この問題で問われていること

一つの削除操作を起点に、参照している側へどこまで影響が及び得るかを確認し、データの整合性を保つための制約との関係を整理することに集中しましょう。

視点

削除時の連動を考える際は、まずどのデータが他のデータを参照しているかを図式化し、削除対象と影響を受ける範囲を分けて捉えます。そのうえで、制約が許容する処理の境界を確認し、予想外のデータ変更が起きないかを段階的に点検します。

確認ポイント

  • 参照元と参照先の関係を整理する
  • 削除対象から影響範囲を追跡する
  • 制約が定める処理の境界を確認する
正解と解説を見る

正解

ア

解説

商品表を参照先、受注表を参照元として外部キー制約を定義しています。商品表の行を削除したとき、対応する商品コードをもつ受注表の行も自動削除するには、削除を参照元へ連鎖させる指定を用います。したがって正答はアです。

理由

ON DELETE CASCADEは、参照先の行が削除されたとき、その行を参照している参照元の行も連鎖して削除する指定です。この問題では、商品表の商品コードを削除すると、同じ商品コードをもつ受注表の行を自動的に削除するため、CASCADEが適合します。

比較

RESTRICTは参照元の行が存在する場合に参照先の削除を制限します。SET DEFAULTは外部キー値を既定値へ、SET NULLはNULLへ変更する指定であり、いずれも受注表の行そのものを自動削除する動作ではありません。

選択肢ア(正解)

これは正解だよ。CASCADEは、外部キーで参照されている商品表の行を削除した際、その商品コードを参照している受注表の行も連鎖して削除する指定です。問題文の「同じ商品コードをもつ行を自動的に削除する」という条件に一致します。

選択肢イ

これは不正解だよ。RESTRICTは、参照元である受注表に該当行が残っている場合、参照先である商品表の行の削除を制限する指定です。受注表の行を自動的に削除する動作ではないため、問題の条件とは一致しません。

選択肢ウ

これは不正解だよ。SET DEFAULTは、参照先の行を削除したとき、参照元の外部キー値を設定された既定値へ変更する指定です。受注表の行を削除する処理ではなく、この表定義にも既定値の指定は示されていません。

選択肢エ

これは不正解だよ。SET NULLは、参照先の行を削除したとき、参照元の外部キー列をNULLへ変更する指定です。受注表の行自体は残るため、商品コードが一致する受注表の行を自動削除する条件を満たしません。

学習のポイント

ON DELETE句の各指定が、参照元の行にどのような処理を行うかを区別して覚えましょう。

出典:独立行政法人 情報処理推進機構(IPA)令和7年度春期 ITサービスマネージャ試験 午前Ⅰ 問10(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針