RDBMSの代替キー(Alternate Key)とは?候補キーとの関係を具体例で解説
リレーショナルデータベース(RDBMS)を設計する際、テーブル内のレコードを一意に識別するための「キー」の概念は非常に重要です。本記事では、その中でも代替キー(Alternate Key)、別名セカンダリキー(Secondary Key)について、候補キーとの関係性も踏まえながら具体例とともに分かりやすく解説します。
代替キーとは何か?
代替キーとは、主キー(Primary Key)として選ばれなかった候補キーのことです。テーブルには、レコードを一意に識別できる属性(カラム)や属性の組み合わせが複数存在することがあります。これらを総称して候補キー(Candidate Key)と呼びます。
候補キーの中から1つが主キーとして選出されると、残りの候補キーは代替キー(またはセカンダリキー)となります。つまり、代替キーは「主キーの候補でありながら、採用されなかったキー」だと言えます。
候補キーと代替キーの関係
両者の関係を整理すると、以下のようになります。
- 候補キー: レコードを一意に識別できる属性、または属性の集合。NULL値を含まず、必ず一意な値を持つ。
- 主キー: 候補キーの中から実際に選択され、テーブルの公式な識別子として使用されるキー。
- 代替キー: 候補キーのうち、主キーに選ばれなかったもの。必要に応じて検索や参照の用途に活用できる。
例1:学生テーブルの場合
以下のような学生テーブルを考えてみましょう。
| Student_ID | Student_Enroll | Student_Name | Student_Email |
| 096 | 2717 | Manish | aaa@gmail.com |
| 055 | 2655 | Manan | abc@gmail.com |
| 067 | 2699 | Shreyas | pqr@gmail.com |
この表では、Student_ID(学籍番号)、Student_Enroll(登録番号)、Student_Email(メールアドレス)の3つが候補キーになります。いずれも学生レコードを一意に識別できるためです。氏名(Student_Name)は同姓同名の可能性があるため、候補キーにはなりません。
ここでStudent_IDを主キーとして選択した場合、残るStudent_EnrollとStudent_Emailが代替キーとなります。
例2:従業員テーブルの場合
次に、以下のような従業員テーブルを見てみましょう。
| Employee_ID | Employee_SSN | Employee_Name | Employee_Phone |
| E897 | SSN08 | Harry | 999999 |
| E856 | SSN06 | Jacob | 999899 |
| E871 | SSN09 | Amy | 999898 |
この表における候補キーは次の3つです。
- Employee_ID(従業員ID)
- Employee_SSN(社会保険番号)
- Employee_Phone(電話番号)
これらのうち、例えばEmployee_SSNを主キーとして選択したとします。すると、残りのEmployee_IDとEmployee_Phoneは、主キーの候補であったにもかかわらず採用されなかったため、代替キーと呼ばれることになります。
まとめ
代替キーは、主キーとして選ばれなかった候補キーです。データベース設計において、1つのテーブルに一意性を保証できる属性が複数存在することは珍しくありません。どのキーを主キーにするかを選ぶ際は、不変性・シンプルさ・業務上の扱いやすさなどを考慮するとよいでしょう。そして選ばれなかった候補キーは代替キーとして、検索や一意制約の追加などに活用できます。主キー・候補キー・代替キーの関係を正しく理解することは、堅牢なデータベース設計の第一歩です。
-
RDBMSの主要用語を徹底解説!データベース・主キー・外部キーの基礎知識
RDBMS(リレーショナルデータベース管理システム)には、データベース、テーブル、カラムなど、押さえておきたい重要な用語が数多くあります。ここでは、それぞれの用語の意味と役割を、具体例とともにひとつずつわかりやすく解説していきます。データベース(Database)データベースとは、「Student(学生)」や「Professors(教授)」などの複数のテーブルをまとめて管理する集合体のことです。システム全体のデータを格納する土台となる存在です。テーブル(Table)テーブルは、行(レコード)と列(カラム)で構成されるデータの集合です。例えば、学生情報を管理するテーブルは以下のようになります。S
-
RDBMSの外部キー(Foreign Key)とは?主キーとの関係を具体例で解説
外部キー(Foreign Key)とは外部キー(Foreign Key)とは、複数のテーブル同士をつなぐリンクを作成するための仕組みです。あるテーブルの列が、別のテーブルの主キー(Primary Key)を参照することで、テーブル間の関連性を表現できます。外部キーを設定することで、データベースは「参照先に存在しない値」の登録を防ぎ、データの一貫性(参照整合性)を保つことができます。ここでは、Employee(従業員)テーブルの「DeptID」を例に、外部キーの働きを見ていきましょう。テーブル例1:Employee(従業員テーブル)EmpIDEmpNameEmpAgeDeptIDテーブル例2:D