トップページ>>パソコンの勉強メニュー>>Accessのメニュー>>リレーションシップとは

リレーションシップとは


データベースファイルに構成の異なるテーブルを複数作成した場合、テーブル間にリレーションシップを定義するとデータをまとめて処理することができます。
複数のテーブルのデータを一度に表示するクエリ、フォーム、およびレポートを作成できます。
たとえば、次の指示データのフォームには、担当データ、客先データ、客先システム、指示データの4つのテーブルのデータが表示されています。
テーブル名フィールド名
担当データ担当番号、担当
客先データ客先番号、客先名
客先システムシステム番号、システム内容
指示データ下記の画面に表示されている項目のうち「担当」、「客先名」、「システム内容」以外のフィールド


データベースウィザードを使ってテーブルを作成した場合は自動的にリレーションシップが設定されます。
データベースウィザードを使わずにテーブルを作成した場合は自分でリレーションシップを設定します。
リレーションシップは、2つのテーブル間で同じ型と名前(例外もあります)のフィールドのデータを照合することにより機能します。
通常、照合フィールドは一方のテーブルの主キーと、他方のテーブルの外部キーです。
主キーは、各レコードを識別する固有の識別子となります。
上の例では、[担当番号] フィールドを使用して [担当データ] テーブルと [指示データ] テーブル間にリレーションシップを設定し、担当者の氏名とその担当者が担当した客先名を関連付けることができます。

通常、照合フィールドは一方のテーブルの主キーと、他方のテーブルの外部キーです。
上の例では主キーが指示番号、外部キーが担当番号、客先番号、システム番号となります。


リレーションシップウィンドウ

リレーションシップウィンドウ リレーションを設定するウィンドウ
メニューバーの[ツール]を選択しその中の[リレーションシップ]を選択して表示させます。
テーブルのフィールドリスト データベースに保存されているテーブルやクエリのフィールド一覧
結合線 主テーブルとリレーションテーブルのフィールド同士の結びつきを表現
結合線に表示されているは一対多リレーションシップの「一」側を、は「多」側をあらわします。
結合線をダブルクリックするとリレーションシップダイアログボックスが表示され、細かい設定を行うことができます。

リレーションシップの種類
リレーションシップには以下の3種類があります。
一対多リレーションシップ
右図の例では商品区分IDでリレーションされています。

「商品マスタ」テーブルの商品区分IDから「商品区分」テーブルの商品区分IDをみると1件のレコードに対応していますが、「商品区分」テーブルの商品区分IDから「商品マスタ」の商品区分IDをみると複数のレコードに対応します。

一対多リレーションシップは、最もよく利用されるリレーションシップです。

多対多リレーションシップ
右図の例では見積IDと商品IDでリレーションされています。

「見積データ」テーブルの見積IDから「見積明細」テーブルの見積IDをみると複数のレコードに対応しており、「商品マスタ」テーブルの商品IDから「見積明細」テーブルの見積IDをみると複数のレコードに対応しています。

多対多リレーションシップを定義するには、新規に結合テーブル(見積明細)を作成し、主キーとして「見積データ」および「商品マスタ」を参照する外部キー(見積ID、商品ID)を設定します。

外部キーは、「見積データ」テーブルおよび「商品マスタ」テーブルの主キーと同じフィールドに設定します。

多対多リレーションシップは、実際には結合テーブル(見積明細)を介した 2 つの一対多リレーションシップ(「見積データ」テーブルと「見積明細」テーブルのリレーションと「商品マスタ」テーブルと「見積明細」テーブルのリレーション)です。

一対一リレーションシップ
右図の例では社員IDでリレーションされています。

「社員マスタ」テーブルの各レコードは「社員プライベートデータ」テーブル1件のレコードだけに対応し、逆に「社員プライベートデータ」テーブルの各レコードは「社員マスタ」テーブルの1件のレコードだけに対応します。

このような場合、通常は1つのテーブルに保存されます。

一対一リレーションシップは、多数のフィールドがあるテーブルを分割したり、セキュリティを保つためにテーブルの一部を分離したりするために使用します。

リレーションシップダイアログボックス

テーブルをリレーションした後に詳しい設定を行います。

結合線をダブルクリックするとリレーションシップダイアログボックスが表示されます。
テーブル/クエリ 主テーブル・クエリのリレーションシップが設定されているフィールドを表示
リレーションテーブル
/クエリ
リレーションテーブル・クエリのリレーションシップが設定されているフィールドを表示
参照整合性 レコードの追加や削除を行っても、テーブル間のリレーションシップが維持されるようにするための規則
主テーブルのレコードと対応しないレコードをリレーションテーブルに追加できなくさせたり、リレーションテーブルに保存されているレコードと対応している主テーブルの変更や削除をできなくさせたりします。
フィールドの連鎖更新 主テーブルの主キーの値を変更すると、自動的にリレーションテーブルの内容が変更される機能
主テーブルの主キーが、オートナンバー型フィールドである場合は値の変更ができません。
レコードの連鎖削除 主テーブルのレコードを削除すると、リレーションテーブルの対応するレコードが自動的に削除される機能
リレーションシップの種類一対多、多対多、一対一のいずれかを表示
結合の種類 関連するテーブルをもとにクエリを作成する場合に使用
通常のリレーションシップの設定とは関係ありません。
内部結合、外部結合(左外部結合)、外部結合(右外部結合)があります。
back home next