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

前
次

9 論理表、論理結合および論理列での作業

この章では、論理表、結合、列など、Oracle BIリポジトリの「ビジネス・モデルとマッピング」レイヤー内のオブジェクトでの作業方法について説明します。表示フォルダ、ブリッジ表、ビジネス・モデル図などの「ビジネス・モデルとマッピング」レイヤーの概念、および列でライトバックを有効にする方法についても説明します。

この章の構成は、次のとおりです。

「ビジネス・モデルとマッピング」レイヤーでの作業について

Oracle BIリポジトリのビジネス・モデルとマッピング・レイヤーによって、データのビジネス・モデルつまり論理モデルが定義され、ビジネス・モデルと物理レイヤー・スキーマ間のマッピングが指定されます。

ビジネス・モデルには、物理レイヤーのオブジェクトとは異なり、常にディメンションがあり、データ・ソースの編成が反映されます。ビジネス・モデルとマッピング・レイヤーには、1つ以上のビジネス・モデルを含めることができます。それぞれのビジネス・モデルには、論理表、論理列および論理結合が含まれます。

キーの概念など、論理表と物理表のオブジェクトでは似通った用語が使用されますが、ビジネス・モデルとマッピング・レイヤーの論理表および論理結合には、リレーショナル・モデルのものとは異なる独自のルール・セットがあります。たとえば、論理ファクト表にはキーが必要ではなく、論理結合が、可能な多くの物理結合を表す場合があります。

ビジネス・モデルとマッピング・レイヤーの論理表、結合、マッピングおよびその他のオブジェクトは通常、物理レイヤーから特定のビジネス・モデルにオブジェクトをドラッグ・アンド・ドロップしたときに自動的に作成されます。これらのオブジェクトが作成されたら、追加の論理結合の作成、列での計算や変換の実行、ディメンション表およびファクト表に対するキーの追加や削除などのタスクを実行できます。

ビジネス・モデルとマッピング・レイヤーの作成

物理レイヤーの要素をすべて作成したら、物理レイヤーからビジネス・モデルとマッピング・レイヤーに表または列をドラッグして、メタデータに論理オブジェクトを作成できます。

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

ビジネス・モデルの作成

管理ツールのビジネス・モデルとマッピング・レイヤーには、1つ以上のビジネス・モデルを含めることができます。

各ビジネス・モデルには、ビジネス・モデル定義とビジネス・モデルの論理表から物理表へのマッピングを含めることができます。

リポジトリでの作業をオフライン・モードで行う場合、ときどきリポジトリを保存することを忘れないでください。ビジネス・モデル間で一貫性がない場合でも、オフライン・モードでリポジトリを保存できます。

  1. 管理ツールで、既存オブジェクトの下の「ビジネス・モデルとマッピング」レイヤーで右クリックします。
  2. ショートカット・メニューから新規ビジネス・モデルオプションを選択します。
  3. ビジネス・モデルの名前を指定します。
  4. 新規ビジネス・モデルは、デフォルトで無効になっています。対応するプレゼンテーション・レイヤーを問合せに使用できるようにするには、「無効」を選択解除します。

    注意:

    このオプションを選択解除するには、ビジネス・モデルの一貫性を確保しておく必要があります。

  5. (オプション)ビジネス・モデルの説明を入力します。
  6. 「OK」をクリックします。

ビジネス・モデルを作成したら、物理レイヤーからオブジェクトをドラッグ・アンド・ドロップすることによってビジネス・モデル・オブジェクトを作成できます。

ビジネス・モデル・オブジェクトの自動作成

ビジネス・モデルとマッピング・レイヤーのオブジェクトを物理レイヤーのソースに自動的にマップするには、物理レイヤーのオブジェクトを論理レイヤーの特定のビジネス・モデルにドラッグ・アンド・ドロップします。

物理表をビジネス・モデルとマッピング・レイヤーにドラッグすると、対応する論理表が作成されます。表内の物理列ごとに、対応する論理列が作成されます。一度に複数の表をドラッグすると、物理結合ごとに論理結合が作成されますが、これは、初めて表を新規ビジネス・モデルにドラッグしたときのみです。

マルチディメンション・データ・ソースに対するビジネス・モデル・オブジェクトの自動作成

マルチディメンション・データ・ソースに対するビジネス・モデルとマッピング・レイヤーでのオブジェクトの設定は、リレーショナル・データ・ソースに対する論理レイヤー・オブジェクトの設定と似ています。

ビジネス・モデル・レイヤーを作成する場合、物理レイヤー・キューブを論理レイヤーにドラッグ・アンド・ドロップできます。Oracle Business Intelligenceによって、すべてのメトリック、属性およびディメンションが保持され、完全に構成された一貫性のあるビジネス・モデルが自動的に作成されます。

Essbaseデータ・ソースの場合、各キューブを別々にビジネス・モデルとマッピング・レイヤーにドラッグして、Essbaseキューブごとに個別のビジネス・モデルを作成することをお薦めします。

ビジネス・モデルとサブジェクト・エリアの複製

選択したビジネス・モデルのコピーを作成し、新しい名前をコピーに割り当てる方法を説明します。

ビジネス・モデルとそれに対応するサブジェクト領域の選択、コピーの作成および複製したオブジェクトへの新しい名前の割当てを実行できます。

注意:

別名はコピーされません。

  1. リポジトリが開いている管理ツールで、ビジネス・モデルを右クリックして「サブジェクト領域で複製」を選択します。
  2. 「ビジネス・モデルとサブジェクト・エリアのコピー」ダイアログで、コピー対象のビジネス・モデルと対応するサブジェクト・エリアを選択します。
  3. 該当する名前フィールドでビジネス・モデルとサブジェクト・エリアに新しい名前を指定し、「OK」をクリックします。

    コピーしたビジネス・モデルがビジネス・モデルとマッピング・レイヤーに表示され、コピーしたサブジェクト・エリアがプレゼンテーション・レイヤーに表示されます。

ビジネス・モデル図での作業について

「ビジネス・モデル図」を開いて、論理表と結合のグラフィカルなモデルを確認できます。

ビジネス・モデル図にアクセスするには、「ビジネス・モデルとマッピング」レイヤー(ディメンションやファクト表など)のオブジェクトを右クリックし、「ビジネス・モデル図」を選択します。その後、次のオプションのいずれかを選択します。

  • 図全体。ビジネス・モデル内のすべての論理表と結合を表示します。

  • 選択された表のみ。選択した論理表のみを表示します。論理結合は、選択したオブジェクト間に論理結合が存在する場合のみ表示されます。このオプションは、1つ以上の論理表を選択した場合にのみ指定できます。

  • 選択された表と直接結合選択した論理表と、それらの表に結合している論理表を表示します。このオプションは、1つ以上の論理表を選択した場合にのみ指定できます。

  • 選択されたファクト表とディメンション選択した論理表とそれらに関連付けられている論理ディメンションを表示します。このオプションは、選択対象に1つ以上のファクト表が含まれる場合にのみ指定できます。

注意:

ビジネス・モデル図には、論理表と結合のみが表示されます。ビジネス・モデル、ディメンション、階層など、ビジネス・モデルとマッピング・レイヤーのその他のオブジェクトは表示されません。結合は、結合の1側に矢印が付いた線で表されます。

ビジネス・モデル図に表を追加するには、「ビジネス・モデル図」ウィンドウを開いたままにし、追加する表を1つ以上右クリックします。その後、「ビジネス・モデル図」を選択し、表示オプションのいずれかを選択します。

ビジネス・モデル図に表示されているグラフィカル表および結合の右クリック・メニューから追加オプションを選択できます。たとえば、オブジェクトの削除やオブジェクトのプロパティの表示、または右クリック・オプションの「直接結合の追加」、「選択内容全体に結合された表の追加」および「すべての結合の追加」を使用して、関連するオブジェクトの追加を実行できます。また、「ツリー表示での検索」を選択して、中央ペインのビジネス・モデルとマッピング・レイヤー・ビュー内で特定のオブジェクトを検索したり、オンライン・モードのオブジェクトをチェックアウトしたりできます。

