主キー・外部キーとは?しゅきー・がいぶきー
主キー・外部キーとは、表の行を値だけで指せるようにするための2種類のキー。主キーは1つの表の中で行を一意に決める属性(組)で、重複する値もNULLも入れられない。外部キーは別の表の主キーを指し示す属性で、指した先に該当する行が実在していなければならない(参照制約)。
最終更新:2026-10-07
この語が出る過去問を解く →背景
関係データベースは重複を排除するために表を分けるが、分けた先の対応づけをどこかで保証しないと、参照先を失った行(存在しない顧客に紐づく注文明細など)が生まれる。これをアプリケーションの実装に任せると、経路が増えるほど抜けが出る。データベース管理システム自身が制約として違反する更新を拒む仕組みにしたのが、主キーと外部キーによる一貫性制約。
具体例
多対多の関連は、両側の表の主キーを外部キーとして持つ連関エンティティ(関連クラス)で表し、その組合せを主キーにするのが定石。PostgreSQLでもMySQLでも FOREIGN KEY … REFERENCES と宣言することで、DBMSが違反を検出してくれる。
試験での引っ掛け
制約に触れうるのは、子表への行追加・更新と、親表の行削除・キー更新の4通り。ON DELETE CASCADE を指定すると親行の削除で子行も連鎖削除され、意図せず大量の行が消える副作用がある。また外部キーはNULLを許す点が主キーと違い、「まだ割り当てていない」状態を表せる。
関連用語
出た過去問
出典:平成28年度 春期 高度試験 午前Ⅰ 問9(IPA)
次の表において,“在庫”表の製品番号に定義された参照制約によって拒否される可能性がある操作はどれか。ここで,実線の下線は主キーを,破線の下線は外部キーを表す。 …
正解:“在庫”表への行追加
要点:参照制約は参照側への追加と被参照側の削除で違反しやすい
参照制約は、外部キーの値が参照先の主キーに存在することを保証する。在庫表の製品番号が製品表を参照しているので、製品表に無い製品番号を持つ行を在庫表へ追加しようとすると拒否される。参照する側への追加と、参照される側からの削除・更新が制約違反になり得る操作である。
出典:令和4年度 春期 高度試験 午前Ⅰ 問8(IPA)
出典・参考
公式シラバスの3 技術要素 > 2. データベース設計 > (2) データベースの設計に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。