eyecatch

作成日:2019-03-11 / 更新日:2020-05-23

関係型データベースにおいて、重要な項目にキーがあります。

一番主要なキーはやはり主キーでしょう。

# 主キーとは

英語ではprimary key といい、略号でPKと書かれることも多いです。 レコード(組、行)を識別するために一番よいとされる項目(属性、列)のことを主キーと呼びます。

主キーは候補キーの中からただ一つ選ばれます。

絶対に必要なものではありませんが、実務上は重要視されて設定されていることがほとんどです。

# 主キーの制約

主キーにはいくつかの制約があります。

  • 複数が主キーになることはありません。(主キーは表の中でただ一つだけです。)
  • 主キーにはNULLは許されません。(NULLがある属性を主キーに選ぶことはできません。)

TIP

NULLについては参考記事をこちらに書いています。 NULLとは何か(NULLと0の違い)

# 主キーの選び方

主キーは候補キーの中から選びます。候補キーの中で以下の観点で選ぶことが実務上望ましいと考えられます。

  • データ量が小さいもの 検索時のキーとして利用されたり、他の関係(テーブル、表)とも紐づけなどを実施する際に利用するときに小さいデータ量のほうが高速に処理できます。

  • なるべく変化がないもの 主キーは他との関係の中で連携されることが多いため、変化があると他の関係側でも変更が必要となり、煩雑さが増してしまう。このため、不変であることが望ましい。

# 自然キーと人工キー

主キーには一意性が重要とされるため、その成り立ちによって、2つの種類があります。

# 自然キー (natural key)

主キーを作るうえで、一意性があり、主キーにふさわしい属性があれば、そのまま主キーとして利用することができるものです。

# 人工キー (artificial key)

候補キーが存在しない場合は、人工的にキーを作成する必要があり、これが人工キーになります。 また、人工キーは一般には知られないキー(数字やアルファベットの羅列)になることが多いです。