データベーススペシャリスト暗記無料で始める

参照動作(CASCADE・RESTRICT・SET NULL)とは?さんしょうどうさかすけーどりすとりくとせっとぬる

参照動作(CASCADE・RESTRICT・SET NULL)とは、親の行が削除・更新されたときに子の行をどう扱うかを、外部キー制約の一部としてあらかじめ宣言しておく指定。選べるのは、子も一緒に消す/更新するCASCADE、子が残っている限り操作を拒むRESTRICT・NO ACTION、子の外部キー列をNULLや既定値へ差し替えるSET NULL・SET DEFAULTの3系統である。

最終更新:2026-10-06

試験情報

データベーススペシャリスト試験の過去問では1問の解説で触れられています。

データベーススペシャリスト試験の頻出用語/午前II

別名:参照動作、CASCADE・RESTRICT・SET NULL、RESTRICT、SET NULL

この語が出る過去問を解く →

背景

参照整合性は「子が指す親が必ず存在する」という制約だが、親を消そうとした瞬間にこの制約は必ず破れる。破れ方の正解は業務によって違い、明細のように親と運命を共にするものもあれば、履歴のように親が消えても残さなければならないものもある。そのためDBMSは挙動を一律に決めず、業務規則を宣言として書かせる形をとった。アプリ側の手続きで整合を保つより、宣言のほうが書き漏れが出にくい。

具体例

部署と社員の関係なら、部署を廃止したときに配属未定を表せるSET NULLが合う。伝票ヘッダと明細のように子が単独では意味を持たない関係ではCASCADEを選ぶ。会員と予約履歴は、会員を消しても実績を残す必要があるためRESTRICTで削除を禁じ、退会は行の削除ではなく状態列の更新として扱う。

試験での引っ掛け

CASCADEは何段にも連鎖して波及するため、親1行の削除が想定外の大量削除と長いロック待ちを招く。どこまで消えるかを設計時に追い切れるかが採否の分かれ目になる。SET NULLは、子の外部キー列にNOT NULLが付いていると実行時エラーになるので、制約の組合せを併せて確認する必要がある。RESTRICTとNO ACTIONは整合性を検査する時点が違う点も問われる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 1問の解説で触れられる
  • 分野:午前II
  • CASCADEは何段にも連鎖して波及するため、親1行の削除が想定外の大量削除と長いロック待ちを招く。