![]() 前へ |
![]() 次へ |
タイプ2の緩やかに変化するディメンション(SCD)を定義する手順は、次のとおりです。
履歴データを格納するレベルに対して、有効日と有効期限として使用する属性を指定します。
履歴のバージョンの作成をトリガーするレベル属性を選択します。
サロゲートID、有効日属性または有効期限属性は、トリガー属性として選択できません。
レコードの各バージョンに異なるサロゲート識別子が割り当てられます。ビジネスIDは、論理的な意味で異なるバージョンを一緒に接続します。通常は、ビジネス・ニーズがある場合にタイプ2のSCDが使用されます。
タイプ2のSCDの例
Customersのタイプ2のSCDに、世帯および顧客という2つのレベルがあると想定します。表: Customersのタイプ2のSCD属性に、Customersのタイプ2のSCDのレベル属性がリストされています。
Customersのタイプ2のSCD属性
| 属性名 | 識別子 |
|---|---|
|
|
サロゲート識別子 |
|
|
ビジネス識別子 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
有効日 |
|
|
有効期限 |
Customerはリーフ・レベルで、Householdは非リーフ・レベルです。
Householdレベルでは、ID、BUSN_ID、ADDRESS、ZIP、EFFECTIVE_DATEおよびEXPIRATION_DATEという属性が実装されています。Customerレベルでは、ID、BUSN_ID、MARITAL_STATUS、HOME_PHONE、EFFECTIVE_DATEおよびEXPIRATION_DATEという属性が実装されています。このタイプ2のSCD(リレーショナル実装用またはROLAP実装用)を実装する表には、DIMENSION_KEY、H_ID、H_BUSN_ID、H_ADDRESS、H_ZIP、H_EFFECTIVE_DATE、H_EXPIRATION_DATE、C_ID、C_BUSN_ID、C_MARITAL_STATUS、C_HOME_PHONE、C_EFFECTIVE_DATEおよびC_EXPIRATION_DATEという列があります。
CUSTOMERSのタイプ2のSCDを作成する手順は、次のとおりです。
HouseholdレベルのZIP属性およびCustomerレベルのMARITAL_STATUS属性をトリガー属性として指定します。
2つの追加属性を使用して、そのレベルのレコードの有効日と有効期限を格納します。ディメンションの作成ウィザードを使用すると、これらの追加属性は最下位レベルに対してのみ作成されます。データ・オブジェクト・エディタを使用する場合は、これらの属性を明示的に作成して、その属性を該当するレベルに適用する必要があります。
|
注意: タイプ2のSCDをロードするときに、ターゲットがOracle 9iデータベースの場合には行ベース・モードのみがサポートされます。解決策として、親サロゲートIDの参照属性をすべてのレベルのトリガーに設定して、階層バージョニングに切り替える方法があります。 |
ディメンションの非リーフ・レベルにバージョン管理する属性がある場合は、この非リーフ・レベルのバージョンは、結果的に、対応する子レコードのバージョンとなります(子レコードに有効日属性および有効期限属性がある場合)。たとえば、H_ZIPの値が特定のHouseholdレベル・レコードで更新された場合は、このHouseholdレベルに対応する子レコードは自動的にバージョン管理されます。
階層バージョニングは、タイプ2のSCDのデフォルトでは有効ではありません。ディメンションの作成ウィザードを使用してタイプ2のSCDを作成する場合は、階層バージョニングは無効になります。階層バージョニングを有効にするには、データ・オブジェクト・エディタを使用する必要があります。
階層バージョニングを有効にする手順は、次のとおりです。
プロジェクト・ナビゲータでタイプ2のSCDを右クリックし、「エディタを開く」を選択します。
データ・オブジェクト・エディタが表示されます。
「SCD」タブにナビゲートします。
「タイプ2: 変更履歴をすべて格納」オプションの右側の「設定」をクリックします。
「タイプ2緩やかに変化するディメンション」ダイアログ・ボックスが表示されます。各レベルの属性が「レベル」ノードの下に表示されます。
親属性が変更された場合にバージョン管理される必要のある子レベルでは、子レベルの親属性を表す属性に対して、「レコード履歴」列内の「トリガー履歴」を選択します。
たとえば、ディメンションの作成ウィザードを使用してCustomersのタイプ2のSCDを作成します。手順1から3の説明に従って、タイプ2のSCDのデータ・オブジェクト・エディタを開き、「タイプ2緩やかに変化するディメンション」ダイアログ・ボックスにナビゲートします。CustomerレベルにはHOUSEHOLD_IDという属性があります。この属性は、各Customerレコードの親属性を表します。HOUSEHOLD_ID属性に対して、「レコード履歴」列の「トリガー履歴」を選択します。