ビジネス・モデル図ビュー内のオブジェクトを右クリックして、「非表示」を選択し、図で特定のオブジェクトを非表示にすることもできます。非表示の効果は一時的で、永続するものではありません。

「ファイル」メニューの「印刷」および「印刷プレビュー」オプションを使用して、ビジネス・モデル図の印刷オプションを管理します。ツールバーの「印刷」オプションを使用することもできます。

論理結合の定義の詳細は、「ビジネス・モデル図を使用した論理結合の定義」を参照してください。

論理表の作成と管理

論理表は、ビジネス・モデルとマッピング・レイヤーに存在します。

各ビジネス・モデルで定義される論理スキーマには、少なくとも2つの論理表を含める必要があり、それらの論理表間の関係を定義する必要があります。

各論理表は、1つ以上の論理列と1つ以上の論理表ソースに関連付けられます。新規論理表ソースの追加、既存の表ソースの編集または削除、表ソースへのマッピングの作成または変更、または論理表ソースの使用時の定義を行うことができます。論理表ソースの作成を参照してください。

論理表名の変更、論理表ソースの並替え、および論理キーである主キーと外部キーの構成を実行できます

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

論理表の作成

論理表を作成する場合は、物理レイヤーからビジネス・モデルとマッピング・レイヤーに物理表をドラッグ・アンド・ドロップすることをお薦めします。物理スキーマに表が存在しない場合は、論理表を手動で作成できます。

物理レイヤーからビジネス・モデルとマッピング・レイヤーに物理表をドラッグ・アンド・ドロップすると、キーと外部キーの関係とともに、表の列も論理表にコピーされます。物理レイヤーのキーと結合をミラーリングした論理キーと論理結合が作成されます。

メニュー・オプション・メソッドを使用して論理表を作成した後、すべてのキーと結合を手動で作成する必要があります。

ビジネス・モデルとマッピング・レイヤーにオブジェクトを追加した後は、物理レイヤーのオブジェクトに影響を及ぼさずに、論理表のオブジェクトを変更できます。

表を新規作成した場合や、物理レイヤーからビジネス・モデルとマッピング・レイヤーに追加の表をドラッグした場合は、新規作成した表または新規にドラッグした表と前にドラッグした表との間の論理マッピングを作成する必要があります。

「結合マネージャを使用した論理結合の定義」および「ビジネス・モデル図を使用した論理結合の定義」を参照してください。

参照表には、ベース表の行に対応する多言語データが格納されます。『Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の「Oracle Business Intelligenceのローカライズ」を参照してください。
  1. 管理ツールで論理表を作成するには、次のいずれかを実行します。
    • (推奨の方法)物理レイヤーで1つ以上の表オブジェクトを選択して、ビジネス・モデルとマッピング・レイヤーのビジネス・モデルにドラッグ・アンド・ドロップします。
    • (手動の方法)ビジネス・モデルとマッピング・レイヤーで、ビジネス・モデルを右クリックして「新規オブジェクト」を選択し、 「論理表」を選択します。
  2. 手動で作成した表の場合、表を右クリックして「プロパティ」を選択します。
  3. 手動で作成した表の場合、「論理表」の「一般」タブで、「名前」に論理表の名前を入力します。
  4. (オプション)表を参照表として使用する場合は、「参照表」を選択します。
  5. (オプション)「説明」で、表の使用に関する説明を入力します。
  6. 「OK」をクリックします。

論理表ソースでのデータ駆動断片選択の有効化

「データ駆動断片選択」オプションを有効にして、断片化された論理表ソースのパフォーマンスを向上できます。

「データ駆動断片選択」は、デフォルトで無効になっています。

  1. 管理ツールの「ビジネス・モデルとマッピング」列から、断片化された論理表ソースを使用するモデルを右クリックして、「問合せ関連オブジェクト」「論理表ソース」の順に選択します。
  2. 「問合せ関連オブジェクト」で、論理表ソースを選択し、「編集」をクリックします。
  3. 「論理表ソース」の「コンテンツ」タブで、「データ駆動断片選択を有効化する」をクリックしてから、「OK」をクリックします。

論理表の主キーの指定

ビジネス・モデルとマッピング・レイヤーで表を作成したら、ディメンション表ごとに主キーを指定します。

論理ディメンション表には、論理主キーを指定する必要があります。論理キーは、1つ以上の論理列で構成できます。

注意:

論理ファクト表には論理キーを指定しないことをお薦めします。

  1. 管理ツールのビジネス・モデルとマッピング・レイヤーで、表をダブルクリックします。
  2. 「論理表」ダイアログで、「キー」タブを選択して、「新規」をクリックします。
  3. 「論理キー」ダイアログで、キーの名前を入力して、論理表のキーを定義する列を選択します。
  4. 「OK」をクリックします。

論理表の外部キーの確認

論理表で外部キー結合を使用しないことをお薦めします。

論理外部キー結合を作成するには、「オプション」ダイアログで「論理外部キー結合作成の許可」オプションを有効にする必要があります。

「結合マネージャを使用した論理外部キー結合の作成」を参照してください。

「論理表」ダイアログの「外部キー」タブは、以前のリリースのOracle Business Intelligenceで使用していた可能性のある論理外部キーを確認するためのものです。

論理結合の定義

論理表間の関係は、論理結合によって表されます。

論理結合は、物理的な結合ではなく概念上の結合です。論理結合は特定のキーまたは列を結合しません。1つの論理結合が可能な多くの物理結合に対応する場合があります。

論理結合の重要なプロパティの1つがカーディナリティです。カーディナリティは、ある表内の行が結合先の表の行とどのように関連するかを表します。1対多のカーディナリティは、最初の論理ディメンション表の各行に対応する行が、2つ目の論理表には0個、1個または多数あることを意味します。管理ツールでは、ある表が、その他の論理表に対応しているすべての論理結合において多の側である場合、その表は論理ファクト表と見なされます。

Oracle BIサーバーで必要なメタデータによってビジネス・モデルに対する論理リクエストが物理データ・ソースに対するSQL問合せに変換されるように、論理表結合を指定する必要があります。論理結合情報によって、Oracle BIサーバーに、論理表間の多対1関係の情報が提供されます。この論理結合情報は、Oracle BIサーバーで基礎となるデータベースに対する問合せが生成されるときに使用されます。

次の両方が当てはまる場合、ビジネス・モデルとマッピング・レイヤーで論理結合を作成する必要はありません。

  • 必要な物理表すべてをビジネス・モデルとマッピング・レイヤーに同時にドラッグ・アンド・ドロップすることによって論理表を作成する場合

  • 論理結合が物理レイヤーの結合と同じである場合

ビジネス・モデルとマッピング・レイヤーでいくつかの論理結合を作成する必要が生じる場合があります。非常に単純なモデルの場合を除いて、すべての物理表を同時にドラッグ・アンド・ドロップすることはできません。

結合マネージャまたはビジネス・モデル図を使用して、論理結合を作成できます。物理レイヤーで複合結合を作成する場合は、式、および結合を作成する特定の列を指定できます。ビジネス・モデルとマッピング・レイヤーで論理結合を作成する場合は、式も結合を作成する列も指定できません。物理レイヤーに結合が存在するからといって、ビジネス・モデルとマッピング・レイヤーに一致する結合が必要なわけではありません。

注意:

論理表には外部キーを指定しないことをお薦めします。ただし、「オプション」ダイアログで「論理外部キー結合作成の許可」を選択した場合は、下位互換性のために、結合マネージャを使用して、論理外部キー結合を作成できます。

ファクト表の論理キーは、属性表に結合するキー列を使用して構成します。特定のサード・パーティの問合せおよびレポート作成ツールのODBCデータ・ソースとしてOracle BIサーバーを使用する場合に、論理外部キー結合が必要なことがあります。

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

ビジネス・モデル図を使用した論理結合の定義

ビジネス・モデル図には、論理表とそれらの表の間に定義されている結合が表示されます。

