ディメンションは属性のコレクションであり、データ ソース ビューのテーブルまたはビューの 1 つ以上の列にバインドされます。
キー属性
各ディメンションには、キー属性が含まれています。 ディメンション テーブル内の 1 つ以上の列にバインドされた各属性。 キー属性は、ファクト テーブルへの外部キー リレーションシップで使用されるディメンション メイン テーブル内の列を識別するディメンションの属性です。 通常、キー属性はディメンション テーブルの主キー列を表します。 基になるデータ ソースに物理主キーがないデータ ソース ビューのテーブルに論理主キーを定義できます。 詳細については、「データ ソース ビューでの論理主キーの定義 (Analysis Services)」を参照してください。 キー属性を定義する場合、キューブ ウィザードとディメンション ウィザードは、データ ソース ビューでディメンション テーブルの主キー列を使用しようとします。 ディメンション テーブルに論理主キーまたは物理主キーが定義されていない場合、ウィザードでディメンションのキー属性を正しく定義できない可能性があります。
データ ソース ビュー のテーブルまたはビューの列に属性をバインドする
属性は、1 つ以上のデータ ソース ビュー のテーブルまたはビューの列にバインドされます。 属性は常に 1 つ以上のキー列にバインドされ、属性に含まれるメンバーが決まります。 既定では、これは属性がバインドされている唯一の列です。 属性は、特定の目的で 1 つ以上の追加の列にバインドすることもできます。 たとえば、属性の NameColumn
プロパティは、各属性メンバーのユーザーに表示される名前を決定します。属性のこのプロパティは、データ ソース ビューを介して特定のディメンション列にバインドすることも、データ ソース ビューの計算列にバインドすることもできます。 詳細については、「 ディメンション属性プロパティリファレンス」を参照してください。
属性階層
既定では、属性メンバーはリーフ レベルと All レベルで構成される 2 つのレベル階層に編成されます。 All レベルには、属性が関連付けられているディメンションがメンバーである各メジャー グループ内のメジャー全体で、属性のメンバーの集計値が含まれます。 ただし、 IsAggregatable
プロパティが False に設定されている場合、すべてのレベルは作成されません。 詳細については、「 ディメンション属性プロパティリファレンス」を参照してください。
属性は、通常、ユーザー定義階層に配置できます。この階層は、属性が関連付けられているメジャー グループ内のデータをユーザーが参照できるドリルダウン パスを提供します。 クライアント アプリケーションでは、属性を使用してグループ化と制約の情報を提供できます。 属性をユーザー定義階層に配置する場合、レベルが多対一リレーションシップまたは一対一リレーションシップ ( 自然 リレーションシップと呼ばれます) に関連付けられている場合は、階層レベル間のリレーションシップを定義します。 たとえば、カレンダー時間階層では、日レベルは月レベル、四半期レベルに関連する月レベルなどに関連付ける必要があります。 ユーザー定義階層内のレベル間のリレーションシップを定義すると、Analysis Services では、クエリのパフォーマンスを向上させるためにより便利な集計を定義できます。また、処理パフォーマンス中にメモリを節約することもできます。これは、大きなキューブや複雑なキューブで重要になる可能性があります。 詳細については、「 ユーザー階層」、 「User-Defined 階層の作成」、および 「属性リレーションシップの定義」を参照してください。
属性リレーションシップ、スター スキーマ、および Snowflake スキーマ
既定では、スター スキーマでは、すべての属性がキー属性に直接関連付けられます。これにより、ユーザーはディメンション内の任意の属性階層に基づいてキューブ内のファクトを参照できます。 スノーフレーク スキーマでは、基になるテーブルがファクト テーブルに直接リンクされている場合は、属性がキー属性に直接リンクされるか、スノーフレーク テーブルを直接接続されたテーブルにリンクする基になるテーブルのキーにバインドされている属性によって間接的にリンクされます。