外部キー
参照される側の関係変数において UPDATE あるいは DELETE SQL 文が実行される。 DBMS は SQL 文の実行の終了時に参照整合性が満たされているかどうかを検査する。 RESTRICT との大きな違いは、トリガもしくはSQL文のセマンティクス自体が外部キーの制約を満たすであろうということである。 このとき、SQL 文の実行は成功する。 外部キーの制約が満たされない場合は SQL 文の実行は失敗する。
参照される側の関係変数において組が更新もしくは削除された場合、参照する側の関係変数の組の外部キーの値にはNULLが設定される。 このオプションは参照する側の関係変数の外部キーにNULLを設定できる場合にのみ、定義可能である。 NULLのセマンティクスにより、参照する側の関係変数においてNULLのある組は、参照される側の関係変数の組を必要としない。
参照する側の関係変数の組が残っている場合は、参照される側の組は更新することも削除することもできない。 この場合、データの変更は全く行われない。
外部キーについて説明するための最初の例として、会計データベースがありその中に請求書関係変数(請求書表)があり、請求書関係変数の中の各々の請求書は個別の供給者(サプライヤ)と関連づけられているとする。 供給者の詳細(住所など)の情報は供給者関係変数に格納されているとする。 各々の供給者には、識別子として供給者番号 (SupplierNumber) が割り当てられている。 各々の請求書は、その請求書の供給者番号を属性値としてもつ。 供給者番号(SupplierNumber)は供給者関係変数の主キーである。 請求書関係変数の外部キーは、供給者関係変数の主キーを指し示す(参照する)。 関係モデルのスキーマは次のようになる。 主キーは太字で示す。
このスキーマに対応するデータ定義言語 (DDL) による定義は次のようになる。