データベーススペシャリスト暗記無料で始める

一意性制約(UNIQUE制約)とは?いちいせいせいやく

一意性制約(UNIQUE制約)とは、指定した列または列の組で、重複する値が入らないことをDBMSに保証させる制約。主キー以外の候補キーを実装する手段であり、多くのDBMSは内部で一意インデックスを自動生成し、挿入・更新のたびにそこを引いて重複を検査する。したがって制約1本の追加は索引1本ぶんの容量と更新コストを伴う。

最終更新:2026-10-06

試験情報

データベーススペシャリスト試験の頻出用語/午前II

別名:UNIQUE制約

データベースSPを最短で暗記・合格する →

背景

重複を防ぐ処理をアプリ側で「先に検索して、無ければ挿入する」と書くと、同時に2つのトランザクションが走ったときに両方が「無い」と判断して二重登録が通る。この隙間はアプリの書き方では塞げず、挿入の瞬間にDBMSが判定するしかない。一意性制約は、業務上の一意という設計上の意味と、二重登録を物理的に止めるという実装上の役割を同時に担っている。

具体例

会員表の主キーが会員番号でも、メールアドレスに一意性制約を置けば重複登録を止められる。複数列にまとめれば「同じ客室の同じ日付で予約は1件」も表せる。PostgreSQL でも MySQL の InnoDB でも、この宣言だけで一意インデックスが自動的に作られる。

試験での引っ掛け

NULLの扱いがDBMSで割れる。PostgreSQL・MySQL・Oracle Database は既定でNULLを重複とみなさず複数行が持てるが、SQL Server はNULLを1行しか許さない。「一意制約があるから必ず1行」と考えると、NULLの行が複数残って結合時に件数が膨らむ。

関連用語

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

データベースSPを最短で暗記・合格する →

試験での特徴
  • 分野:午前II
  • NULLの扱いがDBMSで割れる。