\r\n\r\n
外部キーと主キーの主な違いは、外部キーが他のテーブルの主キーやキー候補を参照するカラムまたはカラム群であるのに対し、主キーはテーブル内の行を一意に識別するために使用できるカラムまたはカラム群であることである。
データベース内の行や行のグループを特定したり、アクセスしたりするために使用できる列や列のグループをキーと呼びます。リレーショナルデータベースにおける主キーとは、テーブル内の行を一意に識別するテーブル内のカラムの組み合わせのことである。リレーショナルデータベースにおける外部キーとは、あるテーブルのフィールドが他のテーブルの主キーと一致することである。外部キーは、テーブルを相互参照するために使用されます。
1. 概要とキーの違い 2. 外部キーとは 3. 主キーとは 4. 外部キー連結の比較表 5. まとめ
外部キーは、2つのテーブル間の参照制約である。これは、別のテーブル(被参照テーブルと呼ばれる)のカラムのセットを参照するテーブルのカラムまたはカラムのセットを識別するものである。参照先テーブルの外部キーまたはカラムは、参照先テーブルの主キーまたは候補キー(主キーとして使用可能なキー)でなければなりません。また、外部キーにより、複数のテーブルにまたがってデータを連携させることができる。したがって、外部キーは、参照するテーブルに現れない値を含むことはできません。外部キーが提供する参照は、複数のテーブルの情報を結びつけるのに役立ち、データベースの正規化には欠かせない。参照されるテーブルの複数の行は、参照されるテーブルの行を参照することができます。
図01:外部キーマッピング
ansisqlの標準では、外部キー制約は外部キーを定義します。また、テーブルを作成する際に外部キーを定義することができる。1つのテーブルが複数の外部キーを持つことができ、それらは異なるテーブルを参照することができます。
主キーとは、リレーショナルデータベースのテーブルで行を一意に定義するカラムまたはカラムの組み合わせのことである。1つのテーブルは最大で1つの主キーを持つことができます。主キーは暗黙のNOT NULL制約を強制する。したがって、主キーを持つカラムにNULL値を含めることはできません。主キーは、国民保険番号のように一意であることが保証されているテーブルの通常の属性であったり、Microsoft SQL Serverのグローバル一意識別子(GUID)のように、データベース管理システムによって生成される一意な値であったりすることがあります。
図02:主キー
また、ansisql標準の主キー制約では、主キーを定義しています。また、テーブル作成時に主キーを定義することも可能である。これに加えて、SQLでは主キーが1つ以上のカラムから構成されることができ、主キーに含まれる各カラムは暗黙的にNOT NULLと定義されます。しかし、一部のデータベース管理システムでは、主キーカラムが明示的にNULLでないことが要求されます。
外部キーと主キー | |
外部キーは、リレーショナルデータベースのテーブルのカラムまたはカラムのセットで、2つのテーブルのデータ間の関連付けを提供します。 | 主キーは、すべてのテーブルレコードを一意に識別することができる特別なリレーショナルデータベースのテーブルカラムまたは複数のカラムの組み合わせです。 |
無効 | |
外部キーはNULL値を受け入れる。 | 主キーの値を空にすることはできません。 |
キー数 | |
テーブルは、複数の外部キーを持つことができます。 | テーブルは主キーを1つだけ持つことができます。 |
リプロダクト | |
タプルは、外部キー属性に重複した値を持つことができる。 | リレーションシップ内の2つのタプルは、主キー属性の値を重複して持つことはできません。 |
外部キーと主キーの違いは、外部キーが他のテーブルの主キーや候補キーを参照するカラムまたはカラム群であるのに対し、主キーはテーブル内の行を一意に識別するために使用できるカラムまたはカラム群であることである。
1. "外部キー"ウィキペディア、ウィキメディア財団、2018年5月12日。こちらで入手可能です 2. "マスターキー"ウィキペディア, ウィキメディア財団, 2018年4月3日.こちらから入手可能です 2. "マスターキー" ウィキペディア、ウィキメディア財団、2018年4月3日。