人事管理システムのアプリケーション・データベースを構成する、部門、部課、社員の各テーブルについては、次のような規則が必要です。
1. 部門テーブルの部門コードは、部課テーブルから参照されている場合、削除できません。例えば部門コード「ADM」のレコードを削除するためには、部課コードのどのレコードにも、所属する部門のコードとして「ADM」が設定されていないことが必要です。そうでない場合、どの部門にも所属しない部課ができてしまいます。
2. 部課テーブルのレコードには、所属する部門のコードとして、部門テーブルに登録されているものしか設定できません。例えば部門テーブルに「XYZ」という部門コードが登録されていなければ、「XYZ」に所属する部課を追加することはできないのです。
3. 部課テーブルの部課コードは、社員テーブルから参照されている場合、削除できません。例えば部課コード「01」のレコードを削除するためには、社員テーブルのどのレコードにも、所属する部課のコードとして「01」が設定されていないことが必要です。そうでない場合、所属部課のない社員ができてしまいます。
4. 社員テーブルのレコードには、所属する部門および部課のコードの組み合わせとして、部課テーブルに登録されているものしか設定できません。例えば部課テーブルに「XYZ」部門の「01」部課が登録されていなければ、ここに所属する社員を追加することはできないのです。
参照整合性に関する規則を定義するためには、業務内容やそのデータ・モデルを理解しておく必要があります。例えば、部門テーブルと社員テーブルとの間に、参照整合性の規則は必要ありません。社員テーブルは部門テーブルではなく部課テーブルを参照しているからです。社員データは部課テーブルの内容に依存しているわけですが、間接的に部門テーブルの内容も参照していることになります。例えば「ABC」部門に部課を作らなければ、「ABC」部門のある部課に所属する社員を追加することはできません。