ITパスポート

主キー

リレーショナルデータベース(RDB)の表(テーブル)で、各行(レコード)を他と重複しない形で特定するために設定する列、または列の組合せです。

用語解説

主キーとは

主キー(プライマリキー)とは、リレーショナルデータベースのテーブルにおいて、各レコード(行)を一意に識別するための項目です。

主キーを設定すると、データの中から特定の1行を確実に特定できます。

主キーの条件

主キーには次の条件が必要です。

条件 内容
一意性 同じ値が複数の行に存在しないことです。
非NULL 値が空(Null)にならないことです。

主キーの値が同じ行は存在できないため、主キーの値を指定すると対象の行を1行に特定できます。

主キーの具体例

社員テーブルの例です。

社員番号 氏名 部署
001 田中太郎 営業部
002 鈴木花子 総務部
003 佐藤一郎 開発部

この場合、社員番号は一意性と非NULLを満たすため主キーとして設定できます。

一方、氏名は同姓同名があり得るため、一意性を満たさず主キーに不向きです。

複合主キーの例

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

これを複合主キー(複合キー)と呼びます。

履修テーブルの例です。

学生番号 科目コード 成績
S001 M101 A
S001 M102 B
S002 M101 A

この例では、学生番号だけでは同じ学生の複数行があり一意になりません。

科目コードだけでも同じ科目を複数学生が履修するため一意になりません。

学生番号と科目コードの組み合わせにより、各行を一意に識別できます。

主キーが重要な理由

データの重複登録を防ぐ

主キーの一意性により、同じ主キー値の行を登録できないため、重複登録の防止につながります。

他の表から参照する基準になる

他の表は主キーを参照して、どの行と関連付くかを表します。参照する側の列は外部キーと呼ばれます。

理解のポイント

  • 主キーはテーブル内の各行を一意に識別するための列、または複数列の組み合わせです。

  • 主キーには一意性と非NULLが必要です。

  • 複合主キーは複数列の組み合わせで一意性を満たします。

  • テーブルに設定する主キーは1つです。複合主キーの場合も、主キーは1つで、その構成が複数列になります。

  • 主キーはテーブル同士を関連付けるときの参照元として使われます。

発展知識

関連用語

用語 概要
外部キー(Foreign Key) 他のテーブルの主キーを参照し、テーブル間の関連を定義する列です。
候補キー 主キーになり得る、一意性と非NULLを満たす列(または列の組み合わせ)の集合です。
複合主キー 複数の列を組み合わせて1つの主キーとして設定したものです。
NULL 値が存在しない、または未設定である状態を表します。
一意性制約(UNIQUE制約) 列の重複を禁止する制約です。主キー以外の列にも設定できます。
正規化 データの重複や不整合を減らすためにテーブル構造を整理する手法です。