複合主キー(composite primary key)とは?データベース設計の基本概念をわかりやすく解説
はじめに
データベース設計において、プライマリキー(primary key)は非常に重要な役割を持ちます。プライマリキーとは、テーブル内の各レコードを一意に識別するための列(カラム)を指します。通常、1つの列をプライマリキーに指定しますが、複数の列を組み合わせた複合主キーも存在します。本記事では、複合主キーの基本概念について解説します。
複合主キーとは?
複合主キーとは、2つ以上の列を組み合わせたキーのことを指します。例えば、顧客テーブルにおいて、氏名と住所の組み合わせがそれぞれ異なる顧客を一意に識別するために、氏名列と住所列を複合主キーに指定することができます。
複合主キーを使うことで、1つの列だけでは一意に識別できない場合でも、組み合わせることで一意に識別することができます。ただし、複数の列を組み合わせたキーを使う場合には、複合主キーを指定する列の順序も重要です。列の順序が異なると、別のレコードとして認識されてしまう場合があります。
複合主キーの使用例
複合主キーは、特に中間テーブルを使った多対多(n:m)の関係を表す場合によく使われます。例えば、顧客テーブルと商品テーブルを結ぶ注文テーブルを考えてみましょう。この場合、注文テーブルには、顧客IDと商品IDの組み合わせがそれぞれ異なる注文を一意に識別するための複合主キーを指定することができます。
また、複合主キーを使うことで、データベース上の重複を防ぐこともできます。例えば、学生テーブルにおいて、学籍番号と入学年度の組み合わせが一意である場合、複合主キーを指定することで、同じ学籍番号と入学年度を持つレコードを重複して登録することができなくなります。
まとめ
複合主キーは、2つ以上の列を組み合わせたキーのことであり、1つの列だけでは一意に識別できない場合でも、組み合わせることで一意に識別することができます。ただし、列の順序を重視し、適切に複合主キーを指定する必要があります。中間テーブルを使った多対多(n:m)の関係を表す場合や、データベース上の重複を防ぐ場合に、複合主キーを活用することができます。