サイトアイコン プログラマー(PG)・システムエンジニア(SE)になるための入門講座

外部キーとは?IT初心者向けに主キーとの違い・役割・データベースで使われる場面をわかりやすく解説

外部キーとは?IT初心者向けに主キーとの違い・役割・データベースで使われる場面をわかりやすく解説

外部キー(Foreign Key)とは、別のテーブルの主キーを参照し、テーブル同士を関連付けるための項目です。

データベースでは、社員情報と勤怠情報、顧客情報と注文情報など、複数のテーブルを結び付けるために利用されています。

初心者は「社員番号を使って社員テーブルと勤怠テーブルをつなぐ仕組み」と考えると理解しやすいでしょう。

外部キーとは

外部キー(Foreign Key)は、他のテーブルにある主キー(Primary Key)を参照する項目です。

外部キーを設定することで、テーブル同士の関連性を保ち、不正なデータの登録を防ぐことができます。

例えば、社員テーブルと勤怠テーブルは社員番号を使って関連付けられます。

社員テーブルの例

社員番号(主キー) 氏名 部署
1001 山田 太郎 営業部
1002 佐藤 花子 総務部

勤怠テーブルの例

勤怠ID(主キー) 社員番号(外部キー) 勤務日
1 1001 2026/07/01
2 1002 2026/07/01

勤怠テーブルには社員名ではなく社員番号が保存されており、社員テーブルと関連付けることで社員情報を取得できます。

なぜ外部キーが重要なのか

もし存在しない社員番号を勤怠テーブルへ登録できてしまうと、どの社員の勤怠なのか分からなくなります。

外部キーを設定することで、社員テーブルに存在する社員番号だけを登録できるため、データの整合性を維持できます。

また、データの重複を減らし、効率的なデータ管理にも役立ちます。

主キーとの違い

項目 主キー 外部キー
役割 データを一意に識別する 他のテーブルと関連付ける
重複 不可 可能
NULL 不可 許可される場合がある
1テーブル内の数 1つだけ 複数設定できる

外部キーが使われる場面

システム 関連付ける内容
社員管理 社員情報と勤怠情報
販売管理 商品情報と受注情報
顧客管理 顧客情報と注文履歴
在庫管理 商品情報と在庫情報
ECサイト 注文情報と配送情報

IT現場でよくある利用例

実際のIT現場での経験談

データ移行後に勤怠データが表示されない障害が発生したことがありました。

調査すると、社員テーブルには存在しない社員番号が勤怠テーブルへ登録されており、外部キー制約によってデータ登録が失敗していました。

また、社員情報を削除した際に関連する勤怠データが残ってしまい、画面でエラーになったケースも経験しています。

外部キーはデータの関連性を維持するために欠かせない仕組みです。

業務でよくあるトラブル

原因の切り分け

確認項目 確認内容
親テーブル 主キーのデータが存在するか
子テーブル 外部キーの値が正しいか
制約 外部キー制約が設定されているか
権限 更新・削除権限があるか
ログ SQLエラーが記録されていないか

確認する順番

  1. 親テーブルに対象データが存在するか確認する
  2. 外部キーの値を確認する
  3. 外部キー制約を確認する
  4. SQLエラーを確認する
  5. データベースログを確認する
  6. アプリケーションログを確認する

Windowsでログを確認する方法

イベントビューアー

  1. スタートメニューを右クリックする
  2. 「イベント ビューアー」を開く
  3. 「Windows ログ」を選択する
  4. 「アプリケーション」を開く
  5. データベース関連のエラーを確認する

データベース製品の専用ログもあわせて確認すると、外部キー制約エラーの原因を特定しやすくなります。

コマンドプロンプトで確認できる内容

通信確認

ping

データベースサーバーとの通信を確認できます。

名前解決確認

nslookup

サーバー名が正しく名前解決されるか確認できます。

PowerShellで確認できる内容

Test-NetConnection

データベースサーバーとの通信状況を確認できます。

Get-Service

データベースサービスが起動しているか確認できます。

Get-WinEvent

イベントログを確認できます。

GUIで確認する方法

CUIで確認する方法

確認結果の見方

結果 判断
外部キー制約エラー 親テーブルのデータを確認する
親データなし 先に親テーブルへ登録する
削除エラー 関連データが存在する可能性がある
サービス停止 データベースサービスを確認する

初心者がやりがちなミス

上司へ報告するポイント

エスカレーションするタイミング

応用知識

外部キーでは、親テーブルのデータが削除されたときの動作を設定できます。

設定 動作
RESTRICT 関連データがある場合は削除を禁止する
CASCADE 親データの削除に合わせて子データも削除する
SET NULL 子テーブルの外部キーをNULLにする
NO ACTION 制約違反があればエラーにする

どの動作を採用するかは、業務要件やデータ管理方針に応じて決定されます。

関連するIT用語

よくある質問(FAQ)

外部キーは必ず設定しなければいけませんか?

必須ではありませんが、データの整合性を保つため、多くの業務システムでは設定されています。

外部キーは重複しても問題ありませんか?

はい。同じ社員番号に複数の勤怠データが存在するように、外部キーは重複して登録できます。

外部キー制約エラーとは何ですか?

存在しない主キーを参照しようとした場合や、関連データが残っている状態で親データを削除しようとした場合に発生するエラーです。

まとめ

外部キーとは、他のテーブルの主キーを参照してテーブル同士を関連付けるための項目です。データの整合性を保ち、重複を減らし、効率的なデータ管理を実現するために欠かせない仕組みです。

IT業務では、データ登録や削除でエラーが発生した場合、「親テーブルにデータが存在するか」「外部キーの値が正しいか」「外部キー制約に問題がないか」の順番で確認すると、原因を効率よく切り分けられます。主キーとの違いを理解しておくことで、データベース設計やトラブル対応への理解がさらに深まるでしょう。

モバイルバージョンを終了