ビジネス・モデル図で、結合は、選択した2つの表の間の線で表され、結合の「1」側が矢印になっています。この図は、ビジネス・モデル図での結合を示しています。

ビジネス・モデル図を使用して、表の間に論理結合を定義できます。「駆動表の指定」を参照してください。

この駆動表オプションは、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでマルチデータベースの内部結合を処理する方法の最適化に有用です。マルチデータベース結合を実行しないかぎり、駆動表は選択しないでください。

重要:

駆動表を指定するかどうかの決断には、十分な注意を払ってください。駆動表は、まれな状況で、駆動表が非常に小さい(1,000行未満)場合にのみ問合せの最適化に使用します。駆動表を間違って選択すると、重大なパフォーマンス低下をまねくおそれがあります。

  1. 管理ツールで、ビジネス・モデルを右クリックして、「ビジネス・モデル図」を選択し、「図全体」を選択します。
  2. 「図」メニューから、管理ツールのツール・バーにある「新規結合」ボタンをクリックします。
  3. 「ビジネス・モデル図」で、結合の1つ目の表(1対多結合の多を表す表)をクリックして選択します。
  4. 結合に使用する表(1対多結合の1を表す表)にカーソルを移動し、2つ目の表をクリックして選択します。
  5. (オプション)キーに駆動表を指定するには、「駆動表」リストから表を選択し、適切なカーディナリティを指定します。
  6. タイプ」リストから結合タイプを選択するか、デフォルト値をそのまま使用します。
  7. 結合の両側に「カーディナリティ」を設定するか、デフォルト値をそのまま使用します。
  8. 「OK」をクリックします。

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

結合マネージャを使用して、論理結合の関係の表示と論理結合の作成を実行できます。

また、お薦めできませんが、「オプション」ダイアログで「論理外部キー結合作成の許可」を選択した場合は、結合マネージャを使用して、論理外部キー結合を作成できます。

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

結合マネージャを使用した論理結合の作成

ビジネス・モデルとマッピング・レイヤーでは、論理外部キー結合よりも論理結合をお薦めします。

駆動オプションを使用して、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでマルチデータベースの内部結合を処理する方法の最適化します。マルチデータベース結合を実行しないかぎり、駆動表は選択しないでください。

注意:

駆動表を指定するかどうかの決断には、十分な注意を払ってください。駆動表は、まれな状況で、駆動表が非常に小さい(1,000行未満)場合にのみ問合せの最適化に使用します。駆動表を間違って選択すると、重大なパフォーマンス低下をまねくおそれがあります。

「駆動表の指定」を参照してください。

  1. 管理ツールで、「管理」を選択して、「結合」を選択します。
  2. 結合マネージャで、「アクション」を選択し、「新規」を選択して、次に、「論理結合」を選択します。
  3. 「論理結合」ダイアログで、論理結合の名前を入力します。
  4. ダイアログの右側と左側にある「」リストで、論理結合で参照する表を選択します。
  5. (オプション)キーに駆動表を指定するには、駆動リストから表を選択し、適切なカーディナリティを指定します。
  6. タイプ」リストから結合タイプを選択するか、デフォルト値をそのまま使用します。
  7. 結合の両側に「カーディナリティ」を設定するか、デフォルト値をそのまま使用します。
  8. 「OK」をクリックします。

結合マネージャを使用した論理外部キー結合の作成

特定のサード・パーティの問合せおよびレポート作成ツールのODBCデータ・ソースとしてOracle BIサーバーを使用する予定の場合に、論理外部キー結合が必要なことがあります。

論理外部キーは作成しないでください。「駆動表の指定」を参照してください。

この駆動表オプションは、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでマルチデータベースの内部結合を処理する方法の最適化に有用です。マルチデータベース結合を実行しないかぎり、駆動表は選択しないでください。

重要:

駆動表を指定するかどうかの決断には、十分な注意を払ってください。駆動表は、まれな状況で、駆動表が非常に小さい(1,000行未満)場合にのみ問合せの最適化に使用します。駆動表を間違って選択すると、重大なパフォーマンス低下をまねくおそれがあります。

  1. 管理ツールで、「ツール」を選択し、「オプション」を選択します。
  2. 「オプション」ダイアログの「一般」タブで、「論理外部キー結合の許可」を選択します。
  3. 「OK」をクリックします。
  4. 管理」を選択し、「結合」を選択して結合マネージャを表示します。
  5. 「アクション」を選択し、「新規」を選択して、次に、「論理外部キー」を選択します。
  6. 「参照」ダイアログで、表をダブルクリックします。
  7. 「論理外部キー」ダイアログで、外部キーの名前を入力します。
  8. ダイアログの左側にある「」リストで、外部キーで参照する表を選択します。
  9. 左の表から、外部キーで参照する列を選択します。
  10. 右の表から、外部キー列を構成する列を選択します。
  11. (オプション)キーに駆動表を指定するには、駆動リストから表を選択し、適切なカーディナリティを指定します。
  12. タイプ」リストから結合タイプを選択するか、デフォルト値をそのまま使用します。
  13. 結合の両側に「カーディナリティ」を設定するか、デフォルト値をそのまま使用します。
  14. 式ビルダーで、結合の式を入力します。
  15. OK」をクリックして、作業を保存します。

駆動表の指定

駆動表は、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでクロスデータベース結合を処理する方法の最適化に有用です。

駆動表の指定は、駆動表から選択された行数が結合先の表の行数よりはるかに少ない場合にのみ、問合せの最適化に使用できます。

重要:

問題が発生しないように、駆動表は、非常に小さい、つまり1,000行未満の場合にのみ指定します。

「論理結合」ウィンドウから論理結合に駆動表を指定できます。駆動表を指定した場合、Oracle BIサーバーでは、問合せ計画で駆動表の使用によって問合せ処理が最適化されると判断された場合に駆動表が使用されます。小さな表(駆動表)がスキャンされ、パラメータ化された問合せが大きな表に発行されて一致する行が選択されます。その後で、その他の表が、その他の駆動表を含めて、一緒に結合されます。

重要:

駆動表から行が多数選択された場合、駆動表の指定によって重大なパフォーマンス低下をまねくおそれがあり、MAX_QUERIES_PER_DRIVE_JOINの制限値を超えた場合は、問合せが終了します。

駆動表は、内部結合に使用し、駆動表が左外部結合の左の表である場合、または右外部結合の右の表である場合は、外部結合に使用します。駆動表は、完全外部結合には使用されません。駆動表を指定する手順については、論理結合の定義を参照してください。

駆動表のパフォーマンスを制御およびチューニングする機能として、データベース機能表に2つのエントリがあります。

  • MAX_PARAMETERS_PER_DRIVE_JOIN

    これは、パフォーマンス・チューニング・パラメータです。値が大きいほど、生成されるパラメータ化された問合せの数が少なくなります。値が大きすぎると、バックエンド・データベース制限によりパラメータ化問合せが失敗します。値を0 (ゼロ)に設定すると、駆動表結合がオフになります。

  • MAX_QUERIES_PER_DRIVE_JOIN

    これは、リソース集中型の駆動表結合を防ぐために使用します。パラメータ化問合せの数がこの値を超えると、問合せが終了し、エラー・メッセージがユーザーに返されます。

結合トリミングを決定する要因

物理問合せからOracle BIサーバーがトリミングできる結合を決定する際に、Oracle BIサーバーではこの項で説明する要因が考慮されます。

次の結合トリミングのルールが、論理表ソース内の表に対して施行されます。

  • 結合の外部性(内部、左外部、右外部、または完全外部)。

  • 結合カーディナリティ({0..1、1、N、不明}対{0..1、1、N、不明})。たとえば、0..1対Nはゼロまたは1対複数の結合を表します。結合の少なくとも片側には、不明カーディナリティを除き、9つの結合カーディナリティの組合せがあります。

  • 論理表ソースにWHERE句のフィルタが含まれているかどうか。

  • 物理結合が複合結合または外部キー結合であるかどうか。

