候補キーは、テーブル内の行を一意に識別するキーです。 識別された候補キーのいずれも、テーブルの主キーとして使用できます。主キーの一部ではない候補キーは、代替キーと呼ばれます。 候補キーは、一意性を決定するために必要な最小数の列のみを含むスーパーキーとして記述することができます。
プライム属性は、一意性を定義する候補キーの属性です(例:従業員データベースのSSN番号)
主キーは、テーブル内の行を一意に識別する値を持つテーブル内の列です。 主キーは、識別子としてのビジネスに対する認識された価値に基づいて、この候補のリストから選択されます。
主キー値:
- 行を一意に識別する必要があります。
- はNULL値を持つことはできません。
- は時間の経過とともに変更すべきではありません。
- はできるだけ短くすべきです。
主キーが複数の列の組み合わせである場合、複合キーと呼ばれます。
主キーと主キーの属性の違いを理解するには、まずスーパーキーと候補キーが何であるかを知る必要があります。
スーパーキー:指定された関数依存関係に基づいてクロージャが完全な関係をスーパーキーであると判断する属性の任意の属性/組み合わせ。 (リレーションは複数のスーパーキーを持つことができます)
たとえば、relationR(A,B,C,D);関数依存関係を次のように指定します:
ABC->D
AB->CD
A->BCD
D->ABC
以下はスーパーキー
ABC;その閉包は完全な関係を与えるので、(ABC)->abcd
AB;それは近いので、完全な関係、すなわち、(AB)->ABCD
A;それは閉鎖であるため、完全な関係、すなわち、(A)->ABCD
d;それは閉鎖であるため、完全な関係、すなわち、(d)->abcd
d;候補キー:適切なサブセットがスーパーキーではないスーパーキーは、ACANDIDATEキーです。 (リレーションは複数の候補キーを持つことができます)
だから、上記の例では、AとDが唯一の候補キーです。
主キー:レコードを識別するためにデータベース設計者によって選択されている候補キー(最小でも最小でもない場合もあります)は主キーです。 (リレーションは1つの主キーのみを持つことができます/(複合主キー:複数の列で構成される主キー))
上記の例では、A(たとえば)が主キーです。
Prime Attributes:候補キーのいずれかに存在する属性はprime属性です。
だから、上記の例では、AとDは素数の属性です。
主キーは、単一の属性または複数の属性を組み合わせて構成することができます。たとえば、
name login emailBob catlover Jason doglover
ログインは主キーになり、属性はそのキー
に帰属するすべてのcatlover/dogloverになります