RDBMSにおける複合キー(Composite Key)とは?定義と具体例を解説
複合キー(Composite Key)とは
リレーショナルデータベース(RDBMS)において、2つ以上の属性(列)を組み合わせて構成される主キーのことを複合キー(Composite Key)と呼びます。
通常、主キーはテーブル内の各行を一意に識別するための単一の列で構成されますが、1つの列だけでは一意性を保証できないケースがあります。そのような場合に、複数の列を組み合わせることで、行を確実に一意に識別できるようにするのが複合キーです。
複合キーの例1:注文テーブルの場合
例えば、「1件の注文に複数の商品が含まれる」といった状況を考えてみましょう。OrderID だけでは、同じ注文内のどの商品かを区別できません。そこで、次のように2つの列を組み合わせます。
| {OrderID, ProductID} |
この場合、複合キーは OrderID と ProductID の組み合わせです。この2つを揃えることで、各レコードを一意に特定できます。
複合キーの例2:学生テーブルの場合
続いて、学生テーブルを用いた別の例を見てみましょう。
<Student>
| StudentID | StudentEnrollNo | StudentMarks | StudentPercentage |
| S001 | 0721722 | 570 | 90 |
| S002 | 0721790 | 490 | 80 |
| S003 | 0721766 | 440 | 86 |
上記のテーブルでは、StudentID と StudentEnrollNo の2つの属性が主キーとして機能しています。つまり、このテーブルの主キーは2つの属性によって構成されており、これが複合キーに該当します。
まとめ
2つ以上の属性から構成される主キーのことを「複合キー」と呼びます。
複合キーを活用することで、単一の列では対応できない複雑なデータ関係でも、各行を正確に一意に識別でき、データの整合性(参照整合性)を保つことができます。テーブル設計の際には、単一の列で一意性を担保できるかを検討し、難しい場合は適切な属性の組み合わせによる複合キーの採用を検討するとよいでしょう。
-
RDBMSの主要用語を徹底解説!データベース・主キー・外部キーの基礎知識
RDBMS(リレーショナルデータベース管理システム)には、データベース、テーブル、カラムなど、押さえておきたい重要な用語が数多くあります。ここでは、それぞれの用語の意味と役割を、具体例とともにひとつずつわかりやすく解説していきます。データベース(Database)データベースとは、「Student(学生)」や「Professors(教授)」などの複数のテーブルをまとめて管理する集合体のことです。システム全体のデータを格納する土台となる存在です。テーブル(Table)テーブルは、行(レコード)と列(カラム)で構成されるデータの集合です。例えば、学生情報を管理するテーブルは以下のようになります。S
-
RDBMSの外部キー(Foreign Key)とは?主キーとの関係を具体例で解説
外部キー(Foreign Key)とは外部キー(Foreign Key)とは、複数のテーブル同士をつなぐリンクを作成するための仕組みです。あるテーブルの列が、別のテーブルの主キー(Primary Key)を参照することで、テーブル間の関連性を表現できます。外部キーを設定することで、データベースは「参照先に存在しない値」の登録を防ぎ、データの一貫性(参照整合性)を保つことができます。ここでは、Employee(従業員)テーブルの「DeptID」を例に、外部キーの働きを見ていきましょう。テーブル例1:Employee(従業員テーブル)EmpIDEmpNameEmpAgeDeptIDテーブル例2:D