ds database
まず結論
外部キー(Foreign Key)とは、別のテーブルの主キーを参照することでテーブル同士の関係を表す列です。
DS検定では 「データの関係性」と「参照整合性」を理解できるかが問われます。
直感的な説明
データベースでは、多くのデータが互いに関係しています。
例えば、
顧客と注文のデータを考えてみます。
顧客テーブル
顧客ID 名前
1 田中 2 鈴木
注文テーブル
注文ID 顧客ID
100 1 101 2
ここで注文テーブルの「顧客ID」は
どの顧客の注文なのか
を示しています。
このように
別のテーブルのデータを参照する列
を
外部キー(Foreign Key)
と呼びます。
定義・仕組み
外部キーとは
他のテーブルの主キーを参照することで、テーブル間の関係を表す列
です。
基本構造は次のようになります。
顧客テーブル(主キー)
顧客ID(PK) 名前
注文テーブル(外部キー)
注文ID(PK) 顧客ID(FK)
ここで
顧客テーブルの 顧客ID → 主キー
注文テーブルの 顧客ID → 外部キー
という関係になります。
この仕組みにより
テーブル同士の関係(リレーション)
を管理できます。
参照整合性
外部キーには
参照整合性(Referential Integrity)
というルールがあります。
これは
外部キーの値は、参照先テーブルに存在する値でなければならない
というルールです。
例えば
顧客テーブル
顧客ID
1 2
このとき
注文テーブル
注文ID 顧客ID
200 99
のようなデータは
存在しない顧客の注文
になるため登録できません。
どんな場面で使う?
外部キーは
データ同士の関係を管理するために使います。
代表例
ECサイト
顧客テーブル
| 顧客ID |
注文テーブル
| 注文ID | 顧客ID |
商品テーブル
| 商品ID |
注文明細テーブル
| 注文ID | 商品ID |
このように
顧客
注文
商品
などのデータを
外部キーでつなぐことで
データの関係を表現します。
これは
リレーショナルデータベースの基本構造です。
よくある誤解・混同
外部キー = 主キーではない
DS検定ではここを混同させます。
用語 役割
主キー レコードを識別 外部キー 他テーブルを参照
つまり
主キー → 自分のテーブルを識別
外部キー → 他のテーブルとの関係
です。
外部キーは重複してよい
これも試験でよく出ます。
例
注文ID 顧客ID
100 1 101 1
1人の顧客が
複数回注文することは普通なので
外部キーは
重複しても問題ありません。
DS検定の典型的なひっかけ
選択肢で
❌ 「外部キーは重複できない」
と書かれていたら誤りです。
重複できないのは
主キーです。
まとめ(試験直前用)
外部キーは 他テーブルの主キーを参照する列
テーブル間の関係を表す
参照整合性によりデータの整合性を保つ
外部キーは 重複してよい
DS検定では
主キー = 識別
外部キー = 関係
と整理しておくと選択肢を切りやすくなります。
対応スキル項目(データエンジニアリング力シート)
データ管理
データベース
★ データベースの基本概念(テーブル、主キー、外部キーなど)を理解している ★ データの整合性や品質を保つ仕組みを理解している
🔗 関連記事
- SQLインジェクションとは?仕組みと対策をやさしく理解【情報セキュリティマネジメント】
- データキューブとは?OLAP分析の基本概念を理解する【DS検定】
- データレイクとは?(DWHとの違いも整理)【DS検定リテラシー】
- データマートとは?(DWHとの違いを整理)【DS検定リテラシー】
- データウェアハウス(DWH)とは?データマートとの違いを理解する【DS検定】