Acc 2000: Access データベース内のテーブル間のリレーションシップを定義します。

文書翻訳 文書翻訳
文書番号: 304467
初心者: シングル ユーザー コンピューターのユーザー インターフェイスの知識が必要があります。

この資料は Microsoft Access データベース (.mdb) にのみ適用します。

すべて展開する | すべて折りたたむ

目次

概要

この資料では、Access データベースのリレーションシップを定義する方法をについて説明します。これは、次のトピックが含まれます。
  • テーブル リレーションシップとは
  • テーブル間のリレーションシップの種類
    • 一対多リレーションシップ
    • 多対多のリレーションシップ
    • 一対一のリレーションシップ

  • テーブル間のリレーションシップを定義する方法
    • 一対多または一対一のリレーションシップを定義する方法
    • 多対多を定義する方法の関係

  • 参照整合性
  • 連鎖更新および連鎖削除
  • 結合の種類

詳細

テーブル リレーションシップとは

リレーショナル データベースでは、重複データを防ぐために、関係を有効にします。たとえば、書籍に関する情報を追跡するデータベースをデザインする場合、書籍など、各書籍に関する情報を格納する Titles というテーブルがありますか? s の名、パブリケーション、および発行元の日付。また、情報の発行者は、発行者の電話番号、住所、郵便番号などを格納することができますです。タイトルにすべてのこの情報を格納した場合は、テーブル、パブリッシャーか? s 電話番号がそれぞれのタイトルを複製します。

別のテーブルで、出版社、出版社情報を 1 回だけを格納するためにお勧めします。そして、Publishers テーブル内のエントリを参照する、Titles テーブルにポインターを設定します。

データの同期がとれていないことを確認するには、書名とパブリッシャーのテーブル間に参照整合性を適用できます。参照整合性のリレーションシップは、情報とほかのテーブル内の情報と一致していることを確認できます。たとえば、Titles テーブル内の各タイトルは、Publishers テーブル内の特定の出版社に関連付ける必要があります。タイトルがデータベースに存在しません、パブリッシャーのデータベースに追加できません。

テーブル間のリレーションシップの種類

リレーションシップは、両方のテーブルで同じ名前を持つ列は、通常のキー列内のデータを照合することによって動作します。ほとんどの場合、リレーションシップは各行に対して、他方のテーブルの外部キー内のエントリは、意識を提供する 1 つのテーブルの主キーと一致します。たとえば、営業販売テーブル (外部キー) で title_id 列で Titles テーブル (主キー) と title_id 列間のリレーションシップを作成することによって販売される特定のタイトルを関連付けることができます。

テーブル間のリレーションシップの 3 つのタイプがあります。作成されるリレーションシップの種類は、関連する列の定義方法によって異なります。

一対多リレーションシップ

一対多リレーションシップは、最も一般的なリレーションシップの種類です。このタイプのリレーションシップでは、行を表にすることができますテーブル B の多数の一致する行がテーブル B のローはテーブル A の 1 つだけに一致する行を持つことができますたとえば、Publishers と Titles テーブルを一対多リレーションシップがある: 各出版社は複数の書籍が生成されますが、各タイトルには 1 つだけの発行者から提供されて。

だけが、関連する列のいずれかの主キーまたは unique 制約を持つ場合は、一対多リレーションシップが作成されます。

Access では、一対多リレーションシップの主キー側は、鍵の記号で示されます。リレーションシップの外部キーの側は、無限大の記号で示されます。

多対多のリレーションシップ

テーブル B の複数の一致する行多対多リレーションシップでは、テーブル A の行を持つことができますその逆。主キー、外部キー テーブル A とテーブル B の両方からの構成、結合テーブルと呼ばれる第 3 のテーブルを定義することによってこのような関係を作成します。たとえば、Authors テーブルと Titles テーブルはこれらの各テーブルから TitleAuthors テーブルに一対多関係で定義されている、多対多関係があります。TitleAuthors テーブルの主キーは、au_id 列の組み合わせです (authors テーブル? s 主キー) と title_id 列 (Titles テーブルか? s 主キー)。

一対一のリレーションシップ

一対一リレーションシップでは、テーブル A の行は 1 つの一致する行テーブル B に持つことができますその逆。2 つの関連する列の主キーまたは一意の制約がある場合は、一対一リレーションシップが作成されます。

関係のほとんどの情報はすべて 1 つのテーブルになるために、この種のリレーションシップは一般的ではありません。1 対 1 の関係を使用できます。
  • 多くの列を持つテーブルを分割します。
  • セキュリティ上の理由からテーブルの一部を分離します。
  • テーブルを削除するだけで簡単に削除できる可能性があります一時的なデータを格納します。
  • メイン テーブルのサブセットにのみ適用される情報を格納します。
Access では、一対一リレーションシップの主キーの側は、鍵の記号で示されます。外部キーの側も、鍵の記号で示されます。

テーブル間のリレーションシップを定義する方法