Oracle BIサーバーで結合をトリミングする場合、次の基準を満たす必要があります。

  • トリミングされた表の参照は、列の予測されるリストやWHERE句の中など、問合せ内のどの場所にも存在しません。

  • トリミングされた表によって結果セットのカーディナリティが変更されることがあってはいけません。結合を削除することによって選択した行数が変更される可能性がある場合、Oracle BIサーバーでは結合をトリミングしません。

    次の条件のいずれかがtrueである場合、結合には、結果セットの行数を変更する可能性があるものと見なされます。次の条件のいずれでもtrueである場合、結合は問合せからトリミングされません。

    • この結合は完全外部結合です。内部結合、左外部結合および右外部結合のみがトリミングの候補です

    • いずれかの側で結合カーディナリティが不明です。

    • トリミングする表が結合の複数の側にあります。つまり、マスター/詳細の関係で詳細表はトリミングされません

    • トリミングする表のカーディナリティが0..1であり、結合が内部結合です。カーディナリティ0..1は、表内に一致する行が存在する可能性があることを意味します。一方の側に0..1のカーディナリティが設定されている結合は、実質的にフィルタのように機能します。選択した行数を変更しないと、Oracle BIサーバーで表をトリミングできません。

    • トリミングする表が、左外部結合の左側、または右外部結合の右側にあり、行を維持する表は決してトリミングされません。このルールでは、DISTINCT句が問合せに追加される属性のみを選択する問合せに対して、例外が1つあります。DISTINCT句であるため、行を維持する表をトリミングしてもNull指定の表から返される行数に影響はありません。属性に対する個別の問合せの特殊なケースでは、外部結合からの行を維持する表をトリミングできます。

次の表に、Oracle BIサーバーで問合せから結合をトリミングできる例を示します。

シナリオ 結果
従業員 内部結合 部門

従業員 内部結合 部門

部門は内部結合の1の側にあるため、Oracle BIサーバーでトリミングできます。

従業員は内部結合の複数の側にあるため、Oracle BIサーバーでトリミングできません。

従業員 左外部結合 部門

従業員 左外部結合 部門

部門は結合の1の側にあり、左外部結合の右側、Nullを指定する表にあるため、Oracle BIサーバーでトリミングできます。

従業員は複数の側にあり、左外部結合の左側、行を維持する表にあるため、Oracle BIサーバーでトリミングできません。

従業員 右外部結合 部門

従業員 右外部結合 部門

部門は右外部結合の右側、行を維持する表にあるため、Oracle BIサーバーでトリミングできません。

従業員は結合の複数の側にあるため、Oracle BIサーバーでトリミングできません。

従業員 内部結合 従業員情報

従業員 内部結合 従業員情報

両方の表が内部結合の1の側にあるため、Oracle BIサーバーで両側ともトリミングできます。

従業員 左外部結合 従業員情報

従業員 左外部結合 従業員情報

従業員情報は結合の1の側にあり、左外部結合の右側、Nullを指定する表にあるため、Oracle BIサーバーでトリミングできます。

従業員は左外部結合の左側の行を維持する表にあるため、Oracle BIサーバーでトリミングできません。

従業員 右外部結合 従業員情報

従業員 右外部結合 従業員情報

従業員情報は右外部結合の右側の行を維持する表にあるため、Oracle BIサーバーでトリミングできます。

従業員は結合の1の側にあり、右外部結合の左側、Nullを指定する表にあるため、トリミングできます。

従業員 内部結合 部門

従業員 内部結合 部門

部門は内部結合の0..1の側にあるため、Oracle BIサーバーでトリミングできます。

従業員は内部結合の複数の側にあるため、Oracle BIサーバーでトリミングできます。

従業員 左外部結合 部門

従業員 左外部結合 部門

部門は外部結合の0..1の側にあり、左外部結合の右側、Nullを指定する表にあるため、Oracle BIサーバーでトリミングできます。

Oracle BIサーバーでは、外部結合の0..1の側にあるNullを指定する表をトリミングでき、その理由は、この場合は問合せから部門をトリミングしても、従業員表から選択した行数が変更されないためです。

従業員は外部結合の複数の側にあるため、Oracle BIサーバーでトリミングできます。

従業員 完全外部結合 部門

従業員 完全外部結合 部門

結合は完全外部結合なので、Oracle BIサーバーでは両側ともトリミングできません。

従業員 複数対複数 プロジェクト

従業員 複数対複数 プロジェクト

結合は多対多であるため、Oracle BIサーバーでは両側ともトリミングできません。

従業員 不明 部門

従業員 不明 部門

結合のカーディナリティが不明であるため、Oracle BIサーバーでは両側ともトリミングできません。

論理オブジェクトにマップする物理表の特定

物理図には、選択した論理オブジェクトにマップする物理表と、各表間の物理結合が示されます。

結合オプションの1つである「ビジネス・モデル内のオブジェクトと直接結合」は、論理レイヤーに特有のオプションです。このオプションによって、次の両方の条件を満たす表の物理図が作成されます。

  • 選択されたオブジェクト内の表、および直接結合する表

  • ビジネス・モデル内でマップされている(ビジネス・モデルの論理表ソースに存在する)表

  1. 管理ツールの「ビジネス・モデルとマッピング」レイヤーで、ビジネス・モデル、論理表または論理表ソースを右クリックします。
  2. 物理図」を選択して、いずれかの結合オプションを選択します。
  3. 1対多などの関係線をより明確に表示するには、任意のオブジェクトをクリックしてドラッグします。

論理列の作成と管理

多くの論理列は、物理レイヤーからビジネス・モデルとマッピング・レイヤーに表をドラッグすることによって自動的に作成されます。

その他の論理列は、特に他の論理列に基づいた計算が含まれる論理列は、後で作成することができます。

論理列は、属している論理表から展開されるツリー構造で表示されます。論理列が主キー列の場合または主キーに関与している場合、その論理列はキー・アイコンが付いて表示されます。論理列に集計ルールが設定されている場合は、ルール・アイコンが付いて表示されます。ビジネス・モデルとマッピング・レイヤーで論理列を並べ替えることもできます。

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

論理列の作成

この手順を使用して、ビジネス・モデルとマッピング・レイヤーで論理列を作成します。

  1. ビジネス・モデルとマッピング・レイヤーで、論理表を右クリックします。
  2. ショートカット・メニューから「新規オブジェクト」を選択して、「論理列」を選択します。
  3. 「一般」タブで、論理列の名前を入力します。

    ビジネス・モデルの名前および関連付けられている論理表が「表に所属」フィールドに表示されます。

  4. 書込み可能」を選択して、この列のライトバックを有効にします。
  5. 「OK」をクリックします。

別の列に基づいた論理列のソート

論理列には、ソート順序の基礎とする別の列を指定できます。

値をアルファベット順(辞書式順)に並べ替えないときは、列のソート順序を変更します。

辞書式順序のソートでは、数字が別のグループに分けられるのではなく、アルファベットのスペル順で並べられます。

たとえば、月をソートする場合(MONTH_NAMEなどの列を使用して)、辞書式ソート順序で、2月、1月、3月という結果が返されます。月は時間的順序でソートすることもできます。表には、MONTH_KEYなどの月キーを、1 (1月)、2 (2月)、3 (3月)の値で含めて、時間的ソート順序にする必要があります。MONTH_NAME列の「ソート順列」フィールドをMONTH_KEYに設定すると、MONTH_NAMEによる並替えのリクエストにより、1月、2月、3月の順序で値が返されます。

物理レイヤーからキューブをドラッグ・アンド・ドロップすることによってビジネス・モデルが作成される場合、Essbaseデータ・ソースに対してソート列が自動的に定義されます。

  1. 「論理列」ダイアログの「一般」タブで、「ソート順列」フィールドの横の「設定」をクリックします。
  2. 「参照」ダイアログで、列を選択します。
  3. 列の詳細を表示するには、「表示」をクリックして、対象の列の「論理列」ダイアログを開き、「取消」をクリックします。

    このダイアログで変更を加えることができます。変更を加えた場合は、「取消」ではなく、「OK」をクリックして、変更を確定します。

  4. 「参照」ダイアログで、「OK」をクリックします。

