[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ユニーク制約 (UNIQUE制約)

pointこの用語のポイント

pointデータベースの項目に付与する制約だよ

point既に入っている値と同じ値は入れられなくなるよ

スポンサーリンク

簡単に書くよ

ユニーク制約 (UNIQUE制約)とは

データベースの項目に付与する「他の行の値と重複しちゃダメよ制約」のこと。
もう少し詳しく書くと

データベースの項目に付ける制限事項で「この項目に入れる値は他の行に入っている同じ項目の値と重複しては駄目ですよ。入れようとした値が既に入っている値と同じだったらエラーにしますよ」な制約のこと
です。

image piyo

詳しく書くよ

※このページの説明は「一意制約」の説明と同じです。既に「一意制約」の説明をご覧になった方は、読んでも意味が無いと思います。

最初に注意事項です。
専門外の方がイメージしやすいように「データベースの項目」と表現していますが、正確には「データベースのテーブルの項目」です。
こだわり派な人は適当に読み替えてください。

それでは本題です。
まずは予備知識から行きましょう。

ユニークの意味は「重複しないよ~」ね。

ユニーク制約

データベースは「データを入れておく箱」です。

ユニーク制約2

ただし「データベース」という用語は、実際には、もう少し複雑な概念です。
データを入れておく箱そのものは「テーブル」と言います。

取りあえず

データベース関連で出てくる用語で、実際にデータを入れておく箱が「テーブル」

と覚えてください。

以上を踏まえて、データベース(のテーブル)に付与する「重複しないよ~」な状態にしますよ制約が「ユニーク制約」です。
データベースの項目に付与する制限事項で、この制限を付与された項目には、他の行に入っている値と同じ値は入れられなくなります。

ユニーク制約3

例えば、そうですね。

ピヨピヨ学校のピヨクラスで、演劇をすることになりました。
そこで、生徒の情報と配役をデータベースで管理することにしたのです。

データベースに入れる内容は

出席番号、名前、性別、配役

の4項目です。
えっちらおっちらと入力していったところ、最終的には以下のような一覧表ができあがりました。

[出席番号、名前、性別、配役]
1番、相川、男、王子様
2番、合田、男、村人A
3番、伊藤、男、村人B
4番、宇野、男、村人C
  ・
  ・
  ・
1番、伊藤、女、お姫様
2番、井上、女、侍女
  ・
  ・


ここで少し考えてみてください。
複数の生徒が同じ配役になるということが、ありえるでしょうか。

今回の演劇では、同じ「村人」でも「村人A」「村人B」「村人C」のように区別して管理します。
一人一人に求められる演技が少しずつ異なるからです。

ということは、複数の生徒が同じ配役になることは、ありえません。

[出席番号、名前、性別、配役]
1番、相川、男、王子様
2番、合田、男、村人A
3番、伊藤、男、村人A
4番、宇野、男、村人C
  ・
  ・
  ・
1番、伊藤、女、お姫様
2番、井上、女、侍女
  ・
  ・


のように、合田君と伊藤君の2人に「村人A」が割り当てられたとしたら、それは何かがおかしいです。
入力ミスか割当ミスかは分かりませんが、とにかく間違いです。

それなら、最初から同じ値を入れられないようにしておいた方が楽ですよね。
「村人A」と入力したときに「おいおい、既に『村人A』が割り当たっている人はいるぞ。なんか間違ってないか?」と注意してくれたら助かります。

そのために付ける「他の行の値と重複しては駄目ですよ」制約がユニーク制約です。
ユニーク制約を付与した項目は、既に入っている値と同じ値を入れようとすると、エラーになります。
結果として、すべての行の値が一意になる理屈です。

image piyo2

一言でまとめるよ

まぁ「ユニーク制約」って単語が出てきたら「重複しちゃダメだよ制約なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク