Oracle® Fusion Middleware Oracle Business Intelligence Enterprise Editionメタデータ・リポジトリ作成者ガイド 11g リリース1 (11.1.1) B63028-07 |
|
![]() 前 |
![]() 次 |
この章では、論理表、結合、列など、Oracle BIリポジトリの「ビジネス・モデルとマッピング」レイヤー内のオブジェクトでの作業方法について説明します。表示フォルダ、ブリッジ表、ビジネス・モデル図などの「ビジネス・モデルとマッピング」レイヤーの概念、および列でライトバックを有効にする方法についても説明します。
この章には、次の項が含まれています。
Oracle BIリポジトリのビジネス・モデルとマッピング・レイヤーによって、データのビジネス・モデルつまり論理モデルが定義され、ビジネス・モデルと物理レイヤー・スキーマ間のマッピングが指定されます。ビジネス・モデルには、物理レイヤーのオブジェクトとは異なり、常にディメンションがあり、データ・ソースの編成が反映されます。ビジネス・モデルとマッピング・レイヤーには、1つ以上のビジネス・モデルを含めることができます。それぞれのビジネス・モデルには、論理表、論理列および論理結合が含まれます。
キーの概念など、論理表と物理表のオブジェクトでは似通った用語が使用されますが、ビジネス・モデルとマッピング・レイヤーの論理表および論理結合には、リレーショナル・モデルのものとは異なる独自のルール・セットがあります。たとえば、論理ファクト表にはキーが必要ではなく、論理結合が、可能な多くの物理結合を表す場合があります。
ビジネス・モデルとマッピング・レイヤーの論理表、結合、マッピングおよびその他のオブジェクトは通常、物理レイヤーから特定のビジネス・モデルにオブジェクトをドラッグ・アンド・ドロップしたときに自動的に作成されます。これらのオブジェクトが作成されたら、追加の論理結合の作成、列での計算や変換の実行、ディメンション表およびファクト表に対するキーの追加や削除などのタスクを実行できます。
物理レイヤーの要素をすべて作成したら、物理レイヤーからビジネス・モデルとマッピング・レイヤーに表または列をドラッグして、メタデータに論理オブジェクトを作成できます。
この項には次のトピックが含まれます:
管理ツールのビジネス・モデルとマッピング・レイヤーには、1つ以上のビジネス・モデルを含めることができます。各ビジネス・モデルには、ビジネス・モデル定義とビジネス・モデルの論理表から物理表へのマッピングを含めることができます。
リポジトリでの作業をオフライン・モードで行う場合、ときどきリポジトリを保存することを忘れないでください。ビジネス・モデル間で一貫性がない場合でも、オフライン・モードでリポジトリを保存できます。
ビジネス・モデルを作成するには:
ショートカット・メニューから新規ビジネス・モデルオプションを選択します。
ビジネス・モデルの名前を指定します。
新規ビジネス・モデルは、デフォルトで無効になっています。対応するプレゼンテーション・レイヤーを問合せに使用できるようにするには、「無効」を選択解除します。
注意: このオプションを選択解除するには、ビジネス・モデルの一貫性を確保しておく必要があります。 |
オプションで、ビジネス・モデルの説明を入力します。
「OK」をクリックします。
ビジネス・モデルを作成したら、物理レイヤーからオブジェクトをドラッグ・アンド・ドロップすることによってビジネス・モデル・オブジェクトを作成できます。詳細は、次の項を参照してください。
ビジネス・モデルとマッピング・レイヤーのオブジェクトを物理レイヤーのソースに自動的にマップするには、物理レイヤーのオブジェクトを論理レイヤーの特定のビジネス・モデルにドラッグ・アンド・ドロップします。物理表をビジネス・モデルとマッピング・レイヤーにドラッグすると、対応する論理表が作成されます。表内の物理列ごとに、対応する論理列が作成されます。一度に複数の表をドラッグすると、物理結合ごとに論理結合が作成されますが、これは、初めて表を新規ビジネス・モデルにドラッグしたときのみです。
マルチディメンション・データ・ソースに対するビジネス・モデルとマッピング・レイヤーでのオブジェクトの設定は、リレーショナル・データ・ソースに対する論理レイヤー・オブジェクトの設定と似ています。ビジネス・モデル・レイヤーを作成するには、物理レイヤー・キューブを論理レイヤーにドラッグ・アンド・ドロップします。Oracle Business Intelligenceによって、メトリック、属性およびディメンションが保持され、完全に構成された一貫性のあるビジネス・モデルが自動的に作成されます。
注意: Essbaseデータ・ソースの場合は、Essbaseキューブごとに個別のビジネス・モデルを作成することをお薦めします。これを実行するには、各キューブを1つずつビジネス・モデルとマッピング・レイヤーにドラッグします。 |
この機能を使用すると、ビジネス・モデルとそれに対応するサブジェクト・エリア(またはサブジェクト・エリアとそれに対応するビジネス・モデル)の選択、コピーの作成および作成したコピーへの新しい名前の割当てを実行できます。別名はコピーされないことに注意してください。
ビジネス・モデルとサブジェクト・エリアをコピーするには:
次のいずれかの手順を実行します。
管理ツールのビジネス・モデルとマッピング・レイヤーで、ビジネス・モデルを右クリックして、「サブジェクト・エリアで複製」を選択します。
管理ツールのプレゼンテーション・レイヤーで、サブジェクト・エリアを右クリックして、「ビジネス・モデルで複製」を選択します。
「ビジネス・モデルとサブジェクト・エリアのコピー」ダイアログで、コピー対象のビジネス・モデルと対応するサブジェクト・エリアを選択します。
該当する名前フィールドでビジネス・モデルとサブジェクト・エリアに新しい名前を指定し、「OK」をクリックします。
コピーしたビジネス・モデルがビジネス・モデルとマッピング・レイヤーに表示され、コピーしたサブジェクト・エリアがプレゼンテーション・レイヤーに表示されます。
管理ツールの中央ペインでのビジネス・モデルとマッピング・レイヤーを使用した作業のほかに、ビジネス・モデル図を開いて、論理表と論理結合のグラフィカル・モデルを表示することもできます。
ビジネス・モデル図にアクセスするには、「ビジネス・モデルとマッピング」レイヤー(ディメンションやファクト表など)のオブジェクトを右クリックし、「ビジネス・モデル図」を選択します。その後、次のオプションのいずれかを選択します。
図全体。ビジネス・モデル内のすべての論理表と結合を表示します。
選択された表のみ。選択した論理表のみを表示します。論理結合は、選択したオブジェクト間に論理結合が存在する場合のみ表示されます。このオプションは、1つ以上の論理表を選択した場合にのみ指定できます。
選択された表と直接結合。選択した論理表と、それらの表に結合している論理表を表示します。このオプションは、1つ以上の論理表を選択した場合にのみ指定できます。
選択されたファクト表とディメンション。選択した論理表とそれらに関連付けられている論理ディメンションを表示します。このオプションは、選択対象に1つ以上のファクト表が含まれる場合にのみ指定できます。
ビジネス・モデル図には、論理表と結合のみが表示されることに注意してください。ビジネス・モデル、ディメンション、階層など、ビジネス・モデルとマッピング・レイヤーのその他のオブジェクトは表示されません。結合は、結合の「1」側に矢印が付いた直線で表されます。
ビジネス・モデル図に表を追加するには、「ビジネス・モデル図」ウィンドウを開いたままにし、追加する表を1つ以上右クリックします。その後、「ビジネス・モデル図」を選択し、表示オプションのいずれかを選択します。
ビジネス・モデル図に表示されているグラフィカル表および結合の右クリック・メニューから追加オプションを選択できます。たとえば、オブジェクトの削除やオブジェクトのプロパティの表示、または右クリック・オプションの「直接結合の追加」、「選択内容全体に結合された表の追加」および「すべての結合の追加」を使用して、関連するオブジェクトの追加を実行できます。また、「ツリー表示での検索」を選択して、中央ペインのビジネス・モデルとマッピング・レイヤー・ビュー内で特定のオブジェクトを検索したり、オンライン・モードのオブジェクトをチェックアウトしたりできます。
ビジネス・モデル図ビュー内のオブジェクトを右クリックして、「非表示」を選択し、図で特定のオブジェクトを非表示にすることもできます。ただし、この効果は一時的で、永続するものではありません。
「ファイル」メニューの「印刷」および「印刷プレビュー」オプションを使用して、ビジネス・モデル図の印刷オプションを管理します。ツールバーの「印刷」オプションを使用することもできます。
次の項も参照してください。
物理図およびビジネス・モデル図の使用(ズーム、パンおよび表のレイアウトの制御の詳細)
ビジネス・モデル図を使用した論理結合の定義(論理結合の定義の詳細)
論理表は、ビジネス・モデルとマッピング・レイヤーに存在します。各ビジネス・モデルで定義される論理スキーマには、少なくとも2つの論理表を含める必要があり、それらの論理表間の関係を定義する必要があります。
各論理表には、1つ以上の論理列と、論理表に関連付けられている1つ以上の論理表ソースが含まれます。論理表名の変更、論理表ソースの並替え、および論理キーである主キーと外部キーの構成を実行できます。
この項には次のトピックが含まれます:
通常、物理レイヤーから物理表をビジネス・モデルとマッピング・レイヤー内のビジネス・モデルにドラッグ・アンド・ドロップすることによって論理表を作成します。物理スキーマに表が存在しない場合は、論理表を手動で作成する必要があります。
ドラッグ・アンド・ドロップ操作では通常、ビジネス・モデルとマッピング・レイヤーで最も速くオブジェクトを作成できます。物理レイヤーから物理テーブルをビジネス・モデルとマッピング・レイヤーにドラッグ・アンド・ドロップすると、表に属している列がコピーされます。ビジネス・モデルとマッピング・レイヤーにオブジェクトをドラッグ・アンド・ドロップした後は、物理レイヤーのオブジェクトに影響を及ぼさずに、必要な方法でオブジェクトを変更できます。
物理表を(キーと外部キーの関係が定義された状態で)ビジネス・モデルにドラッグすると、物理レイヤーのキーと結合をミラー化した論理キーと結合が作成されます。これは、ドラッグした表に外部キーが定義された表が含まれる場合にのみ実行されます。また、表を新規作成した場合や、物理レイヤーからビジネス・モデルとマッピング・レイヤーに追加の表を続けてドラッグした場合は、新規作成したまたは新規にドラッグした表と前にドラッグした表との論理マッピングを手動で作成する必要があります。
結合の詳細は、「結合マネージャを使用した論理結合の定義」および「ビジネス・モデル図を使用した論理結合の定義」を参照してください。
ドラッグ・アンド・ドロップで論理表を作成するには:
管理ツールで、物理レイヤーの表オブジェクトを1つ以上選択します。
物理レイヤーからのキーと結合を保持する場合は、外部キーが定義された表を含める必要があります。
表オブジェクトをビジネス・モデルとマッピング・レイヤーのビジネス・モデルにドラッグ・アンド・ドロップします。
物理レイヤーからの表オブジェクトをドロップすると、表オブジェクトが、物理ソース・マッピングを含めて、ビジネス・モデルとマッピング・レイヤーに自動的に作成されます。
論理表を手動で作成するには:
管理ツールのビジネス・モデルとマッピング・レイヤーで、表を作成するビジネス・モデルを右クリックして、「新規オブジェクト」→「論理表」を選択します。
「論理表」ダイアログが表示されます。
「一般」タブで、論理表の名前を入力します。
これが参照表である場合は、オプションの「参照表」を選択します。参照表には、ベース表の行に対応する多言語データが格納されます。ローカライゼーションと参照表の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionのためのシステム管理者ガイド』のOracle Business Intelligenceのローカライゼーションに関する項を参照してください。
オプションで、表の説明を入力します。
「OK」をクリックします。
論理表を手動で作成した後は、すべてのキーと結合を手動で作成する必要があります。
新規論理表ソースの追加、既存の表ソースの編集または削除、表ソースへのマッピングの作成または変更、および論理表ソースの使用時と内容の集計方法の定義を実行できます。これらのタスクの実行手順については、第11章「論理表ソース(マッピング)の管理」を参照してください。
ビジネス・モデルとマッピング・レイヤーで表を作成したら、ディメンション表ごとに主キーを指定します。論理ディメンション表には、論理主キーを指定する必要があります。論理キーは、1つ以上の論理列で構成できます。
注意: 論理ファクト表には論理キーを指定しないことをお薦めします。 |
論理表の主キーを指定するには:
管理ツールのビジネス・モデルとマッピング・レイヤーで、表をダブルクリックします。
「論理表」ダイアログで、「キー」タブを選択して、「新規」をクリックします。
「論理キー」ダイアログで、キーの名前を入力して、論理表のキーを定義する列を選択します。
「OK」をクリックします。
論理表で外部キー結合を使用しないことをお薦めします。これらの結合を作成する必要がある場合は、まず、「オプション」ダイアログでオプションの「論理外部キー結合作成の許可」を有効にする必要があります。詳細は、「結合マネージャを使用した論理外部キー結合の作成」を参照してください。
「論理表」ダイアログの「外部キー」タブは、以前のリリースのOracle Business Intelligenceで使用していた可能性のある論理外部キーを確認するためのものです。
論理表間の関係は、論理結合によって表されます。論理結合は、物理的な結合ではなく概念上の結合です。つまり、特定のキーまたは列を結合しません。1つの論理結合が可能な多くの物理結合に対応する場合があります。
論理結合の重要なプロパティの1つがカーディナリティです。カーディナリティは、ある表内の行が結合先の表の行とどのように関連するかを表します。1対多のカーディナリティは、最初の論理ディメンション表の各行に対応する行が、2つ目の論理表には0個、1個または多数あることを意味します。管理ツールでは、ある表が、その他の論理表に対応しているすべての論理結合において多の側である場合、その表は論理ファクト表と見なされます。
Oracle BIサーバーで必要なメタデータによってビジネス・モデルに対する論理リクエストが物理データ・ソースに対するSQL問合せに変換されるように、論理表結合を指定する必要があります。論理結合情報によって、Oracle BIサーバーに、論理表間の多対1関係の情報が提供されます。この論理結合情報は、Oracle BIサーバーで基礎となるデータベースに対する問合せが生成されるときに使用されます。
次の両方が当てはまる場合、ビジネス・モデルとマッピング・レイヤーで論理結合を作成する必要はありません。
必要な物理表すべてをビジネス・モデルとマッピング・レイヤーに同時にドラッグ・アンド・ドロップすることによって論理表を作成する場合
論理結合が物理レイヤーの結合と同じである場合
ただし、多くの場合、ビジネス・モデルとマッピング・レイヤーでいくつかの論理結合を作成する必要があると思われます。これは、非常に単純なモデルの場合を除いて、すべての物理表を同時にドラッグ・アンド・ドロップすることはまれなためです。
結合マネージャまたはビジネス・モデル図を使用して、論理結合を作成できます。物理レイヤーで複合結合を作成する場合は、式、および結合を作成する特定の列を指定できます。ビジネス・モデルとマッピング・レイヤーで論理結合を作成する場合は、式も結合を作成する列も指定できません。物理レイヤーに結合が存在するからといって、ビジネス・モデルとマッピング・レイヤーに一致する結合が必要なわけではありません。
この項には次のトピックが含まれます:
ビジネス・モデル図には、論理表とそれらの表の間に定義されている結合が表示されます。ビジネス・モデル図を使用して、表の間に論理結合を定義できます。
管理ツールで、ビジネス・モデルを右クリックして、「ビジネス・モデル図」を選択し、「図全体」を選択します。
管理ツールのツール・バーの「新規結合」ボタンをクリックします。
ビジネス・モデル図で、結合の1つ目の表(1対多結合の多を表す表)を左クリックして選択します。
結合対象の表(1対多結合の1を表す表)にカーソルを移動し、2つ目の表を左クリックして選択します。
「論理結合」ダイアログが表示されます。
(オプション)キーに駆動表を指定するには、「駆動表」リストから表を選択し、適切なカーディナリティを指定します。
このオプションは、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでマルチデータベースの内部結合を処理する方法の最適化に有用です。マルチデータベース結合を実行しないかぎり、駆動表は選択しないでください。駆動表の詳細は、「駆動表の指定」を参照してください。
注意: 駆動表を指定するかどうかの決断には、十分な注意を払ってください。駆動表は、まれな状況で、駆動表が非常に小さい(1,000行未満)場合にのみ問合せの最適化に使用します。駆動表を間違って選択すると、重大なパフォーマンス低下をまねくおそれがあります。 |
「タイプ」リストから結合タイプを選択するか、デフォルト値をそのまま使用します。
「OK」をクリックして、作業を保存します。
ビジネス・モデル図で、結合は、選択した2つの表の間の線で表され、結合の「1」側が矢印になっています。図9-2は、ビジネス・モデル図での結合を示しています。
結合マネージャを使用して、論理結合の関係の表示と論理結合の作成を実行できます。また、お薦めできませんが、「オプション」ダイアログで「論理外部キー結合作成の許可」を選択した場合は、結合マネージャを使用して、論理外部キー結合を作成できます。
この項には次のトピックが含まれます:
ビジネス・モデルとマッピング・レイヤーでは、論理外部キー結合よりも論理結合をお薦めします。
結合マネージャを使用して論理結合を作成するには:
「結合マネージャ」ダイアログが表示されます。
「アクション」→「新規」→「論理結合」を選択します。
「論理結合」ダイアログが表示されます。
論理結合の名前を入力します。
ダイアログの右側と左側にある「表」リストで、論理結合で参照する表を選択します。
(オプション)キーに駆動表を指定するには、駆動リストから表を選択し、適切なカーディナリティを指定します。
このオプションは、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでマルチデータベースの内部結合を処理する方法の最適化に有用です。マルチデータベース結合を実行しないかぎり、駆動表は選択しないでください。駆動表の詳細は、「駆動表の指定」を参照してください。
注意: 駆動表を指定するかどうかの決断には、十分な注意を払ってください。駆動表は、まれな状況で、駆動表が非常に小さい(1,000行未満)場合にのみ問合せの最適化に使用します。駆動表を間違って選択すると、重大なパフォーマンス低下をまねくおそれがあります。 |
「タイプ」リストから結合タイプを選択するか、デフォルト値をそのまま使用します。
結合の両側に「カーディナリティ」を設定するか、デフォルト値をそのまま使用します。
「OK」をクリックします。
特定のサード・パーティの問合せおよびレポート作成ツールのODBCデータ・ソースとしてOracle BIサーバーを使用する予定の場合に、論理外部キー結合が必要なことがあります。通常は、論理外部キーは作成してはいけません。この機能は、管理ツールで前のリリースとの互換性を確保するために提供されています。
結合マネージャを使用して論理外部キー結合を作成するには:
管理ツールで、「ツール」を選択し、「オプション」を選択します。
「オプション」ダイアログの「一般」タブで、「論理外部キー結合の許可」を選択します。
「OK」をクリックします。
「管理」を選択し、「結合」を選択して結合マネージャを表示します。
「アクション」→「新規」→「論理外部キー」を選択します。
「参照」ダイアログで、表をダブルクリックして、「論理外部キー」ダイアログを表示します。
外部キーの名前を入力します。
ダイアログの左側にある「表」リストで、外部キーで参照する表を選択します。
左の表から、外部キーで参照する列を選択します。
右の表から、外部キー列を構成する列を選択します。
(オプション)キーに駆動表を指定するには、駆動リストから表を選択し、適切なカーディナリティを指定します。
このオプションは、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでマルチデータベースの内部結合を処理する方法の最適化に有用です。マルチデータベース結合を実行しないかぎり、駆動表は選択しないでください。駆動表の詳細は、「駆動表の指定」を参照してください。
注意: 駆動表を指定するかどうかの決断には、十分な注意を払ってください。駆動表は、まれな状況で、駆動表が非常に小さい(1,000行未満)場合にのみ問合せの最適化に使用します。駆動表を間違って選択すると、重大なパフォーマンス低下をまねくおそれがあります。 |
「タイプ」リストから結合タイプを選択するか、デフォルト値をそのまま使用します。
結合の両側に「カーディナリティ」を設定するか、デフォルト値をそのまま使用します。
結合の式を入力するか、「式ビルダー」ボタンをクリックして、式ビルダーで式を定義します。
「OK」をクリックして、作業を保存します。
「論理結合」ウィンドウから論理結合に駆動表を指定できます。駆動表は、一方の表が非常に小さく、他方の表が非常に大きな場合に、Oracle BIサーバーでクロスデータベース結合を処理する方法の最適化に有用です。駆動表の指定は、駆動表から選択された行数が結合先の表の行数よりはるかに少ない場合にのみ、問合せの最適化に使用できます。
注意: 問題が発生しないように、駆動表は、非常に小さい、つまり1,000行未満の場合にのみ指定します。 |
駆動表を指定した場合、Oracle BIサーバーでは、問合せ計画で駆動表の使用によって問合せ処理が最適化されると判断された場合に駆動表が使用されます。小さな表(駆動表)がスキャンされ、パラメータ化された問合せが大きな表に発行されて一致する行が選択されます。その後で、その他の表が、その他の駆動表を含めて、一緒に結合されます。
注意: 駆動表から行が多数選択された場合、駆動表の指定によって重大なパフォーマンス低下をまねくおそれがあり、MAX_QUERIES_PER_DRIVE_JOIN の制限値を超えた場合は、問合せが終了します。 |
通常、駆動表は、内部結合に使用でき、駆動表が左外部結合の左の表である場合、または右外部結合の右の表である場合は、外部結合に使用できます。駆動表は、完全外部結合には使用されません。駆動表を指定する手順については、「論理結合の定義」を参照してください。
物理問合せからトリミング可能な結合を決定する際に、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のカーディナリティが設定されている結合は、実質的にフィルタのように機能します。したがって、その結合をトリミングする場合は、選択した行数を変更する必要があります。
トリミングされる表が、左外部結合の左側、または右外部結合の右側にあります(つまり、行を維持する表ではトリミングは行われません)。このルールでは、DISTINCT句が問合せに追加される属性のみを選択する問合せに対して、例外が1つあります。DISTINCT句であるため、行を維持する表をトリミングしてもNull指定の表から返される行数に影響はありません。そのため、属性に対する個別の問合せの特殊なケースでは、外部結合の行を維持する表をトリミングすることができます。
表9-1に、Oracle BIサーバーで問合せから結合をトリミングできる例を示します。
表9-1 結合トリミングの例
シナリオ | 結果 |
---|---|
従業員 内部結合 部門 |
部門は内部結合の「1」の側にあるため、トリミングできます。 従業員は内部結合の複数の側にあるため、トリミングできません。 |
従業員 左外部結合 部門 |
部門は結合の「1」の側にあり、左外部結合(つまり、Nullを指定する表)の右側にあるため、トリミングできます。 従業員は結合の複数の側にあり、左外部結合(つまり、行を維持する表)の左側にあるため、トリミングできません。 |
従業員 右外部結合 部門 |
部門は右外部結合(つまり、行を維持する表)の右側にあるため、トリミングできません。 従業員は結合の複数の側にあるため、トリミングできません。 |
従業員 内部結合 従業員情報 |
両方の表が内部結合の「1」の側にあるため、いずれの側でもトリミングできます。 |
従業員 左外部結合 従業員情報 |
従業員情報は結合の「1」の側にあり、左外部結合(つまり、Nullを指定する表)の右側にあるため、トリミングできます。 従業員は左外部結合(つまり、行を維持する表)の左側にあるため、トリミングできません。 |
従業員 右外部結合 従業員情報 |
従業員情報は右外部結合(つまり、行を維持する表)の右側にあるため、トリミングできません。 従業員は結合の「1」の側にあり、右外部結合(つまり、Nullを指定する表)の左側にあるため、トリミングできます。 |
従業員 内部結合 部門 |
部門は内部結合の0..1の側にあるため、トリミングできません。 従業員は内部結合の複数の側にあるため、トリミングできません。 |
従業員 左外部結合 部門 |
部門は外部結合の0..1の側にあり、左外部結合(つまり、Nullを指定する表)の右側にあるため、トリミングできます。 Oracle BI Serverでは、外部結合の0..1の側にあるNullを指定する表のトリミングが許可されますが、この場合は、問合せから部門をトリミングしても従業員表から選択した行数が変更されないためです。 従業員は外部結合の複数の側にあるため、トリミングできません。 |
従業員 完全外部結合 部門 |
結合が完全外部結合であるため、いずれの側もトリミングできません。 |
従業員 複数対複数 プロジェクト |
結合が複数対複数であるため、いずれの側もトリミングできません。 |
従業員 不明 部門 |
結合のカーディナリティが不明であるため、いずれの側もトリミングできません。 |
物理図には、選択した論理オブジェクトにマップする物理表と、各表間の物理結合が示されます。
結合オプションの1つである「ビジネス・モデル内のオブジェクトと直接結合」は、論理レイヤーに特有のオプションです。このオプションによって、次の両方の条件を満たす表の物理図が作成されます。
選択されたオブジェクト内の表、および直接結合する表
ビジネス・モデル内でマップされている(ビジネス・モデルの論理表ソースに存在する)表
論理オブジェクトの物理図を開くには:
管理ツールのビジネス・モデルとマッピング・レイヤーで、ビジネス・モデル、論理表または論理表ソースを右クリックします。
「物理図」を選択して、いずれかの結合オプションを選択します。
1対多などの関係線をより明確に表示するには、任意のオブジェクトをクリックしてドラッグします。
多くの論理列は、物理レイヤーからビジネス・モデルとマッピング・レイヤーに表をドラッグすることによって自動的に作成されます。その他の論理列は、特に他の論理列に基づいた計算が含まれる論理列は、後で作成することができます。
論理列は、属している論理表から展開されるツリー構造で表示されます。論理列が主キー列の場合または主キーに関与している場合、その論理列はキー・アイコンが付いて表示されます。論理列に集計ルールが設定されている場合は、ルール・アイコンが付いて表示されます。ビジネス・モデルとマッピング・レイヤーで論理列を並べ替えることもできます。
この項には次のトピックが含まれます:
次の手順では、ビジネス・モデルとマッピング・レイヤーで論理列を作成する方法を説明しています。
論理列を作成するには:
ビジネス・モデルとマッピング・レイヤーで、論理表を右クリックします。
ショートカット・メニューから「新規オブジェクト」を選択して、「論理列」を選択します。
「一般」タブで、論理列の名前を入力します。
ビジネス・モデルの名前および関連付けられている論理表が「表に所属」フィールドに表示されます。
「書込み可能」を選択して、この列のライトバックを有効にします。詳細は、「列でのライトバックの有効化」を参照してください。
オプションで、列のソート順序の基礎にする別の列を割り当てることができます。詳細は、「別の列に基づいた論理列のソート」を参照してください。
オプションで、対象の列の記述子ID列を割り当てることができます。詳細は、「記述子ID列の割当てによる二重列サポートの有効化」を参照してください。
オプションで、「列ソース」タブで、対象の論理列が他の論理列から派生されることを指定できます。詳細は、「派生列の作成」を参照してください。
オプションで、「集計」タブで列集計を設定できます。詳細は、「メジャー列の集計のデフォルト・レベルの設定」を参照してください。
オプションで、「レベル」タブで、属性を論理レベルに関連付けることができます。メジャーは、複数のディメンションからのレベルと関連付けることができ、常に指定されたレベルに集計されます。詳細は、「ディメンション表の論理レベルとの属性の関連付け」を参照してください。
「OK」をクリックします。
論理列には、ソートの基礎とする別の列を指定できます。これによって、辞書式順序で値を並べることが適切でない場合に列のソート順序を変更できます。辞書式順序のソートでは、結果が辞書のようなアルファベット順に配置されます。このタイプのソートでは、数字が別のグループに分けられるのではなく、アルファベットのスペル順で並べられます。
たとえば、月をソートする場合(MONTH_NAME
などの列を使用して)、辞書式順序では、2月、1月、3月などという順序で結果が返されます。ところが、月は時間的順序でソートする必要があります。このため、表には、値がそれぞれ1 (1月)、2 (2月)、3 (3月)である月のキー(MONTH_KEY
など)が必要です。必要なソートを実行するには、MONTH_NAME
列の「ソート順列」フィールドをMONTH_KEY
に設定します。そうすれば、MONTH_NAME
による並替えのリクエストから、1月、2月、3月の順序で値が返されます。
物理レイヤーからキューブをドラッグ・アンド・ドロップすることによってビジネス・モデルが作成される場合、Essbaseデータ・ソースに対してソート列が自動的に定義されます。
列のソート順序の基礎とする別の列を割り当てるには:
「論理列」ダイアログの「一般」タブで、「ソート順列」フィールドの横の「設定」をクリックします。
「参照」ダイアログで、列を選択します。
列の詳細を表示するには、「表示」をクリックして、対象の列の「論理列」ダイアログを開き、「取消」をクリックします。
このダイアログで変更を加えることができます。変更を加えた場合は、「取消」ではなく、「OK」をクリックして、変更を確定します。
「参照」ダイアログで、「OK」をクリックします。
多言語列がルックアップ関数をベースとしている場合、翻訳されていないルックアップ・キー列を、翻訳された列の記述子ID列として指定することが一般的です。記述子ID列を割り当てることで、二重列のサポートが有効になります。この機能は言語依存フィルタの定義に役立ちます。たとえば、「アンサー」では、ユーザーに表示列が表示されますが、問合せでは非表示の記述子ID列にフィルタが適用されます。
詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の多言語データのサポートに関する項を参照してください。
二重列は、空間列のモデリングなど、他の目的にも使用されます。
表示列に記述子ID列を割り当てるには:
「論理列」ダイアログの「一般」タブで、「記述子ID列」フィールドの横の「設定」をクリックします。
「参照」ダイアログで、キー列を選択します。
列の詳細を表示するには、「表示」をクリックして、対象の列の「論理列」ダイアログを開き、「取消」をクリックします。
このダイアログで変更を加えることができます。変更を加えた場合は、「取消」ではなく、「OK」をクリックして、変更を確定します。
「参照」ダイアログで、「OK」をクリックします。
集計後の計算をメジャーに適用する手段として他の論理列から列を派生する場合があります。これを実行するには、「論理列」ダイアログの「列ソース」タブで派生列式を指定します。
「計算ウィザード」を使用して一連の派生列を作成することもできます。詳細は、「「計算ウィザード」の使用」を参照してください。
NQSConfig.INIで、パラメータPREVENT_DIVIDE_BY_ZERO
がYES
に設定されている場合、Oracle BIサーバーでは、「アンサー」列計算の場合でも、ゼロ除算の状況でエラーが防止されます。Oracle BIサーバーでは、物理SQLの記述時にnullif()
または同様の関数を使用してゼロ除算阻止式が作成されます。このため、PREVENT_DIVIDE_BY_ZERO
がYES
(デフォルト値)に設定されているかぎり、ゼロ除算のエラーを防止するためにCASE
文を使用する必要はありません。NQSConfig.INI設定の詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』を参照してください。
計算に事前集計を適用することもできます。詳細は、「物理から論理表ソースへのマッピングの定義と計算項目の作成」を参照してください。
派生列を指定するには:
「論理列」ダイアログで、「列ソース」タブを選択します。
「式ビルダー」ボタンをクリックして、式ビルダーを開きます。
式ビルダーの「派生論理列」ダイアログで、論理列の派生元の式を指定します。
注意: パフォーマンスを最適化するために、式ビルダーでは集計を定義しないでください。かわりに、「論理列」ダイアログの「集計」タブを使用します。詳細は、「メジャー列の集計のデフォルト・レベルの設定」を参照してください。 |
「OK」をクリックします。
式ビルダーを使用して、参照関数を作成することにより、多言語データベース・スキーマからデータを表示することができます。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の多言語データのサポートに関する項を参照してください。
Oracle Business Intelligenceユーザーが分析やダッシュボードで通貨列を表示する通貨を選択できるように、論理列を構成できます。すべてのユーザーで通貨オプションの同一の静的リストが表示されるようにこの機能を設定することも、指定する論理SQL文に基づいて変化する通貨オプションの動的リストを提供することもできます。
複数通貨サポートのために論理列を構成するには:
PREFERRED_CURRENCY
という名前のセッション変数を、この変数で使用する初期化ブロックとともに作成します。このセッション変数を作成するときは、「ユーザーによる値の設定を可能にする」を選択する必要があります。Oracle BIプレゼンテーション・サービスの式でセッション変数を使用する場合は、それらの名前の先頭にNQ_SESSION
を付ける必要があることに注意してください。
セッション変数および初期化ブロックの設定の詳細は、「セッション変数の作成」および「初期化ブロックの作成」を参照してください。
通貨値を表示する論理列を編集して、PREFERRED_CURRENCY
セッション変数を使用して適切な変換ファクタが使用されるようにします。これを実行するには、ビジネス・モデルとマッピング・レイヤーで該当する論理列をダブルクリックして、「列ソース」タブを選択し、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" )
通貨オプションの動的リストを提供する場合は、ユーザー設定の通貨に対して表示するエントリを指定する表をデータ・ソースに作成します。この表には、次の列が必要です。
最初の列には、セッション変数PREFERRED_CURRENCY
の設定に使用する変数が含まれます。この列の各値は、通貨を一意に識別する文字列(たとえば、gc2)です。
2つ目の列には、ファイルcurrencies.xmlからの通貨タグが含まれます。各タグのdisplayMessageの値は、「通貨」ボックスと通貨プロンプト(たとえば、int:euro-1)の移入に使用されます。currencies.xmlファイルは、ORACLE_HOME\bifoundation\web\displayにあります。
オプションで、プレゼンテーション変数currency.userPreference
を設定するために使用する値を含む3番目の列を指定できます。この列の各値は、通貨を識別する文字列(たとえば、Global Currency 2)です。この列を省略した場合、currencies.xmlファイルの対応する通貨タグのdisplayMessage属性の値が使用されます。
表9-2は、ユーザー設定の通貨エントリが含まれる表のサンプルを示しています。
Oracle BIプレゼンテーション・サービスでこの機能を有効にするには、追加の構成が必要です。Oracle BIプレゼンテーション・サービスの構成に関する詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』のユーザー定義の通貨オプションの定義に関する項を参照してください。
メジャーであるマップ済論理列に、集計ルールを指定する必要があります。集計は、集計COUNT
およびCOUNTDISTINCT
を除いて、メジャー列でのみ実行する必要があります。メジャー列は、論理ファクト表にのみ指定できます。
オプションで、対象の論理列に関連付けられている別のディメンションに別の集計ルールを選択できます。たとえば、1つのディメンションに沿って集計列に問合せが実行された場合、1つのタイプの集計ルールを使用できる一方で、別のディメンションに沿って別の集計ルールを使用することもできます。
デフォルトの集計ルールが「個別のカウント」の場合、オプションで、特定の論理表ソースにオーバーライド集計式を指定できます。たとえば、なんらかの集計レベルがすでに含まれている別の集計表ソースに問合せを実行する場合に、オーバーライド集計式を指定できます。オーバーライドを指定しないと、デフォルトのルールが使用されます。
集計ルールEvaluate_Aggrを選択して、問合せでデータ・ソースのカスタム・ファンクションをコールできるように指定できます。この機能およびその他の集計ルールの詳細は、付録Cを参照してください。また、マルチディメンション・ソースに集計を設定する手順の詳細は、「マルチディメンション・データ・ソースへの集計ルールの定義」を参照してください。
デフォルトで、データはスパースであると見なされます。ただし、まれな場合に、論理表ソースのデータ密度が高いことがあります。論理表ソースは、関連付けられているディメンション・レベルの組合せごとに行が存在する場合に密度が高いデータが含まれると見なされます。メジャー列に集計ルールを設定するときは、マッピング先のすべての論理表ソースのデータ密度が高い場合にのみデータ密度が高いと見なすことができます。
注意: 「アンサー」では、Oracle BIリポジトリの列のデフォルトの集計ルール・セットをオーバーライドできます。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionユーザーズ・ガイド』の集計ルールと機能に関する項を参照してください。 |
メジャー列にデフォルトの集計ルールを指定するには:
ビジネス・モデルとマッピング・レイヤーで、論理列をダブルクリックします。
「論理列」ダイアログで、「集計」タブをクリックします。
「集計」タブで、次のいずれかのオプションを選択します。
すべてのディメンションで加算性が同一のメジャーの場合(つまり、完全加算メジャーまたは非加算メジャーの場合)、「デフォルトの集計ルール」リストからいずれかの集計関数を選択します。
問合せでユーザーまたはアプリケーションから列がリクエストされたときに、オーバーライド集計式が指定されていないかぎり、選択したファンクションが常に適用されます。
デフォルトの集計ルールとして「個別のカウント」を選択した場合、特定の論理表ソースにオーバーライド集計式を指定できます。このオプションは、1つの論理列に複数の論理表ソースがマップされており、ソースごとに異なる集計ルールを適用する場合に選択します。
「追加」ボタンをクリックして、個々の集計ルールを指定する論理表ソースを選択します。「参照」ダイアログで、追加する論理表ソースを選択して「OK」をクリックします。選択した論理表ソースの「式」リストで、使用する集計ルールを選択します。
メジャーの加算性がディメンションごとに異なる場合(つまり、準加算メジャーの場合)、「ディメンションに基づく」を選択します。たとえば、時間以外のすべてのディメンションで合計を算出するインベントリ単位にこのオプションを選択します。この機能の詳細は、「論理列へのディメンション固有の集計ルールの設定」を参照してください。
「追加」ボタンをクリックして、集計ルールを指定する追加のディメンションを選択します。「参照」ダイアログで、追加するディメンションを選択して、「OK」をクリックします。選択したディメンションの「式」リストで、使用する集計ルールを選択するか、「式ビルダー」ボタンをクリックし、式ビルダーを使用して集計ルールを作成します。
「ディメンションに基づく」を選択すると、「データの密度が高い」オプションが表示されます。この列のマップ先の論理表ソースがすべて密度が高い場合はこのオプションを選択します。
「OK」をクリックします。
大多数のメジャーで、各ディメンションに同一の集計ルールが設定されます。ただし、メジャーによっては、ディメンションごとに異なる集計ルールが設定される場合があります。たとえば、預金残高は、時間に沿って平均値が求められる場合もあれば、個々の口座に沿って合計値が求められる場合もあります。Oracle BIサーバーを使用すると、ディメンション固有の集計ルールを構成できます。指定した1つのディメンションに1つの集計ルールを指定し、他のディメンションには適用する他のルールを指定することができます。
ディメンション固有の集計を設定するには、ビジネス・モデルとマッピング・レイヤーでディメンションを構成する必要があります。集計ナビゲーションの設定の詳細は、第11章を参照してください。
単一の論理列にディメンション固有の集計ルールを指定するには:
ビジネス・モデルとマッピング・レイヤーで、論理列をダブルクリックします。
「論理列」ダイアログで、「集計」タブをクリックします。
「集計」タブで、「ディメンションに基づく」を選択します。
「参照」ダイアログで、集計の基準として使用するディメンションを選択して、「OK」をクリックします。
「集計」タブで、「式」リストからルールを選択します。
指定したディメンションにルールを選択した後、「その他」というラベルが付いたディメンションを使用して、残りのディメンションに集計ルールを設定します。
より複雑な式を作成する必要がある場合は、「式」列の右にある「式ビルダー」ボタンをクリックして、式ビルダーを開きます。
ディメンションが複数ある場合は、「上へ」または「下へ」をクリックして、ディメンション固有のルールの実行順序を変更できます。
メジャーの計算時に、集計ルールは、このダイアログで指定されている順序(上から下)で適用されます。
「OK」をクリックします。
複数の論理ファクト列にディメンション固有の集計ルールを指定するには:
ビジネス・モデルとマッピング・レイヤーで、複数の論理ファクト列を選択します。
右クリックして、「集計の設定」を選択します。
「集計の設定」メニュー・アイテムを表示するには、複数の列を選択する必要があります。また、選択した列のうちの1つまたは複数が派生列の場合、「集計の設定」は表示されません。
「集計」ダイアログで、「すべての列が同じ」を選択または選択解除します。
このオプションは、デフォルトで選択されています。選択されていると、選択したすべての列に適用される集計ルールを設定できます。このオプションの選択を解除すると、選択した列ごとに個別の集計ルールを設定できます。
「集計」タブで、「ディメンションに基づく」を選択します。
「参照」ダイアログで、集計の基準として使用するディメンションを選択して、「OK」をクリックします。
1つのディメンションにルールを選択した後、「その他」というラベルが付いたエントリに入っているその他のディメンションに集計ルールを指定します。
「式」列の右にある「式ビルダー」ボタンをクリックします。
式ビルダーの「集計」タブで、「式」リストから、対象のディメンションに沿って実行する集計を選択します。
ディメンション固有のルールの実行順序を変更するには、「上へ」または「下へ」をクリックして、「OK」をクリックします。
メジャーの計算時に、集計ルールは、このダイアログで指定されている順序(上から下)で適用されます。
ここでは、Essbase、Oracle OLAP、およびMicrosoft Analysis ServicesやSAP/BWなどその他のマルチディメンション・データ・ソースをソースとする論理メジャーに集計ルールを定義するためのベスト・プラクティスを説明します。
デフォルトでは、Essbaseなどのマルチディメンション・キューブを物理レイヤーにインポートした場合、Oracle Business Intelligenceではデータ・ソース内に設定されている集計ルールを読み取ることができません。このため、メジャーは、外部集計のデフォルトの集計ルールを使用して自動的にインポートされます。このルールは、マルチディメンション・データ・ソースの場合にのみ使用できることに注意してください。
外部集計とは、Oracle BIサーバーで、特定のメジャーについて基礎となる集計ルールが認識されず、内部で計算されないことを意味します。かわりに、Oracle BIサーバーから常に、基礎となるマルチディメンション・データ・ソースに集計の問合せが送信されます。
基礎となるデータ・ソースは非常に効率的であるため、集計ルールをデータ・ソースにプッシュ・ダウンすることによって、Oracle BIサーバーから、処理でさらにオーバーヘッドを追加することなく結果を返すことができるようになります。ただし、「物理」レイヤーおよび「ビジネス・モデルとマッピング」レイヤーの両方で、データ・ソースに定義されている対応する集計ルールとともに、Oracle Business Intelligenceでメジャーごとに集計ルールを更新することをお薦めします。これによって、Oracle BIサーバーで必要に応じて追加の計算を実行できるようになります。Oracle BIサーバーから最適化された問合せが可能なかぎり引き続きプッシュ・ダウンされるため、問合せのパフォーマンスに影響はありません。
注意: Oracle BIサーバーで、特定の問合せに対して追加の集計を実行する必要があり、集計ルールが外部集計のデフォルト値に設定されている場合、Oracle BIサーバーから次のエラーが返されます。外部問合せブロック内で外部集計が検出されました。 このエラーは、Oracle BIサーバーで、基礎となるデータ・ソースの集計ルールを読み取れなかったために発生します。これらの問合せに対して正しい結果が返されるようにするには、基礎となるデータ・ソースに設定されている集計ルールに一致するように、Oracle BIリポジトリに設定されている集計ルールを変更する必要があります。 |
Oracle Business Intelligenceで定義されている集計ルールが、基礎となるデータ・ソースのルールと一致することが必要です。また、図9-3に示しているように、物理レイヤーおよびビジネス・モデルとマッピング・レイヤーの両方に適切な集計ルールを設定する必要もあります。
図9-3 マルチディメンション・ソースに対する物理レイヤーおよびビジネス・モデルとマッピング・レイヤーでの集計ルールの設定
Oracle BIサーバー内に対応するファンクションがないカスタムの集計の場合、物理メジャー列とそれに対応する論理メジャー列の両方について集計を外部集計のままにすることをお薦めします。
注意: Oracle OLAPデータ・ソースの場合、Oracle OLAP列に物理レイヤー集計ルールを明示的に設定することはありません。このため、ビジネス・モデルとマッピング・レイヤーのOracle OLAP列にのみ集計ルールを設定する必要があります。また、問合せでOracle OLAPデータ・ソース内に存在しない集計がリクエストされたときに、集計ルールが外部集計に設定されている場合、Oracle BIサーバーからエラーが返されます。このエラーを回避するには、ビジネス・モデルとマッピング・レイヤーのOracle OLAP列に集計ルールを明示的に設定する必要があります。 Oracle OLAP列の集計ルールを外部集計以外のものに明示的に設定しないと、Oracle BIプレゼンテーション・サービスのカスタム・グループからのリクエストが失敗します。これは、カスタム・グループは常に、データ・ソースには存在しない集計をリクエストするためです。 |
「レベル」タブでディメンション・レベルを選択することによって、属性を論理レベルに関連付けることができます。メジャーは、複数のディメンションからのレベルと関連付けることができ、常に指定されたレベルに集計されます。
ディメンションは、「ディメンション」リストに表示されます。対象の属性が論理レベルに関連付けられている場合、レベルは「レベル」リストに表示されます。
特定のディメンションのレベルにメジャーを関連付ける別の方法として、ビジネス・モデルとマッピング・レイヤーでディメンション・ツリーを展開し、ターゲットのレベルに列をドラッグ・アンド・ドロップできます。レベルベースのメジャーの詳細は、例10-1を参照してください。
ディメンションの論理レベルにメジャーを関連付けるには:
管理ツールのビジネス・モデルとマッピング・レイヤーで、論理列をダブルクリックします。
「論理列」ダイアログで、「レベル」タブをクリックします。
「レベル」タブで、論理レベルの選択元のディメンションの「論理レベル」フィールドをクリックします。
「レベル」タブのレベルのリストでは、列ヘッダーをクリックすることによって、行をソートできます(昇順と降順を切り替えることができます)。
「論理レベル」リストで、レベルを選択します。
この処理を繰り返して、対象のメジャーを他のディメンションの他の論理ベルに関連付けます。
ディメンションとメジャーの関連付けを削除するには:
管理ツールのビジネス・モデルとマッピング・レイヤーで、論理列をダブルクリックします。
「論理列」ダイアログで、「レベル」タブをクリックします。
「レベル」タブで、削除する関連付けの行を選択して、「削除」をクリックします。
「OK」をクリックします。
デフォルトで、論理列をある表から別の表にドラッグ・アンド・ドロップすると、その論理列が移動されます。同じ名前の列がすでに存在する場合は、新しい列の名前が変更されます(たとえば、mycolumn#1)。
「オプション」ダイアログの「論理列の移動時にプロンプトを表示」オプションを選択して、論理列をドラッグ・アンド・ドロップしたときに「移動列のソース」ダイアログが表示されるようにすることもできます。このダイアログでは、ドラッグ・アンド・ドロップの動作に関するオプションを選択できます。
「論理列の移動時にプロンプトを表示」オプションを選択する方法の詳細は、「管理ツールのオプションの設定」を参照してください。
「移動列のソース」ダイアログを使用して論理列を移動またはコピーするには:
「ビジネス・モデルとマッピング」レイヤーで、論理列を別の論理表にドラッグ・アンド・ドロップします。複数の列を選択して移動できます。
「移動列のソース」ダイアログの「アクション」領域で、アクションを選択します。
「無視」を選択した場合、ターゲットの表のSourcesフォルダに論理ソースは追加されません。
「新規作成」を選択した場合、ターゲットの表のSourcesフォルダに、論理列に関連付けられた論理ソースのコピーが作成されます。
「既存のものを使用」を選択した場合、「既存のものを使用」リストで、ターゲットの表のSourcesフォルダから論理ソースを選択する必要があります。
移動またはコピーした列は、この論理ソースに関連付けられます。
Oracle BIプレゼンテーション・サービスでユーザーが列データを更新してデータ・ソースに変更をライトバックできるように、個々の論理列を構成できます。特定の列でのライトバックを有効にするには、対象の論理列の「書込み可能」オプションを選択して、対応するプレゼンテーション列の「読取り/書込み」権限を有効にする必要があります。対応する物理表のキャッシュを無効にする必要もあります。
Oracle BIプレゼンテーション・サービスでライトバックを有効にするには、追加タスクを実行する必要があります。詳細は、『Oracle Fusion Middleware Oracle Business Intelligence Enterprise Editionシステム管理者ガイド』の分析とダッシュボードでのライトバック用の構成に関する項を参照してください。
特定の列のライトバックを有効にするには:
管理ツールの物理レイヤーで、ライトバックを有効にする列が含まれる物理表をダブルクリックします。
「物理表」ダイアログの「一般」タブで、「キャッシュ可能」が選択されていないことを確認します。このオプションの選択を解除することによって、Oracle BIプレゼンテーション・サービスのユーザーが更新内容を即座に表示できるようになります。
ビジネス・モデルとマッピング・レイヤーで、対応する論理列をダブルクリックします。「論理列」ダイアログが開きます。
図9-4は、「論理列」ダイアログを示しています。
「書込み可能」を選択して、「OK」をクリックします。
プレゼンテーション・レイヤーで、ライトバックを有効にした論理列に対応する列をダブルクリックします。「プレゼンテーション列」ダイアログが開きます。
「権限」をクリックします。
該当するユーザーとアプリケーション・ロールの「読取り/書込み」権限を選択します。
図9-5は「権限」ダイアログを示しています。
図9-5 「読取り/書込み」オプションが選択されているプレゼンテーション・レイヤーの列の「権限」ダイアログ
「権限」ダイアログの「OK」をクリックします。
「プレゼンテーション列」ダイアログの「OK」をクリックします。
ビジネス・モデルとマッピング・レイヤーで表示フォルダを作成して、オブジェクトを編成することができます。表示フォルダが問合せ処理に影響を与えることはありません。表示フォルダを作成すると、選択した表とディメンションが、表示フォルダにはショートカットとして表示され、ビジネス・モデル・ツリーにはオブジェクトとして表示されます。オブジェクトを非表示にして、表示フォルダのショートカットのみが表示されるようにすることができます。これらのオブジェクトを非表示にする方法の詳細は、「システム管理ツールのオプションの設定」の「オプション」ダイアログの「リポジトリ」タブに関する情報を参照してください。
注意: 表示フォルダ内の表を削除すると、そのオブジェクトへのショートカットのみが削除されます。表示フォルダ内の列を削除した場合は、その列が実際に削除されます。 |
論理表示フォルダを設定するには:
管理ツールのビジネス・モデルとマッピング・レイヤーで、ビジネス・モデルを右クリックして、「新規オブジェクト」を選択し、「論理表示フォルダ」を選択します。
「論理表示フォルダ」ダイアログの「表」タブで、フォルダの名前を入力します。
表示フォルダに表を追加するには、「追加」をクリックします。「参照」ダイアログで、フォルダに追加するファクト表またはディメンション表を選択し、「選択」をクリックします。
または、ダイアログを閉じてから、1つ以上の論理表を表示フォルダにドラッグできます。
表示フォルダにディメンションを追加するには、「ディメンション」タブをクリックして、「追加」をクリックします。「参照」ダイアログで、表示フォルダに追加するディメンションを選択して、「選択」をクリックします。
または、ダイアログを閉じてから、1つ以上のディメンションを表示フォルダにドラッグできます。
「OK」をクリックします。
ブリッジ表では、表間の多対多の関係を解決できます。たとえば、「従業員」表に従業員に関する情報を格納して、従業員が担当している業務に関する情報を「業務」表に格納するとします。ただし、組織の従業員が複数の業務を担当している場合や、同じ業務を複数の従業員が担当している場合があります。このような状況では、「従業員」表と「業務」表の関係が多対多になります。
この多対多の関係を解決するには、「割当て」というブリッジ表(中間表)を作成します。「割当て」表の各行は一意で、1つの業務を担当する1人の従業員を表します。従業員が複数の業務を担当している場合、「割当て」表にはその従業員について複数の行が設定されます。1つの業務を複数の従業員が担当している場合、「割当て」表にはその業務について複数の行が設定されます。「割当て」表の主キーはコンポジット・キーで、従業員IDが含まれる列と業務IDが含まれる列で構成されます。
「割当て」表は、「業務」表と「従業員」表の間のブリッジ表として機能するため、「割当て」表を使用すると、従業員と業務の多対多の関係を次のように解決できます。
従業員と割当ての1対多の関係
割当てと業務の1対多の関係
図9-6は、前述のブリッジ表の例とそれに関連するディメンション表の物理レイヤーを示しています。
問合せ処理を効率的にするために、ブリッジ表に追加列として重みファクタを含めて、このファクタがETLプロセス中に計算されるようにする必要があります。
次の各項では、物理レイヤーおよびビジネス・モデルとマッピング・レイヤーでブリッジ表をモデリングする方法を説明します。
物理レイヤーでブリッジ表をモデリングするには、対象のブリッジ表とその関連ディメンション表との間に結合を作成します。
ブリッジ表とそれに関連する表に物理結合を作成するには:
管理ツールの物理レイヤーで、ファクト表、ブリッジ表および関連するディメンション表を選択します。オブジェクトを右クリックして、「物理図」を選択し、「選択されたオブジェクトのみ」を選択します。
物理図を表示したまま、ツールバーの「新規結合」をクリックします。ブリッジ表を選択して、ディメンション表を1つ選択します。
「物理外部キー」ダイアログの「OK」をクリックします。
その他の関連ディメンション表について、手順2と3を繰り返します。
必ず、関連ディメンション表の1つがファクト表に結合されるようにします。
図9-7は、物理図での物理表の例の間の結合を示しています。
ビジネス・モデルとマッピング・レイヤーでは、ブリッジ表に関連付けられている2つのディメンション表を単一ディメンションでモデリングするか、または2つの個別のディメンションでモデリングするかを選択できます。関連ディメンション表を単一ディメンションでモデリングするには、ブリッジ表と他方のディメンション表にマップする2つ目の論理表ソースを作成し、他方のディメンション表から列を追加します。
2つの個別の論理表ソースを設定することによって問合せがより効率的になります。これは、この設定によって、単一のディメンション表に対する問合せにブリッジ表が関係しなくなるためです。
ブリッジ表に関連付けられているディメンション表を単一ディメンションでモデリングするには:
ブリッジ表、およびファクト表に結合されていない関連ディメンション表以外のオブジェクトを物理レイヤーからビジネス・モデルとマッピング・レイヤーにドラッグします。前述の例では、「割当て」表と「従業員」表以外のすべてのオブジェクトをドラッグします。
ビジネス・モデルとマッピング・レイヤーで、ファクト表に結合されているディメンション表(前述の例では「業務」表)を右クリックして、「新規オブジェクト」を選択し、「論理表ソース」を選択します。
「論理表ソース」ダイアログで、新しいブリッジ表ソースの名前を入力します。ブリッジ表の名前をソースの名前として使用することをお薦めします(前述の例では「割当て」)。
「論理表ソース」ダイアログの右上隅にある「追加」ボタンをクリックします。「名前」リストからブリッジ表(前述の例では「割当て」)を選択し、「選択」をクリックします。
「追加」ボタンを再度クリックして、ファクト表に結合されていない関連ディメンション表(前述の例では「従業員」)を選択し、「選択」をクリックします。
「論理表ソース」ダイアログの「OK」をクリックします。
図9-8は、ブリッジ表ソースの「論理表ソース」ダイアログを示しています。
ファクト表に結合されていないディメンション表(前述の例では「従業員」表)の列を、物理レイヤーから、作成したばかりの論理表ソースにドラッグします。
これで、ブリッジ表ソースを伴うものも含め、論理表に基づいてディメンションを作成することができるようになりました。
1つのブリッジ表に関連付けられている2つのディメンション表を単一のディメンションでモデリングする処理の代替として、それらのディメンション表を個別のディメンションでモデリングすることができます。これを実行するには、ファクト表と、ファクト表に物理的には結合されていないディメンション表との間に論理結合を作成して、他の表マッピングを追加するようにその同じディメンション表の論理表ソースを変更します。
ブリッジ表に関連付けられているディメンション表を個別ディメンションでモデリングするには:
物理レイヤーからビジネス・モデルとマッピング・レイヤーにオブジェクトをドラッグします。ディメンション表を個別ディメンションでモデリングするため、ブリッジ表に関連付けられているディメンション表を両方ともドラッグします。ブリッジ表オブジェクトをドラッグ・アンド・ドロップする必要はありません。
ビジネス・モデルとマッピング・レイヤーで、ファクト表、およびブリッジ表に関連付けられている2つのディメンション表(前述の例では、「ファクト」、「従業員」および「業務」)を選択します。それらのオブジェクトを右クリックして、「ビジネス・モデル図」を選択し、「選択された表のみ」を選択します。
ビジネス・モデル図を表示したまま、ツールバーの「新規結合」をクリックします。ファクト表を選択して、現在ファクト表に結合されてないディメンション表を選択します。
「論理結合」ダイアログの「OK」をクリックします。
図9-9は、ビジネス・モデル図での論理表の例の間の結合を示しています。
論理結合を作成した論理表の論理表ソースをダブルクリックします(前述の例では、「従業員」)。
「論理表ソース」ダイアログの右上隅にある「追加」ボタンをクリックします。「名前」リストからブリッジ表(前述の例では「割当て」)を選択し、「選択」をクリックします。
「追加」ボタンを再度クリックして、もう1つの関連ディメンション表(前述の例では「業務」)を選択し、「選択」をクリックします。
「論理表ソース」ダイアログの「OK」をクリックします。
図9-10は、変更したディメンション表ソースの「論理表ソース」ダイアログを示しています。
これで、ブリッジ表に関連付けられている両方の論理表を含め、論理表に基づいてディメンションを作成することができるようになりました。
この項では、Oracle BIリポジトリで、バイナリ・ラージ・オブジェクト(BLOB)データとキャラクタ・ラージ・オブジェクト(CLOB)データをモデリングする方法について説明します。CLOBデータは、任意の文字セットによるラージ・プレーン・テキストのドキュメントです。BLOBデータの例として、イメージ、オーディオ、ビデオがあります。
BLOBデータとCLOBデータをモデリングする手順は次のとおりです。
BLOBデータまたはCLOBデータが含まれている物理表を、メタデータのインポート・ウィザードを使用してデータ・ソースからインポートします。インポート後のBLOB列とCLOB列のデフォルトのデータ型は、LongVarBinaryです。インポート後に、BLOB列またはCLOB列に対して「物理列」ダイアログを開き、「長さ」フィールドを必要な長さに変更します。ただし、Oracle BIサーバーの現在のMaxFieldSizeの限度である32KBを超えないようにします。この32KBの限度は、Microsoft Internet Explorerブラウザの制限でもあります。
必要に応じて、物理結合を構成します。たとえば、employeesという表が1つあり、Employee_Imagesというもう1つの表があって、この表にはemployeeidおよびemployee_imageという2つの列(BLOB列)があり、ここではemployeeidが主キーであるとします。この状況で、employees表とEmployee_Images表との物理結合を作成します。
BLOB列またはCLOB列を「ビジネス・モデルとマッピング」レイヤーにドラッグします。たとえば、前の手順で説明した状況では、employee_image物理列をemployee論理表ソースにドラッグします。これにより、論理列Employee_Imageが生成されます。
Oracle BIサーバーで、結果の論理列にグループ化または順序基準が生成されないようにするために、論理列に対して物理参照を構成します。次に例を示します。
lookup(DENSE "MYDB"."MySchema"."EMPLOYEE_IMAGES"."EMPLOYEE_IMAGE", "MYDB"."MySchema"."Employees"."EmployeeID")
論理BLOB列または論理CLOB列に対する「論理列」ダイアログの「一般」タブで、必要に応じて「記述子ID列」を構成します。例で使用している列Employee_Imageの場合、EmployeeIDを使用するように「記述子ID列」を構成します。こうすることにより、プレゼンテーション・サービスでは、フィルタを生成する際にEmployee_ImageのかわりにEmployeeIDが使用されます。
もう一度、論理BLOB列または論理CLOB列に対する「論理列」ダイアログの「一般」タブで、必要に応じて「ソート順列」を構成します。例で使用している列Employee_Imageの場合、employeeIDを使用するように「ソート順列」を構成します。これにより、Oracle BIサーバーでは、順序基準句にEmployee_Imageが含まれているときにEmployeeIDによりソートされます。
変更を保存します。