比較表
比較基準 | スーパーキー | 候補キー |
---|---|---|
基本 | 関係内のすべての属性を一意に識別する単一の属性または一連の属性がスーパーキーです。 | スーパーキーでもあるスーパーキーの適切なサブセットは、候補キーです。 |
もう一方に | すべてのスーパーキーが候補キーになることは必須ではありません。 | すべての候補キーはスーパーキーです。 |
選択 | スーパーキーのセットは、候補キーを選択するための基礎を形成します。 | 候補キーのセットは、単一の主キーを選択するための基礎を形成します。 |
カウント | リレーションには比較的多くのスーパーキーがあります。 | リレーションに含まれる候補キーは比較的少ないです。 |
スーパーキーの定義
スーパーキーは、あらゆる関係の基本キーです。 関係内の他のすべての属性を識別できる キーとして定義されています 。 スーパーキーは、単一の属性または一連の属性にすることができます。 2つのエンティティは、スーパーキーを構成する属性に対して同じ値を持ちません。 リレーションには少なくとも1つ以上のスーパーキーがあります。
最小スーパーキーは、候補キーとも呼ばれます。 そのため、スーパーキーのいくつかは候補キーであることが検証されたと言えます。 スーパーキーが候補キーになるためにどのようにチェックされるかについては後で説明します。
関係R(A、B、C、D、E、F)を取りましょう。 関係Rには以下の依存関係があり、それぞれがスーパーキーであることを確認しました。
しかし、キーCBを使用すると、属性DとFの値しか見つけることができず、属性AとEの値を見つけることはできません。 したがって、 CBはスーパーキーではありません。 キーDの場合も同様で、キーDを使用してテーブル内のすべての属性の値を見つけることはできません。したがって、Dはスーパーキーではありません。
候補キーの定義
同じ関係の別のスーパーキーの適切なサブセットであるスーパーキーは、 最小スーパーキーと呼ばれます 。 最小のスーパーキーは候補キーと呼ばれます 。 スーパーキーと同様に、候補キーもテーブル内の各タプルを一意に識別します。 候補キーの属性はNULL値を受け入れることができます 。
候補キーの1つがDBAによって主キーとして選択されます。 ただし、キー属性値は一意でなければならず、NULLを含んでいません。 候補キーの属性は素数属性と呼ばれます 。
上記の例では、リレーションRのスーパーキーが見つかりました。では、すべてのスーパーキーが候補キーであることを確認しましょう。
スーパーキーABはスーパーキーABDの適切なサブセットです。 したがって、最小のスーパーキーABだけでテーブル内のすべての属性を識別できる場合は、それより大きなキーABDは必要ありません。 したがって、スーパーキーABは候補キーであり、 ABDはスーパーキーになります。
同様に、スーパーキーDFもスーパーキーDEFの適切なサブセットです。 そのため、 DFが単独で関係内のすべての属性を識別できる場合、なぜDEFが必要なのでしょう。 したがって、スーパーキーDFは候補キーになり、 DEFはスーパーキーに過ぎません。
スーパーキーCDは、他のスーパーキーの適切なサブセットではありません。 そのため、 CDはリレーション内のすべての属性を識別する最小のスーパーキーであると言えます。 したがって、 CDは候補キーです。
キーCBとDはスーパーキーではないため、候補キーにすらできません。 上の表を見ると、各候補キーはスーパーキーであると結論付けることができますが、その逆は成り立ちません。
スーパーキーと候補キーの主な違い
- 特定の関係のすべての属性を一意に識別できる単一の属性または一連の属性は、スーパーキーと呼ばれます。 一方、別のスーパーキーの適切なサブセットであるスーパーキーは候補キーと呼ばれます。
- すべての候補キーはスーパーキーですが、その逆は当てはまりません。
- スーパーキーのセットは候補キーを見つけるために検証され、一方、候補キーのセットは単一の主キーを選択するために検証される。
- スーパーキーは候補キーよりも比較的数が多くなります。
結論:
スーパーキーはあらゆる関係の基本キーです。 それらは他のキーのベースを形成するので、それらは関係のための他のキーを認識する前に最初にプロットされなければなりません。 主キーであるリレーションのうち最も重要なキーを認識するのに役立つので、候補キーは重要です。