記述子ID列の割当てによる二重列サポートの有効化

多言語列がルックアップ関数をベースとしている場合、翻訳されていないルックアップ・キー列を、翻訳された列の記述子ID列として指定することが一般的です。

論理列に記述子ID列を割り当てると、二重列サポートが有効になります。二重列サポートを使用すると、言語に依存しないフィルタを定義できます。たとえば、「アンサー」では、ユーザーに表示列が表示されますが、問合せでは非表示の記述子ID列にフィルタが適用されます。

「多言語データのサポート」を参照してください。

二重列サポートは、2つの列を関連付けるメカニズムを提供します。1つの列は、表示および説明の値を提供します(項目の説明など)。2列目は、記述子ID列またはコード列を示します。たとえば、実際の列を使用してプロジェクトリストを提供し、ClinicとClinic IDのように、1列目に関連付けられたID列を非表示にすることができます。Clinicの説明のみがユーザーに表示されます。二重列のアプローチを使用すると、Essbaseの一意性の要件を満たすために役立ちます。Clinicの例では、次の手順のステップを使用して、クリニックIDが含まれる列への関連付けを追加できます。

  1. Oracle BI管理ツールでリポジトリを開きます。
  2. 「ビジネス・モデルとマッピング」レイヤーで、ビジネス・モデルを展開し、更新する列が含まれる表を展開します。
  3. 列を右クリックして、「問合せ関連オブジェクト」「ビジネス・モデルとマッピング」「論理列」の順に選択します。
  4. 選択した列に関連した論理列」ダイアログで、選択した列に関連付ける列をクリックし、「編集」をクリックします。
  5. 「論理列」ダイアログで、「記述子ID列」フィールドの横の「設定」をクリックします
  6. 「参照」ダイアログで、記述子IDとして使用する列を選択し、「OK」をクリックします。

派生列の作成

集計後の計算をメジャーに適用する手段として他の論理列から列を派生する場合があります。

「論理列」ダイアログの「列ソース」タブで派生列式を指定します。

「計算ウィザード」を使用して一連の派生列を作成することもできます。「「計算ウィザード」の使用」を参照してください。

NQSConfig.INIで、パラメータPREVENT_DIVIDE_BY_ZEROYESに設定されている場合、Oracle BIサーバーでは、「アンサー」列計算の場合でも、ゼロ除算の状況でエラーが防止されます。Oracle BIサーバーでは、物理SQLの記述時にnullif()または同様の関数を使用してゼロ除算阻止式が作成されます。このため、PREVENT_DIVIDE_BY_ZEROYES(デフォルト値)に設定されているかぎり、ゼロ除算エラーを回避するためにCASE文を使用する必要はありません。

計算に事前集計を適用することもできます。「物理から論理表ソースへのマッピングの定義と計算項目の作成」を参照してください。

パフォーマンスを最適化するために、式ビルダーでは集計を定義しないでください。かわりに、「論理列」ダイアログの「集計」タブを使用します。「メジャー列の集計のデフォルト・レベルの設定」を参照してください。

  1. 「論理列」ダイアログで、「列ソース」タブを選択します。
  2. 式を使用して既存の列から派生」オプションを選択します。
  3. 式ビルダー」ボタンをクリックして、式ビルダーを開きます。
  4. 式ビルダーの「派生論理列」ダイアログで、論理列の派生元の式を指定します。
  5. 「OK」をクリックします。

式ビルダーを使用して、参照関数を作成することにより、多言語データベース・スキーマからデータを表示することができます。『Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の「多言語データのサポート」を参照してください。

複数通貨サポートのための論理列の構成

Oracle Business Intelligenceユーザーが分析やダッシュボードで通貨列を表示する通貨を選択できるように、論理列を構成できます。

すべてのユーザーで通貨オプションの同一の静的リストが表示されるようにこの機能を設定することも、指定する論理SQL文に基づいて変化する通貨オプションの動的リストを提供することもできます。

プレゼンテーション・サービスの式でセッション変数を使用する場合は、それらの名前の先頭にNQ_SESSIONを付ける必要があります。通貨値を表示する論理列を編集して、PREFERRED_CURRENCYセッション変数を使用して適切な変換ファクタが使用されるようにします。

「セッション変数の作成」および「初期化ブロックの作成」を参照してください。

次の論理列式では、NQ_SESSION.PREFERRED_CURRENCY変数の値を使用して、複数の通貨列が切り替わります。各通貨列には変換された適切な値が含まれるよう設定されています。

INDEXCOL( CASE VALUEOF(NQ_SESSION.PREFERRED_CURRENCY) WHEN 'gc1' THEN 0
WHEN 'gc2' THEN 1 WHEN 'orgc' THEN 2 WHEN 'lc1' THEN 3 ELSE 4 END,
"Paint"."Sales Facts"."USDCurrency",
"Paint"."Sales Facts"."DEMCurrency" ,
"Paint"."Sales Facts"."EuroCurrency" ,
"Paint"."Sales Facts"."JapCurrency" ,
"Paint"."Sales Facts"."USDCurrency" )
  1. PREFERRED_CURRENCYという名前のセッション変数を、この変数で使用する初期化ブロックとともに作成します。

    このセッション変数を作成するときは、「ユーザーによる値の設定を可能にする」を選択します。

  2. 「ビジネス・モデルとマッピング」レイヤーで、該当する論理列をダブルクリックして、「列ソース」タブを選択し、PREFERRED_CURRENCY変数を使用する派生式を作成します。
  3. (オプション)通貨オプションの動的リストを提供するには、ユーザー設定の通貨に対して表示するエントリを指定する表をデータ・ソースに作成します。この表には、次の列が必要です。
    • 最初の列には、セッション変数PREFERRED_CURRENCYの設定に使用する変数が含まれます。この列の各値は、通貨を一意に識別する文字列(たとえば、gc2)です。

    • 2つ目の列には、ファイルcurrencies.xmlからの通貨タグが含まれます。各タグのdisplayMessageの値は、「通貨」ボックスと通貨プロンプト(たとえばint:euro-1)の移入に使用されます。currencies.xmlファイルは、ORACLE_HOME\bi\bifoundation\web\displayにあります。

    • プレゼンテーション変数currency.userPreferenceを設定するために使用する値を含む3番目の列を指定できます。この列の各値は、通貨を識別する文字列(たとえば、Global Currency 2)です。この列を省略した場合、currencies.xmlファイルの対応する通貨タグのdisplayMessage属性の値が使用されます。

    次の表は、ユーザー設定の通貨エントリが含まれる表のサンプルを示しています。

    UserPreference CurrencyTag UserPreferenceName

    char

    char

    char

    orgc1

    loc:en-BZ

    Org currency

    gc2

    int:euro-1

    Global currency 2

    lc1

    int:DEM

    Ledger currency

    gc1

    int:USD

    Global Currency 1

プレゼンテーション・サービスでこの機能を有効にするには、追加の構成が必要です。Oracle BIプレゼンテーション・サービスの構成に関する詳細は、Oracle Business Intelligence Enterprise Editionシステム管理者ガイドのユーザー定義の通貨オプションの定義を参照してください。

メジャー列の集計のデフォルト・レベルの設定

メジャーであるマップ済論理列に、集計ルールを指定する必要があります。

集計COUNTおよびCOUNTDISTINCTを除いて、集計はメジャー列に対してのみ実行します。メジャー列は、論理ファクト表にのみ指定できます。

対象の論理列に関連付けられている別のディメンションに別の集計ルールを選択できます。たとえば、1つのディメンションに沿って集計列に問合せが実行された場合、1つのタイプの集計ルールを使用できる一方で、別のディメンションに沿って別の集計ルールを使用することもできます。

デフォルトの集計ルールが「重複を除いた件数」の場合、特定の論理表ソースにオーバーライド集計式を指定できます。たとえば、なんらかの集計レベルがすでに含まれている別の集計表ソースに問合せを実行する場合に、オーバーライド集計式を指定できます。オーバーライドを指定しないと、デフォルトのルールが使用されます。

