候補キーと複合キーについて読んでいます。それを知った
複合キーについては、このリンクを参照しました
SQL Server Management Studioで複合キーを作成する方法
したがって、候補キーと複合キーの両方が列の組み合わせである場合、それらは主キーとして修飾できます。それでは、正確な違いは何ですか?例で説明してもらえますか?
私が知っているように、候補キーは主キーとして使用できる一意のキーです。ただし、必ずしも1つとして使用されるわけではありません。
複合キーは、行を一意に識別する2つ以上の属性のキーです。
キーは、テーブル内の各行を一意に識別するために使用できる列のセットです。
すべてのテーブルには少なくとも1つのキーがあります。テーブルに可能なキーをそれぞれ特定したとしましょう。これらのキーはそれぞれ候補キーです。
これらの各キーを調べると、キーは列(!)、1列、または複数の列で構成されている可能性があります。これらは一緒に検討すると、各行を一意に識別します。複合キーという用語は、特に複数の列で構成されるキーを指します。
SQLでは、1つのキーを選択し、テーブルの他のキーよりも「同等」に扱うことが決定されました。このキーは主キーと呼ばれます。他のキーもテーブルで宣言できます。これらは通常、一意の制約と呼ばれます。
(!)SQLでは、列のないキーを宣言することは許可されていません-時には役に立つかもしれません(各列が構成情報を表す単一の行のみを持つべきテーブルを考えてください)
複数のキーを持つテーブルの例として、それらはすべてコンポジットです。クライアントとカウンセラーが特定の時間に部屋で会う予約システムを想像してください。
CREATE TABLE Appointments (
ClientID int not null,
CounsellorID int not null,
RoomID int not null,
AppointmentTime datetime not null
)
このテーブルの候補キーは{ClientID、AppointmentTime}、{CounsellorID、AppointmentTime}および{RoomID、AppointmentTime}です。これらの列の組み合わせを使用して、テーブル内の行を一意に識別できます。これらはすべて複合キーです。
どのキーを主キーとして宣言するかは、(おそらく)システムのメイン「フォーカス」の独自の解釈に依存します。主に部屋の使用、またはクライアント、またはカウンセラーに関心がありますか?いずれの場合でも、1つを選択し、それを主キーとして宣言します。また、他のキーを一意の制約として宣言することもできます。
または、データベースで使用可能な自動番号付け機能を使用して、サロゲートを使用してAppointmentID
列を宣言することもできます。これが(非複合)主キーになる可能性があります。ただし、テーブルの他のキーはまだ宣言する必要があります。
候補キー:主キーフィールドの候補者は、候補キーと呼ばれます。
複合キー:複数の主キーを作成することは、複合キーと呼ばれます。
更新:候補キーは、主キーとして使用できる一意のキーです。複合キーは、行を一意に識別する2つ以上の属性のキーです。キーは、テーブル内の各行を一意に識別するために使用できる列のセットです。
CANDIDATE KEY:-候補キーは一意のキーであり、主キーになるための「候補」です。 COMPOSITE KEY:-主キーとしての2つ以上の列の「構成」は、複合キーと見なされます。
候補キーとは、主キーとしてcouldを使用する列または列の組み合わせ、つまり候補または潜在的な主キー、複合キーは定義により2つ以上の列です行を識別するために使用されます。最も一般的には、複合キーについて話すとき、問題は、代わりに代理キーを持つためにそれを主キーとして持つかどうかです。場合によっては、人々が主キーではない(つまり、すべての行に対して一意ではない)複合キーを参照することを聞くことがあります。フィールド(クロス結合を行い、where句の行をフィルタリングする代わりに)。