ご使用のブラウザはJavaScriptをサポートしていません。このヘルプ・ページを正しく表示するにはJavaScriptが必要です。 タイプ2の緩やかに変化するディメンションの定義
ヘッダーをスキップ
前へ
前へ
 
次へ
次へ

タイプ2の緩やかに変化するディメンションの定義

タイプ2の緩やかに変化するディメンション(SCD)を定義する手順は、次のとおりです。

レコードの各バージョンに異なるサロゲート識別子が割り当てられます。ビジネスIDは、論理的な意味で異なるバージョンを一緒に接続します。通常は、ビジネス・ニーズがある場合にタイプ2のSCDが使用されます。

タイプ2のSCDの例

Customersのタイプ2のSCDに、世帯および顧客という2つのレベルがあると想定します。表: Customersのタイプ2のSCD属性に、Customersのタイプ2のSCDのレベル属性がリストされています。

Customersのタイプ2のSCD属性

属性名 識別子

ID

サロゲート識別子

BUSN_ID

ビジネス識別子

ADDRESS


ZIP


MARITAL_STATUS


HOME_PHONE


EFFECTIVE_DATE

有効日

EXPIRATION_DATE

有効期限


Customerはリーフ・レベルで、Householdは非リーフ・レベルです。

Householdレベルでは、IDBUSN_IDADDRESSZIPEFFECTIVE_DATEおよびEXPIRATION_DATEという属性が実装されています。Customerレベルでは、IDBUSN_IDMARITAL_STATUSHOME_PHONEEFFECTIVE_DATEおよびEXPIRATION_DATEという属性が実装されています。このタイプ2のSCD(リレーショナル実装用またはROLAP実装用)を実装する表には、DIMENSION_KEYH_IDH_BUSN_IDH_ADDRESSH_ZIPH_EFFECTIVE_DATEH_EXPIRATION_DATEC_IDC_BUSN_IDC_MARITAL_STATUSC_HOME_PHONEC_EFFECTIVE_DATEおよびC_EXPIRATION_DATEという列があります。

CUSTOMERSのタイプ2のSCDを作成する手順は、次のとおりです。


注意:

タイプ2のSCDをロードするときに、ターゲットがOracle 9iデータベースの場合には行ベース・モードのみがサポートされます。

解決策として、親サロゲートIDの参照属性をすべてのレベルのトリガーに設定して、階層バージョニングに切り替える方法があります。


階層バージョニング

ディメンションの非リーフ・レベルにバージョン管理する属性がある場合は、この非リーフ・レベルのバージョンは、結果的に、対応する子レコードのバージョンとなります(子レコードに有効日属性および有効期限属性がある場合)。たとえば、H_ZIPの値が特定のHouseholdレベル・レコードで更新された場合は、このHouseholdレベルに対応する子レコードは自動的にバージョン管理されます。

階層バージョニングは、タイプ2のSCDのデフォルトでは有効ではありません。ディメンションの作成ウィザードを使用してタイプ2のSCDを作成する場合は、階層バージョニングは無効になります。階層バージョニングを有効にするには、データ・オブジェクト・エディタを使用する必要があります。

階層バージョニングを有効にする手順は、次のとおりです。

  1. プロジェクト・ナビゲータでタイプ2のSCDを右クリックし、「エディタを開く」を選択します。

    データ・オブジェクト・エディタが表示されます。

  2. 「SCD」タブにナビゲートします。

  3. 「タイプ2: 変更履歴をすべて格納」オプションの右側の「設定」をクリックします。

    「タイプ2緩やかに変化するディメンション」ダイアログ・ボックスが表示されます。各レベルの属性が「レベル」ノードの下に表示されます。

  4. 親属性が変更された場合にバージョン管理される必要のある子レベルでは、子レベルの親属性を表す属性に対して、「レコード履歴」列内の「トリガー履歴」を選択します。

    たとえば、ディメンションの作成ウィザードを使用してCustomersのタイプ2のSCDを作成します。手順1から3の説明に従って、タイプ2のSCDのデータ・オブジェクト・エディタを開き、「タイプ2緩やかに変化するディメンション」ダイアログ・ボックスにナビゲートします。CustomerレベルにはHOUSEHOLD_IDという属性があります。この属性は、各Customerレコードの親属性を表します。HOUSEHOLD_ID属性に対して、「レコード履歴」列の「トリガー履歴」を選択します。