検査制約とは?けんさせいやく
検査制約とは、列や行が満たすべき条件を述語として表の定義に書き、違反する挿入・更新をDBMSの側で拒む仕組み。値の範囲、取りうる区分の並び、同じ行にある列どうしの大小関係などを書ける。アプリケーションが何本あってもこの検査は必ず通るので、整合性の最後の砦になる。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →背景
入力チェックを画面プログラムだけに置くと、バッチ、データ移行、手で発行するSQLといった別の入口から異常値が入り、しかも入った後は誰にも気づかれない。条件をデータ側の定義として一度だけ宣言しておけば、入口の数に関係なく守られる。シラバスでもインテグリティは全社データベース計画の標準化項目に挙がっており、実現方式を設計する能力が求められている。
具体例
受注明細表に「数量は1以上」、会員表に「性別区分は'M','F','U'のいずれか」、契約表に「終了日は開始日以上」をCHECKとして書く。最後の例のように、同じ行の2つの列を比べる条件も宣言できる。
試験での引っ掛け
評価の結果が真でも偽でもなく不定(unknown)になった場合、CHECK制約は違反とみなさず通してしまう。NULLを含む比較は不定になるので、「数量は1以上」と書いてもNULLは素通りする。NULLを排除したいならNOT NULLを別に指定する。三値論理を知らないと必ず外すところ。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。