参照整合性の例

人事管理システムのアプリケーション・データベースを構成する、部門、部課、従業員の各ファイルについては、次のような規則が必要です。

1.  部門ファイルの部門コードは、部課ファイルから参照されている場合、削除できません。例えば部門コード「ADM」のレコードを削除するためには、部課コードのどのレコードにも、所属する部門のコードとして「ADM」が設定されていないことが必要です。そうでない場合、どの部門にも所属しない部課ができてしまいます。

2.  部課ファイルのレコードには、所属する部門のコードとして、部門ファイルに登録されているものしか設定できません。例えば部門ファイルに「XYZ」という部門コードが登録されていなければ、「XYZ」に所属する部課を追加することはできないのです。

3.  部課ファイルの部課コードは、従業員ファイルから参照されている場合、削除できません。例えば部課コード「01」のレコードを削除するためには、従業員ファイルのどのレコードにも、所属する部課のコードとして「01」が設定されていないことが必要です。そうでない場合、所属部課のない従業員ができてしまいます。

4.  従業員ファイルのレコードには、所属する部門および部課のコードの組み合わせとして、部課ファイルに登録されているものしか設定できません。例えば部課ファイルに「XYZ」部門の「01」部課が登録されていなければ、ここに所属する従業員を追加することはできないのです。

参照整合性に関する規則を定義するためには、業務内容やそのデータ・モデルを理解しておく必要があります。例えば、部門ファイルと従業員ファイルとの間に、参照整合性の規則は必要ありません。従業員ファイルは部門ファイルではなく部課ファイルを参照しているからです。従業員データは部課ファイルの内容に依存しているわけですが、間接的に部門ファイルの内容も参照していることになります。例えば「ABC」部門に部課を作らなければ、「ABC」部門のある部課に所属する従業員を追加することはできません。