DBの基本(候補キーとスーパーキーとは)
関係型データベースにおいて、重要な項目にキーがあります。一番主要なキーはやはり主キーでしょう。
1.主キーとは
英語ではprimary key といい、略号でPKと書かれることも多いかと思います。 レコード(組、行)を識別するために一番よいとされる項目(属性、列)のことを主キーと呼びます。
主キーは候補キーの中からただ一つ選ばれます。 絶対に必要なものではありませんが、実務上は重要視されて設定されていることがほとんどです。
2.主キーの制約
主キーにはいくつかの制約があります。
- 複数が主キーになることはありません。
- 主キーにはNULLは許されません。(NULLがある属性を主キーに選ぶことはできません。)
3.主キーの選び方
主キーは候補キーの中から選びます。候補キーの中で以下の観点で選ぶことが実務上望ましいと考えられます。
- データ量が小さいもの 検索時のキーとして利用されたり、他の関係(テーブル、表)とも紐づけなどを実施する際に利用するときに小さいデータ量のほうが高速に処理できます。
- なるべく変化がないもの 主キーは他との関係の中で連携されることが多いため、変化があると他の関係側でも変更が必要となり、煩雑さが増してしまう。このため、不変であることが望ましい。
4.自然キーと人工キー
主キーには一意性が重要とされるため、その成り立ちによって、2つの種類がある。
a.自然キー (natural key)
主キーを作るうえで、一意性があり、主キーにふさわしい属性があれば、そのまま主キーとして利用することができる。
b.人工キー (artificial key)
候補キーが存在しない場合は、人工的にキーを作成する必要があり、これが人工キーになります。 また、人工キーは一般には知られないキー(数字やアルファベットの羅列)になることが多い。