テーブルの関連付け
テーブルの関連付けを使用すると、それぞれ異なるレコード構造を持つ Analytics テーブルを最大 18 個まで関連付けることができます。関連付けられたテーブルにあるフィールドを組み合わせることで、単一テーブルに存在するデータのようにアクセスおよび分析することができます。
異なる複数のフィールド(データ要素)があるとレコード構造は異なります。いくつかの物理テーブル間でデータの関係をすばやく図式化するのに必要な情報作業の場合、あるいはレポートの生成前に、対応する完全な名前によってコードをリンクする場合には関連付けを利用できます。
例
シナリオ
3 月の顧客と販売された製品に関する詳細を含む売上レポートを作成する必要がある場合に、データが 3 つのテーブルに分散しているとします。
アプローチ
顧客マスター テーブルを注文テーブルに関連付け、注文テーブルを製品マスター テーブルに関連付けて、レポートに必要なすべての情報を含むテーブルの一時的な関連付けを作成します。
- 顧客マスター テーブル内の顧客名と顧客拠点
- 注文テーブル内の注文詳細
- 製品マスター テーブル内の製品詳細
関連付けは仮想テーブルを作成します
関連付けられたテーブルの結果は仮想的なものです。それらのテーブルは独立しており、どの時点においても関連付けられません。
関連付けは結合やマージと異なり、新しいテーブルを作成しません。その代わり、関連付けられたテーブルまたは子テーブルのフィールドは、関係を確立した親テーブルで使用できるようになります。
必要であれば、別の操作を実行し、親テーブルや子テーブル内にあるフィールドの任意の組み合わせを新しいテーブルに抽出することができます。
共通のキー フィールドを使用したテーブルの関連付け
共通のキー フィールド(従業員番号やベンダー ID、または住所など両方のテーブルに存在するデータ要素)を使用してテーブルを関連付けます。キー フィールドに同一の値が存在する場合は 1 つの一致のみが生じます。この一致は別のテーブルのレコードを個別に関連付けます。基本的な関連付け操作では、部分一致はサポートされていません。
関連付けるテーブルのキー フィールドには複数の要件が適用されます。
キー フィールドの特性 | 要件 |
---|---|
データ要素 | 同じである必要があります。たとえば、両方のキー フィールドは従業員番号フィールドです。 |
データ型 |
データ型でも、またキー フィールドでもかまいませんが、関連付けするテーブル間で統一されている(データ型が同じになっている)必要があります。たとえば、2 つの文字フィールドです。 日付時刻のサブタイプ(日付、日付時刻および時刻)の関連付け対象は、同じサブタイプのみです。 |
フィールド型 | 物理フィールドまたは演算フィールドにできます。 |
フィールド名 | 異なることができます。 |
開始位置 | 異なることができます。 |
フィールド長 |
同じである必要があります。 |
文字フィールドの両端揃えおよび大文字と小文字 | 同じである必要があります。 |
親テーブル、子テーブル、およびキー フィールド
関連付け操作の対象となるテーブルとキー フィールドは、そのテーブルを追加する順序に基づき、親および子として識別されます。
- 親テーブル – 最初に追加したテーブル(1 つのテーブルを開き、関連付け操作を開始すると自動的に追加される)
- 親キー フィールド – 親テーブルから選択したキー フィールド
- 子テーブル – 2 番目以降に追加したテーブル
- 子キー フィールド – 子テーブルから選択したキー フィールド
親および子となるテーブルやキー フィールドは自由に選択できますただし、この関連付けが成功するのは、その対象キー フィールドが関連付けの必要条件を満たしている場合のみです。
詳細については、キー フィールドについてを参照してください。
子テーブルのフィールドへのアクセス
関連付けが確立されると、子テーブルのフィールドを親ビューに追加することができます。ただし、これは必ずしも行う必要はありません。親テーブルを通じて子テーブルのフィールドに対しアクセスおよび分析を行うことができます。これには Analytics の各種ダイアログ ボックスの[対象テーブル]ドロップ ダウン リストや式ビルダーを使用できます。親ビューにフィールドが追加されているかどうかは関係ありません。
親テーブルからアクセスされる子テーブルのフィールドは、抽出元テーブルを示すため「テーブル名.フィールド名」という形式で表示されます。関連付けられたテーブルへのアクセスおよび関係の編集は、子テーブルではなく親テーブルを通じて行うことができます。
関連テーブルの並べ替えとインデックスの作成
関連付けの結果生じる仮想テーブルは、親テーブルの既存のソート順を使用します。テーブルを関連付ける前に、親テーブルのキー フィールドを並べ替えたりインデックスを作成する必要はありません。ただし、関連付けには親テーブル用のオプション[あらかじめ並べ替える]がないので、並べ替えやインデックス作成を事前に行うこともできます。
関連付け操作の内部的な機能の一部として、子テーブルのキーフィールドには自動的にインデックスが作成され、昇順に並べ替えられます。これら子テーブルのインデックスは、その子テーブルの関連付けが解除された後も保持されますが、必要に応じて手作業で削除できます。
関連付けに関する追加情報
次のテーブルでは関連付けに関する追加情報を提供します。
機能分野 |
詳細 |
---|---|
レコードの一致 |
一組のテーブルの関連付けは、論理的には "主テーブルの全レコード" オプションを使用した結合に相当します。つまり、一致する主レコードと副レコード(親レコードと子レコード)、および一致しない主レコードを含む多対一結合タイプの使用です。 この相当する多対一結合と同様、関連付け操作では、親キーの値と、子キーの値で最初に見つかった一致のみを有効とします。子キーの値で同じ一致がほかに存在していた場合でも、それらは無視されます。テーブルの関連付けを計画する場合は、このような動作を考慮に入れる必要があります。特に、子テーブルで、一致対象のキー値が複数存在することが妥当である場合などは留意してください。親テーブルを子テーブルに、また子テーブルを親テーブルにというように、2 つのテーブルの関係を逆転させてみるのも 1 つの方法です。 |
一致しないレコードおよびフィールド値の欠落 |
親キーの値が、関連付けられている子テーブルに存在しない場合、Analytics では、欠落するフィールド値の対処として、文字や日付時刻フィールドには空白を、数値フィールドにはゼロを、そして論理フィールドには "F" を表示します。 |
子テーブルのキー フィールドの重複または空白 |
子テーブルのキー フィールドの値が重複していたり欠落していることで、その後の分析が無効になってしまうような場合、事前に子テーブルから重複や空白を除去することで解決する可能性があります。 |
関連付けられたテーブルにあるデータの抽出 |
関連付けられたテーブルからデータを抽出する場合は 2 つのオプションがあります。
|
キー フィールド長の同一化は不要 |
Analytics では、親テーブルと子テーブルで共通キー フィールドの長さが同一であることを強制しません。 同一の長さのフィールドを使用することをお勧めします。必要であれば、関連付けを行う前にフィールド長を手作業で揃えてください。フィールド長が異なるキー フィールドを使用して関連付けを行った結果は信頼性がありません。 日付、日付時刻、または時刻を用いた操作を実行する場合、Analytics は Analytics 内部の日付時刻形式を使用しているため、日付時刻キー フィールドの長さが異なることがあります。 |
キー フィールドのデータ型の変更 |
親テーブルと子テーブルのキー フィールドのデータ型は、それらのフィールドが既にテーブルの関連付けに使用されている場合は、変更することができません。いずれかのフィールドのデータ型を変更する必要がある場合は、まず関係を削除しておく必要があります。いずれかのフィールドのデータ型を変更することによって、対応付けていたもう一方のフィールドと異なるデータ型になった場合は、それら 2 つのフィールドをテーブルの関連付けに使用することはできなくなります。 |
条件付きインデックスの回避 |
子テーブルのキー フィールドに対しては条件付きインデックスを使用しないでください。その代わり、親テーブルとその関連テーブルに対して操作を実行するときに条件を適用します。 関連付けの構築時に条件付きインデックスを使用すると、関連付けの階層のさまざまな段階で意図しないデータの欠落が生じる可能性があります。より安全に行うには、関連付けを保証するのに十分なデータ セットを表す関連付けを構築し、その後、必要であれば条件を適用します。 |
関連付けられるテーブルの場所に関する制限事項 |
テーブルを関連付ける場合、その対象となるテーブルは同じ Analytics プロジェクト内に存在している必要があります。サーバーにあるテーブルであれば同じサーバー上にあり、同じサーバー プロファイルを使用してアクセスする必要があります。ローカルのテーブルとサーバーのテーブルを関連付けることはできません。 |
行揃えと大文字小文字の同一化 |
文字キー フィールドを使用してテーブル間の関連付けを行う場合、両フィールドの行揃えおよび大文字小文字の表記が同一でなければなりません。
|
UTC ベースのデータと非 UTC データの関連付け |
UTC ベースおよび非 UTC の日付時刻キー フィールドは、2 つのテーブルの関連付けに使用できます(UTC は協定世界時で、経度 0 度地点における時刻)。日付時刻または時刻を用いた操作を実行する場合、Analytics では Analytics 自身の内部日付時刻形式を使用するので、以下の 2 つの日付時刻は同一であると解釈され、一致します。
Analytics 操作の中で、UTC ベースの時刻データと非 UTC の時刻データを混在させる場合は注意が必要です。Analytics は上の 2 つの時刻値を一致させます。しかし、一方の値はタイムゾーンを参照し、もう一方の値は参照しないため、論理的には意味がない可能性があります。UTC の詳細については、[日付と時刻]タブ([オプション]ダイアログ ボックス)を参照してください。 |