違いシリーズ一覧に戻る
データベース

主キーと外部キーの違い

リレーショナルデータベース(RDB)でテーブルを設計する際の基本概念。主キーは「行を一意に識別する鍵」、外部キーは「他テーブルの主キーを参照する鍵」で、両者の組み合わせでテーブル間の関連を表現します。

比較表で見る違い

観点主キー外部キー
正式名称Primary Key(PK)Foreign Key(FK)
役割同一テーブル内で行を一意に識別他テーブルの主キーを参照しテーブル間関連を表現
一意性(重複)一意でなければならない重複可能
NULL許容NULL不可NULL可(参照先なしを許容)
本数1テーブルに1つ(複合可)1テーブルに複数設定可

それぞれの詳しい解説

A主キー(Primary Key)

テーブル内の各行を一意に識別するための列または列の組合せ。値の重複もNULLも許されず、1テーブルに1つだけ設定します。複数列の組合せで主キーとする「複合主キー」も可能です。

  • 行を一意に識別(重複・NULL不可)

  • 1テーブルに1つだけ

  • 複数列の組合せ(複合主キー)も可

B外部キー(Foreign Key)

他テーブル(または同一テーブル)の主キーを参照する列。値は参照先の主キーに存在しなければならず、これにより参照整合性が保たれます。重複もNULLも許容され、1テーブルに複数設定できます。

  • 他テーブルの主キーを参照

  • 参照整合性制約により不整合を防ぐ

  • 重複・NULL許容、複数設定可

試験対策のポイント

「主キー=一意・NULL不可」「外部キー=他テーブルの主キーを指す・重複NULL可」。両者で参照整合性を保つのがRDBの基本。

理解度チェック(3問)

Q1. 主キーの説明として最も適切なものはどれか。

  1. 1他のテーブルの主キーを参照する列
  2. 2テーブルの行を一意に識別するための列で、NULLや重複は許されない
  3. 3テーブル内のすべての列の組合せ
  4. 4インデックスのみが定義された列
解答・解説を見る

正解:2. テーブルの行を一意に識別するための列で、NULLや重複は許されない

主キーは行を一意に識別するための列で、値の重複もNULLも許されない。

Q2. 外部キーの主な役割として最も適切なものはどれか。

  1. 1テーブル内の重複を排除する
  2. 2テーブル間の参照整合性を保証する
  3. 3インデックスの自動作成を防止する
  4. 4データのバックアップを取得する
解答・解説を見る

正解:2. テーブル間の参照整合性を保証する

外部キーは他テーブルの主キーを参照し、参照先に存在しない値を許さないことで参照整合性を保つ。

Q3. 主キーと外部キーに関する記述として最も適切なものはどれか。

  1. 1主キーはNULL可、外部キーはNULL不可である
  2. 2主キーは重複可、外部キーは重複不可である
  3. 3主キーはNULL不可、外部キーはNULL許容できる
  4. 4主キーも外部キーも1テーブルに1つしか設定できない
解答・解説を見る

正解:3. 主キーはNULL不可、外部キーはNULL許容できる

主キーはNULL不可・重複不可で1テーブルに1つ。外部キーはNULL許容・重複可で複数設定できる。

ITパスポート 記憶定着問題で演習する