次の方法で共有


属性と属性階層

ディメンションとは属性のコレクションで、これらの属性はデータ ソース ビュー内のテーブルまたはビューの 1 つ以上の列にバインドされています。

キー属性

各ディメンションにはキー属性が含まれています。各属性は、ディメンション テーブル内の 1 つ以上の列にバインドされています。キー属性は、各ディメンションに含まれている属性で、ファクト テーブルとの外部キー リレーションシップで使用されるディメンション メイン テーブル内の列を識別します。通常、キー属性は、ディメンション テーブルに含まれている 1 つまたは複数の主キー列を表します。基になるデータ ソースに物理主キーがないテーブルには、データ ソース ビューで論理主キーを定義できます。詳細については、「データ ソース ビューでの論理主キーの定義 (Analysis Services)」を参照してください。キー属性を定義する場合、キューブ ウィザードとディメンション ウィザードは、データ ソース ビューでディメンション テーブルの主キー列を使用しようとします。ディメンション テーブルに論理主キーまたは物理主キーが定義されていない場合、これらのウィザードでは、ディメンションのキー属性を正しく定義できない可能性があります。

データ ソース ビュー テーブルまたはビュー内の列への属性のバインド

属性は、1 つ以上のデータ ソース ビュー テーブルまたはビュー内の列にバインドされています。属性は常に 1 つ以上のキー列にバインドされており、これによって属性に含まれるメンバが決定されます。既定では、これは属性のバインド先の唯一の列になります。1 つの属性を、特定の目的で 1 つ以上の列にバインドすることもできます。たとえば、属性の NameColumn プロパティはユーザーに表示される各属性メンバの名前を指定します。このプロパティはデータ ソース ビューを経由して特定のディメンション列にバインドすることも、データ ソース ビューの計算列にバインドすることもできます。詳細については、「ディメンション属性の定義」を参照してください。

属性階層

属性メンバは、既定でリーフ レベルと All レベルから成る 2 つのレベルの階層に編成されます。All レベルの内容は、属性が関連付けられているディメンションが属する各メジャー グループにおける、メジャー全体の属性のメンバの集計値です。ただし、IsAggregatable プロパティを False に設定している場合、All メンバは作成されません。詳細については、「ディメンション属性の定義」を参照してください。

属性はユーザー定義階層に配置することができ、そのようにするのが一般的です。ユーザー定義階層では、属性が関連付けられているメジャー グループ内のデータをユーザーが参照できるようにするためのドリル ダウン パスが提供されます。クライアント アプリケーションでは、属性はグループ化と制約に関する情報を提供するために使用できます。属性をユーザー定義階層に配置するときに、多対一のリレーションシップや一対一のリレーションシップでレベルが関連付けられている場合は、階層レベル間のリレーションシップ (自然なリレーションシップ) を定義します。たとえば、Calendar Time 階層では、日レベルは月レベルに関連付けられており、月レベルは四半期レベルに関連付けられている必要があります。ユーザー定義階層内のレベル間のリレーションシップを定義すると、Analysis Services では、さらに便利な集計を定義して、クエリのパフォーマンスを改善し、同時に処理パフォーマンス中のメモリを節約できます。これは大規模なキューブまたは複雑なキューブでは重要になります。詳細については、「ユーザー階層」、「ユーザー定義階層の作成」、および「属性リレーションシップの定義」を参照してください。

属性リレーションシップ、スター スキーマ、およびスノーフレーク スキーマ

スター スキーマでは既定ですべての属性がキー属性に直接関連付けられます。したがってユーザーはディメンション内の任意の属性階層に基づいてキューブ内のファクトを参照できます。スノーフレーク スキーマでは、基になるテーブルをファクト テーブルに直接リンクしている場合、属性はキー属性に直接リンクされます。または、直接リンクしているテーブルにスノーフレーク テーブルをリンクする、基になるテーブルのキーにバインドされた属性によって間接的にリンクされます。