推奨されます, 2022

エディターズチョイス

スーパーキーと候補キーの違い

キーは、リレーショナルデータベースの重要な要素です。 関係内の各タプルを一意に識別します。 キーは、スキーマ内のテーブル間の関係を確立するためにも使用されます。 この記事では、スーパーキーと候補キーの2つの基本キーについて説明します。 すべての候補キーはスーパーキーですが、すべてのスーパーキーは候補キーである場合とそうでない場合があります。 スーパーキーと候補キーの間には、他にも多くの違いがあります。これらについては、以下の比較表で簡単に説明しました。

比較表

比較基準スーパーキー候補キー
基本関係内のすべての属性を一意に識別する単一の属性または一連の属性がスーパーキーです。スーパーキーでもあるスーパーキーの適切なサブセットは、候補キーです。
もう一方にすべてのスーパーキーが候補キーになることは必須ではありません。すべての候補キーはスーパーキーです。
選択スーパーキーのセットは、候補キーを選択するための基礎を形成します。候補キーのセットは、単一の主キーを選択するための基礎を形成します。
カウントリレーションには比較的多くのスーパーキーがあります。リレーションに含まれる候補キーは比較的少ないです。

スーパーキーの定義

スーパーキーは、あらゆる関係の基本キーです。 関係内の他のすべての属性を識別できる キーとして定義されています 。 スーパーキーは、単一の属性または一連の属性にすることができます。 2つのエンティティは、スーパーキーを構成する属性に対して同じ値を持ちません。 リレーションには少なくとも1つ以上のスーパーキーがあります。

最小スーパーキーは、候補キーとも呼ばれます。 そのため、スーパーキーのいくつかは候補キーであることが検証されたと言えます。 スーパーキーが候補キーになるためにどのようにチェックされるかについては後で説明します。

関係R(A、B、C、D、E、F)を取りましょう。 関係Rには以下の依存関係があり、それぞれがスーパーキーであることを確認しました。

キーABを使用して、テーブルの残りの属性、すなわちCDEFを識別できます。 同様に、キーCD、ABD、DF、およびDEFを使用して、テーブルRの残りの属性を識別できます。したがって、これらはすべてスーパーキーです。

しかし、キーCBを使用すると、属性DFの値しか見つけることができず、属性AEの値を見つけることはできません。 したがって、 CBはスーパーキーではありません。 キーDの場合も同様で、キーDを使用してテーブル内のすべての属性の値を見つけることはできません。したがって、Dはスーパーキーではありません。

候補キーの定義

同じ関係の別のスーパーキーの適切なサブセットであるスーパーキーは、 最小スーパーキーと呼ばれます 最小のスーパーキーは候補キーと呼ばれます 。 スーパーキーと同様に、候補キーもテーブル内の各タプルを一意に識別します。 候補キーの属性はNULL値を受け入れることができます

候補キーの1つがDBAによって主キーとして選択されます。 ただし、キー属性値は一意でなければならず、NULLを含んでいません。 候補キーの属性は素数属性と呼ばれます

上記の例では、リレーションRのスーパーキーが見つかりました。では、すべてのスーパーキーが候補キーであることを確認しましょう。

スーパーキーABはスーパーキーABDの適切なサブセットです。 したがって、最小のスーパーキーABだけでテーブル内のすべての属性を識別できる場合は、それより大きなキーABDは必要ありません。 したがって、スーパーキーABは候補キーであり、 ABDはスーパーキーになります。
同様に、スーパーキーDFもスーパーキーDEFの適切なサブセットです。 そのため、 DFが単独で関係内のすべての属性を識別できる場合、なぜDEFが必要なのでしょう。 したがって、スーパーキーDFは候補キーになり、 DEFはスーパーキーに過ぎません。

スーパーキーCDは、他のスーパーキーの適切なサブセットではありません。 そのため、 CDはリレーション内のすべての属性を識別する最小のスーパーキーであると言えます。 したがって、 CDは候補キーです。

キーCBDはスーパーキーではないため、候補キーにすらできません。 上の表を見ると、各候補キーはスーパーキーであると結論付けることができますが、その逆は成り立ちません。

スーパーキーと候補キーの主な違い

  1. 特定の関係のすべての属性を一意に識別できる単一の属性または一連の属性は、スーパーキーと呼ばれます。 一方、別のスーパーキーの適切なサブセットであるスーパーキーは候補キーと呼ばれます。
  2. すべての候補キーはスーパーキーですが、その逆は当てはまりません。
  3. スーパーキーのセットは候補キーを見つけるために検証され、一方、候補キーのセットは単一の主キーを選択するために検証される。
  4. スーパーキーは候補キーよりも比較的数が多くなります。

結論:

スーパーキーはあらゆる関係の基本キーです。 それらは他のキーのベースを形成するので、それらは関係のための他のキーを認識する前に最初にプロットされなければなりません。 主キーであるリレーションのうち最も重要なキーを認識するのに役立つので、候補キーは重要です。

Top