Foreign Key
外部キーは他のテーブルの主キーを参照する列であり、テーブル間の参照整合性を確立し、孤立した参照を防ぐ。
目的
参照整合性を保証し、関連データの一貫性を保ち、存在しない行への参照を防ぐ。
メカニズム
FOREIGN KEY (col) REFERENCES other(id)。制約:挿入/更新される外部キー値は参照先テーブルの主キーに存在する(または NULL である)必要がある。任意の ON DELETE CASCADE/SET NULL が連鎖動作を定義する。外部キーには、制約検査と JOIN を高速化するインデックスが必要。
ユースケース
- テーブル間の参照整合性
- 連鎖削除(カスケード)
- ORM のリレーションマッピング
- データ一貫性の制約
例
- 入力
FOREIGN KEY (user_id) REFERENCES users(id)OutputReferential integrity constraintForeign key
よくあるエラー
- Unindexed foreign keys lock tables during cascades
- Create an index on the foreign key column
関連用語
Primary Key
主キー(プライマリキー)とは、テーブル内の各行を一意に識別する列または列の組み合わせである。NULL不可かつ一意であり、行の識別子となる。 用語集
JOIN
JOIN は、結合条件によって複数テーブルの行を組み合わせる SQL 操作である。内部結合、左/右/完全外部結合、交差結合などの型がある。 用語集
Index
インデックス(Index)は、クエリを高速化するために維持される補助データ構造(B+ 木、ハッシュなど)である。書き込みオーバーヘッドと引き換えに、空間で時間を買う。 用語集
Normalization
データベース正規化は、テーブルを分解して冗長性と更新異常を排除するプロセスである。第一正規形からBCNF/第五正規形へと段階的に厳格になっていく。 用語集