テーブル間にリレーションシップを作成すると、関連するフィールドと同じ名前を持つはありません。ただし、関連するフィールドは主キー フィールドがオート ナンバー型フィールドがない場合入力同じデータが必要です。オート ナンバー型フィールド、数値フィールドを持つを一致することができます、 フィールド サイズします。 両方の一致するフィールドのプロパティと同じです。たとえば、オート ナンバー型フィールドと数値型フィールドと一致ことができます、 フィールド サイズします。 両方のフィールドのプロパティを長整数です。両方の一致フィールド数値フィールドとして、あっても、それらが同じ必要があります。 フィールド サイズします。 プロパティの設定値。

一対多または一対一のリレーションシップを定義する方法

一対多を作成または一対一リレーションシップ、これら手順を実行します。
  1. 閉じる必要があるすべてのテーブルを開きます。作成または開いているテーブル間のリレーションシップを変更することができません。
  2. データベース ウィンドウに切り替える F11 キーを押します。
  3. で、 ツール メニューをクリックして 関係.
  4. まだリレーションシップをデータベースに定義していない場合は、 テーブルを表示します。 ダイアログ ボックスが自動的に表示されます。関連するテーブルを追加する場合が、 テーブルを表示します。 ダイアログ ボックスが表示されます、クリックして テーブルを表示します。 で、 関係 メニューです。
  5. 関係を閉めするテーブルの名前をダブルクリックして、 テーブルを表示します。 ダイアログ ボックスです。テーブル内でリレーションシップを作成するには、そのテーブルを 2 回追加します。
  6. 1 つのテーブルの関連フィールドが別のテーブルに関連するフィールドをドラッグします。複数のフィールドをドラッグするには、CTRL キーを押し、各フィールドをクリックし、ドラッグします。

    ほとんどの場合、太字で表示される)、主キーのフィールドから 1 つのテーブルで他のテーブルの外部キーと呼ばれる同様のフィールド (多くの場合、同じ名前を持つ) にドラッグします。
  7. は、 リレーションシップを編集します。 ダイアログ ボックスが表示されます。2 つの列に表示されるフィールド名が正しいかどうかを確認します。これらは、必要に応じて変更できます。

    必要に応じて、リレーションシップのオプションを設定します。内の特定の項目に関する情報が必要な場合は、 リレーションシップを編集します。 ダイアログ ボックス、疑問符 () ボタンをクリックし、項目をクリックします。これらのオプションは、この資料の後半で詳しく説明します。
  8. クリックしてください。 作成 リレーションシップを作成します。
  9. 関連するテーブルの各ペアについて手順 5 〜 8 を繰り返します。

    削除した場合、 リレーションシップを編集します。 レイアウトを保存する] ダイアログ ボックスで、Access よう要求されます。かどうかのレイアウトを保存するか、作成のリレーションシップはデータベースに保存されます。

    注: クエリと同様にテーブルのリレーションシップを作成できます。ただし、参照整合性はクエリには適用されません。

多対多を定義する方法の関係

