プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド
12c (12.2.1.1.0)
E77227-02
目次へ移動
目次

前
前へ
次
次へ

物理外部キーと結合での作業

物理図または結合マネージャを使用して物理外部キーおよび複合結合を作成できます。

ただし、マルチディメンション・データ・ソースに結合を作成することはありません。

この項では、次の項目について説明します。

物理結合について

物理スキーマにキーをインポートすると、主キーと外部キーの結合が自動的に定義されます。

各データ・ソース内またはデータ・ソース間のその他の結合は、物理レイヤーで表間の関係を表現するように明示的に定義する必要があります。

インポートしたキーと外部キーとの結合をメタデータで使用する必要はありません。参照整合性制約を施行するよう定義されている結合によって、問合せで正しくない結合が指定されることになる場合があります。たとえば、1つの多目的参照表と複数のその他の表との結合によって、SQL問合せで不要なまたは無効な循環結合がOracle BIサーバーから発行されることになる場合があります。

この項では、次の項目について説明します。

主キーと外部キーの関係について

主キーと外部キーの関係によって、2つの表の1対多関係が定義されます。

外部キーは、別の表内の主キー列を参照する、ある表内の1つまたは一連の列です。主キーは、一意の各値が表の単一行を識別する1つまたは一連の列として定義されます。

注意:

同じ表を指す外部キー列が1つの表に複数存在するのは、次の2つの場合です。

  • 外部表の主キーが連結されている場合、つまり一連の列で構成されている場合。これは、偶然複数の列を使用するようになった2つの表間の単一結合です。

  • 外部表が複数のロールで機能する必要があるので、外部表に別名を作成した場合。この場合、外部キーそれぞれが、ロールを担っているどちらか一方の別名で主キーに結合します。詳細は、物理別名表についてを参照してください。

主キーと外部キーの指定は、物理図で実行することも、「物理表」ダイアログの「キー」タブおよび「外部キー」タブを使用して実行することもできます。詳細は、物理図を使用した物理結合の定義およびリレーショナル表およびキューブ表の列とキーの作成と管理を参照してください。

複合結合について

リポジトリの物理レイヤーでは、複合結合は、非外部キー列と主キー列の結合です。つまり、物理複合結合は、キー列の関係ではなく式を使用する結合です。

物理レイヤーで複合結合を作成する場合、結合に式を指定します。

ほとんどのデータ・ソースについて、パフォーマンスのためには外部キー結合をお薦めします。複合結合は通常、結合の形成にキー列関係が使用されないため、それほど高性能ではありません。例外がADFデータ・ソースで、ここでは、ADFモデルでビュー・オブジェクトのペアを接続するViewLinkインスタンスを指定するためにのみ物理複合結合が使用されます。

マルチデータベース結合について

マルチデータベース結合は、別のメタデータ・データベース・オブジェクトの下の表に結合する、あるメタデータ・データベース・オブジェクトの下の表として定義されます。

別のデータベースからデータを結合するにはマルチデータベース結合を指定する必要があります。

マルチデータベース結合の指定には、物理図を使用します。詳細は、物理図を使用した物理結合の定義を参照してください。

マルチデータベース結合は、ほとんどのタイプのデータベースの表間に作成でき、Oracle BIサーバー内で実行されます。Oracle OLAPデータ・ソースの表にマルチデータベース結合を作成することはできません。

Oracle BIサーバーには、マルチデータベース結合のパフォーマンス最適化のための戦略がいくつかありますが、これらの結合は同じデータベース内の表間の結合よりはるかに非効率です。このため、可能なかぎりマルチデータベース結合は避けます。

断片化されたデータについて

断片化されたデータとは、複数の表に分割されている単一ドメインからのデータです。

たとえば、データ・ソースで、姓の頭文字がA - Mの顧客の売上データを1つの表に保存し、N - Zの顧客の売上データを別の表に保存する場合があります。断片化された表を使用する場合、各断片とそれに関連するすべての表との間のすべての結合条件を定義する必要があります。この図は、断片化された売上表と、それと同じように断片化されている(A - MとN - Z)断片化された顧客表との物理結合を示しています。

場合によっては、断片化されたファクト表と断片化されたディメンション表があり、断片が複数の値にわたっていることがあります。このような場合、断片化された表で作成した結合に加えて、顧客A - Fと顧客G - Zから、売上A - Mに対して1対多の結合を定義する必要があります。

注意:

必要でない場合は結合条件を追加しないようにします(たとえば、売上A - Mと顧客N - Z)。必要以上の結合条件が、パフォーマンスの低下をまねくおそれがあります。

物理図を使用した物理結合の定義

