主にリレーショナルデータベースの操作において整合性を保つためのルールのことを言います。
外部キーの制約
学生の表に外部キー(学年)が設定されていたとします。この参照先の表、学年表の学年列は主キーになっている必要があるという制約です。
この時参照先の主キーは必ず存在しなければなりません。
更新、削除時の動き
参照先の表(学年表)に更新や削除の動作が加わった時、参照元の表(学生表)がどのような動きをするのかは定義することができます。
CASCADE
CASCADEを設定すると参照元(学生表)の行が更新、削除された際には、それに関連する外部キーを持つ行も更新、削除されます。
SET NULL
SET NULLを設定すると参照元(学生表)が削除された時、それに関連する外部キーの値はNULLに設定されます。
RESTRICT
RESTRICTを設定すると参照先(学年表)で主キーを更新、削除をしようとした際に参照元(学生表)に外部キーが存在すれば更新、削除を制限する動きになります。
NO ACTION
参照制約違反が発生した際には何もアクションを取らずそのままトランザクションが失敗する動きになります。
これら定義の詳細な動きはDBによっても多少変わることがありそうですので、それぞれのDBで動作検証が必要そうです。
コメントを残す