Access:リレーションシップの参照整合性/連鎖更新/連鎖削除とは

リレーションシップの結合設定、参照整合性・連鎖更新・連鎖削除についての解説です。

BackHomeへ BackAccessテーブルへ


参照整合性はリレーションシップのフィールド間で設定します。

参照整合性を設定すると、間違って片方のフィールドのデータを更新したり、削除したりすることを防止できます。

しかし、連鎖更新を設定すると更新が可能になり、連鎖削除を設定すると削除が可能になります。

データベースによっては参照整合性を設定した方が安全に使えることになりますが、そのかわり制約ができてしまいます。

ソフトによって検討した方がいいようです。

参照整合性の設定方法

  1. 変更する結合線をクリックし選択します。
  2. リレーションシップ ダイアログが開くので、参照整合性にチェックを入れます。
  3. 必要ならばフィールドの連鎖更新・レコードの連鎖削除にチェックを入れます。

関連する「リレーションシップとは|テーブルの設定例を解説」を参照してください。




リレーションシップの参照整合性・連鎖更新・連鎖削除について

作品データベースのリレーションシップを使います。

リボンの「データベースツール」-「リレーションシップ」をクリックし、リレーションシップを表示させます。

1)変更する結合線をクリックし選択します。選択されると線が太くなります。

2)リボンのリレーションシップの編集をクリックします。

下図のように「リレーションシップ」ダイアログが開きます。


「T_作品ジャンル」と「T_作品」のリレーションシップです。

「T_作品ジャンル」が主テーブルになっています。

参照整合性にチェックを入れると、「フィールドの連鎖更新」と「レコードの連鎖削除」が設定できるようになります。

「参照整合性とは」の説明画像


■参照整合性を設定すると

・主テーブルにないデータを、リレーションシップ先のテーブルに入力することはできません。

 → ジャンル名が入力されていなければ、作品名は入力できません。

・既に、リレーションシップ先のテーブルにデータが入力されている場合、主テーブルの主キーの値は変更できません。

 →作品名が既に入力されている場合、「T_作品ジャンル」のジャンルIDは変更できません。

・既に、リレーションシップ先のテーブルにデータが入力されている場合、主テーブルのレコードは削除できません。

 →作品名が既に入力されている場合、「T_作品ジャンル」に一致するレコードは削除できません。


■連鎖更新

・参照整合性で禁止されている、主テーブルの主キーの値の変更が可能になります。フィールドがオートナンバー型の場合は変更できません。リレーションシップ側のフィールドデータも変更されます。

→もし、「T_作品ジャンル」のジャンルIDがオートナンバー型でない場合、「T_作品ジャンル」のジャンルIDが変更可能になり、変更すると「T_作品」のジャンルIDも変更されます。


■連鎖削除

・参照整合性で禁止されている、主テーブルのレコードの削除が可能になります。リレーションシップ側のレコードも削除されます。

→「T_作品ジャンル」のレコードを削除すると、それと同じジャンルIDの「T_作品」のレコードも削除されます。





BackHomeへ BackAccessテーブルへ

Copyright(C) FeedSoft