フリーキーズ | 独学プログラミング

外部キーとは

最終更新日

データベースにおける外部キーとは、2つのテーブルのデータ間のリンクを確立するために使用されるフィールド(またはフィールドのコレクション)です。リレーショナルデータベースでは外部キーの概念が重要な役割を果たします。他のテーブルの主キーを参照することでテーブル間の相互参照として機能し、それによってテーブル間のリンクが確立されます。

外部キーの使用例

例えば、Studentsという名前のテーブルとCoursesという名前のテーブルの2つのテーブルがあるとします。各生徒は複数のコースに登録できます。

Studentsテーブルは次のようになります。

StudentIDFirstNameLastName
1TaroYamada
2HanakoTanaka

Coursesテーブルは次のようになります。

CourseIDCourseNameTeacher
101MathMr. X
102EnglishMrs. Y

どの学生がどのコースに在籍しているかを追跡したい場合、Enrollmentsという名前の新しいテーブルを作成することになるでしょう。このテーブルにはStudentIDフィールドとCourseIDフィールドがあり、これらはそれぞれStudentsテーブルとCoursesテーブルの主キーにリンクする外部キーとなります。

Enrollmentsテーブルは以下のようなものです。

EnrollmentIDStudentIDCourseID
11101
21102
32101

このEnrollmentsテーブルでは、StudentIDStudentsテーブルのStudentIDを参照する外部キーであり、CourseIDCoursesテーブルのCourseIDを参照する外部キーとなります。

これらの外部キーの関係は、存在しない学生やコースを参照するレコードをEnrollmentsテーブルに追加できないためデータの整合性を保証します。さらにEnrollmentsテーブルで参照されている学生またはコースを削除しようとすると、データベースはデータの一貫性と整合性を維持するために阻止します。