高度試験午前I暗記無料で始める

主キー・外部キーとは?しゅきー・がいぶきー

主キー・外部キーとは、表の行を値だけで指せるようにするための2種類のキー。主キーは1つの表の中で行を一意に決める属性(組)で、重複する値もNULLも入れられない。外部キーは別の表の主キーを指し示す属性で、指した先に該当する行が実在していなければならない(参照制約)。

最終更新:2026-10-07

試験情報

高度試験・午前I(全区分共通)の過去問では2回出題されています(2016年度〜2022年度)。

高度試験・午前I(全区分共通)の頻出用語/午前I(全区分共通)

別名:主キー、外部キー、主キー・外部キーと参照整合性制約

この語が出る過去問を解く →

背景

関係データベースは重複を排除するために表を分けるが、分けた先の対応づけをどこかで保証しないと、参照先を失った行(存在しない顧客に紐づく注文明細など)が生まれる。これをアプリケーションの実装に任せると、経路が増えるほど抜けが出る。データベース管理システム自身が制約として違反する更新を拒む仕組みにしたのが、主キーと外部キーによる一貫性制約。

具体例

多対多の関連は、両側の表の主キーを外部キーとして持つ連関エンティティ(関連クラス)で表し、その組合せを主キーにするのが定石。PostgreSQLでもMySQLでも FOREIGN KEY … REFERENCES と宣言することで、DBMSが違反を検出してくれる。

試験での引っ掛け

制約に触れうるのは、子表への行追加・更新と、親表の行削除・キー更新の4通り。ON DELETE CASCADE を指定すると親行の削除で子行も連鎖削除され、意図せず大量の行が消える副作用がある。また外部キーはNULLを許す点が主キーと違い、「まだ割り当てていない」状態を表せる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では2回出題(2016年度〜2022年度)
  • 分野:午前I(全区分共通)
  • 制約に触れうるのは、子表への行追加・更新と、親表の行削除・キー更新の4通り。