一意性制約(UNIQUE制約)とは?いちいせいせいやく
一意性制約(UNIQUE制約)とは、指定した列または列の組に、重複する値が存在しないことをDBMSが保証する制約。主キー以外の候補キー(メールアドレス・社員番号など)に設定でき、多くのDBMSは内部で一意インデックスを作って挿入・更新時に重複を検査する。認証基盤ではログインIDの重複を防ぐ、アカウント乗っ取り対策の土台になる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
アプリ側で「登録前に検索して無ければ挿入」と書いても、同時に2つのリクエストが来れば両方とも「無い」と判定して二重登録される(TOCTOU)。重複を許さない性質はDBMSに原子的に判定させるのが唯一確実で、そのための宣言が一意性制約。支援士試験ではSQLの制約の知識に加え、競合状態を防ぐ設計要素として問われる。
具体例
会員サイトでusersテーブルのemail列にUNIQUE制約を置けば、同時登録の競合でも片方はエラーになる。「同一テナント内でユーザ名は重複しない」なら(tenant_id, username)の複合UNIQUEにする。Keycloakのような認証製品も、ユーザ名の一意性を最終的にDBの制約で担保している。
試験での引っ掛け
主キーと違い、多くのDBMSではNULLどうしを重複とみなさないため、NULLを許す列には複数行のNULLが並ぶ。「一意制約があるから必ず1行」と考えると結合時に件数が膨らむ。大文字小文字や全角半角を同一視するかは照合順序次第で、ログインIDの一意性を狙うなら正規化してから格納する。
関連用語
出典・参考
公式シラバスの3 技術要素 > 2. データベース設計 > (2) データベースの設計に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。