Home » Access(アクセス)の使い方 » 参照整合性とは

対象:Access

Accessを使い始めた方から、
「参照整合性とは何か?」
「参照整合性は設定した方がいいのか?」
「参照整合性を設定すると何がいいのか?」
といったご質問をよくいただきます。

[スポンサードリンク]
テーブル間のリレーションを設定する[リレーションシップ]ダイアログに、[参照整合性]チェック[フィールドの連鎖更新]チェック[レコードの連鎖削除]チェックがあり、ここで参照整合性を設定します。
▼参照整合性とは
テーブル間のリレーションを無視したレコードができないようにする規則・仕組み

リレーショナルデータベースAccessでは一般的に、複数のテーブルが存在しそのテーブル間には一対多のリレーションがあります。このとき、多側テーブルに存在するレコードに、対応する一側レコードが必ず存在するのが理想的な形です。その理想的な姿が崩れないようにする規則・仕組みが参照整合性です。

実際に参照整合性を設定すると以下のような状態になります。
▼参照整合性を設定すると適用される規則
・一側テーブルに登録されていない値を、多側テーブルに入力できない
・多側テーブルにリレーションされたレコードがあると、一側テーブルのレコードを削除できない
・多側テーブルにリレーションされたレコードがあると、一側テーブルの主キーの値を変更できない

[参照整合性]チェックをOnにした上で、[レコードの連鎖削除]チェックをOnにすると、一側テーブルのレコードを削除すると、リレーションされた多側レコードも一緒に削除されるようになります。

また、[フィールドの連鎖更新]チェックをOnにすれば、一側テーブルの主キーの値を変更すると、リレーションされた多側レコードの値も同時に更新される状態となります。


...というのが参照整合性の教科書的説明ですが、Accessで業務アプリを作る場合、当初想定していなかったような業務に対応しなければならないことが、少なからず発生するのが現実ではないかと思います。例えばマスターテーブル(一側テーブル)にレコードが存在しないようなレコードを、多側テーブルに追加しなければいけないような...。
(勿論こんな状態が誤りなわけですが、こういったことが発生してくるのが実情でしょう。)
このようなときに参照整合性が設定してあると、対応が面倒になったりするかな、というのが私の個人的印象です。

参照整合性がどういうものであるか理解した上で、実際に設定するかどうかはケースバイケースで柔軟に対応するのが得策ではないでしょうか。

[スポンサードリンク]

Home » Access(アクセス)の使い方 » 参照整合性とは

「Access(アクセス)の使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.
.