プライマリ キーは、テーブル内の行を固有に識別する1つの列または複数の列を定義します。テーブルのプライマリ キーを定義する値の特徴は次のとおりです。
- 固有でなければならない
- 変化してはならない
- nullになることはできない
以下のテーブルに、論理的なプライマリ キーと物理的なプライマリ インデックスの違いを要約しています。
プライマリ キー | プライマリ インデックス |
---|---|
論理データ モデルの重要な構成要素。 | 論理データ モデルでは使用されない。 |
参照整合性の維持に使用。 | データの分散と取得に使用。 |
各行を識別するために固有でなければならない。 | 固有、非固有のどちらでもよい。 |
データ保全性を維持し、複数のテーブルの過去の関係を保存する場合は、値を変更してはならない。 | 値を変更できる。 |
nullになることはできない。 | nullになることができる。 |
アクセス パスを含まない。 | 最も一般的なアクセス パスを定義する。 |
参照整合性検査を実行する場合にのみ必要です。 | ほとんどの実働テーブルで定義される。(ステージング テーブルにはプライマリ インデックスを持たないものもあります。) |
データベースは、固有プライマリ インデックスまたはセカンダリ インデックスを使用してプライマリ キーを実現します。そのため、プライマリ キーがAdvanced SQL Engineによる行の分散と取得に影響する可能性があります。
プライマリ キーがテーブルのプライマリ インデックスとして使用されることが多いとしても、プライマリ インデックスとして選択する最善の列セットである場合もそうでない場合もあります。プライマリ インデックスの決定は物理データベース設計上の考慮事項に基づいて行なうべきであり、それによるとプライマリ キーの列以外の列のほうが好都合な場合もあります。
外部キーはテーブルのリレーションシップを識別します。そのリレーションシップによって、複数のテーブルのデータ値の関係のモデルが作成されます。外部キーはテーブル内の列または列の組み合わせを定義します。外部キー列は、参照先のテーブル内にプライマリ キーまたはUNIQUE代替キーとして存在していなければなりません。
Advanced SQL Engineは、プライマリ キーと外部キーを使用してテーブル間の参照整合性を維持します。外部キーは結合条件内でも使用されます。