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