主キーと候補キーの違いとは?分かりやすく解説!

この記事には、アフィリエイト広告を利用しています。

スポンサーリンク


主キーと候補キーの主な違いは、主キーが各行を一意に識別するのに役立つテーブルの最小限の属性セットであるのに対し、候補キーは冗長な属性を持たないスーパーキーであることである

一般に、RDBMSのデータベースは複数のテーブルから構成されている。

そのため、キーはテーブル間の関係性を確立するのに役立つ。

また、キーは1つの属性で構成されることもあれば、複数の属性の組み合わせで構成されることもあります。

全体として、さまざまなキーが存在し、これらのキーはテーブル内の任意のデータ行を識別するのに役立つ。

  そのうちの2つが主キーと候補キーです。

スポンサーリンク

主キーとは

主キーとは、キーの候補のことである

  テーブルの主要なキーと見なされます。

テーブルの各行やレコードを一意に識別するのに役立ちます。

たとえば、学生テーブルを想定してみましょう。

これは、id、name、age、phoneと呼ばれる4つのプロパティを持っています。

しかし、同じ名前の学生が存在する可能性があるため、名前を主キーと見なすことはできません

同様に、年齢も同じ年齢の生徒が複数いる可能性があるため、主キーとして選択することは得策ではありません

しかし、各生徒はユニークなIDを持っているので、idを主キーとすることは可能です

同様に、id だけを使って各行を識別することができます。

したがって、これをテーブルの主キーとします。

Candidate Keyとは

スーパーキーとは、テーブル内のレコードを一意に識別できる1つまたは複数の属性の集合のことです。

候補キーとは、スーパーキーの集合の中から選ばれたキーのことです。

さらに、候補キーは冗長な属性を持ってはならない。

さらに、候補キーはいくつかの特性を持つ。

第1に、候補キーは決してヌルや空であってはならない。

次に、複数のカラム(属性)の組み合わせにすることができる。

最後に、1つのテーブルに対して複数のキー候補が存在することがあります。

そこで、主キーのところで説明したstudentテーブルをもう一度見てみると、idとphoneは冗長な属性を持っていない。

したがって、これらがテーブルstudentのキー候補となります。

プライマリーキーとキャンディデートキーの違い

定義

主キーはテーブルのタプル(行)を一意に識別する最小限の属性(列)の集合であり、候補キーは冗長な属性を持たない上位のキーです。

例えば、id, name, age, phone を持つ student テーブルでは、id が主キーで、id と phone はそのテーブルの候補キーです。

結論

RDBMS では、リレーションシップを持つテーブルがより便利で意味のあるデータを提供する。

このとき、開発者はテーブル間の関係を表すためにキーを使用することができます。

このように、RDBMSにはさまざまなキーが存在する。

そして、キーには主キーと候補キーの2種類があります。

簡単に説明すると、主キーと候補キーの主な違いは、主キーは各行を一意に識別するのに役立つテーブルの最小限の属性セットであり、候補キーは冗長な属性を持たないスーパーキーであるということである

タイトルとURLをコピーしました