参照整合性とは
参照整合性(Referential Integrity)とは、関係
データベースにおける重要な概念の一つで、関連する複数のテーブル間でデータの一貫性を保つための制約です。具体的には、テーブル間の関連付けを定義する際に、
外部キーが参照する先のテーブルに必ず対応するデータが存在することを保証します。これにより、データの不整合や矛盾を防ぎ、
データベースの信頼性を高めることができます。
参照整合性の基本
関係
データベースでは、データはテーブル(関係変数)に格納されます。テーブル間には、データの関連を表すために
外部キーが設定されます。参照整合性は、この
外部キーと、参照先のテーブルの
主キー(または
候補キー)との間で適用される制約です。
参照整合性が有効な場合、以下のルールが適用されます。
1.
外部キーの値は、参照先のテーブルの主キー(または候補キー)の値として存在しなければならない。
2.
参照先のテーブルのデータを削除する際、そのデータが他のテーブルの外部キーによって参照されている場合、削除は原則として禁止される。
これにより、関連するテーブル間でデータの整合性が保たれ、データが不整合になるリスクを低減できます。
参照整合性の例
社員
データベースを例に考えてみましょう。
社員テーブル: 社員ID(主キー)、社員名、部署番号(外部キー)など
部署テーブル: 部署番号(
主キー)、部署名など
この場合、社員テーブルの「部署番号」は、部署テーブルの「部署番号」を参照する
外部キーとして定義されます。
参照整合性が有効な場合、
社員テーブルに新しい社員を追加する際、存在しない部署番号を登録することはできません。
部署テーブルから、社員が所属している部署を削除することはできません(参照整合性制約が連鎖削除を許可していない場合)。
参照整合性の制約
参照整合性の制約は、
データベース管理システム(RDBMS)によって強制的に適用されます。具体的には、
データ定義言語(DDL)を用いて、テーブル定義時に参照整合性制約を定義します。
制約の種類:
RESTRICT: 参照されているデータの削除や更新を禁止する最も基本的な制約です。
CASCADE: 参照されているデータが削除または更新された場合、関連するデータも連鎖的に削除または更新する制約です。
SET NULL: 参照されているデータが削除された場合、外部キーの値をNULLに設定する制約です。
NO ACTION: RESTRICTと同様に、参照されているデータの削除や更新を禁止する制約です。
制約の種類によって、参照整合性がどのように保たれるかが異なります。状況に応じて適切な制約を選択することが重要です。
参照整合性の重要性
参照整合性は、
データベースの信頼性と一貫性を維持するために非常に重要な役割を果たします。データが整合していなければ、アプリケーションが誤った動作をしたり、分析結果が歪められたりする可能性があります。参照整合性を適切に設定することで、データ品質を向上させ、システムの安定運用に貢献します。
関連事項
関係モデル: 参照整合性が適用されるデータベースのモデル。
実体完全性: テーブル内の行(レコード)を一意に識別するための制約。
主キーに関連。