参照制約とは?さんしょうせいやく
参照制約とは、外部キーに入る値が参照先の表に必ず存在することを、データベース側で保証する制約。参照整合性制約ともいう。ありえない値の登録を止めるだけでなく、参照されている行を削除・更新しようとしたときの動きを、拒否・連鎖・NULL化のどれにするかも指定できる。
最終更新:2026-10-09
この語が出る過去問を解く →背景
表を分けて持つ関係データベースでは、社員表の部署コードのように「別の表を指す値」が必ず現れる。指した先が存在しない値が混ざると、結合したときに行が消える、集計が合わないといった食い違いが、後から広い範囲に出てくる。これをアプリケーション側の確認だけに任せると、画面を通さない一括投入や別プログラムからの更新がすり抜ける。そこでデータを預かるDBMS自身に守らせる仕組みが用意されている。
具体例
MySQLやPostgreSQLでは、社員表の定義に FOREIGN KEY(部署コード) REFERENCES 部署表(部署コード) と書く。こうしておくと、存在しない部署コードの社員を追加しようとした時点で登録が失敗する。ON DELETE CASCADE を付けていれば、部署の行を消したときに所属社員の行も一緒に消える。
試験での引っ掛け
制限がかかる側を取り違えやすい。止められるのは、参照される側(親)の削除とキーの更新、そして参照する側(子)の挿入と外部キーの更新である。子の行をいくら消しても親は影響を受けない。連鎖削除を指定していると、親を1行消しただけで子が大量に消える点にも注意する。
関連用語
出た過去問
出典:平成29年度 秋期 基本情報技術者試験 午前 問27(IPA)
SQL文においてFOREIGN KEYとREFERENCESを用いて指定する制約はどれか。
正解:参照制約
要点:FOREIGN KEY~REFERENCESは参照整合性を保つ参照制約
FOREIGN KEY句とREFERENCES句は、ある表の列の値が参照先の表の主キーなどに必ず存在することを保証する参照制約(参照整合性制約)を定義する。これにより存在しない部門コードを持つ社員行を作るといった矛盾を防げる。削除・更新時の動作をCASCADEなどで指定できる点も併せて押さえたい。
出典・参考
公式シラバスの3 技術要素 > 3. データ操作 > (2) データベース言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。