EVALUATE_AGGR集計ルールを選択して、問合せでデータ・ソースのカスタム関数をコールできるように指定できます。『Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Edition論理SQLリファレンス・ガイド』のEVALUATE_AGGRに関する項と「マルチディメンション・データ・ソースへの集計ルールの定義」を参照してください。

デフォルトで、データはスパースであると見なされます。ただし、論理表ソースのデータ密度が高いことがあります。論理表ソースは、関連付けられているディメンション・レベルの組合せごとに行が存在する場合に密度が高いデータが含まれると見なされます。メジャー列に集計ルールを設定するときは、マッピング先のすべての論理表ソースのデータ密度が高い場合にのみデータ密度が高いと見なすことができます。

「論理列へのディメンション固有の集計ルールの設定」を参照してください。

すべてのディメンションで加算性が同一のメジャーの場合、「デフォルトの集計ルール」リストからいずれかの集計関数を選択します。問合せでユーザーまたはアプリケーションから列がリクエストされたときに、オーバーライド集計式が指定されていないかぎり、選択したファンクションが常に適用されます。デフォルトの集計ルールとして「重複を除いた件数」を選択した場合、特定の論理表ソースにオーバーライド集計式を指定できます。このオプションは、1つの論理列に複数の論理表ソースがマップされており、ソースごとに異なる集計ルールを適用する場合に選択します。

  1. ビジネス・モデルとマッピング・レイヤーで、論理列をダブルクリックします。
  2. 「論理列」ダイアログで、「集計」タブをクリックします。
  3. 「集計」タブで、次のいずれかのオプションを選択します。
    • 「デフォルトの集計ルール」リストからいずれかの集計関数を選択します。
      1. 追加」ボタンをクリックして、個々の集計ルールを指定する論理表ソースを選択します。

      2. 「参照」ダイアログで、追加する論理表ソースを選択して「OK」をクリックします。

      3. 選択した論理表ソースの「式」リストで、使用する集計ルールを選択します。

    • 準加算メジャーの場合に、メジャーの加算性がディメンションごとに異なる場合、「ディメンションに基づく」を選択します。

      1. 追加」ボタンをクリックして、集計ルールを指定する追加のディメンションを選択します。

      2. 「参照」ダイアログで、追加するディメンションを選択して、「OK」をクリックします。

      3. 選択したディメンションの「式」リストで、使用する集計ルールを選択するか、「式ビルダー」ボタンをクリックし、式ビルダーを使用して集計ルールを作成します。

      4. ディメンションに基づく」を選択すると、「データの密度が高い」オプションが表示されます。この列のマップ先の論理表ソースがすべて密度が高い場合はこのオプションを選択します。

        データの密度が高い」を選択することは、対象の列のマップ先のすべてのソースで、ソースが表しているディメンション・レベルの組合せごとに行があることを示しています。対象の列で使用されるいずれかの表ソースに密度の高いデータが含まれない場合にこのオプションを選択すると、正しくない結果が返されます。

  4. 「OK」をクリックします。

論理列へのディメンション固有の集計ルールの設定

大多数のメジャーで、各ディメンションに同一の集計ルールが設定されます。メジャーによっては、ディメンションごとに異なる集計ルールが設定されていることもあります。

たとえば、銀行は一定期間の単純な合計で計算された個別の預金の平均ではなく、特定期間の平均預金残高を計算できます。ディメンション固有の集計ルールを構成できます。指定した1つのディメンションに1つの集計ルールを指定し、他のディメンションには適用する他のルールを指定することができます。

ディメンション固有の集計を設定するには、ビジネス・モデルとマッピング・レイヤーでディメンションを構成する必要があります。論理表ソース(マッピング)の管理を参照してください。

指定したディメンションにルールを選択した後、「その他」というラベルが付いたディメンションを使用して、残りのディメンションに集計ルールを設定します。

メジャーの計算時に、集計ルールは、このダイアログで指定されている順序(上から下)で適用されます。複数のディメンションがある場合は、「上へ」または「下へ」を使用して、ディメンション固有のルールの実行順序を変更できます。

  1. ビジネス・モデルとマッピング・レイヤーで、論理列をダブルクリックします。
  2. 「論理列」ダイアログで、「集計」タブをクリックします。
  3. 「集計」タブで、「ディメンションに基づく」を選択します。
  4. 「参照」ダイアログで、集計の基準として使用するディメンションを選択して、「OK」をクリックします。
  5. 「集計」タブで、「」リストからルールを選択します。
  6. (オプション)より複雑な式を作成する必要がある場合は、「式ビルダー」ボタンをクリックして、式ビルダーを開きます。
  7. 「OK」をクリックします。

複数の論理列に対するディメンション固有の集計ルールの指定

複数の論理ファクト列に対する集計ルールを指定するには、このタスクのステップを使用してください。

メジャーの計算時に、集計ルールは、このダイアログで指定されている順序(上から下)で適用されます。

少なくとも2つの列を選択して、「集計の設定」メニュー項目を有効にします。これらの列に派生列が含まれていると、「集計の設定」は有効になりません。

  1. ビジネス・モデルとマッピング・レイヤーで、複数の論理ファクト列を選択します。
  2. 右クリックして、「集計の設定」を選択します。
  3. 「集計」ダイアログで、「すべての列が同じ」を選択するか、「クリア」を選択してから特定の列を選択します。
  4. 「集計」タブで、「ディメンションに基づく」を選択します。
  5. 「参照」ダイアログで、集計の基準として使用するディメンションを選択して、「OK」をクリックします。
  6. 1つのディメンションにルールを選択した後、「その他」というラベルが付いたエントリに入っているその他のディメンションに集計ルールを指定します。
  7. 」列の右にある「式ビルダー」ボタンをクリックします。
  8. 式ビルダーの「集計」タブで、「」リストから、対象のディメンションに沿って実行する集計を選択します。
  9. ディメンション固有のルールの実行順序を変更するには、「上へ」または「下へ」をクリックして、「OK」をクリックします。

マルチディメンション・データ・ソースへの集計ルールの定義

Essbase、Oracle OLAP、およびMicrosoft Analysis ServicesやSAP/BWなどのマルチディメンション・データ・ソースをソースとする論理メジャーに、集計ルールを定義する際のベスト・プラクティスについて説明します。

Essbaseのキューブなどのマルチディメンションのキューブを「物理」レイヤーにインポートすると、Oracle BIサーバーはデータソース内で設定された集計ルールを読み取れなくなります。デフォルトの動作の結果、メジャーは、外部集計のデフォルトの集計ルールを使用して自動的にインポートされます。

Oracle BIサーバーでは、外部集計は次のことを意味します。

  • 特定のメジャーの基礎となる集計ルールを認識できない。

  • メジャーを計算できない。

  • 常に基礎となるマルチディメンション・データ・ソースに集計の問合せを送信する。

基礎となるデータ・ソースは非常に効率的であるため、集計ルールをデータ・ソースにプッシュ・ダウンすることによって、Oracle BIサーバーから、処理でさらにオーバーヘッドを追加することなく結果を返すことができるようになります。「物理」レイヤーおよび「ビジネス・モデルとマッピング」レイヤーの両方で、データ・ソースに定義されている対応する集計ルールとともに、Oracle Business Intelligenceでメジャーごとに集計ルールを更新することをお薦めします。メジャーごとに集計ルールを更新することで、Oracle BIサーバーは必要に応じて追加の計算ができるようになります。Oracle BIサーバーから最適化された問合せが可能なかぎり引き続きプッシュ・ダウンされるため、問合せのパフォーマンスに影響はありません。

注意:

Oracle BIサーバーで、特定の問合せに対して追加の集計を実行する必要があり、集計ルールが外部集計のデフォルト値に設定されている場合、Oracle BIサーバーから次のエラーが返されます。

外部問合せブロック内で外部集計が検出されました。

