制約(主キー制約・一意制約・NOT NULL制約など)とは?せいやく
制約とは、表に登録してよい値の条件をデータベース側の定義として宣言し、違反する更新をDBMSに拒否させる仕組み。主キー制約は重複もNULLも許さず行を一意に識別し、一意制約は重複だけを禁じ、NOT NULL制約は未入力を禁じ、参照制約(外部キー制約)は他表に存在する値だけを許す。
最終更新:2026-10-07
高度試験の午前Iを最短で暗記する →背景
同じ検査をアプリケーション側に書くと、画面や機能を足すたびに書き漏らしが生まれ、バッチ処理や直接発行したSQLは検査を素通りしてしまう。どの経路からも必ず通る場所——DBMS自身——に条件を1回だけ置けば、整合性の担保がアプリの本数に依存しなくなる。宣言的に書けるので、後から仕様を読み取れる利点もある。
具体例
受注表の受注番号に主キー制約、社員表のメールアドレスに一意制約、受注明細の商品コードに商品表を参照する外部キー制約を置く。参照制約があると、明細が残っている商品の行を削除しようとしてもDBMSが拒否する(またはCASCADE指定で明細ごと連動削除する)。
試験での引っ掛け
午前I(科目A-1)で狙われるのは主キー制約と一意制約の差である。どちらも重複を許さないが、NULLを許すのは一意制約だけで、主キーはNULL不可かつ1つの表に1つしか置けない。参照される側には主キーか一意制約が必要な点、CHECK制約は列の値の範囲を制限するだけで他表を参照しない点も混同されやすい。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。