複合主キー
複合主キー(英:composite primary key)とは、データベースのテーブルに設定される「主キー」を複数の項目(カラム)の組み合わせとして定義することです。
次の表は複合主キー(複合キー)のイメージ例です。「学年」「組」「出席番号」の組み合わせにより、行(レコード)を一意に特定しています。
主キーとは
主キー(英:primary key、略:PK)とは、データベースのテーブル内で行(レコード)を一意に特定するための項目(カラム)のことです。
データベースのテーブルには、大量のデータが保管されています。大量データの中から目的の行(レコード)を特定するためには、キーとなる情報が必要です。その情報が主キーです。
次の表は主キーのイメージ図です。
社員番号を主キーとしているため、テーブル内に同じ社員番号を持つの社員を登録することはできません。(一意制約)
このように「社員番号」や「製造番号」といった重複しないユニークな値を主キーとして扱います。また一意となる項目がない場合は、一意性を確保するために「通し番号」のような項目(カラム)を新たに設ける場合もあります。
複合主キーとは
複合主キーとは、はじめに説明した通り「主キー」を複数の項目(カラム)の組み合わせとして定義することです。
例えば、次のようなテーブルがあるとします。
上記のようなテーブルの場合、1つの項目(カラム)では行(レコード)を一意にすることができません。(学年は重複する、組も重複する、出席番号も重複する、名前は同姓同名がいる可能性がある)
一意性を確保するために「通し番号」のような項目(カラム)を新たに設けるか、複数の項目(カラム)を主キー(複合主キー)して、一意性を確保するかのどちらかです。
上記例のテーブルで複数の項目(カラム)を主キーとする場合、「学年」「組」「出席番号」を主キーにすることで、行(レコード)を一意にすることができます。(同じ学年の組に出席番号が重複する人はいない)
まとめ
主キー:レコードを一意に特定するための項目のこと
複合主キー:主キーを複数の項目に設定すること