制約とキー

制約

データベースに格納できる値に制限を加えることを「制約」と言う。

参照制約 値が参照先のテーブルに登録されている

キー制約 フィールドの値がUNIQUE

UNIQUE制約 キー制約と同じ

NOT NULL制約 lフィールドの値がNULLではない

--> なぜ必要か?

キー

データを指定するために利用できるフィールドのことを「キー」と呼ぶ。

主キー
Primary Key(プライマリキー)とも呼ぶ。

  • 候補キー
    Candidate Key(キャンディデートキー)、
    Alternate Key(オルタネートキー 副キー)とも呼ぶ

--> なぜ必要か

さらに詳しく

制約

制約の目的は、データベースを設計した時に前提とする条件が常に満たされるようにするためだ。「制約」を設定すると前提条件にあった「正しいデータ」となるための様々な条件=「制約」をデータに設定して、前提条件を満たさないデータが追加されないようにすることができる。

キー

キーの目的は、「値」から「レコード」を探す処理を敏速にするためだ。「見出し」のようなものと考えてもよい。キーを設定しない場合、たとえば名簿にある人の名前があるかどうかを確認するには名簿のすべてのデータを見る必要がある。名簿が膨大になるとこれにはかなりの時間がかかる。キーを設定するとこの処理が瞬時に行われる。

このとき、すべてのデータを再度参照せずに、名前からその名前が書いてあるば書を探り当てていることになる。このような処理は、たとえばgoogle などでもおなじみだ。しかし、ある人の名前がどこにあるか、名簿をすべて見ることなくどうして探り当てることができるのだろうか。

もちろん、実際にこのような処理をする前に一回は名簿をすべて調べておくことが必要である。その時に、たとえば、「アイウエオ順」に名簿を並べ替えておく。このような処理を一旦行っておくと、たとえば「佐藤」という名前があるかどうかどうかは、「さ」で始まる名前の近辺を確認するだけでよい。そして「里田」の次の名前がに「真田」であれば、それ以上調べることなく「佐藤」は名簿にないことがわかる。