読み方 : ちぇっくせいやく
CHECK制約【check constraint】チェック制約/検査制約
CHECK制約とは?
リレーショナルデータベース(RDB)でテーブルにデータを追加・更新する際に課すことができる制約(constraint)の種類の一つで、指定した条件を満たしたデータしか記録できないようにするもの。列の値や複数列の関係が一定の条件に従うことを保証する仕組みである。

リレーショナルデータベースでは、表に登録されるデータの整合性や妥当性を維持するために様々な制約が用意されている。CHECK制約はその一つで、これを設定した列では、データの書き込みが行われる際に制約に指定した条件を満たすかどうかをチェックし、満たしていなければ書き込みは拒否される。制約はテーブルの作成時などにSQL文の中で条件式(論理式)などを用いて記述する。
例えば、商品の価格を数値で表す「価格」フィールドに対して、「価格>=0」というCHECK制約を設定しておけば、何らかの誤りで価格に負の値を記録しようとしても、データベース管理システム(DBMS)側が制約違反として書き込み操作を拒否する。複数の列を組み合わせた条件を設定することも可能で、「開始日が終了日より前である」など、列同士の論理的な関係を指定することもできる。
CHECK制約はテーブルの定義時に指定するほか、既存のテーブルに対して後から追加することもできる。制約はデータベース管理システムの内部で自動的に評価されるため、アプリケーション側で個別に検証処理を記述しなくても一定のデータ品質を保つことができる。CHECK制約を適切に設定することで、データベースに保存される値が定義されたルールに従うことが保証され、誤入力や不正な値の登録を抑制することができる。