戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2019年 秋期 午前227


問題文

図のような関係データベースの “注文”と“注文明細” 表がある。“注文” 表の行を削除すると、対応する “注文明細” 表の行が、自動的に削除されるようにしたい。SQL文の ON DELETE 句に指定する語句はどれか。ここで、図中の実線の下線は主キーを、破線の下線は外部キーを表す。
応用情報技術者 2019年 秋期 午前2 問27の問題画像

選択肢

CASCADE(正解)
INTERSECT
RESTRICT
UNIQUE

関係データベースの外部キー制約とON DELETE句【午前2 解説】

正解の理由

「注文」表の行を削除した際に、「注文明細」表の該当する行も自動的に削除したい場合、外部キー制約のON DELETE句にCASCADEを指定します。CASCADEは親テーブルの行削除に連動して子テーブルの関連行も削除するため、整合性を保ちながら自動処理が可能です。

解法ステップ

  1. 問題文から「注文」表が親、「注文明細」表が子テーブルであることを確認する。
  2. 親の行削除時に子の行も削除したい要件を理解する。
  3. 外部キー制約のON DELETE句の意味を思い出す。
  4. ON DELETE CASCADEが親削除に連動して子削除を行うことを知る。
  5. 選択肢の中からCASCADEを選ぶ。

選択肢別の誤答解説

  • ア: CASCADE
    正解。親の削除に連動して子の行も削除する。
  • イ: INTERSECT
    SQLの集合演算子であり、ON DELETE句には無関係。
  • ウ: RESTRICT
    親の行削除を制限し、子の行が存在する場合は削除不可となる。
  • エ: UNIQUE
    一意制約を表すキーワードであり、ON DELETE句の指定には使わない。

よくある誤解

ON DELETE RESTRICTは親テーブルの行削除を制限するため、削除連鎖は起きません。INTERSECTやUNIQUEは外部キー制約のON DELETE句には使いません。

補足コラム

外部キー制約のON DELETE句には主にCASCADE、RESTRICT、SET NULL、NO ACTIONなどがあります。CASCADEは削除連鎖を実現し、RESTRICTは削除を禁止、SET NULLは子の外部キーをNULLに設定します。これらを適切に使い分けることでデータの整合性を保てます。

FAQ

Q: ON DELETE CASCADEを使うとどんなメリットがありますか?
A: 親テーブルの行削除時に子テーブルの関連行も自動削除され、手動での削除漏れを防げます。
Q: ON DELETE RESTRICTとCASCADEの違いは何ですか?
A: RESTRICTは子テーブルに関連行がある場合、親の削除を禁止します。CASCADEは関連行もまとめて削除します。

関連キーワード: 外部キー制約、ON DELETE句、CASCADE, RESTRICT, 関係データベース、データ整合性
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について