主キーと候補キーの違い
コンテンツ
キーは、属性、またはテーブルからタプルにアクセスするために使用される属性のセット、または2つのテーブル間の関係を構築するためにも使用されます。この記事では、主キーと候補キー、およびそれらの違いについて説明します。主キーと候補キーの両方が、リレーションまたはテーブルのタプルを一意に識別します。しかし、それらを区別する最も重要な点は、1つしか存在できないということです 主キー 関係で。ただし、複数ある場合があります 候補キー 関係で。
主キーと候補キーの間にはいくつかの違いがありますが、これについては以下に示す比較チャートを使用して説明します。
- 比較表
- 定義
- 主な違い
- 結論
比較表
比較の根拠 | 主キー | 候補キー |
---|---|---|
ベーシック | どのリレーションにも主キーは1つしか存在できません。 | リレーションには複数の候補キーが存在する場合があります。 |
ヌル | 主キーの属性にNULL値を含めることはできません。 | 候補キーの属性はNULL値を持つことができます。 |
指定する | 関係の主キーを指定することはオプションです。 | 候補キーが指定されていない関係は存在できません。 |
特徴 | 主キーは、関係の最も重要な属性を記述します。 | 候補キーは、主キーに適格な候補を提示します。 |
逆に | 主キーは候補キーです。 | ただし、各候補キーが主キーになることは必須ではありません。 |
主キーの定義
主キー リレーション内の各タプルを一意に識別する属性または属性のセットです。しかありえない 1 各関係の主キー。主キーは次のように注意する必要があります 決して 含む ヌル 値、および ユニークな リレーションの各タプルの値。主キーの属性の値は 静的、つまり、属性の値は決して変更されるべきではありません。
一つ 候補キー 主キーになる資格があります。の ルール 候補キーがプライマリになる資格がある必要があるということは、キー値が ヌル そしてそれはする必要があります ユニークな すべてのタプル用。
リレーションに他のリレーションの主キーである属性が含まれている場合、その属性が呼び出されます 外部キー.
主キーが各タプルを一意に識別するため、関係の他の属性を導入する前に、関係の主キーを把握することをお勧めします。単一の属性または少数の属性を主キーとして選択すると、リレーション処理が簡単になります。
次に、主キーの例を見てみましょう。
学生{ID、名、姓、年齢、住所}
ここでは、最初に候補キーを見つけます。私は理解しました 二 候補キー {ID} そして {名前苗字} 学生関係の各学生を一意に識別するためです。さて、ここで選択します ID 私の主キーとして、2人の生徒が同じ姓と名を持っていることが時々あるので、彼の生徒を簡単に追跡できます。 ID.
候補キーの定義
A 候補キー リレーションのタプルを一意に定義する属性または属性のセットです。ある 複数の リレーションの候補キー。これらの候補キーは、プライマリキーになる資格がある候補です。
各候補キーはプライマリキーになる資格がありますが、プライマリキーとして選択できるのは1つだけです。候補キーが主キーになるために必要なルールは、キーの属性値が ヌル キーのどのドメインでも、それは ユニークな そして 静的.
すべての候補キーが主キーの資格がある場合、経験豊富な DBA 主キーを決定する決定を行う必要があります。候補キーのない関係はありえません。
例で候補キーを理解しましょう。 Studentリレーションシップにさらに属性を追加する場合は、上記で説明しました。
学生{ID、名、姓、年齢、住所、DOB、部門名}
ここで私は理解することができます 二 候補キー {ID}, {名、姓、DOB}。したがって、候補キーはリレーション内のタプルを一意に識別するものであることが理解できます。
- プライマリキーと候補キーを区別する基本的なポイントは、スキーマ内のリレーションに対してプライマリは1つしか存在できないということです。ただし、単一のリレーションに対して複数の候補キーが存在する場合があります。
- 主キーの主な機能はリレーション内のレコードを一意に識別することであるため、主キーの下の属性にNULL値を含めることはできません。主キーでさえ、他のリレーションで外部キーとして使用される可能性があるため、参照リレーションが参照リレーションのタプルを見つけることができるように、NULLであってはなりません。属性制約がNULL以外で指定されていない限り、候補キーはNULLにすることができます。
- 主キーを指定することはオプションですが、候補キーがないとリレーションを作成できません。
- 主キーは、リレーションの一意かつ最も重要な属性を記述しますが、候補キーは、主キーとして選択できる候補を提供します。
- すべての主キーは候補キーですが、その逆は当てはまりません。
結論:
リレーションが主キーを指定することはオプションです。一方、リレーションを宣言する場合、適切なリレーションを構築するには、そのリレーションに候補キーが存在する必要があります。