Super KeyとCandidate Keyの違いとは?分かりやすく解説!

スポンサーリンク
スポンサーリンク


スーパーキーと候補キーの主な違いは、スーパーキーがテーブル内のレコードを一意に識別できる1つ以上の属性のセットであるのに対し、候補キーは冗長な属性を含まないスーパーキーである点です。

一般に、DBMSはデータベースにデータを格納し、管理するためのソフトウェアです。

リレーショナルDBMS(RDBMS)とは、リレーショナルモデルに従って作成されたDBMSのことである

例えば、MySQLやMSSQLは一般的なRDBMSです。

さらに、1つのデータベースには複数のテーブルが存在する。

キーはデータベースのテーブル間の接続に役立ちます。

さらに、データを理解し、より意味のあるものにするのに役立ちます。

キーには様々な種類があり、スーパーキーと候補キーがあります。

スポンサーリンク

スーパーキーとは

スーパーキーとは、テーブルの行を一意に識別できる1つ以上の属性で構成されるキーのことです。

スーパーキーは、候補キーのスーパーセットです。

たとえば、student という名前のテーブルがあるとする。

このテーブルには、id、name、phone の 3 つのカラムがあります。

id は、各行を一意に識別するために使用することができます。

idとnameの組み合わせについて考えてみよう。

二人の生徒が同じ名前でも、idは異なるものになります。

したがって、idとnameの組み合わせを使用して、各レコードを別々に識別することができます。

同様に、各生徒は自分の電話番号を持っているでしょう。

ですから、それを使ってそれぞれの行を別々に識別することができます。

したがって、id, id と name, phone はスーパーキーとなります。

Candidate Keyとは

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

候補キーには冗長な属性はありません。

一般に、キー候補はNULL値や空値を持たず、1つまたは複数の属性から構成される。

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

上記の学生テーブルによれば、idとphoneは冗長な属性を持たない。

したがって、これらはテーブルのキーの候補となる。

スーパーキーとキャンディデート・キーの違い

定義

スーパーキーとは、テーブルの行を一意に識別できる1つ以上の属性の集合のことである

しかし、候補キーは、冗長な属性を持たないスーパーキーです。

これが、スーパーキーと候補キーの大きな違いです。

依存性

また、スーパーキーは他のキーに依存しないが、候補キーはすべてスーパーキーです。

これがスーパーキーと候補キーのもう一つの違いです。

id、name、phone のカラムを持つ学生テーブルでは、スーパーキーは id、id と name、phone です。

一方、id, phone は候補キーです。

結論

RDBMSでは、キーはデータベースの異なるテーブルのデータを接続するのに役立ちます。

そのキーは、複数のテーブルの関係を表す。

そのため、データをより有用なものにすることができる。

簡単に説明すると、キーにはスーパーキーと候補キーの2種類があります。

スーパーキーと候補キーの主な違いは、スーパーキーがテーブル内のレコードを一意に識別できる1つまたは複数の属性のセットであるのに対し、候補キーは冗長な属性を含まないスーパーキーである点です。

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