一意性制約(UNIQUE制約)とは?いちいせいせいやく
一意性制約(UNIQUE制約)とは、列、または複数列の組の値が表の中で重複しないことを、DBMS(データベース管理システム)に強制させる制約。主キーとは別に、業務上ただ一つに定まる項目へいくつでも置けるのが主キーとの分かれ目で、候補キーはこの制約で表現する。
最終更新:2026-10-07
高度試験の午前Iを最短で暗記する →背景
アプリケーション側で「同じ値が既にあるか」を検索してから登録する作りは、検索と登録の間に別のトランザクションが割り込むと二重登録を通してしまう。重複させない責任をデータベース側の宣言に移せば、同時に走っても必ず片方が失敗する。午前I(科目A-1)では制約の種類と用途の対応づけとして問われる。
具体例
PostgreSQLやMySQLではUNIQUEを宣言すると内部に一意インデックスが自動生成され、会員表のメールアドレス欄に置けば同じアドレスでの二重登録がINSERTの時点で失敗する。「部門コード+席番号」のように2列まとめて宣言すれば、組合せとしての一意性になる。
試験での引っ掛け
主キーとの違いはNULL(値なし)の扱い。主キーはNULLを許さないが、一意性制約の列はNULLを許し、多くのDBMSはNULLどうしを重複と見なさないため、複数行が同時にNULLを持てる。「一意制約があるから必ず1行」と考えると、結合したときに件数が膨らむ。
関連用語
出典・参考
公式シラバスの3 技術要素 > 2. データベース設計 > (2) データベースの設計に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。