SQL
 Computer >> コンピューター >  >> プログラミング >> SQL

RDBMSにおける複合キー(Composite Key)とは?定義と具体例を解説

複合キー(Composite Key)とは

リレーショナルデータベース(RDBMS)において、2つ以上の属性(列)を組み合わせて構成される主キーのことを複合キー(Composite Key)と呼びます。

通常、主キーはテーブル内の各行を一意に識別するための単一の列で構成されますが、1つの列だけでは一意性を保証できないケースがあります。そのような場合に、複数の列を組み合わせることで、行を確実に一意に識別できるようにするのが複合キーです。


複合キーの例1:注文テーブルの場合

例えば、「1件の注文に複数の商品が含まれる」といった状況を考えてみましょう。OrderID だけでは、同じ注文内のどの商品かを区別できません。そこで、次のように2つの列を組み合わせます。

{OrderID, ProductID}

この場合、複合キーは OrderIDProductID の組み合わせです。この2つを揃えることで、各レコードを一意に特定できます。

複合キーの例2:学生テーブルの場合

続いて、学生テーブルを用いた別の例を見てみましょう。

<Student>

StudentIDStudentEnrollNoStudentMarksStudentPercentage
S001072172257090
S002072179049080
S003072176644086

上記のテーブルでは、StudentIDStudentEnrollNo の2つの属性が主キーとして機能しています。つまり、このテーブルの主キーは2つの属性によって構成されており、これが複合キーに該当します。

まとめ

2つ以上の属性から構成される主キーのことを「複合キー」と呼びます。

複合キーを活用することで、単一の列では対応できない複雑なデータ関係でも、各行を正確に一意に識別でき、データの整合性(参照整合性)を保つことができます。テーブル設計の際には、単一の列で一意性を担保できるかを検討し、難しい場合は適切な属性の組み合わせによる複合キーの採用を検討するとよいでしょう。

  1. RDBMSの主要用語を徹底解説!データベース・主キー・外部キーの基礎知識

    RDBMS(リレーショナルデータベース管理システム)には、データベース、テーブル、カラムなど、押さえておきたい重要な用語が数多くあります。ここでは、それぞれの用語の意味と役割を、具体例とともにひとつずつわかりやすく解説していきます。データベース(Database)データベースとは、「Student(学生)」や「Professors(教授)」などの複数のテーブルをまとめて管理する集合体のことです。システム全体のデータを格納する土台となる存在です。テーブル(Table)テーブルは、行(レコード)と列(カラム)で構成されるデータの集合です。例えば、学生情報を管理するテーブルは以下のようになります。S

  2. RDBMSの外部キー(Foreign Key)とは?主キーとの関係を具体例で解説

    外部キー(Foreign Key)とは外部キー(Foreign Key)とは、複数のテーブル同士をつなぐリンクを作成するための仕組みです。あるテーブルの列が、別のテーブルの主キー(Primary Key)を参照することで、テーブル間の関連性を表現できます。外部キーを設定することで、データベースは「参照先に存在しない値」の登録を防ぎ、データの一貫性(参照整合性)を保つことができます。ここでは、Employee(従業員)テーブルの「DeptID」を例に、外部キーの働きを見ていきましょう。テーブル例1:Employee(従業員テーブル)EmpIDEmpNameEmpAgeDeptIDテーブル例2:D