DBMS キー: 候補、スーパー、主、外部キーのタイプと例
DBMS のキーとは何ですか?
DBMS のキー リレーション (テーブル) 内の行 (タプル) を識別するのに役立つ属性または属性のセットです。 これらを使用すると、XNUMX つのテーブル間の関係を見つけることができます。 キーは、テーブル内の XNUMX つ以上の列の組み合わせによってテーブル内の行を一意に識別するのに役立ちます。 キーは、テーブルから一意のレコードや行を検索する場合にも役立ちます。 データベース キーは、テーブルから一意のレコードや行を検索する場合にも役立ちます。
例:
従業員ID | ファーストネーム | 苗字 |
---|---|---|
11 | アンドルー | ジョンソン |
22 | トム | 木材 |
33 | Alex Vetsak | ヘイル |
上記の例では、従業員 ID は従業員レコードを一意に識別するため、主キーとなります。 このテーブルでは、他の従業員が同じ従業員 ID を持つことはできません。
なぜキーが必要なのでしょうか?
DBMS システムで SQL キーを使用する理由をいくつか示します。
- キーは、テーブル内のデータ行を識別するのに役立ちます。 実際のアプリケーションでは、テーブルに数千のレコードが含まれる可能性があります。 さらに、記録が重複する可能性があります。 RDBMS のキーを使用すると、これらの課題にもかかわらず、テーブル レコードを一意に識別できるようになります。
- テーブル間の関係を確立し、テーブル間の関係を識別できます。
- 関係におけるアイデンティティと整合性を強化するのに役立ちます。
DBMS (データベース管理システム) のキーの種類
DBMS には主に XNUMX 種類のキーがあり、各キーには異なる機能があります。
- スーパーキー
- 主キー
- 候補キー
- 代替キー
- 外部キー
- 複合キー
- 複合キー
- 代理キー
DBMS の各キーを例で見てみましょう。
- スーパーキー – スーパー キーは、テーブル内の行を識別する単一または複数のキーのグループです。
- 主キー – テーブル内のすべての行を一意に識別するテーブル内の列または列のグループです。
- 候補キー – テーブル内のタプルを一意に識別する属性のセットです。 候補キーは、重複する属性を持たないスーパー キーです。
- 代替キー – テーブル内のすべての行を一意に識別するテーブル内の列または列のグループです。
- 外部キー - XNUMX つのテーブル間の関係を作成する列です。 外部キーの目的は、データの整合性を維持し、エンティティの XNUMX つの異なるインスタンス間のナビゲーションを可能にすることです。
- 複合キー – には、特定のレコードを一意に認識できるようにする XNUMX つ以上の属性があります。 各列はデータベース内でそれ自体が一意ではない可能性があります。
- 複合キー – テーブル内の行を一意に識別する XNUMX つ以上の列の組み合わせです。 列の組み合わせは一意性を保証しますが、個々の一意性は保証されません。
- 代理キー – 各レコードを一意に識別することを目的とした人工キーは、代理キーと呼ばれます。 この種のキーは、自然な主キーがない場合に作成されるため、一意です。
スーパーキーとは何ですか?
スーパーキーは、テーブル内の行を識別する単一または複数のキーのグループです。 スーパー キーには、一意の識別に必要のない追加の属性が含まれる場合があります。
例:
EmpSSN | EmpNum | 従業員名 |
---|---|---|
9812345098 | AB05 | 示されている |
9876512345 | AB06 | ロザリン |
199937890 | AB07 | James |
上に示した例では、EmpSSN と EmpNum 名がスーパーキーです。
主キーとは
主キー in DBMS テーブル内のすべての行を一意に識別するテーブル内の列または列のグループです。 主キーは重複することはできません。つまり、同じ値がテーブル内に複数回出現することはできません。 テーブルには複数の主キーを持つことはできません。
主キーを定義するためのルール:
- XNUMX つの行に同じ主キー値を含めることはできません
- すべての行に主キー値が必要です。
- 主キーフィールドを null にすることはできません。
- 外部キーがその主キーを参照している場合、主キー列の値は変更または更新できません。
例:
次の例では、 StudID
は主キーです。
スタッドID | ロール番号 | 名 | 苗字 | メールアドレス |
---|---|---|---|---|
1 | 11 | トム | 価格 | abc@gmail.com |
2 | 12 | Nick | ライト | メールアドレス |
3 | 13 | ダナ | ネイサン | mno@yahoo.com |
代替キーとは何ですか?
代替キー テーブル内のすべての行を一意に識別するテーブル内の列または列のグループです。 テーブルには主キーとして複数の選択肢がありますが、主キーとして設定できるのは XNUMX つだけです。 主キーではないすべてのキーは代替キーと呼ばれます。
例:
このテーブルでは、StudID、Roll No、Email が主キーになる資格があります。ただし、StudID が主キーであるため、Roll No、Email が代替キーになります。
スタッドID | ロール番号 | 名 | 苗字 | メールアドレス |
---|---|---|---|---|
1 | 11 | トム | 価格 | abc@gmail.com |
2 | 12 | Nick | ライト | メールアドレス |
3 | 13 | ダナ | ネイサン | mno@yahoo.com |
候補キーとは何ですか?
候補キー SQL の は、テーブル内のタプルを一意に識別する一連の属性です。 候補キーは、重複する属性を持たないスーパー キーです。 主キーは候補キーから選択する必要があります。 すべてのテーブルには少なくとも XNUMX つの候補キーが必要です。 テーブルには複数の候補キーを含めることができますが、主キーは XNUMX つだけです。
候補キーのプロパティ:
- 一意の値が含まれている必要があります
- SQL の候補キーには複数の属性がある場合があります
- Null値を含めることはできません
- 一意性を確保するために、最小限のフィールドを含める必要があります
- テーブル内の各レコードを一意に識別する
候補キーの例: 指定されたテーブルでは、Stud ID、Roll No、および電子メールが候補キーであり、テーブル内の学生レコードを一意に識別するのに役立ちます。
スタッドID | ロール番号 | 名 | 苗字 | メールアドレス |
---|---|---|---|---|
1 | 11 | トム | 価格 | abc@gmail.com |
2 | 12 | Nick | ライト | メールアドレス |
3 | 13 | ダナ | ネイサン | mno@yahoo.com |
外部キーとは何ですか?
外部キー XNUMX つのテーブル間の関係を作成する列です。 外部キーの目的は、データの整合性を維持し、エンティティの XNUMX つの異なるインスタンス間のナビゲーションを可能にすることです。 別のテーブルの主キーを参照するため、XNUMX つのテーブル間の相互参照として機能します。
例:
部門コード | 部署名 |
---|---|
001 | 科学 |
002 | 英語 |
005 | パソコン |
教師ID | 名前 | 名前 |
---|---|---|
B002 | デイビッド | ワーナー |
B017 | サラ | ヨセフ |
B009 | マイク | ブラントン |
dbms のこのキーの例では、学校に「teach」と「Department」という XNUMX つのテーブルがあります。 ただし、どの検索がどの部門で行われているかを確認する方法はありません。
このテーブルでは、Deptcode の外部キーを Teacher 名に追加して、XNUMX つのテーブル間にリレーションシップを作成できます。
教師ID | 部門コード | 名前 | 名前 |
---|---|---|---|
B002 | 002 | デイビッド | ワーナー |
B017 | 002 | サラ | ヨセフ |
B009 | 001 | マイク | ブラントン |
この概念は参照概念としても知られています Integrity.
複合キーとは何ですか?
複合キー には、特定のレコードを一意に認識できるようにする XNUMX つ以上の属性があります。 各列はデータベース内でそれ自体が一意ではない可能性があります。 ただし、他の列と組み合わせると、複合キーの組み合わせは一意になります。 データベース内の複合キーの目的は、テーブル内の各レコードを一意に識別することです。
例:
注文番号 | 製品ID | 商品名 | 数量 |
---|---|---|---|
B005 | JAP102459 | マウス | 5 |
B005 | DKT321573 | USB | 10 |
B005 | OMG446789 | 液晶モニター | 20 |
B004 | DKT321573 | USB | 15 |
B002 | OMG446789 | レーザープリンタ | 3 |
この例では、OrderNo と ProductID はレコードを一意に識別しないため、主キーにすることはできません。 ただし、注文 ID と製品 ID の複合キーは、各レコードを一意に識別するため使用できます。
複合キーとは何ですか?
複合キー テーブル内の行を一意に識別する XNUMX つ以上の列の組み合わせです。 列の組み合わせは一意性を保証しますが、個々の一意性は保証されません。 したがって、これらを組み合わせて、テーブル内のレコードを一意に識別します。
複合キーと複合キーの違いは、複合キーのどの部分も外部キーになり得るが、複合キーは外部キーの一部である場合とそうでない場合があるということです。
代理キーとは何ですか?
代理キー 各レコードを一意に識別することを目的とした人工キーは、代理キーと呼ばれます。 dbms のこの種の部分キーは、自然主キーがない場合に作成されるため、一意です。 これらはテーブル内のデータに何の意味も与えません。 DBMS のサロゲート キーは通常、整数です。 代理キーは、レコードがテーブルに挿入される直前に生成される値です。
名前 | 苗字 | 始まる時間 | 終了時間 |
---|---|---|---|
アン | Smith | 09:00 | 18:00 |
ジャック | フランシス | 08:00 | 17:00 |
アンナ | マクリーン | 11:00 | 20:00 |
示されている | ウィラム | 14:00 | 23:00 |
上記の例では、異なる従業員のシフトのタイミングを示しています。この例では、各従業員を一意に識別するために代理キーが必要です。
代理キーの入力 SQL 許可されるのは次の場合です
- 主キーのパラメータを持つプロパティはありません。
- テーブル内で主キーが大きすぎるか複雑すぎる場合。
主キーと外部キーの違い
主キーと外部キーの主な違いは次のとおりです。
主キー | 外部キー |
---|---|
テーブル内のレコードを一意に識別するのに役立ちます。 | これは、別のテーブルの主キーとなるテーブル内のフィールドです。 |
主キーは決して null 値を受け入れません。 | 外部キーは複数の null 値を受け入れることができます。 |
主キーはクラスター化インデックスであり、DBMS テーブル内のデータはクラスター化インデックスの順序で物理的に編成されます。 | 外部キーでは、クラスター化または非クラスター化のインデックスを自動的に作成することはできません。ただし、外部キーに手動でインデックスを作成することはできます。 |
テーブルには XNUMX つの主キーを含めることができます。 | テーブルには複数の外部キーを含めることができます。 |
まとめ
- DBMS のキーとは: DBMS のキーは、リレーション (テーブル) 内の行 (タプル) を識別するのに役立つ属性または属性のセットです。
- キー入力 RDBMS テーブル間の関係を確立し、テーブル間の関係を識別できるようにします。
- DBMS のキーには、スーパー キー、主キー、候補キー、代替キー、外部キー、複合キー、複合キー、および代理キーの XNUMX 種類があります。
- スーパー キーは、テーブル内の行を識別する単一または複数のキーのグループです。
- テーブル内のすべての行を一意に識別するのに役立つテーブル内の列または列のグループは、主キーと呼ばれます。
- DBMS 内の主キーではないさまざまなキーはすべて代替キーと呼ばれます。
- 繰り返し属性のないスーパーキーを候補キーと呼びます
- 複合キーは、特定のレコードを一意に認識できるようにする多くのフィールドを持つキーです。
- テーブル内の行を一意に識別するための複数の属性を持つキーを複合キーと呼びます。
- 各レコードを一意に識別することを目的とした人工キーは、代理キーと呼ばれます。
- 主キーは決して null 値を受け入れませんが、外部キーは複数の null 値を受け入れることができます。