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

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


問題文

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

選択肢

CASCADE(正解)
INTERSECT
RESTRICT
UNIQUE

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

要点まとめ

  • 結論:親テーブルの行削除時に子テーブルの関連行も自動削除するには、ON DELETE CASCADEを指定します。
  • 根拠:CASCADEは外部キー制約のオプションで、親の削除に連動して子の行も削除する動作を定義します。
  • 差がつくポイント:ON DELETE句の意味を正確に理解し、CASCADEとRESTRICTの違いを押さえることが重要です。

正解の理由

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

よくある誤解

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

解法ステップ

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

選択肢別の誤答解説

  • ア: CASCADE
    正解。親の削除に連動して子の行も削除する。
  • イ: INTERSECT
    SQLの集合演算子であり、ON DELETE句には無関係。
  • ウ: RESTRICT
    親の行削除を制限し、子の行が存在する場合は削除不可となる。
  • エ: 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 情報処理技術者試験対策アプリ

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