表が同一のデータ・ソースにあるかどうかにかかわらず、表間に外部キーと複合結合を定義できます。

結合の作成に物理図を使用する場合、選択したオブジェクト・タイプと結合式に基づいて、作成する結合のタイプが管理ツールによって決定されます。

作成する結合のタイプを管理ツールで自動的に決定されないようにするには、結合マネージャを使用して、結合を明示的に作成します。詳細は、結合マネージャを使用した物理結合の定義を参照してください。

物理図を使用して物理外部キー結合または複合結合を定義するには:

  1. 管理ツールの物理レイヤーで、1つ以上の表を選択し、右クリックメニューからいずれかの物理図コマンドを選択します。
  2. 管理ツールのツール・バーの「新規結合」ボタンをクリックします。
    新規結合
  3. 物理図で、結合の1つ目の表(1対多結合の多を表す表)を左クリックして選択します。
  4. 結合対象の表(1対多結合の1を表す表)にカーソルを移動し、2つ目の表を左クリックして選択します。

    「物理外部キー」ダイアログが表示されます。物理外部キー結合がデフォルトの結合タイプですが、結合の情報によっては、結合を定義して「OK」をクリックした後に、オブジェクト・タイプが複合結合に変わる場合があります。

  5. 左の表と右の表から結合する列を選択します。

    「式」ペインにSQL結合条件が表示されます。

    このダイアログに駆動表オプションが表示されますが、このオプションは選択できません。Oracle BIサーバーでは、ビジネス・モデルとマッピング・レイヤーにのみ駆動表が実装されるためです。駆動表の詳細は、駆動表の指定を参照してください。

  6. 複合結合の場合、結合の各側にオプションでカーディナリティを設定できます(N0,11不明など)。

    カーディナリティを不明に設定する場合、結合の一方の側にのみ「不明」を選択します。たとえば、不明対1の選択は、不明対不明に相当し、この結合のダイアログを次回開いたときは不明対不明と表示されます。

  7. 必要に応じて、データベース・ヒントを指定します。詳細は、SQL文でのヒントの使用を参照してください。
  8. ADF ViewObjectまたはViewLinkインスタンスに複合結合を作成する場合は、「ViewLink名」フィールドにViewLinkインスタンス名またはViewLink定義名を指定します。
  9. 式ビルダーを開くには、「式」ペインの右にあるボタンをクリックします。「式」ペインに式が表示されます。

    ViewObjectまたはViewLinkインスタンスのデフォルトの結合式は任意で、意味はありません。

  10. OK」をクリックして選択内容を適用します。

    物理図で、結合は、選択した2つの表の間の線で表され、結合の「1」側が矢印になっています。この図は、物理図での結合を示しています。

結合マネージャを使用した物理結合の定義

結合マネージャを使用して、結合関係を表示したり、物理外部キー結合および複合結合を作成したりできます。

結合マネージャを使用して物理外部キー結合または複合結合を定義するには:

  1. 管理ツールのツールバーで、「管理」を選択してから、「結合」を選択します。
  2. 「結合マネージャ」ダイアログで、次のいずれかのタスクを実行します。
    • 「アクション」「新規」「複合結合」を選択します。

      「複合結合」ダイアログが表示されます。

    • 「アクション」「新規」「物理外部キー」を選択します。その後、「参照」ダイアログで、表をダブルクリックします。

  3. 「複合結合」ダイアログまたは「物理外部キー」ダイアログで、結合の名前を入力します。
  4. ダイアログの左側にある「表」フィールドの「参照」ボタンをクリックして、外部キーで参照する表を探します。
  5. 左の表から、キーで参照する列を選択します。
  6. 右の表から、外部キー列を構成する列を選択します。
  7. 複合結合の場合、結合の各側にオプションでカーディナリティを設定できます(N0,11不明など)。

    カーディナリティを不明に設定する場合、結合の一方の側にのみ「不明」を選択します。たとえば、不明対1の選択は、不明対不明に相当し、この結合のダイアログを次回開いたときは不明対不明と表示されます。

  8. 必要に応じて、データベース・ヒントを指定します。詳細は、SQL文でのヒントの使用を参照してください。
  9. ADF ViewObjectまたはViewLinkインスタンスに複合結合を作成する場合は、「ViewLink名」フィールドにViewLinkインスタンス名またはViewLink定義名を指定します。
  10. 式ビルダーを開くには、「式」ペインの右にあるボタンをクリックします。「式」ペインに式が表示されます。

    ViewObjectまたはViewLinkインスタンスのデフォルトの結合式は任意で、意味はありません。

  11. 「OK」をクリックして保存します。