RDBMSにおける候補キー(Candidate Key)とは?主キーとの違いをわかりやすく解説
リレーショナルデータベース(RDBMS)において、各テーブルに設定できる主キー(Primary Key)は1つだけです。しかし、1つのリレーション(テーブル)には、1つ以上の候補キー(Candidate Key)が存在する場合があります。その候補キーの中から実際に主キーとして選ばれたものが「主キー」となります。
すべての候補キーは主キーとしての資格を備えているため、主キーの候補となるキーのことを「候補キー(Candidate Key)」と呼びます。
候補キーの特徴
候補キーには以下のような特徴があります。
- 単一カラムまたは複数カラムの組み合わせ:候補キーは、1つのカラム(列)で構成される場合もあれば、複数のカラムを組み合わせて構成される場合もあります。
- 一意性:候補キーの値は、テーブル内の各行(レコード)を一意に識別できる必要があります。
- 最小性:候補キーは「最小のスーパーキー(Super Key)」と定義されます。つまり、一意性を保ったまま、これ以上カラムを削除できない最小限のカラム構成である必要があります。
具体例
例えば、従業員情報を管理するテーブルを考えてみましょう。EmployeeID(従業員ID)とEmployeeEmail(従業員メールアドレス)は、どちらも各行を一意に識別できるため、どちらも主キーとして使用可能です。したがって、両方とも候補キーということになります。テーブルには主キーを1つしか設定できないため、この2つの中からどちらか一方を主キーとして選択することになります。
学生テーブルの例
次に、学生情報のテーブルで確認してみましょう。
| Student_ID | Student_Enroll | Student_Name | Student_Email |
| S02 | 4545 | Dave | ddd@gmail.com |
| S34 | 4541 | Jack | jjj@gmail.com |
| S22 | 4555 | Mark | mmm@gmail.com |
上記のテーブルでは、Student_ID、Student_Enroll、Student_Emailの3つが候補キーです。これらはいずれも学生のレコードを一意に識別できるため、候補キーとみなされます。一方、Student_Nameは同名の学生が存在する可能性があるため、一意性を保証できず、候補キーにはなりません。
このように、候補キーの中から1つを主キーとして選び、残りの候補キーは代替キー(Alternate Key)として扱われます。データベース設計の際には、どのキーを主キーとして選択するかが重要なポイントとなります。
-
RDBMSの主要用語を徹底解説!データベース・主キー・外部キーの基礎知識
RDBMS(リレーショナルデータベース管理システム)には、データベース、テーブル、カラムなど、押さえておきたい重要な用語が数多くあります。ここでは、それぞれの用語の意味と役割を、具体例とともにひとつずつわかりやすく解説していきます。データベース(Database)データベースとは、「Student(学生)」や「Professors(教授)」などの複数のテーブルをまとめて管理する集合体のことです。システム全体のデータを格納する土台となる存在です。テーブル(Table)テーブルは、行(レコード)と列(カラム)で構成されるデータの集合です。例えば、学生情報を管理するテーブルは以下のようになります。S
-
RDBMSの外部キー(Foreign Key)とは?主キーとの関係を具体例で解説
外部キー(Foreign Key)とは外部キー(Foreign Key)とは、複数のテーブル同士をつなぐリンクを作成するための仕組みです。あるテーブルの列が、別のテーブルの主キー(Primary Key)を参照することで、テーブル間の関連性を表現できます。外部キーを設定することで、データベースは「参照先に存在しない値」の登録を防ぎ、データの一貫性(参照整合性)を保つことができます。ここでは、Employee(従業員)テーブルの「DeptID」を例に、外部キーの働きを見ていきましょう。テーブル例1:Employee(従業員テーブル)EmpIDEmpNameEmpAgeDeptIDテーブル例2:D