このエラーは、Oracle BIサーバーで、基礎となるデータ・ソースの集計ルールを読み取れなかったために発生します。これらの問合せに対して正しい結果が返されるようにするには、基礎となるデータ・ソースに設定されている集計ルールと一致するように、Oracle BIリポジトリに設定されている集計ルールを変更する必要があります。

Oracle Business Intelligenceで定義されている集計ルールが、基礎となるデータ・ソースのルールと一致することが必要です。また、次の図に示しているように、物理レイヤーおよびビジネス・モデルとマッピング・レイヤーの両方に適切な集計ルールを設定する必要もあります。

Oracle BIサーバー内に対応するファンクションがないカスタムの集計の場合、物理メジャー列とそれに対応する論理メジャー列の両方について集計を外部集計のままにすることをお薦めします。

注意:

Oracle OLAPデータ・ソースの場合、Oracle OLAP列に物理レイヤー集計ルールを明示的に設定することはありません。このため、ビジネス・モデルとマッピング・レイヤーのOracle OLAP列にのみ集計ルールを設定する必要があります。

また、問合せでOracle OLAPデータ・ソース内に存在しない集計がリクエストされたときに、集計ルールが外部集計に設定されている場合、Oracle BIサーバーからエラーが返されます。このエラーを回避するには、ビジネス・モデルとマッピング・レイヤーのOracle OLAP列に集計ルールを明示的に設定する必要があります。

Oracle OLAP列の集計ルールを外部集計以外のものに明示的に設定しないと、Oracle BIプレゼンテーション・サービスのカスタム・グループからのリクエストが失敗します。これは、カスタム・グループは常に、データ・ソースには存在しない集計をリクエストするためです。

ディメンション表の論理レベルとの属性の関連付け

属性を論理レベルと関連付けることができます。

メジャーは、複数のディメンションのレベルに関連付けることができるほか、指定されたレベルに集計できます。あるレベルに関連付けられたメジャーは、レベルベース・メジャーと呼ばれます。問合せのコンテキストに下位のグレインが含まれていても、レベルベース・メジャーはそのグレインで計算されます。たとえば、yearlySalesが年レベルに関連付けられている場合、問合せSelect month, yearlySalesで年レベルで計算されます。

ディメンションは、「ディメンション」リストに表示されます。対象の属性が論理レベルに関連付けられている場合、レベルは「レベル」リストに表示されます。

特定のディメンションのレベルにメジャーを関連付ける別の方法として、ビジネス・モデルとマッピング・レイヤーでディメンション・ツリーを展開し、ターゲットのレベルに列をドラッグ・アンド・ドロップできます。「レベルベース・メジャーの計算」を参照してください。

  1. 管理ツールの「ビジネス・モデルとマッピング」レイヤーで、論理列をダブルクリックして、メジャーをディメンションの論理レベルと関連付けます。
  2. 「論理列」ダイアログで、「レベル」タブをクリックします。
  3. 「レベル」タブで、論理レベルと関連付ける論理ディメンションがある行をクリックします。
  4. 「論理レベル」リストで、レベルを選択します。
  5. 「OK」をクリックします。

論理列の移動またはコピー

論理列をある表から別の表にドラッグ・アンド・ドロップすると、その論理列が移動されます。

