参照制約

更新日:

用語解説

参照制約(参照整合性制約、FOREIGN KEY制約)は、参照側表の外部キー値が、被参照側表の主キー又は一意な候補キーに存在することを保証する制約です。参照先のない孤児レコードを防ぎます。

■ 試験で押さえるポイント

  • 外部キーは一列でも複数列でもよく、参照先は一意に行を識別できる列集合でなければなりません。参照側の値の重複は許されるため、1対多関係を表せます。

  • 外部キー列はNOT NULLを別に指定しない限りNULLを許すことがあります。複合外部キーで一部だけNULLの場合の扱いはMATCH指定やDBMSに依存するため、全列必須ならNOT NULLも付けます。

  • 参照先行の削除・キー更新時にはRESTRICT又はNO ACTIONで拒否、CASCADEで参照側へ連鎖、SET NULL又はSET DEFAULTで値を変更する動作を選べます。

  • 外部キーを定義しても参照側列に索引が自動作成されるとは限りません。制約は正しさの保証、索引は主に検索性能の仕組みであり、概念を区別します。

■ 選択肢での判断ポイント

親表の候補キーに存在する値又は許可されたNULLだけを子表の外部キーに認めると判断します。親削除時のCASCADE、RESTRICT、SET NULLの結果を行単位で追います。

例: 社員.部門番号が部門.部門番号を参照する場合、部門表に10がなければ部門番号10の社員は登録できません。ON DELETE SET NULLなら部門10削除時に社員側をNULLへ変更します。

同じ分野の用語