書き込み許可ディメンション

ディメンション内のデータは通常、読み取り専用です。ただし、シナリオによってはディメンションに書き込み許可を設定する必要が生じます。Microsoft SQL Server 2005 Analysis Services (SSAS) では、ディメンションへの書き込みを許可すると、ビジネス ユーザーがディメンションの内容を変更し、ディメンションの階層に対する変更の直接的な影響を確認できます。1 つのテーブルに基づいているすべてのディメンションへの書き込みを許可できます。書き込み許可ディメンションでは、ビジネス ユーザーと管理者は、ディメンション内の属性メンバの変更、移動、追加、および削除を行うことができます。これらの更新は、まとめてディメンションの書き戻しと呼ばれています。

Analysis Services では、すべてのディメンション属性に対するディメンションの書き戻しがサポートされており、ディメンションのすべてのメンバを変更できます。書き込み許可キューブや書き込み許可パーティションでは、更新はキューブのソース テーブルとは別に、書き戻しテーブルに格納されます。ただし、書き込み許可ディメンションでは、更新はディメンションのテーブルに直接記録されます。また、書き込み許可ディメンションが複数パーティションのキューブに含まれており、そのデータ ソースの一部またはすべてにディメンション テーブルのコピーがあると、書き戻しプロセスでは元のディメンション テーブルだけが更新されます。

書き込み許可ディメンションと書き込み許可キューブは、互いに異なりますが補完的な特徴を備えています。書き込み許可ディメンションでは、ビジネス ユーザーはメンバを更新できますが、書き込み許可キューブではセル値を更新できます。これらの 2 つの機能は補完的なものですが、両方を組み合わせて使用する必要はありません。ディメンションの書き戻しを行うために、ディメンションがキューブに含まれている必要はありません。書き込み許可ディメンションは、書き込みが許可されていないキューブに含めることもできます。ディメンションとキューブの書き込みを許可するときと、そのセキュリティをメンテナンスするときには、異なる手順を使用します。

ディメンションの書き戻しには次の制限が適用されます。

  • 新しいメンバを作成するときは、ディメンションにすべての属性を含める必要があります。ディメンションのキー属性値を指定せずにメンバを挿入することはできません。このため、メンバの作成は、ディメンション テーブルに定義されている制約 (NULL 以外のキー値など) に拘束されます。
  • ディメンションの書き戻しは、スター スキーマのみでサポートされています。つまり、ディメンションはファクト テーブルに直接関連付けられている 1 つのディメンション テーブルに基づいている必要があります。ディメンションの書き込みを許可すると、既存の Analysis Services データベースに配置するか、Analysis Services プロジェクトを作成するときに、Analysis Services によってこの要件が検証されます。

書き戻しディメンションの既存のすべてのメンバを変更または削除できます。メンバを削除すると、子のメンバもすべて連鎖的に削除されます。たとえば、CountryRegion、Province、City、および Customer 属性を含む Customer ディメンションで、国または地域を削除すると、その国または地域に属する都道府県、市町村、および顧客もすべて削除されます。国または地域に都道府県が 1 つしか含まれていない場合、その都道府県を削除すると、国または地域も削除されます。

書き戻しディメンションのメンバは、同じレベル内でのみ移動できます。たとえば、市町村は別の国または地域、あるいは都道府県の City レベルに移動できますが、Province レベルまたは CountryRegion レベルには移動できません。親子階層では、すべてのメンバはリーフ メンバであるため、メンバは (All) レベル以外のすべてのレベルに移動できます。

親子階層のメンバを削除すると、メンバの子はメンバの親に移動します。削除するメンバに対してはリレーショナル テーブルの更新権限が必要ですが、移動するメンバに対しては権限は必要ありません。アプリケーションで親子階層内のメンバを移動するときは、メンバの子孫をメンバと共に移動するか、メンバの親に移動するかを UPDATE 操作で指定できます。親子階層内のメンバを再帰的に削除するには、そのメンバとメンバのすべての子孫に対するリレーショナル テーブルの更新権限が必要です。

ms174540.note(ja-jp,SQL.90).gifメモ :
親子階層内の親属性を更新する場合、その他のプロパティまたは属性の更新は含めないでください。

ディメンションをすべて変更すると、そのディメンションの構造が変更されます。ディメンションへの各変更は 1 つのトランザクションと見なされ、ディメンション構造を更新するための増分処理が必要になります。書き込み許可ディメンションには、他のディメンションと同じ処理要件があります。

ms174540.note(ja-jp,SQL.90).gifメモ :
ディメンションの書き戻しはリンク ディメンションではサポートされていません。リンク ディメンションの詳細については、「リンク ディメンション」を参照してください。

セキュリティ

書き込み許可ディメンションを更新できるビジネス ユーザーは、そのディメンションへの読み取り/書き込みアクセスが許可されている Analysis Services データベース ロールに属するユーザーだけです。ロールごとに、更新できるメンバと更新できないメンバを管理できます。ビジネス ユーザーが書き込み許可ディメンションを更新するには、そのクライアント アプリケーションでこの機能がサポートされている必要があります。このようなユーザーの場合、書き込み許可ディメンションを、その前回の変更以後に処理されたキューブに含める必要があります。詳細については、「ユーザー アクセスの許可」を参照してください。

管理者ロールに含まれているユーザーとグループは、書き込み許可ディメンションがキューブに含まれていなくても、その書き込み許可ディメンションの属性メンバを更新できます。

参照

概念

データベース ディメンション プロパティの構成
書き込み許可パーティション
書き込み許可ディメンションの操作
ディメンション (Analysis Services)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

変更内容 :
  • わかりやすくするために概念的な内容を更新。