外部キーとは?がいぶキー
外部キーとは、他の表(または自分の表)の主キーや一意キーを参照する列、または列の組。参照先に実在する値かNULLしか持てないという参照制約が課され、DBMSがこれを機械的に検査することで、存在しない顧客の受注のような矛盾した行が入り込むのを防ぐ。
最終更新:2026-10-06
この語が出る過去問を解く →背景
関連する情報を複数の表に分けると、片方だけを更新・削除したときに参照先を失った行が生まれる。この検査をアプリ側に任せると、更新経路が増えるたびに漏れが出る。整合性の保証をDBMSの制約として一元化したのが外部キーで、削除時の動作(拒否する・連鎖して消す・NULLにする)まで宣言できる。監査証跡の追跡可能性を保つ土台にもなる。
具体例
受注表の顧客コードは、顧客表の主キーを参照する外部キーになる。受注が残っている間はその顧客行の削除を拒否する設定にしておけば、取引履歴が参照先を失って追えなくなる事態を防げる。PostgreSQLやOracle Databaseでは、この動作をON DELETE RESTRICT・CASCADE・SET NULLとして選べる。
試験での引っ掛け
外部キーはNULLを許すため、必ず参照させたいなら NOT NULL を併せて指定する。E-R図では外部キーを持つ側が常に「多」側になる、という向きの取り違えも定番。参照先は主キーとは限らず一意制約の付いた列でもよい点、制約を付けても索引が無いと削除時の検査で性能が落ちる点も、実務と絡めて問われる。
関連用語
出た過去問
出典:平成31年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問21(IPA)
次の表において,“在庫”表の製品番号に参照制約が定義されているとき,その参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の…
正解:“在庫”表への行追加
要点:参照制約は外部キー側への行追加を拒否しうる
参照制約は、外部キーの値が参照先の主キーに存在することを求める。在庫表の製品番号は製品表を参照する外部キーなので、製品表に存在しない製品番号を持つ行を在庫表へ追加しようとすると拒否される。参照する側への追加・更新と、参照される側の削除・更新が制約の対象になる。
出典:令和3年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問21(IPA)
次の表において、“在庫”表の製品番号に参照制約が定義されているとき、その参照制約によって拒否される可能性がある操作はどれか。ここで、実線の下線は主キーを、破線の…
正解:“在庫”表への行追加
要点:参照制約は参照する側への行追加を拒否し得る
参照制約は、外部キーの値が参照先の主キーに存在することを保証する。したがって在庫表へ行を追加する際、参照先の製品表に存在しない製品番号を指定すると、制約違反として拒否される可能性がある。逆に、参照する側の行を削除する操作や、参照される側へ行を追加する操作は、制約を破ることにならない。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。