Primary Key
主キー(プライマリキー)とは、テーブル内の各行を一意に識別する列または列の組み合わせである。NULL不可かつ一意であり、行の識別子となる。
目的
すべての行に一意な識別子を与え、正確な検索とリレーションの参照を支える。
メカニズム
主キー値は一意かつNULL不可である(NOT NULL + UNIQUE)。単一列にも複合列にもでき、通常は自動採番の整数やUUIDが使われる。クラスタードインデックスは主キー上に構築されることが多く、行データは主キー順に格納される。キーの選択は挿入性能とストレージに影響する。
ユースケース
- 行のユニーク識別
- 外部キーが参照する先
- クラスタードインデックス
- ORMエンティティの同一性
例
- 入力
id BIGSERIAL PRIMARY KEYOutputAuto-incrementing primary keyPostgreSQL
よくあるエラー
- Using a business field as the primary key (it may change)
- Use a meaningless auto-increment ID or UUID
関連用語
Foreign Key
外部キーは他のテーブルの主キーを参照する列であり、テーブル間の参照整合性を確立し、孤立した参照を防ぐ。 用語集
Index
インデックス(Index)は、クエリを高速化するために維持される補助データ構造(B+ 木、ハッシュなど)である。書き込みオーバーヘッドと引き換えに、空間で時間を買う。 用語集
JOIN
JOIN は、結合条件によって複数テーブルの行を組み合わせる SQL 操作である。内部結合、左/右/完全外部結合、交差結合などの型がある。 用語集
Normalization
データベース正規化は、テーブルを分解して冗長性と更新異常を排除するプロセスである。第一正規形からBCNF/第五正規形へと段階的に厳格になっていく。 用語集