参照整合性は、リレーショナルデータベース管理システムのデータベース機能です。 これにより、ユーザーまたはアプリケーションが不正確なデータを入力したり、存在しないデータを指し示したりするのを防ぐための制約を適用することにより、データベース内のテーブル間の関係が正確なまま維持されます。
データベースは、テーブルを使用してそれらの情報を整理します。 Excelなどのスプレッドシートに似ていますが、上級ユーザーにはさらに優れた機能を備えています。 データベースは、主キーと外部キーを使用して機能し、テーブル間の関係を維持します。
主キー
データベーステーブルの主キーは、各レコードに割り当てられた固有の識別子です。 各テーブルには、プライマリキーとして指定された1つ以上の列があります。 各社会保障番号は一意であるため、社会保障番号は従業員のデータベースリストの主キーになります。
ただし、プライバシーの問題から、指定された会社ID番号は従業員の主キーとして機能するためのより良い選択です。 Microsoft Accessなどの一部のデータベースソフトウェアでは、主キーが自動的に割り当てられますが、ランダムキーには意味がありません。 レコードに意味のあるキーを使用する方がよいでしょう。 参照整合性を強制する最も簡単な方法は、主キーの変更を許可しないことです。
外部キー
外部キーは、異なるテーブルの主キーと一致するテーブル内の識別子です。 外部キーは別のテーブルとの関係を作成し、参照整合性はこれらのテーブル間の関係を参照します。
あるテーブルに別のテーブルへの外部キーがある場合、参照整合性の概念では、リンクテーブルに対応するレコードがないかぎり、外部キーを含むテーブルにレコードを追加できないことが示されます。 また、カスケード更新とカスケード削除と呼ばれる手法も含まれており、リンクされたテーブルに対する変更がプライマリテーブルに確実に反映されます。
参照整合性ルールの例
2つのテーブルがある状況を考えてみましょう:従業員とマネージャー。 Employeesテーブルには、ManagersByという名前の外部キー属性があります。この属性は、Managersテーブルの各従業員のマネージャのレコードを指しています。 参照整合性には、次の3つのルールが適用されます。
- ManagedBy属性がManagersテーブルの有効なレコードを指していない限り、Employeesテーブルにレコードを追加することはできません。 参照整合性は、不正な詳細を表に挿入することを防ぎます。 参照整合性ルールを満たしていない操作は失敗します。
- Managersテーブルのレコードの主キーが変更された場合、カスケード更新を使用してEmployeesテーブルの対応するレコードがすべて変更されます。
- Managersテーブルのレコードが削除されると、カスケード削除を使用してEmployeesテーブルの対応するレコードがすべて削除されます。
参照整合性制約の利点
参照整合性を備えたリレーショナルデータベース管理システムを使用すると、いくつかの利点があります。
- 重複データの入力を防止します。
- あるテーブルが別のテーブルの存在しないフィールドを指してしまうことを防ぎます。
- "パートナー"テーブル間の一貫性を保証します。
- 別のテーブルの外部キーによって参照される値を含むレコードの削除を防止します。
- リンクされたテーブルに主キーが存在しない限り、外部キーを含むテーブルにレコードを追加できないようにします。