情報処理安全確保支援士暗記無料で始める

CHECK制約と一意性制約とは?ちぇっくせいやくといちいせいせいやく

CHECK制約と一意性制約とは、どちらもDBMSが守る一貫性制約だが役割が異なる。CHECK制約は値が満たすべき条件式を宣言して不正な値を拒み、一意性(UNIQUE)制約は指定した列の組合せに同じ値が二つ存在することを拒む。前者は1行の中の値の妥当性を、後者は表全体での重複の有無を見る、という対比で押さえる。

最終更新:2026-10-06

試験情報

情報処理安全確保支援士試験の頻出用語/午前II

情報処理安全確保支援士を最短で暗記・合格する →

背景

業務ルールをアプリケーションだけで守らせると、画面を通らない経路が一つでもあれば破られる。とりわけ重複してはいけないという条件は、二つの処理が同時に確認して同時に書き込むと、双方が確認時点では重複無しと判断してすり抜ける。この種の同時実行の穴は、データの側で一意性を宣言して初めて塞がる。

具体例

利用者表では、社員番号に一意性制約を張って同じ人の二重登録を防ぎ、状態列に'有効','停止'のいずれかというCHECK制約を置いて想定外の値を拒む。退職者の一括停止バッチが誤った状態値を書こうとすれば拒否され、同じ社員番号での再登録が同時に走った場合も一意性制約が弾く。

試験での引っ掛け

一意性制約は多くの実装でNULL同士を重複とみなさないため、NULLを含む行は複数登録できてしまう。主キーとも別物で、こちらはNULLを許す点が違う。CHECK制約の側は評価がunknownになる行を通す。どちらもNULLで穴が開くが、開く理由がそれぞれ違う点を区別して覚える。

関連用語

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

情報処理安全確保支援士を最短で暗記・合格する →

試験での特徴
  • 分野:午前II
  • 一意性制約は多くの実装でNULL同士を重複とみなさないため、NULLを含む行は複数登録できてしまう。