データベース管理システム (DBMS) は、データベース データを作成、格納、および管理するための効率的で信頼性の高い方法であるため、ビジネス、銀行、航空会社、電気通信、および大学に不可欠です。 リレーショナル データベース管理システム (RDBMS) は、特にリレーショナル データベース用に構築された高度な形式の DMBS です。
キーは、XNUMX つの異なるテーブル間のリンクを確立し、テーブル内のデータ行を一意に識別するため、リレーショナル データベース スキーマの重要なコンポーネントです。 ただし、キーには、リンクを維持するだけでなく、より具体的な重要性があります。
これは、キーがなければ複雑であり、不可能でさえあった多数の行から特定のデータを収集するのに役立ちます。 リレーショナル データベース間のリンクを効率的に確立および識別するのに役立つ XNUMX つの主キーは、主キーと外部キーです。
主要な取り組み
- 主キーは、データベース テーブル内の各レコードの一意の識別子であり、XNUMX つの行が同じ主キー値を持たないようにします。
- 外部キーは、別のテーブルの主キーを参照するテーブル内のフィールドであり、XNUMX つのテーブル間の関係を確立し、参照整合性を維持します。
- 主キーと外部キーの主な違いは、データベース内での機能であり、主キーはレコードに一意の識別子を提供します。 対照的に、外部キーは、他のテーブルの主キーを参照することによって、テーブル間の関係を作成します。
主キーと外部キー
主キーは、一意の列の選択であり、特定のテーブルの行のセットを決定します。また、候補キーと見なされる ID を持つ属性でもあります。 外部キーは の項目に表示されます。 XNUMX つの異なるテーブル間のリンクとして機能し、null 値を含むテーブル内。
テーブルをリレーショナルにすることはできません データベース 主キーのないテーブル。 主キーはデータの特定の行を一意に識別するため、XNUMX つ以上の行が同様の主キーを持つことはできません。 対照的に、外部キーは、XNUMX つの異なるテーブルのレコード間の関係を確立するために使用されます。
比較表
比較のパラメータ | 主キー | 外部キー |
---|---|---|
重複する値 | 主キーでは、XNUMX つの行が同じ値を持つことはできません。 | 外部キーにより、XNUMX つの行が同じ値を持つことができます。 |
挿入 | 主キーでは、外部キーに値がなくても値を挿入できます。 | 外部キーでは、値が主キーに存在しない場合、値を挿入できません。 |
レンジ | リレーショナル データベース テーブルの各行は、主キーを XNUMX つだけ持つことができます。 | リレーショナル データベース テーブルは、複数の外部キーを持つことができます。 |
クラスター化インデックス | デフォルトでは、主キーにはクラスター化インデックスがあります。 | 外部キーにはクラスター化インデックスがありません。 |
削除 | 値を削除する場合は、その値が外部キー参照テーブルにまだ存在しないようにする必要があります。 | 値を削除する場合は、外部キーから簡単に削除できます。 |
一時テーブル | 主キーは、一時テーブルで定義できます。 | 一時テーブルに外部キーを定義することはできません。 |
主キーとは
主キーは、テーブル内の行のセットを一意に決定する列の特定の選択を参照します。 主キーは、一意の ID を持つ単一の属性であり、候補キーとも見なされます。
主キーは重要性を特徴付けるため、主キーの値は決して変動したり変更したりしてはなりません。 データベース. そのため、値を変更すると、多くの混乱が生じます。
主キーはクラスタ インデックスです。つまり、テーブルのすべての行が並べ替えられます。 主キーは、主に一時テーブルで定義されます。
外部キーとは
外部キーは、1 つのテーブル間のリンクを提供するデータベース テーブル内の列を参照します。 テーブル 2 がテーブル XNUMX の主キーを持つ場合、この属性は外部キーです。
主キーとは異なり、外部キーには null 値を含めることができます。これは、主キーが既にこの部分の仕事を行っているため、関係の違いを識別するのに役立たないためです。 外部キーは、主キーとは異なり、重複する値を受け入れることもでき、外部キーは異なる属性を持つことができるため、データベース内に多数または複数の外部キーを持つことができます。
一時テーブルに外部キーを定義することはできません。 外部キー列に値を追加するときは、取引が主キーに存在し、外部キーから値を削除するときに制約がないことを確認する必要があります。
主キーと外部キーの主な違い
- 主キー データベース テーブル内の XNUMX つの行に重複する値を許可しないでください。 外部キー データベース テーブル内の XNUMX つの行が重複する値を持つことを許可します。
- の属性では、 主キー、外部キーの列にその値がない場合でも、値をテーブルに挿入できます。 の中に 外部キー 値が主キー データベースにない場合、テーブルに割引を挿入できません。
- A 主キー 属性は、そのテーブルに主キーの範囲を XNUMX つだけ持つことができます。 あ 外部キー 属性は、そのテーブルに多くの外部キーを持つことができます。
- 主キー クラスター化されたインデックスを持っています。つまり、データベース リレーションのすべての行が並べ替えられます。 外部キー 自動クラスター化インデックスはありませんが、手動で行うことができます。
- 主キー、取引が外部キー参照テーブルに存在しないことを確認することにより、参照テーブルから値を削除できます。 外部キーの下では、主キー参照テーブルで値がまだ最新であるかどうかは問題にならないため、問題なく値を削除できます。
- 主キー 一時テーブルで決定できます。 外部キー 一時テーブルで決定または強制することはできません。