Sql

候補キーと主キーの違いは何ですか?



What Is Difference Between Candidate Key



解決:

候補キー–候補キーは、任意の列または列の組み合わせにすることができます。 データベース内の一意のキーとしての資格 。 1つのテーブルに複数の候補キーを含めることができます。各候補キーは、主キーとしての資格を得ることができます。

主キー–主キーは、列または列の組み合わせです。 レコードを一意に識別します 。主キーになることができる候補キーは1つだけです。



このリンクの詳細と例


ジョン・ウーの答えは、それに関する限り正しいです。ここにいくつかの追加のポイントがあります。



主キーは常に候補キーの1つです。かなり頻繁に、それは唯一の候補です。

候補キーのないテーブルは、関係を表しません。リレーショナルモデルを使用して優れたデータベースを構築している場合、設計するすべてのテーブルには少なくとも1つの候補キーがあります。

リレーショナルモデルは、主キーの概念がなくても完成します。リレーショナルモデルの元のプレゼンテーションにはありませんでした。実際問題として、宣言された主キーなしで外部キー参照を使用すると、混乱が生じます。それは論理的に正しい混乱かもしれませんが、それでも混乱です。主キーを宣言すると、DBMSはデータルールの適用に役立ちます。ほとんどの場合、DBMSを使用してデータルールを適用することは良いことであり、コストに見合う価値があります。



一部のデータベース設計者と一部のユーザーは、主キーがテーブル内の行(レコード)を識別するのか、テーブルが表す主題内のエンティティのインスタンスを識別するのかについて、精神的な混乱を抱えています。理想的な世界では、両方を実行することになっています。エンティティテーブルの行と対応するエンティティのインスタンスの間には1対1の対応が必要です。

現実の世界では、物事は台無しになります。誰かが同じ新しい従業員を2回入力すると、その従業員は2つのIDになります。誰かが雇われますが、データ入力はいくつかの手動プロセスで隙間をすり抜け、省略が修正されるまで従業員はIDを取得しません。物事が最初に台無しになったときに崩壊しないデータベースは、崩壊するデータベースよりも堅牢です。


主キー ->次のことができる任意の列または列のセット レコードを一意に識別します 表の主キーです。 (そういうこともありうる 主キーは1つだけ 表中)

候補キー ->任意の列または列のセット 主キーになる候補者 候補キーです。 (そういうこともありうる 1つ以上の候補キー 表で、候補キーが1つしかない場合は、主キーとして選択できます)