
主キーとは?データベースでの役割をわかりやすく解説
データベースを使うときによく出てくる言葉に主キー(プライマリーキー)があります。これは、簡単に言うとデータを一意に識別するための特別な列のことです。例えば、生徒名簿の中の「生徒番号」が主キーになることがあります。なぜかというと、生徒番号は誰一人として同じ数字を持っていないので、その番号でその生徒だけを見つけられるからです。
主キーは必ず重複しない値(ユニーク)で、空の値があってはいけません。こうすることで、データの間違いや重複を防ぎ、正確な管理ができます。これがデータベースの土台をしっかり支える役割です。
たとえば、会社の社員データベースで「社員ID」が主キーになっている場合、社員IDがわかれば一人ひとりの情報をすぐに探せます。
まとめると、主キーは『そのテーブルの中で一つだけの、重複なしの特別な列』だと考えればわかりやすいです。
外部キーとは?主キーとどう違うの?
次に外部キー(フォーリンキー)についてお話しします。外部キーはあるテーブルの中で、別のテーブルの主キーを参照するための列です。簡単に言うと、他のテーブルのデータと関連づけをするための仕組みです。
例えば、生徒の情報を管理する「生徒」テーブルと、それぞれの生徒の試験成績を管理する「成績」テーブルがあったとします。
生徒テーブルには「生徒ID」(主キー)があり、成績テーブルにも「生徒ID」がありますが、これは成績テーブルの外部キーです。この外部キーで成績データがどの生徒のものかを示しています。
外部キーは必ずしもユニークである必要はなく、同じ値が複数行にあっても問題ありません。なぜなら、一人の生徒が複数の成績データを持つことができるからです。
また、外部キーの値は参照先の主キーと同じ値でなければならず、存在しない値を入れることはデータの整合性を壊してしまいます。
主キーと外部キーの違いを表でまとめてみよう
主キーと外部キーはどちらも大切な概念ですが、それぞれ役割や特徴が違うのでしっかり区別しましょう。下の表に違いをまとめました。
ポイント | 主キー | 外部キー |
---|---|---|
役割 | テーブル内の行(レコード)を一意に識別する | 別のテーブルの主キーを参照して関連づける |
値の重複 | 不可(一意でなければならない) | 可能(複数の行で同じ値があってもよい) |
値の存在 | 空(NULL)は不可 | 参照先が存在しない値は不可 |
役割の例 | 社員ID、生徒番号、商品コード | 注文テーブルの社員ID欄、販売記録の商品コード欄 |
なぜ主キーと外部キーが大事?データベースでの役割
主キーはテーブルの中で「誰なのか」をはっきりさせるために必ず必要です。もし主キーがなければ、同じようなデータがたくさんあってどれがどれだかわからなくなってしまいます。
一方、外部キーは複数のテーブルをつなげる役割を持ちます。これにより、複雑なデータも効率的に管理でき、例えば「この成績はどの生徒のものか?」「この注文はどの商品に対するものか?」といったことが簡単にわかるようになります。
この2つのキーがきちんと使われていることで、データベースは正しく安全に動きますし、データの整合性も保たれます。
つまり、どちらもデータを正確につなぎ、管理しやすくするために欠かせない存在なのです。
「外部キー」ってすごく面白いんですよ。実は、データベースの外部キーは“親子関係”みたいなものなんです。親テーブルの主キーを子テーブルの外部キーが参照して、データ同士の関係をつないでいるんです。これは単なるIDの数字じゃなくて、まるで家族のようにデータが紐づいているイメージ。だから、一つの生徒が複数の成績を持っていても、それらがちゃんと一人の生徒に結びついているのがわかるんです。この仕組みのおかげで、データベースには“秩序”が生まれて、混乱しないんですよ。
次の記事: 初心者でもわかる!ストアドプロシージャとビューの違い徹底解説 »