テーブルの関連付けの構築方法
テーブル間の関連付けは階層型になっています。1 つの親テーブルが階層の最上位にあり、複数の子テーブルと関連付けることができます。
テーブルが関連付けられると、それらのテーブルのフィールドは単独のテーブルに存在しているかのように扱うことができ、任意に組み合わせてデータにアクセスし分析することが可能です。
テーブルを関連付けるための一般ガイドライン
- 使用できる親テーブルは 1 つのみです。
- 子テーブルは、自身の子テーブルに関連付けることができます。これは親テーブルから見て孫テーブル、さらにひ孫テーブルといった関係になります。
- 親テーブルを含め、最大 18 個のテーブルを互いに関連付けることができます。
[関係]ダイアログ ボックスはグラフィカルな作業領域を提供しているので、複数の関係を簡単に管理することができます。
例
下図では、テーブルとキー フィールドが次のように関連付けられています。
親テーブル | 共通キー フィールド | 子テーブル | 共通キー フィールド | 孫テーブル |
---|---|---|---|---|
売掛金 | Contract_number | Contract | Sales_rep_number | 営業部 |
Customer_number | Customer |
テーブルを関連付けるための詳細ガイドライン
特に多くのテーブルを伴う関連付けの場合、データを希望どおりに表示させる関係を構築するには、ある程度の計画が必要です。以下のガイドラインを参考にして関係を構築してください。
キー フィールド間の一致
各テーブルに共通するキー フィールド、そのキー フィールドに含まれる値のデータ型、および生じる可能性が高い一致について慎重に検討してください。キー フィールド間の一致の完全性と正確度は、その後の情報の検査や分析の品質に影響を与えます。
親子関係を元に戻す
1 つのテーブルともう 1 つのテーブルで親子の関係を作成したときの影響、およびその 2 つのテーブルの関係を逆転させた場合に結果がどのように異なるかについて考慮してください。
Analytics における関連付けのタイプは多対一であることを覚えておいてください。単独または同一の親キーの値は、子キーの値で最初に見つかった一致と関連付けられます。子キーの値の 2 番目以降の一致、およびそれらを含むレコードは無視されます。
子テーブルに複数の妥当なキー値が存在する場合は、子テーブルを親にする方が、完全な結果が得られる可能性があります。これは現在の親テーブルに妥当な重複が含まれていないことも前提とします。
両方のテーブルに妥当な重複が含まれる場合は、多対多結合を使用して使用してテーブルを結合するのがよい方法でしょう。
関係階層でのテーブルの位置の効果
関連付けの階層の各レベルで、子テーブルは階層上の 1 つ低いレベルにあるテーブルに対して親となることができます。
親と子の間では、キーの値の一致が多対一であるため、テーブルが階層上の下位へ行くにつれて、そのデータの多くが最後の関連付けから省かれる可能性が高くなります。このような多対一による一致で起こり得る累積的影響は、共通キー フィールドのすべての値において一対一の一致が存在している場合は問題になりません。
テーブル内の全レコードを必ず関連付けに含めるようにするには、そのテーブルを親テーブルにします。
中間テーブルの使用
共通キー フィールドがない 2 つのテーブルを関連付けたい場合は、1 つ以上の中間テーブルを使用して関連付けを構築できる場合があります。
上の図では、Contract テーブルは中間テーブルとして機能し、 Accounts Receivable および Sales テーブルを間接的に関連付けます。中間テーブルにあるデータ自体は必要な場合もあれば不要な場合もあります。
基本関係の関連付けのバリエーション
基本的な親子関係以外に、状況によって以下の関係のタイプが可能です。
2 つのテーブルの各インスタンスに関連付けを行えるのは 1 回のみです。 |
既に関連付けた一組のテーブルに対して、さらに関連付けを行おうとすると、その操作は拒否され次のメッセージが表示されます。 "これらのファイルのいずれかは既に関係の一部です。別の関連付けを作成するには、そのファイルのインスタンスをもう 1 つ追加します。" [関係]ダイアログ ボックスの[テーブルの追加]ボタンをクリックし、適切なテーブルを選択してそのテーブルのインスタンスを追加できます。テーブルのインスタンスは、元のテーブル名の末尾に増分数字を付けた名前か、あるいは指定した名前で追加されます。 この代わりに、ナビゲーターで適切なテーブル レイアウトのコピーを作成し、そのコピーを[関係]ダイアログ ボックスにコピーすることもできます。 |
---|---|
複数のキー フィールドのテーブルの関連付け |
|
テーブルの自己関連付け | テーブルは自身の別のインスタンスと関連付けることができます。 |