参照整合性制約と連鎖削除とは?さんしょうせいごうせいせいやくとれんさそくじょ
参照整合性制約と連鎖削除とは、子表の外部キーに、親表の主キーに存在しない値を入れさせないためのDBMS側の制約(NULLは例外として許される)。親行を削除・更新したときに子行をどう扱うかはON DELETE/ON UPDATEで宣言し、連鎖して消すCASCADE、NULLを入れるSET NULL、操作自体を拒むRESTRICT・NO ACTIONから選ぶ。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
参照先を失った行(孤児行)は、どの経路で生まれたかを後から追えない。各アプリが自前で存在確認をしていた時代は、経路が1つ漏れただけで壊れたデータが入り、しかも気づくのは集計や監査の時点だった。宣言しておけばDBMSが必ず守るという形にすることで、確認の実装漏れという人間側の失敗そのものを設計から取り除いたのがこの制約である。
具体例
MySQLのInnoDBは外部キー制約とON DELETE CASCADEを実装しており、受注ヘッダを1行削除すると受注明細も自動的に消える。逆に顧客表のように誤削除が許されない親には、RESTRICTを指定して削除自体を拒否させ、運用は論理削除フラグで行う設計にする。
試験での引っ掛け
CASCADEは便利な反面、1行の削除が想定外の広範囲へ連鎖する危険がある。RESTRICTとNO ACTIONは拒否という結果は同じでも検査の時点が異なり、処理系によってはNO ACTIONが文の終わりまで検査を遅らせる。外部キー列に索引が無いと親の削除で子表の全表走査が起きる点も実務で問われる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。