ブリッジ表のモデリング
ブリッジ表では、表間の多対多の関係を解決できます。
たとえば、「従業員」表に従業員に関する情報を格納して、従業員が担当している業務に関する情報を「業務」表に格納するとします。ただし、組織の従業員が複数の業務を担当している場合や、同じ業務を複数の従業員が担当している場合があります。このような状況では、「従業員」表と「業務」表の関係が多対多になります。
この多対多の関係を解決するには、「割当て」というブリッジ表(中間表)を作成します。「割当て」表の各行は一意で、1つの業務を担当する1人の従業員を表します。従業員が複数の業務を担当している場合、「割当て」表にはその従業員について複数の行が設定されます。1つの業務を複数の従業員が担当している場合、「割当て」表にはその業務について複数の行が設定されます。「割当て」表の主キーはコンポジット・キーで、従業員IDが含まれる列と業務IDが含まれる列で構成されます。
「割当て」表は、「業務」表と「従業員」表の間のブリッジ表として機能するため、「割当て」表を使用すると、従業員と業務の多対多の関係を次のように解決できます。
-
従業員と割当ての1対多の関係
-
割当てと業務の1対多の関係
この図は、ブリッジ表および関連するディメンション表の例の物理レイヤー・ビューを示しています。
問合せ処理を効率的にするために、ブリッジ表に追加列として重みファクタを含めて、このファクタがETL時に計算されるようにする必要があります。
次の各項では、物理レイヤーおよびビジネス・モデルとマッピング・レイヤーでブリッジ表をモデリングする方法を説明します。
ブリッジ表とそれに関連するディメンション表に対する物理レイヤーでの結合の作成
物理レイヤーでブリッジ表をモデリングするには、対象のブリッジ表とその関連ディメンション表との間に結合を作成します。
- 管理ツールの物理レイヤーで、ファクト表、ブリッジ表および関連するディメンション表を選択します。
- オブジェクトを右クリックして、「物理図」を選択し、「選択されたオブジェクトのみ」を選択します。
- 「新規結合」をクリックして、ブリッジ表を選択して、ディメンション表を1つ選択します。
- 「物理外部キー」ダイアログの「OK」をクリックします。
- その他の関連ディメンション表について、ステップ2と3を繰り返します。
- 必ず、関連ディメンション表の1つがファクト表に結合されるようにします。
関連するディメンション表の単一ディメンションでのモデリング
ビジネス・モデルとマッピング・レイヤーでは、ブリッジ表に関連付けられている2つのディメンション表を単一ディメンションでモデリングするか、または2つの個別のディメンションでモデリングするかを選択できます。
関連ディメンション表を単一ディメンションでモデリングするには、ブリッジ表と他方のディメンション表にマップする2つ目の論理表ソースを作成し、他方のディメンション表から列を追加します。ファクト表に結合されていないブリッジ表および関連付けられたディメンション表をドラッグしないでください。前述の例では、「割当て」表と「従業員」表以外のすべてのオブジェクトをドラッグします。
2つの個別の論理表ソースを設定することによって問合せがより効率的になります。これは、この設定によって、単一のディメンション表に対する問合せにブリッジ表が関係しなくなるためです。
ブリッジ表の名前をソースの名前として使用することをお薦めします。
- 物理レイヤーからビジネス・モデルとマッピング・レイヤーにオブジェクトをドラッグします。
- 「ビジネス・モデルとマッピング」レイヤーで、ファクト表に結合されているディメンション表を右クリックして、「新規オブジェクト」を選択し、「論理表ソース」を選択します。
- 「論理表ソース」ダイアログで、新しいブリッジ表ソースの名前を入力します。
- 「論理表ソース」ダイアログの右上隅にある「追加」ボタンをクリックします。
- 「名前」リストからブリッジ表を選択して、「選択」をクリックします。
- 「追加」をクリックし、ファクト表に結合されていない関連ディメンション表を選択して、「選択」をクリックします。
- 「論理表ソース」ダイアログの「OK」をクリックします。
- ファクト表に結合されていないディメンション表(この例では「従業員」表)の列を、「物理」レイヤーから、作成したばかりの論理表ソースにドラッグします。
ブリッジ表ソースを伴う論理表も含め、論理表に基づいてディメンションを作成できます。