広告 データベース

複合主キーとは

複合主キー

複合主キー(英:composite primary key)とは、データベースのテーブルに設定される「主キー」を複数の項目(カラム)の組み合わせとして定義することです。

次の表は複合主キー(複合キー)のイメージ例です。「学年」「組」「出席番号」の組み合わせにより、行(レコード)を一意に特定しています。

複合キー

それでは、もう少し詳しく説明していきます。

主キーとは

主キー(英:primary key、略:PK)とは、データベースのテーブル内で行(レコード)を一意に特定するための項目(カラム)のことです。

データベースには大量のデータが保管されています。大量のデータの中から目的の行(レコード)を特定するためには、キーとなる情報が必要です。その情報が主キーです。

次の表は主キーのイメージ図です。

社員番号

社員番号を主キーとしているため、テーブル内に同じ社員番号を持つの社員を登録することはできません。(一意制約)

このように「社員番号」や「製造番号」といった重複しないユニークな値を主キーとして扱います。また一意となる項目がない場合は、一意性を確保するために「通し番号」のような項目(カラム)を新たに設ける場合もあります。

複合主キーとは

複合主キーとは、はじめに説明した通り「主キー」を複数の項目(カラム)の組み合わせとして定義することです。

例えば、次のようなテーブルがあるとします。

複合キー

上記のようなテーブルの場合、1つの項目(カラム)では行(レコード)を一意にすることができません。(学年は重複する、組も重複する、出席番号も重複する、名前は同姓同名がいる可能性がある)

一意性を確保するために「通し番号」のような項目(カラム)を新たに設けるか、複数の項目(カラム)を主キー(複合主キー)して、一意性を確保するかのどちらかです。

上記例のテーブルで複数の項目(カラム)を主キーとする場合、「学年」「組」「出席番号」を主キーにすることで、行(レコード)を一意にすることができます。(同じ学年の組に出席番号が重複する人はいない)

まとめ

主キー:レコードを一意に特定するための項目のこと

複合主キー:主キーを複数の項目に設定すること

helpful