アクセスの使い方④では、③で作成したテーブルにリレーションシップを作成していきます。
リレーショナルデータベースでは、表を小分けして作成し、それらを相互に関連付けて利用する構造を持っています。
それにより、余計な入力、入力ミスを防ぎ、効率よくデータの入力や更新などができます。
ここでは、リレーションシップのメリットや種類、作成方法などを解説していきます。
目次
YouTubeで見る↓
https://youtu.be/RWzhYIsp6NU
1.リレーションシップのメリット
(1)データの自動参照
リレーションシップを作成したフィールドどうしは互いに関連づいているので、片方のテーブルのコードを入力すると、関連づいたも片方の内容を参照して表示してくれます。
例えば、商品コードを入力するだけで、商品マスターの内容を参照して、単価や画像を表示してくれます。
→
(2)データ変更の反映
データの変更をした場合、そのデータを参照しているデータをひとつずつ変更していくのは大変です。参照元のデータを1つ変更すれば、参照先の全てのデータが更新されます。
例えば、商品マスターテーブルの単価を変更すると、その参照先の単価は全て自動で更新されます。
↓ 単価を変更する
↓ 参照先の単価は自動で更新される
主テーブルと関連テーブル
2つのテーブルにリレーションシップを作成したとき、主キーが含まれているテーブルを主テーブルといい、もう一方のテーブルを関連テーブルまたはリレーションテーブルといいます。
関連付けたフィールドは、主キーに対して、外部キーといいます。
主テーブル(商品CDが主キー)
関連テーブルまたはリレーションテーブル(商品CDは外部キー)
2.リレーションシップの作成の種類
(1)自動結合
クエリを作成するときに、2つのテーブルをクエリウィンドウに表示すると、同じ名前で同じデータ型のフィールドで、さらに一方のフィールドに主キーの設定がされていると、自動的にリレーションシップが作成されます。参照整合性の設定はできません。
(2)手動結合
手動結合では、リレーションシップウィンドウで作成します。関連付けたいテーブルを表示し、関連付けたいフィールドのデータ型が同じであればリレーションシップを作成できます。データ型が同じであればいいので、フィールド名に違いがあっても作成ができてしまいます。また、参照整合性の設定ができるので、手動結合がおすすめです。
3.参照整合性の設定とは
リレーションシップの作成をする場合、参照整合性の設定をするとより矛盾のないデータ管理を行うことができます。
例えば、主テーブルで主キーに登録されていないコードは、外部テーブルで入力することができません。
外部テーブルで、入力されているコードを勝手に主テーブルで変更したり削除したりすることもできません。それにより、ふたつのテーブルの参照整合性を保つことができます。
(1)入力の制限
T商品マスターの商品CDに登録されていない商品CDは、T売上データで勝手に入力することはできません。
主テーブル
関連テーブル
←✖999は入力できません!
※主テーブルにない「999」は、参照整合性の設定をしていると、入力はできません。
(2)更新の制限
T売上データの商品CDで既に入力されている商品CDを、主テーブルの商品マスターで変更することはできません。
関連テーブル
←商品CD「102」は入力されている
主テーブル
←商品CD「102」を「600」に変更するとエラーメッセージが表示されます
ココがポイント
ただし、主テーブルのデータの更新に伴って、関連テーブルのデータも更新したいという場合には、《フィールドの連鎖更新》を設定することにより、更新可能になります。
(3)削除の制限
T売上データの商品CDで既に入力されている商品CDを、主テーブルの商品マスターで削除することはできません。
関連テーブル
←商品CD「102」は入力されている
主テーブル
↓
ココがポイント
ただし、主テーブルのレコードの削除に伴って、関連テーブルのレコードも削除したいという場合には、《レコードの連鎖削除》を設定することにより、レコード削除が可能になります。
4.リレーションシップの手動作成の方法
リレーションシップの作成には、クエリを作成するときに自動で作られる自動作成と、リレーションシップウィンドウで作成する手動作成があります。
ここでは、リレーションシップの手動作成の方法について説明していきます。
「Accessの使い方①」で作成した4つのテーブルにリレーションシップを作成していきます。
①《データベースツール》タブー《リレーションシップ》グループー《リレーションシップ》をクリック
②《リレーションシップツール》《デザイン》タブー《リレーションシップ》グループー《テーブルの追加》をクリック
③4つのテーブルをドラッグして追加をクリック。
4つのテーブルのフィールドリストが表示されます。
④T客様マスターの「担当者CD」からT担当者マスターの「担当者CD」までドラッグします。
ドラッグすると、《リレーションシップ》ウィンドウが表示されるので、《参照整合性》に☑をしてOKをクリック。
2つのフィールドの間が線で結ばれます。この線を「結合線」といいます。
結合線の主キーが設定されているフィールドには「1」と表示され、外部キーのフィールドには「∞」が表示されます。
⑤同じようにして、主キーが設定されている「お客様CD」や「商品CD」もドラッグして、作成していきます。
結合するフィールドどうしをドラッグしやすいように、フィールドリストは移動して並べ替えておきます。
もし、同じように作成していらっしゃる方で、Tお客様マスターの「お客様CD」とT売上データの「お客様CD」の参照整合性が設定できない場合→
アクセスの使い方②の最後に、Tお客様マスターのテーブルに、「お客様CD」の「1010」というデータを1件、手入力しています。
この部分を省略していますと参照整合性の設定はできません。
アクセスの使い方③でインポートするT売上データには、「お客様CD」の「1010」が入力されているため、矛盾が生じるためです。
5.まとめ
まとめ
リレーションシップは、作成したら必ず上書き保存をしてから、閉じましょう。
リレーションシップの作成をするときには、テーブルは全て閉じてから作成しましょう。
開いていると次のようなメッセージが表示され、作成できません。一度テーブルを閉じて作成しましょう。