同じ名前の列がすでに存在する場合は、新しい列の名前が変更されます(たとえば、mycolumn#1)。

「オプション」ダイアログの「論理列の移動時にプロンプトを表示」オプションを選択して、論理列をドラッグ・アンド・ドロップしたときに「移動列のソース」ダイアログが表示されるようにすることもできます。このダイアログでは、ドラッグ・アンド・ドロップの動作に関するオプションを選択できます。

論理列の移動時にプロンプトを表示」オプションの詳細は、「管理ツールのオプションの設定」を参照してください。

この手順が完了すると、移動またはコピーした列が論理ソースに関連付けられます。アクション・リストの値は次のとおりです。

  • 無視」を選択した場合、ターゲットの表のSourcesフォルダに論理ソースは追加されません。

  • 新規作成」を選択した場合、ターゲットの表のSourcesフォルダに、論理列に関連付けられた論理ソースのコピーが作成されます。

  • 「既存のものを使用」を選択した場合、ターゲット表の「ソース」フォルダから論理ソースを選択する必要があります。

  1. 「ビジネス・モデルとマッピング」レイヤーで、論理列を別の論理表にドラッグ・アンド・ドロップします。
  2. 「移動列のソース」ダイアログの、「アクション」リストから選択します。

列でのライトバックの有効化

Oracle BIプレゼンテーション・サービスでユーザーが列データを更新してデータ・ソースに変更をライトバックできるように、個々の論理列を構成できます。

特定の列でのライトバックを有効にするには、対象の論理列の「書込み可能」オプションを選択して、対応するプレゼンテーション列の「読取り/書込み」権限を有効にする必要があります。対応する物理表のキャッシュを無効にする必要もあります。

Oracle BIプレゼンテーション・サービスでライトバックを有効にするには、追加タスクを実行する必要があります。詳細は、Oracle Business Intelligence Enterprise Editionシステム管理者ガイドの分析とダッシュボードでのライトバック用の構成を参照してください。

  1. 管理ツールの物理レイヤーで、ライトバックを有効にする列が含まれる物理表をダブルクリックします。
  2. 「物理表」ダイアログの「一般」タブで、「キャッシュ可能」が選択されていないことを確認します。このオプションの選択を解除することによって、Oracle BIプレゼンテーション・サービスのユーザーが更新内容を即座に表示できるようになります。
  3. ビジネス・モデルとマッピング・レイヤーで、対応する論理列をダブルクリックします。

    この図は、「論理列」ダイアログを示しています。

  4. 「論理列」ダイアログで、「書込み可能」を選択してから、「OK」をクリックします。
  5. プレゼンテーション・レイヤーで、ライトバックを有効にした論理列に対応する列をダブルクリックします。「プレゼンテーション列」ダイアログが開きます。
  6. 「権限」をクリックします。
  7. 該当するユーザーとアプリケーション・ロールの「読取り/書込み」権限を選択します。

    この図は、「読取り/書込み」権限が選択された「権限」ダイアログを示しています。

  8. 「権限」ダイアログの「OK」をクリックします。
  9. 「プレゼンテーション列」ダイアログの「OK」をクリックします。

ビジネス・モデルとマッピング・レイヤーでの表示フォルダの設定

ビジネス・モデルとマッピング・レイヤーで表示フォルダを作成して、オブジェクトを編成することができます。表示フォルダが問合せ処理に影響を与えることはありません。

表示フォルダを作成すると、選択した表とディメンションが、表示フォルダにはショートカットとして表示され、ビジネス・モデル・ツリーにはオブジェクトとして表示されます。オブジェクトを非表示にして、表示フォルダのショートカットのみが表示されるようにすることができます。これらのオブジェクトを非表示にする方法は、「システム管理ツールのオプションの設定」の「オプション」ダイアログの「リポジトリ」タブに関する情報を参照してください。

注意:

表示フォルダ内の表を削除すると、そのオブジェクトへのショートカットのみが削除されます。表示フォルダ内の列を削除した場合は、その列が実際に削除されます。

  1. 管理ツールのビジネス・モデルとマッピング・レイヤーで、ビジネス・モデルを右クリックして、「新規オブジェクト」を選択し、「論理表示フォルダ」を選択します。
  2. 「論理表示フォルダ」ダイアログの「表」タブで、フォルダの名前を入力します。
  3. 表示フォルダに表を追加するには、「追加」をクリックします。「参照」ダイアログで、フォルダに追加するファクト表またはディメンション表を選択し、「選択」をクリックします。

    または、ダイアログを閉じてから、1つ以上の論理表を表示フォルダにドラッグできます。

  4. 表示フォルダにディメンションを追加するには、「ディメンション」タブをクリックして、「追加」をクリックします。「参照」ダイアログで、表示フォルダに追加するディメンションを選択して、「選択」をクリックします。

    または、ダイアログを閉じてから、1つ以上のディメンションを表示フォルダにドラッグできます。

  5. 「OK」をクリックします。

ブリッジ表のモデリング

ブリッジ表では、表間の多対多の関係を解決できます。

たとえば、「従業員」表に従業員に関する情報を格納して、従業員が担当している業務に関する情報を「業務」表に格納するとします。ただし、組織の従業員が複数の業務を担当している場合や、同じ業務を複数の従業員が担当している場合があります。このような状況では、「従業員」表と「業務」表の関係が多対多になります。

この多対多の関係を解決するには、「割当て」というブリッジ表(中間表)を作成します。「割当て」表の各行は一意で、1つの業務を担当する1人の従業員を表します。従業員が複数の業務を担当している場合、「割当て」表にはその従業員について複数の行が設定されます。1つの業務を複数の従業員が担当している場合、「割当て」表にはその業務について複数の行が設定されます。「割当て」表の主キーはコンポジット・キーで、従業員IDが含まれる列と業務IDが含まれる列で構成されます。

「割当て」表は、「業務」表と「従業員」表の間のブリッジ表として機能するため、「割当て」表を使用すると、従業員と業務の多対多の関係を次のように解決できます。

  • 従業員と割当ての1対多の関係

  • 割当てと業務の1対多の関係

この図は、ブリッジ表および関連するディメンション表の例の物理レイヤー・ビューを示しています。

問合せ処理を効率的にするために、ブリッジ表に追加列として重みファクタを含めて、このファクタがETL時に計算されるようにする必要があります。

次の各項では、物理レイヤーおよびビジネス・モデルとマッピング・レイヤーでブリッジ表をモデリングする方法を説明します。

ブリッジ表とそれに関連するディメンション表に対する物理レイヤーでの結合の作成

物理レイヤーでブリッジ表をモデリングするには、対象のブリッジ表とその関連ディメンション表との間に結合を作成します。

  1. 管理ツールの物理レイヤーで、ファクト表、ブリッジ表および関連するディメンション表を選択します。
  2. オブジェクトを右クリックして、「物理図」を選択し、「選択されたオブジェクトのみ」を選択します。
  3. 「新規結合」をクリックして、ブリッジ表を選択して、ディメンション表を1つ選択します。
  4. 「物理外部キー」ダイアログの「OK」をクリックします。
  5. その他の関連ディメンション表について、ステップ2と3を繰り返します。
  6. 必ず、関連ディメンション表の1つがファクト表に結合されるようにします。

関連するディメンション表の単一ディメンションでのモデリング

ビジネス・モデルとマッピング・レイヤーでは、ブリッジ表に関連付けられている2つのディメンション表を単一ディメンションでモデリングするか、または2つの個別のディメンションでモデリングするかを選択できます。

関連ディメンション表を単一ディメンションでモデリングするには、ブリッジ表と他方のディメンション表にマップする2つ目の論理表ソースを作成し、他方のディメンション表から列を追加します。ファクト表に結合されていないブリッジ表および関連付けられたディメンション表をドラッグしないでください。前述の例では、「割当て」表と「従業員」表以外のすべてのオブジェクトをドラッグします。

2つの個別の論理表ソースを設定することによって問合せがより効率的になります。これは、この設定によって、単一のディメンション表に対する問合せにブリッジ表が関係しなくなるためです。

ブリッジ表の名前をソースの名前として使用することをお薦めします。

  1. 物理レイヤーからビジネス・モデルとマッピング・レイヤーにオブジェクトをドラッグします。
  2. 「ビジネス・モデルとマッピング」レイヤーで、ファクト表に結合されているディメンション表を右クリックして、「新規オブジェクト」を選択し、「論理表ソース」を選択します。
  3. 「論理表ソース」ダイアログで、新しいブリッジ表ソースの名前を入力します。
  4. 「論理表ソース」ダイアログの右上隅にある「追加」ボタンをクリックします。
  5. 「名前」リストからブリッジ表を選択して、「選択」をクリックします。
  6. 「追加」をクリックし、ファクト表に結合されていない関連ディメンション表を選択して、「選択」をクリックします。
  7. 「論理表ソース」ダイアログで、「OK」をクリックします。
  8. ファクト表に結合されていないディメンション表(この例では「従業員」表)の列を、「物理」レイヤーから、作成したばかりの論理表ソースにドラッグします。

ブリッジ表ソースを伴う論理表も含め、論理表に基づいてディメンションを作成できます。

関連するディメンション表の個別ディメンションでのモデリング

1つのブリッジ表に関連付けられている2つのディメンション表を単一のディメンションでモデリングする処理の代替として、それらのディメンション表を個別のディメンションでモデリングすることができます。

ファクト表と、ファクト表に物理的には結合されていないディメンション表との間に論理結合を作成して、他の表マッピングを追加するためにその同じディメンション表の論理表ソースを変更します。

  1. 物理レイヤーからビジネス・モデルとマッピング・レイヤーにオブジェクトをドラッグします。
    ディメンション表を個別ディメンションでモデリングするため、ブリッジ表に関連付けられているディメンション表を両方ともドラッグします。ブリッジ表オブジェクトをドラッグ・アンド・ドロップする必要はありません。
  2. 「ビジネス・モデルとマッピング」レイヤーで、ファクト表、およびブリッジ表に関連付けられている2つのディメンション表を選択します。
  3. オブジェクトを右クリックして、「ビジネス・モデル図」を選択し、「選択された表のみ」を選択します。
  4. ビジネス・モデル図を表示したまま、ツールバーの「新規結合」をクリックします。
  5. ファクト表を選択して、現在ファクト表に結合されていないディメンション表を選択します。
  6. 「論理結合」ダイアログの「OK」をクリックします。
  7. 論理結合を作成した論理表の論理表ソースをダブルクリックします。
  8. 「論理表ソース」ダイアログで、「追加」をクリックします。
  9. 「名前」リストからブリッジ表を選択し、「選択」をクリックします。
  10. 「追加」ボタンを再度クリックして、もう1つの関連ディメンション表を選択し、「選択」をクリックします。
  11. 「論理表ソース」ダイアログの「OK」をクリックします。

ブリッジ表に関連付けられている両方の論理表を含め、論理表に基づいてディメンションを作成できます。

BLOB(Modeling Binary Large Object)データおよびCLOB(Character Large Object)データ

Oracle BIリポジトリで、バイナリ・ラージ・オブジェクト(BLOB)データとキャラクタ・ラージ・オブジェクト(CLOB)データをモデリングする方法について説明します。

CLOBデータは、任意の文字セットによるラージ・プレーン・テキストのドキュメントです。サポートされているBLOBイメージ・タイプは、GIF、PNG、TIFF、JPEGおよびBMPです。サポートされているBLOB形式は、PDF、オーディオまたはビデオです。

インポート後のBLOB列のデフォルトのデータ型はLongVarBinaryで、CLOB列の場合はLongVarCharです。BLOBまたはCLOBの列は、Oracle BIサーバーMaxFieldSizeの限度である32 KBを超えないようします。この32 KBの限度は、Microsoft Internet Explorerブラウザの制限でもあります。

物理結合を構成するときは、主キーが他の表の外部キーとして使用される場合は、主キーを使用して表の間の物理結合を作成します。

  1. BLOBデータまたはCLOBデータが含まれている物理表を、メタデータのインポート・ウィザードを使用してデータ・ソースからインポートします。
  2. インポートの後、BLOB列またはCLOB列に対して「物理列」ダイアログを開き、「長さ」フィールドを変更します。
  3. 物理結合を構成します。
  4. BLOB列またはCLOB列を「ビジネス・モデルとマッピング」レイヤーにドラッグして、論理列を生成します。
  5. 論理列の物理参照を構成します。これにより、Oracle BIサーバーでは論理列に対するグループ化または順序基準が生成されないようになります。
  6. 「一般」タブの「論理列」ダイアログで、「記述子ID列」を構成します。こうすることにより、プレゼンテーション・サービスでは、フィルタを生成する際に必ず正しい列が使用されます。
  7. 「ソート順列」を構成します。これにより、Oracle BIサーバーでは列が必ず予想どおりに並ぶようになります。
  8. 変更を保存します。