キーは、リレーショナル データベース モデルの基本要件の 1 つです。テーブル内のタプル(行)を一意に識別するために広く使用されています。また、キーを使用して、リレーショナル データベースのさまざまな列やテーブル間の関係を設定します。
さまざまなタイプのデータベースキー
- 候補キー
- 主キー
- スーパーキー
- 代替キー
- 外部キー
- 複合キー
候補キー
タプルを一意に識別できる最小限の属性セットは、候補キーとして知られています。たとえば、STUDENT リレーションの STUD_NO です。
- 最小限のスーパーキーです。
- 重複データのないスーパーキーを候補キーと呼びます。
- レコードを一意に識別できる最小限の属性セット。
- 一意の値が含まれている必要があります。
- NULL 値を含めることができます。
- すべてのテーブルには少なくとも 1 つの候補キーが必要です。
- テーブルには複数の候補キーを含めることができますが、主キーは 1 つだけです。
- 候補キーの値は一意であり、タプルの場合は null になる可能性があります。
- 関係には複数の候補キーが存在する場合があります。
例:
Java ファイルを開く
STUD_NO is the candidate key for relation STUDENT.>
テーブル学生
| STUD_NO | スナップ | 住所 | 電話 |
|---|---|---|---|
| 1 | シャム | デリー | 123456789 |
| 2 | ラケシュ | コルカタ | 223365796 |
| 3 | スラジ | デリー | 175468965 |
- 候補キーは、単純 (属性が 1 つだけ) または複合の場合もあります。
例:
{STUD_NO, COURSE_NO} is a composite candidate key for relation STUDENT_COURSE.> テーブル STUDENT_COURSE
| STUD_NO | 先生_いいえ | コース_いいえ |
|---|---|---|
| 1 | 001 | C001 |
| 2 | 056 | C005 |
注記: で SQL Null 許容列を持つ一意制約をサーバーに提供します。 許可します 値 ' ヌル その列の「 1回だけ 。そのため、ここでは STUD_PHONE 属性が候補ですが、主キー属性で「null」値にすることはできません。
主キー
関連する候補キーが複数存在する場合があり、その中から 1 つを主キーとして選択できます。たとえば、STUD_NO と STUD_PHONE はリレーション STUDENT の候補キーですが、STUD_NO をキーとして選択できます。 主キー (多数の候補キーのうちの 1 つだけ)。
- ユニークなキーです。
- 一度に識別できるタプル (レコード) は 1 つだけです。
- 重複する値はなく、一意の値があります。
- NULL にすることはできません。
- 主キーは必ずしも単一の列である必要はありません。複数の列をテーブルの主キーにすることもできます。
例:
STUDENT table ->Student(STUD_NO, SNAME, ADDRESS, PHONE) 、STUD_NO は主キーです>>
テーブル学生
| STUD_NO | スナップ | 住所 | 電話 |
|---|---|---|---|
| 1 | シャム | デリー | 123456789 |
| 2 | ラケシュ | コルカタ | 223365796 |
| 3 | スラジ | デリー | 175468965 |
スーパーキー
タプルを一意に識別できる一連の属性は、スーパー キーとして知られています。たとえば、STUD_NO、(STUD_NO、STUD_NAME) などです。スーパー キーは、テーブル内の行を識別する 1 つまたは複数のキーのグループです。 NULL 値をサポートします。
- 候補キーに 0 個以上の属性を追加すると、スーパー キーが生成されます。
- 候補キーはスーパーキーですが、その逆は当てはまりません。
- スーパー キーの値は NULL である場合もあります。
例:
Consider the table shown above. STUD_NO+PHONE is a super key .>

主キー、候補キー、スーパーキーの関係
Javaのdoループとwhileループ
代替キー
主キー以外の候補キーを「キー」と呼びます。 代替キー 。
- 主キーではないすべてのキーは代替キーと呼ばれます。
- 二次キーです。
- 2 つ以上のレコードを識別するための 2 つ以上のフィールドが含まれています。
- これらの値が繰り返されます。
- 例:- SNAME、および ADDRESS は代替キーです
例:
Consider the table shown above. STUD_NO, as well as PHONE both, are candidate keys for relation STUDENT but PHONE will be an alternate key (only one out of many candidate keys).>

主キー、候補キー、および代替キー
JavaScriptの日付
外部キー
属性が他の属性の値として存在する値のみを取ることができる場合、それは 外部キー 参照先の属性に。参照される関係を被参照関係といい、対応する属性を被参照属性といいます。参照されるリレーションの参照される属性は、そのリレーションの主キーである必要があります。
- これは、1 つのテーブル内で主キーとして機能するキーであり、
別のテーブルの二次キー。 - 一度に 2 つ以上のリレーション (テーブル) を結合します。
- これらはテーブル間の相互参照として機能します。
- たとえば、DNO は DEPT テーブルの主キーであり、EMP の非キーです。
例:
Refer Table STUDENT shown above. STUD_NO in STUDENT_COURSE is a foreign key to STUD_NO in STUDENT relation.>
テーブル STUDENT_COURSE
| STUD_NO | 先生_いいえ | コース_いいえ |
|---|---|---|
| 1 | 005 | C001 |
| 2 | 056 | C005 |
特定のリレーションの主キーとは異なり、外部キーは NULL にすることも、重複したタプルを含むこともできる、つまり一意性制約に従う必要がないことに注意してください。たとえば、STUDENT_COURSE リレーションの STUD_NO は一意ではありません。最初と 3 番目のタプルについてもこれが繰り返されました。ただし、STUDENT リレーションの STUD_NO は主キーであり、常に一意である必要があり、null にすることはできません。

主キーと外部キーの関係
複合キー
場合によっては、テーブルのすべてのレコードを一意に識別する単一の列/属性がテーブルに存在しないことがあります。テーブルの行を一意に識別するには、2 つ以上の列/属性を組み合わせて使用できます。まれに重複した値が返される可能性があります。したがって、テーブル内の行を一意に識別できる最適な属性セットを見つける必要があります。
- テーブルに主キーがない場合、主キーとして機能します。
- 2 つ以上の属性を一緒に使用して、 複合キー 。
- 属性の組み合わせが異なると、行を一意に識別する精度が異なる場合があります。
例:
FULLNAME + DOB can be combined together to access the details of a student.>

さまざまな種類のキー
結論
結論として、リレーショナル モデルは多数のキーを使用します。候補キーは個別の識別を可能にし、主キーは選択された識別子として機能し、代替キーは他の選択肢を提供し、外部キーはテーブル間のデータ整合性を保証する重要なリンクを作成します。強力で効果的なリレーショナル データベースを作成するには、これらのキーを慎重に適用する必要があります。
リレーショナル モデルのキーの種類に関する FAQ
Q.1: DBMS にキーが必要なのはなぜですか?
答え:
キーは DBMS の重要な側面の 1 つです。キーは、テーブル内でタプル (行) を一意に見つけるのに役立ちます。また、データベースの列やテーブル間のさまざまな関係を作成する際にも使用されます。
Q.2: 固有キーとは何ですか?
答え:
Javaでの整数から文字列への変換
一意のキーは、テーブル内のレコードを一意に定義するキーです。一意のキーには 1 つの NULL 値を含めることができますが、主キーには NULL 値が含まれないため、主キーとは異なります。
Q.3: 人工キーとは何ですか?
答え:
人工キーは、主キーのすべてのプロパティを含む属性がない場合、または主キーが非常に大きくて複雑な場合に使用されるキーです。