エンベデッドシステムスペシャリスト暗記無料で始める

検査制約とは?けんさせいやく

検査制約とは、列や行が満たすべき条件を述語としてスキーマに宣言し、それに反する挿入・更新をDBMS側で拒む制約。アプリケーション側の検査と違い、どの経路から書き込まれても必ず効く点に意味がある。SQLではCHECK句で書き、範囲・列挙・列どうしの関係のいずれも表現できる。

最終更新:2026-10-06

試験情報

エンベデッドシステムスペシャリスト試験の頻出用語/午前II

別名:CHECK制約

エンベデッドSPを最短で暗記・合格する →

背景

妥当性の検査をアプリケーションに書くと、入口が増えるたびに検査も増える。収集プログラム、保守ツール、移行スクリプト、手動のSQLと経路が分かれれば、どれか一つの抜けで不正値が入り込む。ならば値を受け取る最後の一点、つまりデータの定義側に条件を置こうというのが宣言的制約の発想である。ドライバごとに範囲チェックを書く代わりにレジスタ書込み関数で一元的に弾く設計と、構図はまったく同じである。

具体例

稼働ログのテーブルに CHECK (温度 BETWEEN -40 AND 125) や CHECK (状態 IN ('RUN','STOP','ERR')) を宣言しておけば、収集プログラムに不具合があっても仕様外の値がテーブルに残らない。後から分析するときに異常値を除く手間も消える。

試験での引っ掛け

条件式がunknownになる場合の扱いが定番の引っ掛け。NULLを含む比較はtrueでもfalseでもなくunknownになり、CHECK制約はこれを違反とみなさず通してしまう。NULLそのものを禁じたいならNOT NULLを別に指定する必要があり、「CHECKを書いたのだからNULLも弾ける」は誤りである。

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

エンベデッドSPを最短で暗記・合格する →

試験での特徴
  • 分野:午前II
  • 条件式がunknownになる場合の扱いが定番の引っ掛け。