参照制約とは?さんしょうせいやく
参照制約とは、外部キーに入る値が、参照先の表に必ず存在することをDBMSに保証させる制約で、参照整合性制約ともいう。存在しない値の登録を拒むだけでなく、参照されている行を削除・更新しようとしたときの振る舞い(拒否する、連鎖させる、NULLにする)まで定義できる点が実務上の要点になる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
同じ検査をアプリケーション側に書くこともできるが、その表を触る経路はアプリだけとは限らず、バッチも管理ツールも直接SQLも通る。どこか1つが検査を忘れれば、行き先のない外部キーが残り、結合しても取れない行が静かに増える。整合性の番人をデータの側に置くという設計判断がここにある。科目Bでは、この制約をどこで担保するかの理由付けが問われる。
具体例
社員表の部門コードが部門表を参照している状態で「営業部」の行を削除しようとすると、所属社員が残っている限り既定では拒否される。ON DELETE CASCADEを指定してあれば所属社員の行も一緒に消え、ON DELETE SET NULLなら社員は残って部門コードだけがNULLになる。どれを選ぶかは業務上その社員を消してよいかで決まり、DBMSの都合では決められない。
試験での引っ掛け
制限がかかるのが親側か子側かを取り違えやすい。止められるのは親の削除およびキーの更新と、子の挿入および外部キーの更新である。CASCADEは連鎖の範囲が意図せず広がることがあり、参照が多段になっている表で安易に指定すると想定外の行まで消える。また外部キー列に索引が無いと、親の削除時の検査が全件走査になり性能を落とす点も実務では効く。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:平成28年度 春期 応用情報技術者試験 午前 問29(IPA)
次の表において,“在庫”表の製品番号に定義された参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。 …
正解:“在庫”表への行追加
要点:外部キーは参照先に存在しない値の登録を拒否する
参照制約は、外部キーの値が参照先の主キーに存在することを要求する。在庫表に行を追加するとき、製品表に存在しない製品番号を指定すると制約違反となり拒否される。
出典:平成30年度 春期 応用情報技術者試験 午前 問28(IPA)
SQLにおいて、A表の主キーがB表の外部キーによって参照されている場合、各表の行を追加・削除する操作の参照制約に関する制限について、正しく整理した図はどれか。こ…
正解:ア:A表(追加〇/削除△)、B表(追加△/削除〇)
要点:参照制約は子表の追加と親表の削除が拒否され得る
参照制約では、子表(B表)に親表(A表)に存在しない外部キー値を入れられない。したがってB表への追加は拒否される場合があり、A表への追加は自由に行える。削除は逆で、B表から参照されているA表の行は削除が拒否される場合があるが、B表の行の削除は制約に触れない。よってA表は追加〇・削除△、B表は追加△・削除〇となる。
出典:令和5年度 秋期 応用情報技術者試験 午前 問27(IPA)解説で登場
関係モデルにおける外部キーの説明として、適切なものはどれか。
正解:ある関係の候補キーを参照する属性、又は属性の組
要点:外部キーは他の関係の候補キーを参照する属性の組
外部キーは、他の関係(または自分自身)の候補キーを参照する属性またはその組であり、参照先に存在しない値を持てないという参照制約を担う。これにより関係と関係の対応づけが表現され、データの整合性が保たれる。候補キーや主キーの定義そのものとは区別して覚える必要がある。
出典:令和5年度 春期 応用情報技術者試験 午前 問30(IPA)
図のような関係データベースの"注文"表と"注文明細"表がある。"注文"表の行を削除すると、対応する"注文明細"表の行が、自動的に削除されるようにしたい。参照制約…
正解:CASCADE
要点:ON DELETE CASCADEは親の削除に子を連動させる
参照制約のON DELETEにCASCADEを指定すると、被参照側の行が削除されたときに、その行を参照している外部キーをもつ行も連鎖して削除される。注文の行を消せば対応する注文明細の行も自動的に消えるという要件に合致する。
出典:令和7年度 春期 応用情報技術者試験 午前 問25(IPA)
UMLを用いて表した図のデータモデルを関係データベース上に実装する際の解釈のうち,適切なものはどれか。
正解:"付加情報"表には"顧客"表に対する参照制約を指定する。
要点:1対多の多側の表が、1側の表への外部キーと参照制約を持つ
図では「付加情報」が「顧客」に集約され、顧客1に対して付加情報が複数という関連(ロール名は注文主)になっている。関係データベースに落とすと、付加情報表が顧客表の主キーを外部キーとして持ち、顧客表への参照制約を指定する形になる。注文からは指定送付先として付加情報を参照する側なので、参照制約の向きは付加情報から注文へではない。
出典・参考
公式シラバスの3 技術要素 > 3. データ操作 > (2) データベース言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。