リレーショナルデータベース管理システムでは、一意キーは候補キーです。リレーションのすべての候補キーは、リレーションのレコードを一意に識別できますが、そのうちの 1 つだけがリレーションの主キーとして使用されます。残りの候補キーは、リレーション内のレコードを一意に識別できるため、一意キーと呼ばれます。一意キーは複数の列で構成できます。一意キーは代替キーとも呼ばれます。一意キーは、リレーションの主キーの代替です。SQL では、重複を防ぐために一意キーにUNIQUE制約が割り当てられます (一意列では重複エントリは無効です)。代替キーは、単一テーブルの選択やWHERE句でのフィルタリングを行う場合に主キーのように使用できますが、通常は複数のテーブルを結合するために使用されません。
キーは、データベースの利用者やアプリケーションソフトウェアがデータベーステーブル内の情報を識別、アクセス、更新するための手段を提供します。1つのテーブルには複数のキーが存在する場合があります。例えば、従業員テーブルでは、従業員番号とログイン名はそれぞれ一意です。テーブルにおけるキー制約(一意性制約)の適用は、データベースのデータ整合性機能の一つです。DBMSは、重複するキー値が発生するような更新を防ぎ、テーブルが常に一意性に関する望ましいルールに準拠することを保証します。したがって、データベース設計時に適切なキーを選択することは、データベースの整合性を確保する上で重要な側面となります。
リレーショナルデータベースのテーブルには、1つ以上の使用可能な一意キー(正式には候補キーと呼ばれる)が存在する場合があります。テーブルごとに、これらのキーのうち1つを主キーとして指定できます。その他のキーは代替キーと呼ばれます。
どのキーも、1つ以上の属性で構成できます。たとえば、社会保障番号は従業員を表す単一の属性キーとなり得ます。フライト番号と日付の組み合わせは、予定されているフライトを表す2つの属性からなるキーとなり得ます。
データベースのモデリングと実装では、いくつかの種類のキーが使用されます。
最も基本的な定義では、「キーは一意の識別子である」[ 1 ]なので、一意のキーは重複表現です。元のエンティティ内にあるキーは、そのエンティティ内で一意です。別のエンティティに移行するキーは、設計と他のテーブルでの使用方法に応じて、一意である場合とそうでない場合があります。外部キーは、別のテーブルの主キーになることがあります。たとえば、PersonID が Employee テーブルの EmployeeID になる場合があります。この場合、EmployeeID は外部キーと一意の主キーの両方であり、テーブルは 1:1 の関係になります。Person エンティティに生物学的な父親 ID が含まれている場合、父親には複数の子供がいる可能性があるため、父親 ID は一意であるとは期待されません。
以下は、主キーが関連テーブルの外部キーになる例です。IDがAuthorテーブルからBookテーブルに移行されます。
著者テーブルスキーマ:著者(ID 、氏名、住所、生年月日)書籍テーブルスキーマ:書籍(ISBN 、著者ID 、タイトル、出版社、価格)ここでは、IDは「Author」テーブルの主キーとして機能するだけでなく、 「Book」テーブルの外部キーとしても機能します。外部キーは、このサンプルデータベース内の関連する2つのテーブル間のリンク、つまり接続の役割を果たします。
In a relational database, a candidate key uniquely identifies each row of data values in a database table. A candidate key comprises a single column or a set of columns in a single database table. No two distinct rows or data records in a database table can have the same data value (or combination of data values) in those candidate key columns since NULL values are not used. Depending on its design, a database table may have many candidate keys but at most one candidate key may be distinguished as the primary key.
A key constraint applies to the set of tuples in a table at any given point in time. A key is not necessarily a unique identifier across the population of all possible instances of tuples that could be stored in a table but it does imply a data integrity rule that duplicates should not be allowed in the database table. Some possible examples of keys are Social Security Numbers, ISBNs, vehicle registration numbers or user login names.
In principle any key may be referenced by foreign keys. Some SQL DBMSs only allow a foreign key constraint against a primary key but most systems will allow a foreign key constraint to reference any key of a table.
The definition of keys in SQL: