ヘッダーをスキップ
Oracle® Warehouse Builder概要
11gリリース2 (11.2)
B61348-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 データ・オブジェクト

Oracle Warehouse Builderで実装するデータ・システムのデータは、ターゲット・スキーマに格納されます。このデータは、表、ビュー、ディメンション・オブジェクト、キューブなどのデータ・オブジェクトの形式です。ここでは、ターゲット・システムに設計するリレーショナルおよびディメンショナルなデータ・オブジェクトおよび分析ビューのビジネス・インテリジェンス・オブジェクトについて説明します。

この項は次のトピックで構成されています。

データ・オブジェクトのタイプ

Oracle Warehouse Builderでは、次に示すリレーショナル・データ・オブジェクトおよびディメンション・データ・オブジェクトとインテリジェンス・オブジェクトが使用されます。

  • リレーショナル・オブジェクトは、表および表から取得されたオブジェクトに依存し、すべてのデータを格納し、それらのデータにリンクします。リレーショナル・オブジェクトには、表、ビュー、マテリアライズド・ビューおよび順序が含まれます。

  • ディメンション・オブジェクトには、データを識別し、分類するための追加のメタデータが含まれています。ディメンション・オブジェクトには、ディメンションおよびキューブがあります。

  • インテリジェンス・オブジェクトを使用すると、ビジネス・ビューの定義を格納できます。これらの定義をOracle Business Intelligence Suite Enterprise Edition (OBI EE)にデプロイできます。Oracle Warehouse Builderでは、インテリジェンス・オブジェクトがプロジェクト・ナビゲータの「ビジネス・インテリジェンス」ノードに表示されます。


関連項目:

  • 『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』のソースおよびターゲット・スキーマの設計に関する項。

  • Oracle Warehouse Builderで使用できるデータ・オブジェクトと使用および作成できるデータ型の完全なリストと説明は、『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』のデータ・オブジェクトの概要に関する項を参照してください。

  • 『Oracle Warehouse Builderソースおよびターゲット・ガイド』のビジネス・インテリジェンス・オブジェクトの定義に関する項。


データ・オブジェクト・エディタ

Oracle Warehouse Builderには、Oracleデータ・オブジェクトを作成、編集、構成、検証およびデプロイするためのコンテキスト・データ・オブジェクト・エディタが用意されています。データ・オブジェクト・エディタは、リレーショナル、ディメンションおよびビジネス・インテリジェンスの各オブジェクトで使用できます。

データ・オブジェクト・エディタを使用して次の操作を実行できます。

  • リレーショナル・オブジェクトとディメンション・オブジェクトの作成、編集および削除

  • ビジネス・インテリジェンス・オブジェクト(ビジネスエリアおよびアイテム・フォルダ)の作成、編集および削除

  • Oracleデータ・オブジェクト間の関係の定義

  • Oracleデータ・オブジェクトの検証、生成およびデプロイ

  • データ・オブジェクトのすべての側面(列、制約、索引、パーティション、データ・ルールおよび属性セットなど)の定義と編集

  • リレーショナル実装を使用したディメンション・オブジェクトの実装詳細の定義


関連項目:


データ・ビューア

Oracle Warehouse Builderデータ・ビューアは、ディメンション、キューブおよびリレーショナル・オブジェクト(表、ビュー、マテリアライズド・ビュー、順序、外部表など)に使用できます。ディメンションおよびキューブのデータ・ビューアを使用すると、基礎となる物理的な記憶域の詳細にかかわらず、論理レベルのオブジェクトの内容を対話形式に論理レベルで参照できます。ディメンションのデータ・ビューアを使用すると、階層別およびレベル別に編成されたディメンション・メンバーを参照してドリルインできます。キューブのデータ・ビューアを使用すると、キューブの内容を対話形式で参照し、ディメンションに従ってデータをピボットおよびドリルダウンできます。

データ・ビューアにアクセスするには、プロジェクト・ナビゲータでデータ・オブジェクトを右クリックして、「データ」を選択します。

デフォルトでは、「データ・ビューア」により、データの最初の100行が表示されます。次の行のセットを取得するには、「詳細を取得」をクリックします。または、「詳細」をクリックして同じアクションを実行できます。データ・ビューアに表示される列および列名は、実際の表がデプロイされるロケーションから直接取得されます。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』のデータ・ビューアを使用したデータ・オブジェクトに格納されるデータの表示に関する項。

ディメンション・オブジェクト: ディメンションおよびキューブ

ディメンション・オブジェクトという用語は、ディメンションおよびキューブの両方を指します。Oracle Warehouse Builderには、簡単な質問に答えてディメンションを作成および保守するウィザードがあります。Oracle Warehouse Builderでは、次の2つのタイプのディメンション・オブジェクトがサポートされています。


関連項目:

すべての手順は、『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』のディメンション・オブジェクトの定義に関する項を参照してください。

ROLAPとMOLAPの実装

Oracle Warehouse Builderでは、ディメンション・オブジェクトの論理設計が記憶域から分離されています。ビジネス・ルールで構成される論理設計では、最初に、ディメンション・オブジェクトの構造と内容を重点的に考えることができます。次に、リレーショナルなROLAPまたは分析用のMOLAPの実装でディメンション・オブジェクトを格納できます。

  • ROLAP実装およびリレーショナル実装では、データベースのリレーショナル・スキーマ内にディメンション・オブジェクトが格納されます。

  • MOLAP実装では、データベースのアナリティック・ワークスペース内にディメンション・オブジェクトが格納されます。

Oracle Warehouse Builderでは、リレーショナル・データ・ストアと多次元データ・ストアの両方を、同じメタデータを使用して作成および管理できます。論理設計と物理実装を分離すると、ETLロジックの設計が透過的になる利点があります。物理的な記憶域の実装にかかわらず、ディメンションおよびキューブをロードするロジックは同じです。

OLAPの使用

ディメンション・オブジェクトは、データ・ウェアハウスに対して複雑な分析機能を提供します。データをディメンション・オブジェクトにロードした後は、ビジネス上の問題に対応する複雑な分析問合せを実行できます。これらの分析問合せには、時系列分析、行間計算、集計された履歴データおよび現行データへのアクセス、予測などがあります。多次元オブジェクトは、このような問合せに迅速に対応する点でより効果的です。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』の「ディメンション・オブジェクトの実装の概要」のディメンション・オブジェクトのROLAP実装およびディメンション・オブジェクトのMOLAP実装に関する項。

キューブおよびディメンションの作成および使用について

ディメンションは、一連のレベルと、これらのレベルに定義されている一連の階層で構成されます。キューブおよびディメンション・オブジェクトの操作は、次の4つの上位プロセスで構成されます。

  1. ディメンションの作成

  2. ディメンションの実装

  3. ディメンションのデプロイメント

  4. ディメンションのロード

ディメンションの作成

キューブなどのディメンション・オブジェクトを定義する際には、より構造化された形式でデータを格納できるように、論理的な関係を記述します。たとえば、ディメンションを定義するには、属性、レベルおよび階層を記述します。

Oracle Warehouse Builderでは、次の2通りの方法でディメンションを定義できます。

  • ディメンションの作成ウィザード: ディメンション・データを格納する実装オブジェクトとともに完全に機能するディメンション・オブジェクトを作成します。最も一般的な値でデフォルト設定されています。手動で設定を指定することなくディメンションをすばやく作成するには、このウィザードを使用します。


    関連項目:

    『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』の「ディメンションの作成」のディメンションの作成ウィザードで使用されるデフォルトに関する項。

  • ディメンション・エディタ: ディメンション・オブジェクトを作成または編集するには、エディタを使用します。ウィザードで使用されるデフォルト設定とは異なる設定を指定する場合は、ディメンション・オブジェクトの作成にエディタを使用します。また、ウィザードの使用時には使用できない特定の拡張オプションを使用するディメンション・オブジェクトを作成する場合も、エディタを使用します。たとえば、スノーフレーク・スキーマ実装を使用するリレーショナル・ディメンションを作成するには、エディタを使用する必要があります。ウィザードを使用した場合、使用されるデフォルト実装メソッドはスター・スキーマです。また、ディメンションの作成ウィザードを使用して、作成したディメンションを編集し、スノーフレーク・スキーマ実装を使用するために変更できます。

ディメンションの実装

ディメンションを実装するには、ディメンション・オブジェクトの物理構造を作成します。Oracle Warehouse Builderには、ディメンションに対する次の実装が提供されています。


注意:

MOLAP実装を使用するには、次のソフトウェアのインストールが必要です。
  • OLAPオプション付属のOracle Database 11g Enterprise Edition

  • OLAP 10.1.0.4以上


ディメンション・オブジェクトに対する実装のタイプを指定するには、「配布オプション」構成プロパティを設定します。このプロパティの設定の詳細は、Oracle Warehouse Builderヘルプのディメンションの構成およびキューブの構成に関する項を参照してください。

ディメンションのリレーショナル実装

ディメンションのデータは実装オブジェクト(通常は表)に格納されます。リレーショナル・ディメンションの場合は、スター・スキーマ、スノーフレーク・スキーマまたは手動スキーマを使用して実装オブジェクトを格納することができます。


関連項目:

このマニュアルの「スター・スキーマ」および「スノーフレーク・スキーマ」

ディメンション・オブジェクトのROLAP実装

ROLAP実装を使用すると、データベースにデプロイできるDDLスクリプトを作成する以外に、ディメンション・オブジェクトに対するCWM2メタデータをOLAPカタログに作成できます。


関連項目:

このマニュアルの「OLAPカタログについて」

ディメンション・オブジェクトのMOLAP実装

ディメンション・データは、Oracle Database 11gアナリティック・ワークスペースに格納されます。このアナリティック・ワークスペースは、データベースに格納されます。


関連項目:

アナリティック・ワークスペースの詳細は、『Oracle OLAPユーザーズ・ガイド』を参照してください。

ディメンションのデプロイメント