多対多リレーションシップを作成するには、次の手順を実行します。
  1. 多対多リレーションシップを持つ 2 つのテーブルを作成します。
  2. 結合テーブルと呼ばれる第 3 のテーブルを作成し、接合テーブルの新しいフィールドの主キー フィールドと同じ定義を使用するには、それぞれの他の 2 つのテーブルから追加します。結合テーブルでは、主キー フィールドは外部キーとして機能します。その他のテーブルに、交差テーブルには、他のフィールドを追加できます。
  3. 結合テーブルで、他の 2 つのテーブルから主キー フィールドを含めるように主キーを設定します。たとえば、TitleAuthors 接合テーブルには、主キー、[受注コード] と [商品コード] フィールドの構成されます。

    メモ: 主キーを作成するには、次の手順を実行します。
    1. デザイン ビューでテーブルを開きます。
    2. フィールドまたは主キーとして定義するフィールドを選択します。1 つのフィールドを選択するには、目的のフィールドの行セレクターをクリックします。

      複数のフィールドを選択するのには、CTRL キーを押しながらし、各フィールドの行セレクターをクリックします。
    3. クリックしてください。 主キー ツールバーのします。

      注: 複数フィールドの主キーのフィールドの順序とは異なるテーブル内のこれらのフィールドの順序を必要に応じてをクリックします。 インデックス ツールバーを表示するのには インデックス ダイアログ ボックス、[並べ替えのフィールドの指定したインデックスの名前 主キー.
  4. 一対多リレーションシップの主テーブルそれぞれと交差テーブルの間に定義します。

参照整合性

参照整合性のルール関連テーブル内のレコード間のリレーションシップが有効であることを確認するのには、Access が使用することや、誤って削除か関連のデータを変更することです。次の条件をすべて満たす場合に参照整合性を設定できます。
  • 主テーブルから一致するフィールドが主キーまたは固有インデックスします。
  • 関連するフィールドを同じデータ型であります。これには 2 つの例外があります。オート ナンバー型フィールドと数値型フィールドに関連付けることができます、 フィールド サイズします。 プロパティの設定値を長整数型、およびオート ナンバー型フィールドとは フィールド サイズします。 数値型フィールドにレプリケーション ID のプロパティの設定値を関連付けることができる、 フィールド サイズします。 レプリケーション ID のプロパティの設定
  • 両方のテーブルが同じ Access データベースに所属します。テーブルがリンク テーブルの場合は、それらは Access 形式のテーブルでなければなりません、、参照整合性に保存されているデータベースを開く必要があります。他の形式のデータベースからリンクされたテーブルの参照整合性を適用できません。
参照整合性を使用すると、次の規則が適用されます。

  • 主テーブルの主キーに存在しない関連テーブルの外部キー フィールドに値を入力することはできません。ただし、レコードが関連付けられないように指定する、外部キーに Null 値を入力できます。たとえば、存在しない顧客に割り当てられた受注を持つことはできませんが誰を"得意先コード"フィールドに Null 値を入力することによって割り当てられる順序を持つことができます。
  • 一致するレコードが関連テーブルに存在する場合、主テーブルからレコードを削除できません。などがある場合、"受注"テーブルの社員に割り当てられた受注伝票 [社員] テーブルの社員レコードを削除できません。
  • レコードに関連レコードがある場合、主テーブルの主キーの値を変更できません。たとえば、"受注"テーブルの社員に割り当てられた受注伝票がある場合は社員の ID を [社員] テーブルを変更できません。

連鎖更新および連鎖削除

リレーションシップで参照整合性が適用されて、更新プログラムを自動的にカスケード接続するのには、Access または連鎖関連レコードを削除するかどうかを指定できます。これらのオプションを設定する場合は、削除して参照整合性の規則を許可する許可は、通常の操作を更新します。レコードを削除したり、主テーブルの主キーの値を変更すると、Microsoft Access 関連のテーブルに参照整合性を維持するために必要な変更をできます。

オンにした場合、 [フィールドの連鎖更新 チェック ボックス、レコード、主テーブルの主キーを変更することはいつ、リレーションシップを定義するときに Access 自動的に主キー、すべての関連レコードで新しい値に更新されます。[得意先] テーブルで顧客の ID を変更すると、リレーションシップが維持されるようにするには、たとえば、[受注] テーブルの [得意先コード] フィールド自動的にその顧客の注文を誰更新されます。連鎖更新の実行時にメッセージは表示されません。

注: において、主テーブルの主キーがオート ナンバー型フィールドの場合を選択すると、 [フィールドの連鎖更新 オート ナンバー型フィールドの値を変更できないためチェック ボックスも効果はありません。

選択すると、 関連レコードの連鎖削除します。 チェック ボックス、リレーションシップにおいて、主テーブルのレコードを削除することはいつ定義すると、Access は自動的に関連テーブルの関連レコードを削除します。顧客レコードを [得意先] テーブルから削除する場合は、たとえば、顧客の注文に自動的に (レコード、受注レコードに関連して、Order Details のテーブルを含む)、[受注] テーブルから削除されます。削除すると、レコードをフォームまたはデータシートでは、 関連レコードの連鎖削除します。 チェック ボックスをオン、Microsoft Access 関連レコードも削除されることに警告します。削除クエリを使用してレコードを削除すると、ただし、Microsoft Access に自動的に関連テーブルのレコードに警告を表示せず削除します。

結合の種類

3 種類の結合は次のとおり。

オプション 1 内部結合を定義します。内部結合のみ結合フィールドの値が指定した条件を満たす場合、2 つのテーブルからのレコード、クエリの結果に結合は、結合されます。クエリでは、既定の結合は内部結合は、結合フィールドの値が一致する場合、レコードを選択です。

オプション 2 左外部結合を定義します。結合と左外部結合ですがない場合でも一致する値の右側のテーブルから結合フィールドはすべてのクエリの結果には、左結合操作でクエリの SQL ステートメントの左側にある、レコードが追加されます。

オプション 3 右外部結合を定義します。右外部結合は、結合が左側のテーブルから結合フィールドに一致する値のない場合でも、すべてのクエリの結果には、クエリの SQL ステートメントで RIGHT JOIN 操作の右側にある、レコードが追加されます。

関連情報

Microsoft Access 内のリレーションシップの詳細については、「テーブルの作成とデザイン」トピック、Microsoft Access 2000 のヘルプ ページで、次のマイクロソフト Web サイトをクリックします。
Microsoft Access 2000 のヘルプ
Microsoft Access 内のリレーションシップの詳細についてをクリックします。 Microsoft Access のヘルプ で、ヘルプ メニューの種類 作成するか、リレーションシップを変更します。 Office アシスタントまたはアンサー ウィザードとクリックで 検索 返されたトピックを表示します。

プロパティ

文書番号: 304467 - 最終更新日: 2011年7月24日 - リビジョン: 4.0
キーワード:?
kbhowto kbmt KB304467 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:304467
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com