最終更新日:2026年8月16日
ds database
DS検定トップ
> 外部キー(Foreign Key)とは?テーブルの関係を理解【DS検定】
まず結論
外部キー(Foreign Key)とは、別テーブルの主キーなどを参照して、テーブル同士の関係を表す列です。
DS検定では、主キー = 識別 / 外部キー = 関係と切り分けられることが重要です。
直感的な説明
顧客と注文を別テーブルで管理するとします。
顧客テーブル
| 顧客ID | 名前 |
|---|---|
| 1 | 田中 |
| 2 | 鈴木 |
注文テーブル
| 注文ID | 顧客ID |
|---|---|
| 100 | 1 |
| 101 | 2 |
注文テーブルの 顧客ID を見ると、どの顧客の注文かが分かります。
このように、別テーブルのレコードを参照するための列が外部キーです。
定義・仕組み
外部キーは、他テーブルのキーを参照してテーブル間の関係を表現する列です。
| テーブル | 列 | 役割 |
|---|---|---|
| 顧客テーブル | 顧客ID | 主キー(PK) |
| 注文テーブル | 注文ID | 主キー(PK) |
| 注文テーブル | 顧客ID | 外部キー(FK) |
参照整合性
外部キーには、参照先との整合性を守る役割があります。
例えば顧客テーブルに 顧客ID = 1, 2 しか存在しないのに、注文テーブルへ 顧客ID = 99 を登録すると、存在しない顧客を参照することになります。
外部キー制約を使うと、このような不整合を防げます。
どんな場面で使う?
外部キーは、複数テーブルの関係を表現するために使います。
例えばECサイトでは、
- 顧客テーブル
- 注文テーブル
- 商品テーブル
- 注文明細テーブル
をそれぞれ分け、外部キーでつなぎます。
これがリレーショナルデータベースの基本的な考え方です。
よくある誤解・混同
❌ 外部キー = 主キー
| 用語 | 主な役割 |
|---|---|
| 主キー | 自分のテーブルのレコードを一意に識別 |
| 外部キー | 他テーブルとの関係を表す |
❌ 外部キーは重複できない
外部キーは重複して構いません。
| 注文ID | 顧客ID |
|---|---|
| 100 | 1 |
| 101 | 1 |
1人の顧客が複数回注文することは自然なので、顧客ID = 1 が複数行に現れても問題ありません。
❌ 外部キーは必ず一意な値になる
一意性が中心となるのは主キーです。外部キーの中心的な役割は参照先との関係を示すことです。
まとめ(試験直前用)
- 外部キー = 他テーブルを参照する列
- テーブル間の関係を表す
- 参照整合性を守るために使う
- 外部キーは重複してよい
- 主キー = 識別 / 外部キー = 関係
DS検定では、この「識別」と「関係」の違いで選択肢を切りましょう。
対応スキル項目(データエンジニアリング力シート)
- データ管理
- データベース
- ★ データベースの基本概念(テーブル、主キー、外部キーなど)を理解している
- ★ データの整合性や品質を保つ仕組みを理解している
🔗 関連記事
- ACID特性とは?トランザクションの4つの性質をわかりやすく解説【基本情報技術者試験】
- コミットとロールバックとは?トランザクションを確定・取消する基本【基本情報技術者試験】
- データキューブとは?OLAP分析の基本をわかりやすく整理【DS検定】
- DFDとは?データの流れと処理を表す図【SG試験】
- データレイクとは?(DWHとの違いも整理)【DS検定リテラシー】