参照制約とは?さんしょうせいやく
参照制約とは、外部キーの値が参照先の表に実在することを、DBMSに保証させる制約。存在しない値を持つ行の追加や、参照されている行の削除・キー更新を拒否し、どこからも辿れない孤立した行が生まれるのを防ぐ。人手の点検より証拠力が高い自動化された統制として扱われる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
整合性の検査を業務プログラム側だけに置くと、後から作られたバッチや運用担当者の直接更新が同じ検査を通らずにすり抜ける。表の定義として宣言しておけば、更新の経路にかかわらずDBMSが一律に拒否する。人手や個別プログラムに依存する統制よりも、経路を問わず一貫して働く仕組みのほうが信頼できるため、監査ではこの種の自動統制が優先して確かめられる。
具体例
監査人はデータ定義(DDL)を出力し、受注明細の商品コードに商品マスタへの外部キー制約が定義されているかを確かめる。制約が無い場合は、商品マスタに存在しないコードを持つ明細行の件数を問合せで数え、実際に不整合が発生していないかまで検証する。
試験での引っ掛け
拒否されるのは、外部キー側への行追加・更新と、参照される側の行削除・キー更新の両方向で、どちらの操作が拒否されるかを問う出題がある。またCASCADEを指定した場合は拒否ではなく削除が連鎖して波及するため、制約の有無だけで安全と判断しない。
関連用語
出た過去問
出典:平成31年度 春期 システム監査技術者試験 午前Ⅱ 問17(IPA)
次の表において,"在庫"表の製品番号に参照制約が定義されているとき,その参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の…
正解:"在庫"表への行追加
要点:参照制約は外部キー側への行追加を拒否しうる
参照制約は、外部キーの値が参照先の主キーに存在することを保証する仕組みである。在庫表に行を追加するとき、指定した製品番号が製品表に存在しなければ整合性が崩れるため、その追加は拒否されうる。在庫表からの行削除や製品表への行追加は参照先を失わせないので制約に反しない。
出典:令和5年度 秋期 システム監査技術者試験 午前Ⅱ 問21(IPA)
UMLを用いて表した図のデータモデルを関係データベース上に実装する際の解釈のうち、適切なものはどれか。
正解:“付加情報”表には“顧客”表に対する参照制約を指定する。
要点:集約される側の表が、集約する側への参照制約を持つ
付加情報は顧客に集約され、注文主というロールで顧客と結び付いている。関係データベースに実装すると、付加情報側が顧客の主キーを外部キーとして保持することになるため、付加情報表には顧客表に対する参照制約を指定する。指定送付先の関連は注文側が付加情報を参照する形になり、向きが逆である点に注意する。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。