データベース内のディメンション・オブジェクトをインスタンス化するには、ディメンション・オブジェクトをデプロイする必要があります。ディメンション・オブジェクトの実装タイプを指定するには、デプロイメント・オプションを設定します。構成パラメータの「配布オプション」により、デプロイメント・オプションを設定できます。

Oracle Warehouse Builderには、次のようなディメンション・オブジェクトのデプロイメント・オプションがあります。

  • すべて配布: リレーショナル実装またはROLAP実装の場合は、ディメンション・オブジェクトがデータベースにデプロイされ、CWM定義がOLAPカタログにデプロイされます。MOLAP実装の場合は、ディメンション・オブジェクトがアナリティック・ワークスペースにデプロイされます。

  • データ・オブジェクトのみ配布: ディメンション・オブジェクトのみをデータベースにデプロイします。このオプションは、リレーショナル実装を使用しているディメンション・オブジェクトに対してのみ選択できます。

  • カタログにのみ配布: CWM定義をOLAPカタログにのみデプロイします。このオプションを使用するのは、Oracle Business Intelligence Enterprise Editionなどのアプリケーションでデータのみのデプロイ後にディメンション・オブジェクト・データにアクセスする必要がある場合です。以前にデータ・オブジェクトのみをデプロイした場合は、このオプションを使用すると、再度データ・オブジェクトをデプロイせずにCWMカタログ定義をデプロイできます。


    関連項目:

    このマニュアルの「OLAPカタログについて」

  • 集計の配布: キューブ・メジャーに定義されている集計をデプロイします。このオプションは、キューブに対してのみ使用できます。

MOLAP実装を使用するディメンション・オブジェクトのデプロイ

MOLAP実装を使用するディメンション・オブジェクトは、定義後すぐにデプロイできます。ディメンション・オブジェクトのデプロイには、デザイン・センターまたはコントロール・センター・マネージャを使用できます。

リレーショナル実装またはROLAP実装を使用するディメンション・オブジェクトのデプロイ

リレーショナルまたはROLAPのディメンション・オブジェクトをデプロイする前に、実装詳細が指定されていることを確認します。つまり、ディメンション・オブジェクトがその実装オブジェクトにバインドされている必要があります。また、ディメンション・オブジェクトが有効であることも確認します。

バインドを実行した後は、ディメンション・オブジェクトをデプロイします。ディメンション・オブジェクトをデプロイする前に、すべての実装オブジェクトがデプロイされていることを確認します。ディメンションの場合、これには、ディメンション・レベルのサロゲート識別子の生成に使用される順序が含まれます。または、実装オブジェクトをディメンション・オブジェクトとともにデプロイすることもできます。

ディメンションのロード

ディメンションをデプロイした後は、マッピングを作成して、ディメンションにデータをロードします。マッピング・エディタを使用して、ソース・オブジェクトからディメンション・オブジェクトにデータをロードするマッピングを作成します。作成後、このマッピングをデプロイし、実行します。


関連項目:

ディメンションのロードおよびキューブの詳細は、Oracle Warehouse Builderヘルプの、ターゲットとしてのディメンション演算子に関する項およびキューブ演算子に関する項を参照してください。

OLAPカタログについて

OLAPカタログは、OracleデータベースのOLAPオプション用に提供されているメタデータ・リポジトリです。このメタデータでは、リレーショナル表とアナリティック・ワークスペースの両方に格納されるデータが記述されます。

Oracle Warehouse Builderを使用してディメンション・オブジェクトをデプロイする場合、ディメンション・オブジェクト・メタデータをOLAPカタログに格納するかどうかを指定できます。

OLAPメタデータは、アクティブ・カタログ・ビュー(名前がALL_OLAP2_AWで始まるビュー)と呼ばれる一連のビューを介して動的に提示されます。

Oracle Database 11gでは、OLAPカタログのメタデータはOLAPツールおよびリレーショナル・スター・スキーマやスノーフレーク・スキーマに格納されたデータにアクセスするアプリケーションで使用されます。Oracle Business Intelligence Enterprise Editionなどの外部アプリケーションでは、リレーショナル・データおよび多次元データに問合せを行うためにOLAPカタログが使用されます。アプリケーションでは、データがリレーショナル表にあるのかアナリティック・ワークスペースにあるのかは重要ではなく、またデータにアクセスするメカニズムも重要ではありません。

図5-1は、OLAPカタログを使用してリレーショナル表およびアナリティック・ワークスペースに格納されたデータにアクセスする方法を示しています。

図5-1 OLAPカタログを使用したディメンション・オブジェクトへのアクセス

図5-1の説明が続きます。
「図5-1 OLAPカタログを使用したディメンション・オブジェクトへのアクセス」の説明

OLAPカタログは、格納されているメタデータを使用して、リレーショナル表またはビューに格納されているデータにアクセスします。OLAPカタログによって、論理多次元オブジェクトが定義され、それらが物理データ・ソースにマッピングされます。論理オブジェクトはディメンションおよびキューブです。物理データ・ソースは、リレーショナル表またはビューの列です。

ディメンションの孤立管理ポリシー

Oracle Warehouse Builderの孤立管理ポリシーを使用すると、ディメンションおよびキューブの孤立レコードを管理できます。孤立レコードは、対応する既存の親レコードを持たないレコードです。

次の場合に孤立レコードが発生する可能性があります。

  • ディメンション・オブジェクトにロードされるレコードに対応する親レコードがない。

  • レコードがディメンション・オブジェクトから削除される。これにより、既存の親レコードを持たない削除済レコードの子レコードが発生する場合があります。

Oracle Warehouse Builderを使用すると、ディメンション・データのロードと削除に異なる孤立管理ポリシーを指定できます。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』の「キューブの概要」のディメンション・オブジェクトの孤立管理に関する項。

リレーショナル・ディメンション

リレーショナル・ディメンションは、データを編成する構造です。一般的に使用されるディメンションの例には、顧客、時間および製品があります。

リレーショナル・ディメンションによって、問合せパフォーマンスが向上します。これは、ユーザーが既知の階層をドリルダウンしてデータを分析することがよくあるためです。階層の例には、年、四半期、月、日という時間階層があります。Oracleデータベースでは、詳細表ではなくマテリアライズド・ビューからデータを取り出す問合せをリライトして、これらの定義済階層を使用します。

一般的なリレーショナル・ディメンション表には、次の特徴があります。

  • ウェアハウス・キーと呼ばれる、値が移入された単一列の主キーがあります。

    ウェアハウス・キーは、ディメンションを管理し、ディメンション履歴を保持する技術をサポートし、キューブのサイズを削減します。

  • ディメンション・オブジェクトとして明示的に定義された1つ以上の階層があります。階層によって、Oracleサーバーによる問合せリライトの数が最大化されます。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』のリレーショナル・データ・オブジェクトの作成に関する項。

ディメンション・オブジェクトのルール

Oracle Warehouse Builderを使用してディメンション・オブジェクトを作成する場合、ディメンションが次のルールに準拠している必要があります。

  • ディメンションには、サロゲート識別子とビジネス識別子が必要です。

  • サロゲート識別子を構成できるのは、1つの属性のみです。ただし、ビジネス識別子は複数の属性で構成できます。

  • 各ディメンション・レベルには、少なくとも1つの属性が必要です。

  • ディメンション属性は、サロゲート識別子、ビジネス識別子、親識別子または通常の属性のいずれかです。

  • さらに、通常の属性は、有効日、有効期限、トリガー属性のいずれかのロールを一度に1つのみ担当できます。

  • リレーショナル実装またはROLAP実装を使用するディメンションには、少なくとも1つのレベルが必要です。

  • リレーショナル実装またはROLAP実装を使用するディメンションを実装するすべてのデータベース表またはビューには、LONGLONG RAWまたはNCLOB列が1つのみ必要です。

  • リレーショナル実装またはROLAP実装を使用するディメンションの場合は、すべてのレベル属性が、データベース表またはビューにのみバインドされている必要があります。

  • リレーショナル実装またはROLAP実装を使用するディメンションは、ディメンション・キー属性のロードに使用される順序に関連付けられている必要があります。

  • リレーショナル実装またはROLAP実装を使用するディメンションのディメンション・キー属性は、表の主キーにバインドされている必要があります。

  • タイプ2の緩やかに変化するディメンション(SCD)には、有効日、有効期限、および少なくとも1つのトリガー属性が必要です。

  • タイプ3の緩やかに変化するディメンション(SCD)には、有効日と少なくとも1つのトリガー属性が必要です。


注意:

ROLAP実装を使用するディメンションの場合、基礎となる表のレポート時またはOLAPカタログへのデプロイ時に、各種ディメンション構造に関連した影響や制限があります。『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』の「ディメンションの概要」のOLAPカタログにディメンションをデプロイする際の制約に関するトピックを参照してください。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』の「ディメンション・オブジェクトの実装の概要」のOLAPカタログに関する項。

ディメンションの定義について

ディメンションの作成は、次の内容で構成されます。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』のディメンション・オブジェクトの定義に関する項。

ディメンション属性の定義

ディメンション属性は、ディメンション・メンバーの記述特性です。これは名前とデータ型を持ちます。ディメンション属性は、ディメンション内の1つ以上のレベルに適用できます。これらは、データを格納するためのレベル属性として実装されます。

Oracle Warehouse Builderでは、ディメンションを定義するときにディメンション属性を定義します。ディメンション属性のリストには、ディメンションのすべてのレベルで必要となる可能性があるすべての属性を含める必要があります。ディメンション属性は、Oracle Business Intelligence Suite Enterprise Edition(OBI EE)および他のOLAPツールで参照可能な唯一の属性です。

たとえば、Productsディメンションには、説明というディメンション属性があります。この属性は、すべてのレベルのTotal、GroupsおよびProductに適用でき、その中には、これらのレベルの各メンバーに対する説明が格納されます。

レベルの定義

ディメンションのレベルは、データの集計レベルを表します。値ベース階層が含まれているディメンション以外のディメンションには、少なくとも1つのレベルが含まれている必要があります。各レベルには、レベル属性およびレベル識別子が必要です。

たとえば、Productsディメンションには、Total、GroupsおよびProductのレベルを設定できます。

サロゲート識別子、ビジネス識別子および親識別子

各レベルには、サロゲート識別子とビジネス識別子の2つの識別子が必要です。ディメンションを作成するときは、そのディメンションのサロゲート識別子およびビジネス識別子(複合ビジネス識別子の場合は属性)としてマーク付けされたディメンション属性が、各レベルで実装される必要があります。

サロゲート識別子

サロゲート識別子は、ディメンションのすべてのレベルにまたがって、各レベルのレコードを一意に識別します。この識別子は、単一の属性で構成する必要があります。サロゲート識別子を使用すると、ファクトを最下位ディメンション・レベルのみでなく、どのディメンション・レベルにもフックできます。

リレーショナル実装またはROLAP実装を使用しているディメンションの場合、サロゲート識別子のデータ型はNUMBERであることが必要です。サロゲート識別子の値は、すべてのディメンション・レベルにまたがって一意である必要があるため、すべてのディメンション・レベルのサロゲート識別子を生成するには、同じ順序を使用します。

リレーショナル実装の場合、サロゲート識別子は次の目的を果します。

  • 子レベルが親レベルとは別の表に格納されている場合、各子レベルのレコードには、親レコードのサロゲート識別子が格納されます。

  • ファクト表の各キューブ・レコードには、参照先のディメンション・レコードのサロゲート識別子のみが格納されます。サロゲート識別子を格納することによって、キューブを実装するファクト表のサイズが削減されます。

ビジネス識別子

ビジネス識別子はユーザーが選択する属性リストで構成されます。ビジネス識別子は、特定のレベルで一意であることが必要であり、常にデータ・ソースの自然キーから導出されます。ビジネス識別子はメンバーを一意に識別します。たとえば、製品レベルのビジネス識別子として統一商品コード(UPC)を使用できます。UPCは、各商品に対応する一意のコードです。


注意:

MOLAP実装を保持するディメンションの場合、ビジネス識別子は単一の属性のみで構成できます。

ビジネス識別子は、次のように機能します。

  • ビジネス期間のレコードを識別します。

  • ファクトとディメンション間または2つのレベル間の論理的なリンクを提供します。

  • サロゲート・キーを参照可能にします。

ディメンションに子レベルを移入する場合は、その親レベルのビジネス識別子を指定する必要があります。キューブを移入する場合は、そのキューブが参照するディメンション・レベルのビジネス識別子を指定する必要があります。

親識別子

親識別子を使用して、値ベース階層で親参照に注釈を付けます。値ベース階層の詳細は、「値ベース階層」を参照してください。

たとえば、値ベース階層のEMPLOYEEディメンションに、IDFIRST_NAMELAST_NAMEEMAILPHONEJOB_IDHIRE_DATEおよびMANAGER_IDのディメンション属性があるとします。このディメンションでは、IDがサロゲート識別子で、MANAGER_IDが親識別子です。

レベル属性の定義

レベル属性とはレベル・メンバーを説明する特性です。ディメンションの各レベルには一連のレベル属性があります。レベル属性を定義するには、そのレベルで実装するディメンション属性を選択します。レベル属性には個別名とデータ型があります。データ型は、そのレベル属性に実装されているディメンション属性から継承されます。レベル属性の名前は、実装されているディメンション属性の名前とは異なる名前に変更できます。

すべてのレベルは、一連のディメンション属性のサロゲート識別子およびビジネス識別子としてマークされた属性を実装する必要があります。

階層の定義

ディメンション階層は、データを編成するために、順序付けされたレベルまたは一連のデータ値(値ベース階層の場合)を使用する論理構造です。階層構造は一連のレベルの親子関係を説明します。レベル・ベース階層には少なくとも1つのレベルが必要です。1つのレベルを複数の階層の一部にすることもできます。

たとえば、時間ディメンションには次の2つの階層が指定されます。

会計階層: 会計年度 > 会計年度四半期 > 会計年度月 > 会計年度週 > 日

カレンダ階層: カレンダ年 > カレンダ四半期 > カレンダ月 > 日

すべての階層が厳密な1対nの関係にあることが必要です。親レベルの1つのレコードは子レベルの複数のレコードに対応します。一方、子レベルの1つのレコードは階層内で1つの親レコードにのみ対応します。

ディメンション・ロール

ディメンション・ロールとはディメンションの別名です。データ・ウェアハウスでは、キューブが同じディメンションを複数回参照する場合、参照する都度そのディメンションを格納する必要はありません。同じディメンションに対する複数回の参照は混乱の原因となります。そこで、ディメンションを参照するたびに別名を作成することで、結合を瞬時に理解できるようになります。このような場合は、同じディメンションがキューブ内の異なるディメンション・ロールを実行します。

たとえば、売上レコードには次の3つの時間値があります。

  • 受注記帳時間

  • 受注出荷時間

  • 受注履行時間

3つの時間ディメンションを作成し、それらのディメンションにデータを移入するかわりに、ディメンション・ロールを使用できます。1つの時間ディメンションのモデルを作成し、そのディメンションに3つのロール(受注記帳時間、受注出荷時間、受注履行時間)を作成します。売上キューブでは、受注時間、出荷時間および受注履行時間のディメンションを参照できます。

ディメンションがデータベースに格納される場合は、1つのディメンションのみが作成され、各ディメンション・ロールがこのディメンションを参照します。一方、ディメンションがOLAPカタログに格納される場合は、各ディメンション・ロールに対して1つのディメンションが作成されます。したがって、時間ディメンションに3つのロールがある場合、OLAPカタログには3つのディメンションが作成されます。ただし、3つのディメンションはすべて同一の基礎となる表にマッピングされます。これは、OLAPカタログがディメンション・ロールをサポートしていないための対策です。


注意:

ディメンション・ロールは、リレーショナル実装を持つディメンションに対してのみ作成できます。

レベルの関係

レベルの関係とは、ディメンション階層内のレベル間のアソシエーションです。レベルの関係は、階層内の親レベルへの参照を格納するレベル属性を使用して実装されます。

たとえば、Productsディメンションに「Total > Groups > Product」という階層があるとします。Oracle Warehouse Builderでは、2つのレベルの関係(ProductからGroups、GroupsからTotal)が作成されます。2つの新しい属性には、このレベルの関係(Productレベルでの関係とGroupsレベルでの関係)が実装されます。これらの属性には、親レベルのサロゲートIDが格納されます。

コントロール行

データをディメンションにロードすると、Oracle Warehouse Builderによってコントロール行が作成されます。コントロール行では、ファクト・データがあらゆるレベルのディメンションにリンクされるため、様々なキューブでディメンションを再使用できます。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』の第3章「ディメンション・オブジェクトの定義」のコントロール行の使用に関する項。

値ベース階層

値ベース階層は、階層の関係が親ディメンション属性と子ディメンション属性によって定義されているディメンションです。これは、この章で階層と呼ばれている、階層の関係が各レベル間で定義されているレベル・ベース階層とは異なります。

親子関係を意味のあるレベルとして分類できない場合は、値ベース階層を作成します。値ベース階層にはレベルがありません。ディメンション属性を作成する場合は、親属性となるディメンション属性を指定する必要があります。

たとえば、EMPLOYEEディメンションに、IDFIRST_NAMELAST_NAMEEMAILPHONEJOB_IDHIRE_DATEDESCRIPTIONおよびMANAGER_IDのディメンション属性があるとします。このディメンションには、MANAGER_ID属性で各従業員のマネージャを識別する親子関係があります。しかし、これらの関係では、組織全体として意味のあるレベルを形成できません。これは、従業員とCEOの間のレベル数が従業員全体で異なるためです。従業員AとCEOの間には4つのレベルがあり、従業員BとCEOの間には6つのレベルがある可能性があります。このような場合は、MANAGER_IDを親識別子として保持する値ベース階層を作成します。

値ベース階層はデータ・オブジェクト・エディタのみを使用して作成できます。親属性の指定の詳細は、Oracle Warehouse Builderヘルプの「属性」タブに関する項を参照してください。


注意:

値ベース階層は、MOLAP実装を使用するディメンションでのみ作成できます。

ディメンションの実装

ディメンションの実装は、ディメンションとそのデータが物理的に格納される方法の指定で構成されます。リレーショナル実装、ROLAP実装またはMOLAP実装のいずれかの実装を選択できます。実装方法の設定に関する詳細は、「ディメンションの実装」を参照してください。

ディメンション・データをリレーショナル形式で保存する場合は、次の方法のいずれかを使用してディメンションを実装できます。

スター・スキーマ

スター・スキーマ実装では、ディメンション・データが単一の表に格納されます。同じ表またはビューに複数のディメンション・レベルのデータが格納されるため、表のディメンション・キーの列を指定する必要があります。ディメンション・キーの列は、ディメンションの主キーです。この列はキューブの外部キー参照も形成します。

各レベルには、ディメンション属性のサブセットが実装されます。デフォルトでは、レベル属性の名前はディメンション属性の名前と同じです。すべてのレベルのデータが同じ表に格納されることで生じる名前の競合を回避するため、Oracle Warehouse Builderでは、スター表の名前の指定に、次のガイドラインが使用されます。

  • レベル属性の名前が一意でない場合は、レベル名に接頭辞が付きます。

  • レベル属性の名前が一意の場合、接頭辞は使用されません。


注意:

接頭辞が使用されないようにするには、ディメンションの作成ウィザードまたはデータ・オブジェクト・エディタで、レベル属性の名前を明示的に変更する必要があります。

たとえば、スター・スキーマを使用して製品ディメンションを実装する場合は、ディメンションのすべてのレベルの実装に単一の表が使用されます。

図5-2は、製品ディメンションのスター・スキーマ実装を示しています。すべてのレベルの属性が、PRODUCTSという1つの表のそれぞれの列にマッピングされています。DIMENSION_KEYという列に、ディメンションのサロゲートIDが格納されています。この列は表の主キーです。

