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

主キーと外部キーの違いとは?データベース初心者向けにわかりやすく解説

主キーと外部キーの違いとは?データベース初心者向けにわかりやすく解説

結論として、主キー(Primary Key)はデータを一意に識別するための項目外部キー(Foreign Key)は別のテーブルとデータを関連付けるための項目です。どちらもデータベース設計では欠かせない重要な概念であり、IT業務でも頻繁に登場します。

主キーと外部キーとは?

主キー(Primary Key)とは

主キーとは、1件のデータを重複なく識別するためのカラムです。

主キーには次のルールがあります。

例えば社員管理テーブルでは、「社員番号」が主キーになることが一般的です。

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

社員番号が重複すると、どの社員のデータか判別できなくなるため、主キーとして管理します。

外部キー(Foreign Key)とは

外部キーとは、別のテーブルの主キーを参照してデータ同士を関連付けるカラムです。

例えば注文テーブルでは、「社員番号」を外部キーとして社員テーブルと関連付けることができます。

注文番号 社員番号(外部キー) 商品名
5001 1001 ノートPC
5002 1002 モニター

この社員番号は、社員テーブルの主キーを参照しています。

主キーと外部キーの違い

比較項目 主キー 外部キー
役割 データを一意に識別する 別テーブルと関連付ける
重複 不可 可能
NULL 不可 設計によっては可能
設定数 通常1つ 複数設定できる
参照先 自分のテーブル 他テーブルの主キー

どんな場面で使われるのか

主キーと外部キーは、ほとんどの業務システムで利用されています。

データ同士の関係を正しく管理するために必要な仕組みです。

なぜ重要なのか

主キーと外部キーを設定することで、データの整合性を保てます。

例えば存在しない社員番号で注文データを登録しようとした場合、外部キー制約によって登録を防ぐことができます。

これにより、不正なデータや入力ミスを防止できます。

初心者が混乱しやすいポイント

よくある勘違い 正しい内容
主キーと外部キーは同じもの 役割が異なる
外部キーも重複できない 同じ値を複数登録できる
外部キーは必須 設計によっては設定しないこともある
主キーは変更しても問題ない 変更すると関連データへ影響する可能性がある

実際のIT現場での利用例

例えば社員テーブルと貸与PCテーブルを管理している場合、貸与PCテーブルの社員番号を外部キーとして設定します。

これにより、「どの社員がどのPCを利用しているか」を簡単に管理できます。

また、退職した社員のデータを削除する際も、関連するデータが存在するか確認できるため、誤削除を防ぐことができます。

筆者が現場で経験したこと

運用現場で外部キー制約を設定していないシステムを担当したことがあります。

その結果、存在しない社員番号のデータが大量に登録され、データ修正に多くの時間を費やしました。

外部キー制約を設定するだけで防げたトラブルだったため、データベース設計の重要性を実感しました。

業務でよくあるトラブル

トラブル 原因
データ登録に失敗する 外部キー制約違反
削除できない 他テーブルから参照されている
重複エラー 主キーが重複している
関連データが見つからない 外部キーが正しく設定されていない

原因の切り分け

キー関連のエラーが発生した場合は、次の順番で確認します。

  1. 主キーが重複していないか確認する
  2. 外部キーが存在する主キーを参照しているか確認する
  3. 削除対象データが他テーブルから参照されていないか確認する
  4. 制約(Constraint)の設定を確認する
  5. アプリケーション側で入力値が誤っていないか確認する

GUIでの確認方法

SQL Server Management Studio(SSMS)やOracle SQL Developerなどの管理ツールでは、テーブルの設計画面から主キーや外部キーを確認できます。

ER図(Entity Relationship Diagram)が用意されている場合は、テーブル同士の関連も視覚的に把握できます。

CUI(SQL)での確認方法

SQLでは、テーブル定義を確認することで主キーや外部キーの設定を確認できます。

また、JOINを利用すると外部キーで関連付けられた複数のテーブルをまとめて検索できます。

PowerShellで確認できる内容

PowerShellではデータベースに接続し、テーブル定義や制約情報を取得できます。

定期的なチェックや監査資料の作成を自動化する際に利用されることがあります。

影響範囲を考えるポイント

新人が覚えておきたいポイント

上司へ報告するポイント

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

関連するIT用語

よくある質問(FAQ)

主キーは必ず設定する必要がありますか?

必須ではありませんが、多くの業務システムではデータを正しく管理するために設定されます。

外部キーは重複できますか?

はい。同じ社員が複数の注文を持つような場合、同じ外部キーの値を複数登録できます。

外部キーを設定しないとどうなりますか?

存在しないデータを参照できてしまうため、データの整合性が崩れる原因になります。

主キーを削除するとどうなりますか?

外部キーで参照されている場合は削除できないことがあります。また、関連するシステムへ影響する可能性があるため、慎重に対応する必要があります。

まとめ

主キー(Primary Key)はデータを一意に識別するための項目外部キー(Foreign Key)はテーブル同士を関連付けるための項目です。

主キーは「データの身分証明書」、外部キーは「テーブル同士をつなぐ橋」のような役割と考えると理解しやすくなります。

実際のIT業務では、主キーと外部キーを正しく設計・運用することで、データの重複や不整合を防ぎ、システム全体の信頼性を高められます。データベースを学び始めたばかりの方は、この2つの違いをしっかり押さえておきましょう。

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