検査制約とは?けんさせいやく
検査制約とは、列や行が満たすべき条件を述語として宣言し、条件に反する挿入・更新をDBMSが拒否する制約。CHECK句で定義し、値の範囲や取りうる区分の列挙といった業務ルールを、アプリケーションではなくデータの側に置いて守らせる。一貫性制約のうち、値そのものの妥当性を担う部分にあたる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
同じ表を、業務アプリ・移行バッチ・障害時の手作業と複数の経路が書き換える。妥当性の判定を書き込む側にだけ置けば、経路の数だけ実装が要り、どれか一つの抜けがそのまま不正な値になる。判定をデータの側に一度だけ宣言しておけば、経路が増えても守るべき条件は一つで済む、という考え方から置かれている。
具体例
受注明細の数量に1以上、利用者表の権限区分に'一般','管理者','監査'のいずれかという条件を宣言しておけば、アプリを作り替えても、緊急時に管理者が直接SQLで書き換えても、想定外の権限値は入らない。入力値の検証をアプリ側と二重に置く多層防御の一部として働く。
試験での引っ掛け
条件式の評価がunknownになる場合、つまり比較にNULLが絡む場合、この制約は違反とみなさず通す。NULLを禁じたいならNOT NULLを別に指定する。評価の対象は原則としてその行の中に限られ、他の表の値と突き合わせる条件は書けないため、そこは参照制約やトリガの役目になる。
関連用語
出典・参考
公式シラバスの3 技術要素 > 3. データ操作 > (2) データベース言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。