図5-2 Productsディメンションのスター・スキーマ実装

図5-2の説明が続きます。
「図5-2 Productsディメンションのスター・スキーマ実装」の説明

スター・スキーマ実装を使用するリレーショナル・ディメンションまたはROLAPディメンションでは、複数のレベルから同じデータベース列に属性をバインドできます。複数のディメンション・レベルから属性がバインドされたデータベース列は、共有列と呼ばれます。タイプ2のSCDでは、トリガー属性として共有列にバインドされるレベル属性を設定できません。

スノーフレーク・スキーマ

スノーフレーク・スキーマ実装では、複数の表を使用してディメンション・データが格納されます。個別のデータベース表またはビューに、ディメンションの各レベルに関するデータが格納されます。

図5-3は、PRODUCTSディメンションのスノーフレーク実装を示しています。ディメンションの各レベルは異なる表にマップされます。

図5-3 Productsディメンションのスノーフレーク・スキーマ実装

図5-3の説明が続きます。
「図5-3 Productsディメンションのスノーフレーク・スキーマ実装」の説明

緩やかに変化するディメンション(SCD)

緩やかに変化するディメンション(SCD)は、現行データと履歴データの両方を一定期間にわたってデータ・ウェアハウスで保存および管理するディメンションです。データ・ウェアハウスには、一般に認知されている3種類のSCDタイプ(タイプ1、タイプ2、およびタイプ3)があります。

適切なライセンスでOracle Warehouse Builderを使用すると、3種類のSCDタイプすべてを定義、デプロイおよびロードできます。穏やかに変化するディメンションは、リレーショナル実装を使用するディメンションに対してのみ作成できます。


注意:

タイプ1には追加ライセンスは不要です。ただし、タイプ2とタイプ3のSCDには、Oracle Warehouse BuilderのEnterprise ETLオプションが必要です。詳細は、Oracle Databaseライセンス情報を参照してください。


関連項目:

SCDのタイプおよび使用方法の詳細は、『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』の緩やかに変化するディメンションの概要に関する項を参照してください。

タイプ1の緩やかに変化するディメンションについて

タイプ1の緩やかに変化するディメンション(SCD)では、新しいデータで既存のデータが上書きされます。通常、このタイプはSCDとはみなされず、ほとんどのディメンションがこのタイプに該当します。したがって、既存のデータは他のどこにも格納されずに失われます。これはユーザーが作成するディメンションのデフォルトのタイプです。タイプ1のSCDを作成するために追加情報を指定する必要はありません。ビジネス上の特定の理由がないかぎり、タイプ1のSCDで十分と考えられます。


関連項目:

SCDのすべてのタイプの詳細は、『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』の緩やかに変化するディメンションの作成に関する項を参照してください。

時間ディメンション

時間ディメンションは、時間的なデータを格納するディメンションです。時間ディメンションはデータ・ウェアハウスで広く使用されます。Oracle Warehouse Builderでは、時間ディメンションを作成および移入できます。会計およびカレンダの両方の時間ディメンションを作成できます。

ウィザードを使用して時間ディメンションを作成すると、時間ディメンションの移入を実行するマッピングが作成されます。時間ディメンションにロードされたデータは、時間ディメンションについてOracle Warehouse Builderが推奨するベスト・プラクティスに準拠します。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』の時間ディメンションの作成に関する項。

キューブ: メジャーおよびディメンション

キューブは、メジャーを含むデータ・オブジェクトで、1つ以上のディメンションにリンクします。キューブの軸にはディメンション・メンバーが組み込まれ、キューブの本体にはメジャーの値が格納されます。ほとんどのメジャーは加法的なメジャーです。たとえば、売上データは、キューブ・エッジに時間、製品および販促のディメンション値が指定され、キューブ本体にバリュー売上とドル売上のメジャーから値が格納されるキューブに編成できます。


注意:

リレーショナル実装で、キューブは、外部キー制約によってディメンション表にリンクされます。これらの制約は、データ整合性が最も重要とされるデータ・ウェアハウス環境には不可欠です。この制約によって、データ・ウェアハウスを使用する日常業務での参照整合性が順守されます。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』のキューブの概要に関する項。

キューブの定義

キューブは、一連のディメンションにわたって定義されたメジャーの集合で次のように構成されます。

キューブ・メジャー

メジャーとは、調査および分析可能なデータで、通常は加法的な数値になります。メジャーの例としては、売上、原価および収益があります。キューブには、1つ以上のメジャーが必要です。メジャーの集計も可能です。ただし、集計できるのは数値メジャーのみです。

キューブのディメンション

キューブは一連のディメンションで定義されます。キューブはディメンション内で最下位レベル以外のレベルを参照できます。

純粋なリレーショナル実装を使用するキューブでは、ディメンション・ロールによって、複数回同じディメンションを再使用できます。ディメンション・ロールの詳細は、「ディメンション・ロール」を参照してください。

キューブを有効にする前に、キューブが参照するディメンションすべてが有効になっていることを確認してください。

