- キーはリレーショナル データベースで重要な役割を果たします。
- これは、テーブルのデータのレコードまたは行を一意に識別するために使用されます。また、テーブル間の関係を確立および識別するためにも使用されます。
例えば、 ID は学生ごとに一意であるため、Student テーブルのキーとして使用されます。 PERSON テーブルでは、passport_number、license_number、SSN は各個人に固有であるため、キーになります。
キーの種類:
1. 主キー
- これは、エンティティの 1 つだけのインスタンスを一意に識別するために使用される最初のキーです。 PERSON テーブルで見たように、エンティティには複数のキーを含めることができます。それらのリストから最も適切なキーが主キーになります。
- EMPLOYEE テーブルでは、ID は従業員ごとに一意であるため、主キーにすることができます。 EMPLOYEE テーブルでは、License_Number と Passport_Number も一意であるため、主キーとして選択することもできます。
- 各エンティティの主キーの選択は、要件と開発者に基づいて行われます。
2. 候補キー
- 候補キーは、タプルを一意に識別できる属性または属性のセットです。
- 主キーを除いて、残りの属性は候補キーとみなされます。候補キーは主キーと同じくらい強力です。
例えば: EMPLOYEE テーブルでは、id が主キーに最適です。 SSN、Passport_Number、License_Number などの残りの属性は、候補キーとみなされます。
3. スーパーキー
スーパーキーはタプルを一意に識別できる属性セットです。スーパー キーは、候補キーのスーパーセットです。
例えば: 上記の EMPLOYEE テーブル for(EMPLOEE_ID, EMPLOYEE_NAME) では、2 人の従業員の名前は同じであってもかまいませんが、EMPLYEE_ID は同じであってはなりません。したがって、この組み合わせも鍵となる可能性があります。
スーパー キーは、EMPLOYEE-ID (EMPLOYEE_ID、EMPLOYEE-NAME) などになります。
4. 外部キー
- 外部キーは、別のテーブルの主キーを指すために使用されるテーブルの列です。
- すべての従業員は会社内の特定の部門で働いており、従業員と部門は 2 つの異なる実体です。したがって、部門の情報を従業員テーブルに保存することはできません。このため、これら 2 つのテーブルを 1 つのテーブルの主キーを介してリンクします。
- DEPARTMENT テーブルの主キー、Department_Id を新しい属性として EMPLOYEE テーブルに追加します。
- EMPLOYEE テーブルでは、Department_Id が外部キーであり、両方のテーブルが関連付けられています。
5. 代替キー
リレーション内の各タプルを一意に識別する 1 つ以上の属性、または属性の組み合わせが存在する場合があります。これらの属性または属性の組み合わせは、候補キーと呼ばれます。これらの候補キーから 1 つのキーが主キーとして選択され、残りの候補キーが存在する場合は代替キーと呼ばれます。 言い換えると、 代替キーの総数は、候補キーの総数から主キーを引いたものです。代替キーは存在する場合と存在しない場合があります。リレーション内に候補キーが 1 つしかない場合、代替キーはありません。
例えば、 従業員リレーションには、候補キーとして機能する Employee_Id と PAN_No という 2 つの属性があります。このリレーションでは、Employee_Id が主キーとして選択されるため、もう 1 つの候補キー PAN_No が代替キーとして機能します。
2つの文字列の違いPython
6. 複合キー
主キーが複数の属性で構成される場合、それは複合キーと呼ばれます。このキーは、連結キーとも呼ばれます。
例えば、 従業員関係では、従業員に複数の役割が割り当てられ、従業員が複数のプロジェクトに同時に取り組む可能性があると想定されます。したがって、主キーは 3 つの属性すべて、つまり Emp_ID、Emp_role、および Proj_ID の組み合わせで構成されます。したがって、主キーは複数の属性で構成されているため、これらの属性は複合キーとして機能します。
7. 人工キー
任意に割り当てられたデータを使用して作成されたキーは、人工キーとして知られています。これらのキーは、主キーが大きくて複雑で、他の多くの関係と関係がない場合に作成されます。人工キーのデータ値には通常、連続した順序で番号が付けられます。
例えば、 Emp_ID、Emp_role、および Proj_ID で構成される主キーは、従業員関係で大きくなります。したがって、リレーション内の各タプルを一意に識別するために新しい仮想属性を追加する方がよいでしょう。