Ms-access-relating-data
MS Access-データの関連付け
この章では、関連データの基本を理解します。 異なるデータ間の関係を説明する前に、それが必要な理由を確認しましょう。 すべてが正規化に戻ります。
正規化
データベースの正規化、または単に正規化は、データの冗長性を最小限に抑えるために、リレーショナルデータベースの列(属性)とテーブル(関係)を整理するプロセスです。 これは、データを複数のテーブルに分割して、全体的なパフォーマンス、整合性、および寿命を改善するプロセスです。
- 正規化は、データベース内のデータを整理するプロセスです。
- これには、データの保護と、冗長性と一貫性のない依存関係を排除してデータベースの柔軟性を高めるように設計されたルールに従って、テーブルを作成し、それらのテーブル間の関係を確立することが含まれます。
データを含む次の表を見てみましょうが、問題はこのデータが非常に冗長であるため、データ入力中にタイプミスや一貫性のないフレージングが発生する可能性が高くなることです。
CustID | Name | Address | Cookie | Quantity | Price | Total |
---|---|---|---|---|---|---|
1 | Ethel Smith | 12 Main St, Arlington, VA 22201 S | Chocolate Chip | 5 | $2.00 | $10.00 |
2 | Tom Wilber | 1234 Oak Dr., Pekin, IL 61555 | Choc Chip | 3 | $2.00 | $6.00 |
3 | Ethil Smithy | 12 Main St., Arlington, VA 22201 | Chocolate Chip | 5 | $2.00 | $10.00 |
この問題を解決するには、次の3つの表に示すように、データを再構築し、複数のテーブルに分割して、これらの冗長性の一部を排除する必要があります。
ここでは、Customers用のテーブルが1つあり、2 ^ nd ^テーブルはOrders用、3 ^ rd ^テーブルはCookie用です。
ここでの問題は、データを複数のテーブルに分割するだけでは、あるテーブルのデータが別のテーブルのデータにどのように関係しているかを知るのに役立たないことです。 複数のテーブルのデータを接続するには、 Orders テーブルに外部キーを追加する必要があります。
関係の定義
リレーションシップは、キー列のデータを一致させることで機能します。通常、両方のテーブルで同じ名前の列になります。 ほとんどの場合、関係は1つのテーブルの主キーと一致します。これにより、各行に一意の識別子が提供され、他のテーブルの外部キーにエントリがあります。 テーブル間の関係には3つのタイプがあります。 作成される関係のタイプは、関連する列の定義方法によって異なります。
ここで、3種類の関係を見てみましょう-
1対多の関係
1対多の関係は、最も一般的なタイプの関係です。 このタイプの関係では、テーブルAの行はテーブルBの多くの一致する行を持つことができますが、テーブルBの行はテーブルAの一致する行を1つだけ持つことができます。
たとえば、CustomersテーブルとOrdersテーブルには1対多の関係があります。各顧客は多くの注文を出すことができますが、各注文は1人の顧客からのみ行われます。
多対多の関係
多対多の関係では、テーブルAの行はテーブルBの多くの一致する行を持つことができ、逆もまた同様です。
そのような関係を作成するには、 junction table と呼ばれる3番目のテーブルを定義します。このテーブルの主キーは、テーブルAとテーブルBの両方からの外部キーで構成されます。
たとえば、CustomersテーブルとCookiesテーブルには、これらの各テーブルからOrdersテーブルへの1対多の関係で定義される多対多の関係があります。
一対一の関係
1対1の関係では、テーブルAの行はテーブルBの一致する行を1つしか持つことができません。逆も同様です。 両方の関連列が主キーであるか、一意の制約がある場合、1対1の関係が作成されます。
この方法で関連するほとんどの情報はすべて1つのテーブルにあるため、このタイプの関係は一般的ではありません。 あなたは1対1の関係を使用するかもしれません-
- テーブルを多くの列に分割します。
- セキュリティ上の理由から、テーブルの一部を分離します。
- 寿命が短く、テーブルを削除するだけで簡単に削除できるデータを保存します。
- メインテーブルのサブセットにのみ適用される情報を保存します。