ディメンション参照を定義するには、次の要素を指定します。

  • キューブが参照するディメンションとディメンション内のレベル。

    リレーショナル実装を使用するキューブでは、ディメンションの中間レベルを参照できます。ただし、MOLAP実装を使用するキューブの場合は、ディメンションの最下位レベルのみを参照できます。Oracle Warehouse Builderでは、レベルの非サロゲート識別子(ビジネス・キーなど)への参照をサポートしています。

  • リレーショナル実装またはROLAP実装を使用するディメンションの場合は、各ディメンションのディメンション・ロール。ディメンション・ロールは、キューブ内でディメンション参照が実行するロールを示します。ディメンション・ロールの指定はオプションです。

MOLAPキューブを定義する場合は、ディメンション参照を定義する順序が重要です。ディスク上でのディメンションの物理的な順序は、ディメンション参照を定義した順序と同じになります。物理的な順序は、スパーシティ定義と密接に関係します。ディメンション参照は、最も密な参照から疎の参照への順序で定義してください。一般的に、時間は密ディメンションで、最初にリストすることでデータ・ロードと時間ベースの分析が迅速に処理されます。ディメンション参照の定義の詳細は、Oracle Warehouse Builderヘルプの「ディメンション」ページまたは「ディメンション」タブに関する項を参照してください。スパーシティの詳細は、Oracle Warehouse Builderヘルプの「拡張」ダイアログ・ボックスに関する項を参照してください。

デフォルトの集計方法 

キューブで実行する必要のある集計を定義できます。ROLAPキューブでは、1つのキューブに対して1つの集計方法のみ定義できます。MOLAPキューブでは、各メジャーの各ディメンションに対して様々な集計方法を定義できます。すべてのキューブ・メジャーに同じ集計関数を使用することも、各メジャーに異なる集計関数を指定することもできます。

Oracle Warehouse Builderでは、SUM、SSUM (scaled SUM)、AVERAGE、HAVERAGE (Hierarchical AVERAGE)、MAX、MIN、FIRST、LAST、AND、OR、HIERARCHICAL_FIRSTおよびHIERARCHICAL_LASTのデフォルト集計方法をサポートしています。集計を実行しない場合はNOAGGを選択します。ANDとORは、多次元実装を使用するキューブには適用できません。


注意:

純粋なリレーショナル・キューブには集計を定義できません。

キューブの実装

キューブを実装する場合は、キューブの物理的な記憶域詳細を指定します。データベース内にリレーショナル形式または多次元形式でキューブを実装できます。

実装のタイプは次のとおりです。

キューブの実装タイプを設定するには、「配布オプション」構成プロパティを使用します。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』のキューブの作成に関する項。

キューブのリレーショナルおよびROLAP実装

キューブ・データの格納に使用されるデータベース・オブジェクトはファクト表と呼ばれます。キューブは、単一のファクト表のみを使用して実装する必要があります。ファクト表には、キューブのメジャーとディメンション参照の列が含まれています。キューブに対する実装オプションの設定の詳細は、「ディメンションの実装」を参照してください。

キューブを実装する手順は、次のとおりです。

  • キューブ・データを格納する表またはマテリアライズド・ビューを選択します。

  • メジャーごとに、メジャー・データを格納する列を選択します。

  • ディメンション参照ごとに、ディメンション参照を格納する列を選択します。

    各ディメンション参照は、ファクト表の列およびファクト表からディメンション表への外部キー(オプション)に対応します。ファクト表からディメンション表への1対nの関係が順守される必要があります。

図5-4は、SALESキューブのリレーショナル実装のバインドを示しています。SALESキューブのデータはSALESという表に格納されます。

図5-4 Salesキューブの実装

図5-4の説明が続きます。
「図5-4 Salesキューブの実装」の説明

キューブのMOLAP実装

キューブとそのデータをアナリティック・ワークスペースに格納することは、MOLAP実装と呼ばれます。複数のキューブを同じアナリティック・ワークスペースに格納できます。MOLAP実装の詳細は、「ディメンション・オブジェクトのMOLAP実装」を参照してください。

キューブの依存性順序の解決

特定のビジネス例では、キューブのディメンションを特定の順序で評価する必要があります。ディメンションの評価順序は、キューブの依存性順序の解決と呼ばれます。たとえば、Salesキューブでは、Productsディメンションの前にTimeディメンションを評価する必要があります。キューブの各ディメンションについて、キューブの別のディメンションに対する依存性を指定できます。

依存性順序を指定する利点は、Oracle Warehouse Builderでディメンションおよびキューブの結合計算の問合せ速度が最適化されることにあります。たとえば、時間の条件に基づいてSalesキューブから結果を取得するほうが、製品の条件に基づいて結果を取得するよりも選択肢が絞り込まれるとします。この場合は、Salesキューブに対して、ProductsディメンションがTimeディメンションに依存することを指定できます。

依存性順序の解決の指定はオプションです。依存性順序を指定しない場合は、オプティマイザが解決順序を柔軟に判断します。


関連項目:

『Oracle Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド』のキューブの構成に関する項。