⏱ 7分 ★★★★★ 頻出:高

主キーとは

一意性・NOT NULL・最小性。候補キー・スーパーキーとの違いまで完全理解

主キー=「テーブルの行を一意に特定する列」

主キー(Primary Key / PK)は、テーブルの中でどの行なのかを一意に識別するための列(または列の組み合わせ)です。

「主キーさえわかれば、その行のすべての情報を取り出せる」という保証を与えます。

主キーの3つの条件

① 一意性(ユニーク)
同じ値が2行以上に存在してはならない
→「1001の顧客」が2人いたら特定できない
② NOT NULL
NULL(不明)であってはならない
→「わからない顧客ID」では行を特定できない
③ 最小性(redundancy-free)
複合主キーの場合、列を減らしても一意性が保てるなら減らす
→ 余分な列を含まない

複合主キー

1列だけでは一意に特定できない場合、複数の列を組み合わせて主キーにします。

注文明細テーブル(order_details)
order_id(PK)product_id(PK)quantityunit_price
1001P001289,800
1001P00317,500
1002P001389,800
order_idだけでは重複、product_idだけでも重複。2列の組み合わせで初めて一意に特定できる。

候補キー・代理キーとの違い

用語説明
候補キー主キーの条件を満たす列の候補(複数ある場合も)
主キー候補キーの中から実際に採用したもの
代替キー候補キーのうち主キーにならなかったもの
代理キー意味を持たない連番(ID)を人工的に追加したもの
スーパーキー一意性を満たす列の組み合わせ(最小性不要)
「候補キー」「代替キー」「スーパーキー」の違いが午前問題に出る。候補キー=一意性+最小性、スーパーキー=一意性のみ
🧠 確認クイズ
Q1. 主キーとして選択できる列の条件として誤っているものはどれか?
Q2. 候補キーとスーパーキーの違いとして正しいのはどれか?
Q3. 注文明細テーブルで「注文ID」と「商品ID」の組み合わせを主キーとする理由は?