Skip to the content.

まず結論

主キーは、表の中の1行を一意に識別するための項目です。

外部キーは、別の表の主キーなどを参照して、表同士の関係を表す項目です。

SG試験では、次のように切り分けると分かりやすいです。

  • 主キー:この表の中で、どの行かを特定する
  • 外部キー:別の表とつながるために使う

例えば、顧客表の「顧客ID」は主キーになり、注文表の「顧客ID」は外部キーになります。


直感的な説明

主キーは、その表の中での名札のようなものです。

例えば、顧客表に次のようなデータがあるとします。

顧客ID 顧客名
C001 山田さん
C002 佐藤さん

このとき、顧客IDがあれば「どの顧客か」を一意に特定できます。

一方、外部キーは、別の表へのリンクのようなものです。

注文表に次のようなデータがあるとします。

注文ID 顧客ID 注文日
O001 C001 2026-04-01
O002 C002 2026-04-02

注文表の顧客IDを見ると、その注文がどの顧客のものか分かります。

このように、外部キーは別の表と関係づけるために使われます。


定義・仕組み

主キーと外部キーを整理すると、次のようになります。

用語 意味
主キー 表の行を一意に識別する項目 顧客表の顧客ID
外部キー 別の表との関係を表す項目 注文表の顧客ID

主キーには、基本的に次の特徴があります。

  • 同じ値が重複しない
  • 行を一意に識別できる
  • 空の値にしない

外部キーには、次の特徴があります。

  • 別の表の主キーなどを参照する
  • 表同士の関係を表す
  • データの整合性を保つために使われる

例えば、注文表の顧客IDに「C999」と入力されているのに、顧客表にC999の顧客が存在しないと、注文が誰のものか分からなくなります。

外部キーを使うことで、このような不整合を防ぎやすくなります。


どんな場面で使う?

主キーと外部キーは、関係データベースで表を設計するときに使われます。

特に、次のような場面で重要です。

  • 表の中の1行を一意に特定する
  • 表同士の関係を表す
  • 重複データを減らす
  • データの整合性を保つ
  • ER図やデータモデルを実際の表設計につなげる

例えば、注文表に顧客名や住所を毎回書くと、同じ顧客情報が何度も重複します。

そこで、顧客表を分けて、注文表には顧客IDだけを持たせます。

このとき、顧客表の顧客IDは主キー、注文表の顧客IDは外部キーとして使われます。


ER図との関係

ER図では、エンティティ同士の関係を整理します。

例えば、

  • 顧客は注文する
  • 1人の顧客は複数の注文を行う
  • 1つの注文は1人の顧客に対応する

という関係を表します。

この関係を関係データベースで実装するときに、主キーと外部キーが使われます。

ER図で見るもの DB設計で対応するもの
エンティティ
属性
リレーションシップ 主キー・外部キーによる関係

ER図は「関係を整理する図」、主キー・外部キーは「その関係を表で実現する仕組み」と考えると分かりやすいです。


よくある誤解・混同

誤解1:主キーは名前や住所でもよい

主キーは、行を一意に識別できる必要があります。

名前は同姓同名があり得ますし、住所も変わることがあります。

そのため、主キーには顧客IDや社員番号のように、重複せず変わりにくい項目を使うことが多いです。


誤解2:外部キーは必ず別名でなければならない

外部キーは、別の表の主キーを参照する項目です。

同じ名前になることもあります。

例えば、顧客表の主キーが「顧客ID」で、注文表の外部キーも「顧客ID」という形です。

名前が同じかどうかより、別の表との関係を表しているかが重要です。


誤解3:外部キーは行を一意に識別するもの

行を一意に識別するのは主キーです。

外部キーは、別の表との関係を表すものです。

注文表の顧客IDは、同じ顧客が複数回注文すれば何度も出てきます。

そのため、注文表の顧客IDだけでは注文の1行を一意に特定できません。

注文表では、注文IDが主キーになることが多いです。


主キー・外部キー・候補キーの違い

主キーと合わせて、候補キーという用語も出てくることがあります。

用語 意味
候補キー 行を一意に識別できる候補となる項目
主キー 候補キーの中から代表として選ばれたもの
外部キー 別の表を参照し、表同士の関係を表すもの

例えば、社員表で「社員番号」と「メールアドレス」がどちらも重複しない場合、どちらも候補キーになり得ます。

その中から、社員番号を主キーとして選ぶ、というイメージです。


まとめ(試験直前用)

主キーは、表の1行を一意に識別する項目です。

外部キーは、別の表と関係づけるための項目です。

試験直前は、次の3点で判断しましょう。

  • 主キー=この表の行を特定する
  • 外部キー=別の表との関係を示す
  • ER図の関係を、DB上で実現するのが主キー・外部キー

迷ったときは、

この表の中で1行を選ぶなら主キー。
別の表につなげるなら外部キー。

と押さえると、選択肢を切り分けやすくなります。