次の方法で共有


ユーザー階層

ユーザー定義階層は、ディメンションのメンバーを階層構造に整理し、キューブ内のナビゲーション パスを提供するために Microsoft SQL Server Analysis Services で使用される属性のユーザー定義階層です。 たとえば、次の表は、時間ディメンションのディメンション テーブルを定義します。 ディメンション テーブルでは、Year、Quarter、Month という名前の 3 つの属性がサポートされています。

四半期グラフ
1999 第 1 四半期
1999 第 1 四半期 2 月
1999 第 1 四半期 台無しにする
1999 第 2 四半期 Apr
1999 第 2 四半期 5 月
1999 第 2 四半期 6 月
1999 第 3 四半期 7 月
1999 第 3 四半期 8 月
1999 第 3 四半期 9 月
1999 第 4 四半期 10月
1999 第 4 四半期 11 月
1999 第 4 四半期 12 月

Year、Quarter、Month 属性は、時間ディメンションに Calendar という名前のユーザー定義階層を構築するために使用されます。 カレンダー ディメンション (標準ディメンション) のレベルとメンバーの関係を次の図に示します。

時間ディメンションのレベル階層とメンバー階層、および時間ディメンション

既定の 2 レベルの属性階層以外の階層は、ユーザー定義階層と呼ばれます。 属性階層の詳細については、「属性 と属性階層」を参照してください。

メンバー構造体

親子階層を除き、階層内のメンバーの位置は、階層の定義内の属性の順序によって制御されます。 階層定義の各属性は、階層内のレベルを構成します。 レベル内のメンバーの位置は、レベルの作成に使用される属性の順序によって決まります。 ユーザー定義階層のメンバー構造は、メンバーの相互関係に応じて、4 つの基本的な形式のいずれかを使用できます。

バランス階層

バランスの取れた階層では、階層のすべての分岐が同じレベルに下がり、各メンバーの論理親はメンバーのすぐ上のレベルになります。 Adventure Works DW 多次元 2012 サンプル Analysis Services データベースの Product ディメンションの Product Categories 階層は、バランスの取れた階層の良い例です。 製品名レベルの各メンバーには、サブカテゴリ レベルの親メンバーがあり、カテゴリ レベルに親メンバーが含まれます。 また、階層内のすべてのブランチには、製品名レベルのリーフ メンバーがあります。

不均衡階層

不均衡な階層では、階層の分岐は異なるレベルに下がります。 親子階層は不均衡な階層です。 たとえば、Adventure Works DW 多次元 2012 サンプル Analysis Services データベースの Organization ディメンションには、各従業員のメンバーが含まれています。 CEO は階層内のトップ メンバーであり、部門マネージャーとエグゼクティブ秘書は CEO のすぐ下にあります。 部長には部下メンバーがいますが、事務局長は部下を持っていません。

エンド ユーザーが不均衡な階層と不規則な階層を区別できない場合があります。 ただし、Analysis Services では、これら 2 種類の階層をサポートするために、さまざまな手法とプロパティを使用します。 詳細については、「 不規則階層」および「 Parent-Child 階層の属性」を参照してください。

不規則階層

不規則階層では、少なくとも 1 つのメンバーの論理親メンバーがメンバーのすぐ上のレベルにありません。 これにより、階層の分岐が異なるレベルに下がることがあります。 たとえば、大陸、CountryRegion、City の各レベルで定義された Geography ディメンションでは、その順序でメンバーヨーロッパが階層の最上位レベルに表示され、メンバーフランスが中間レベルに表示され、メンバーパリが下位レベルに表示されます。 フランスはヨーロッパよりも具体的で、パリはフランスよりも具体的です。 この通常の階層では、次の変更が行われます。

  • バチカン市国のメンバーが CountryRegion レベルに追加されます。

  • メンバーは市区町村レベルに追加され、CountryRegion レベルのバチカン市国のメンバーに関連付けられます。

  • CountryRegion レベルと City レベルの間に、Province という名前のレベルが追加されます。

都道府県レベルには、CountryRegion レベルの他のメンバーに関連付けられているメンバーが設定され、City レベルのメンバーは、Province レベルの対応するメンバーに関連付けられます。 ただし、CountryRegion レベルのバチカン市国メンバーには州レベルのメンバーが関連付けられていないため、市区町村レベルから CountryRegion レベルのバチカン市国のメンバーにメンバーを直接関連付ける必要があります。 変更により、ディメンションの階層が不規則になりました。 都市バチカン市国の親は、市国/地域のバチカン市国であります, 市国レベルでバチカン市国のメンバーのすぐ上のレベルではありません. 詳細については、「 不規則階層」を参照してください。

Parent-Child 階層

ディメンションの親子階層は、親属性と呼ばれる特殊な属性を使用して定義され、メンバーの相互関係を決定します。 親属性は、ディメンション メイン テーブル内の 自己参照リレーションシップ ( 自己結合) を表します。 親子階層は、単一の親属性から構築されます。 階層に存在するレベルは、親属性に関連付けられているメンバー間の親子関係から引き出されるため、親子階層に割り当てられるレベルは 1 つだけです。 親子階層のディメンション スキーマは、ディメンション メイン テーブルに存在する自己参照リレーションシップに依存します。 たとえば、次の図は、Adventure Works DW 多次元 2012Analysis Services サンプル データベースの DimOrganization ディメンション メイン テーブルを示しています。

DimOrganization テーブルの自己参照結合

このディメンション テーブルの ParentOrganizationKey 列には、 OrganizationKey 主キー列との外部キーリレーションシップがあります。 つまり、このテーブル内の各レコードは、親子リレーションシップを介してテーブル内の別のレコードと関連付けることができます。 この種の自己結合は、一般に、部門内の従業員の管理構造などの組織エンティティ データを表すために使用されます。

親子階層を作成する場合、両方の属性で表される列のデータ型が同じである必要があります。 両方の属性も同じテーブルに存在する必要があります。 既定では、親キーが独自のメンバー キー、null、0 (ゼロ)、またはメンバー キーの列に含まれていない値と等しいメンバーは、最上位レベル ((すべて) レベルを除く) のメンバーであると見なされます。

親子階層の深さは、階層分岐によって異なる場合があります。 つまり、親子階層は不均衡な階層と見なされます。

階層のレベル数によってエンド ユーザーが表示できるレベルの数が決まるユーザー定義階層とは異なり、親子階層は属性階層の単一レベルで定義され、この単一レベルの値はユーザーが見る複数のレベルを生成します。 表示されるレベルの数は、メンバー キーと親キーを格納するディメンション テーブル列の内容によって異なります。 ディメンション テーブルのデータが変更されると、レベルの数が変わる可能性があります。 詳細については、「 Parent-Child 階層」および「 Parent-Child 階層の属性」を参照してください。

こちらもご覧ください

User-Defined 階層の作成
ユーザー階層のプロパティ
ディメンション属性プロパティリファレンス