MDX の主な概念 (MDX)
多次元式 (MDX) を使用すると、多次元データに対するクエリの実行や、キューブ内で使用する MDX 式の作成を行うことができますが、まず Microsoft SQL Server Analysis Services のディメンションの概念と用語を理解しておく必要があります。次のセクションでは、必要とされる基本的なディメンション モデリングの概念と用語について簡単に説明します。その後の各セクションでは、ディメンション モデリングの概念を応用する方法について説明します。
ディメンション モデリングの用語と概念
Microsoft SQL Server Analysis Services キューブは、メジャー、ディメンション、およびディメンション属性に基づいて構成されます。MDX 式言語を使用するために必要なディメンション モデリングの用語と概念を次に示します。
(All) メンバー
(All) メンバーは、属性階層またはユーザー定義階層のすべてのメンバーを計算した値です。属性階層
属性階層は、属性メンバーから構成される階層であり、以下のレベルがあります。リーフ レベル。個別の属性メンバーが含まれています。リーフ レベルの各メンバーをリーフ メンバーともいいます。
中間レベル (属性階層が親子階層の場合)。
(All) レベル (必要に応じて IsAggregatable=True を指定した場合)。属性階層のリーフ メンバーを集計した値が含まれています。(All) レベルのメンバーを (All) メンバーともいいます。
既定では、ディメンション属性ごとに属性階層が定義されます (AttributeHierarchyEnabled=True)。属性階層は既定で表示されます (AttributeHierarchyVisible=True)。
属性リレーションシップ
属性リレーションシップは、ディメンション属性 state と city の間のリレーションシップのように、属性間の一対多のリレーションシップです。均衡階層
均衡階層は、最上位メンバーと任意のリーフ メンバーの間のレベル数が等しい階層です。計算されるメンバー
計算されるメンバーは、クエリ実行時に定義と計算が行われるディメンション メンバーです。計算されるメンバーをユーザー クエリまたは MDX 計算スクリプトで定義して、サーバーに保存しておくことができます。計算されるメンバーは、その計算されるメンバーが定義されているディメンション内のディメンション テーブルの行と対応します。セル
キューブのセルは、メジャー ディメンションのメンバーとキューブ内の各属性階層のメンバーが交差する領域です。メジャー ディメンションのメンバーとして、リーフ メンバー (独立したファクト)、または集計メンバー (年間で集計した売り上げなど) があります。
ディメンションのメンバーとして、リーフ メンバー、データ メンバー、親メンバー、または (All) メンバーがあります。
子メンバー
子メンバーは、階層の中で最上位レベルより下にあるメンバーです。キューブ ディメンション
キューブ ディメンションは、キューブ内のデータベース ディメンションのインスタンスです。キューブ空間
キューブ空間は、そのキューブのメジャーを伴った、キューブの属性階層のメンバーから構成されます。データ メンバー
データ メンバーは、親子階層の親メンバーに関連付けられた子メンバーです。データ メンバーには、親メンバーの子の集計値ではなく、親メンバーで使用するデータ値が格納されます。データベース ディメンション
データベース ディメンションは、キー属性に関連付けられたディメンション属性の集合です。キー属性自体はメジャー ディメンション内のファクトに関連付けられています。ディメンションの属性
ディメンションの属性は、ディメンション テーブルの 1 つ以上の列にバインドされ、メンバーを格納します。ディメンションの属性には、顧客名、月名、製品名などが格納されます。粒度属性
メジャー ディメンションのメジャー グループ内のファクトにディメンションをリンクするための、キューブ ディメンションの属性です。粒度属性とキー属性が別々の属性である場合、直接的または間接的に非キー属性を粒度属性にリンクする必要があります。キューブ内ではディメンションの粒度が粒度属性で定義されます。キー属性
データベース ディメンションのキー属性は、直接的または間接的にそのディメンションのすべての非キー属性がリンクされている属性です。キー属性は多くの場合、粒度属性でもあります。リーフ メンバー
リーフ メンバーは、階層の中で子が存在しないメンバーです。メジャー
メジャーは、ファクト テーブルの値です。ファクトともいいます。メジャー ディメンションの値を総称して、メンバーという場合もあります。メジャーは一般的に数値ですが、文字列値の場合もあります。メジャー グループ
メジャー グループは、SQL Server Analysis Services のキューブ内で関連するメジャー (一般的には、同一のファクト テーブルに属するメジャー) のコレクションです。SQL Server Analysis Services では、1 つのキューブに複数のメジャー グループを格納できます。メジャー ディメンション
メジャー ディメンションは、キューブ内のすべてのメジャーを格納するディメンションです。メジャー ディメンションは特殊なディメンションであり、このディメンションでは通常、指定したメジャーのある各ディメンション属性の現在のメンバーに基づいて、メンバーが集計 (合計、個数のカウントなど) されます。メンバー
メンバーは、メジャー ディメンションを含むディメンション属性の値です。階層内のメンバーとしては、リーフ メンバー、親メンバー、データ メンバー、(All) メンバーがあります。メンバー プロパティ
メンバー プロパティは、顧客の性別、製品の色など、属性メンバーのプロパティです。親メンバー
親メンバーは、親子階層のメンバーであり、子を集計した値を格納します。親子階層
親子階層は、ディメンションの属性の種類が parent に設定された特殊な属性階層です。親子階層は子メンバーと親メンバーから構成される不均衡階層です。親子階層には、次のレベルがあります。子レベル。親メンバーの子が含まれています。子には、データ メンバーなど、親メンバーで集計される属性メンバーが含まれています。
中間レベル。親メンバーが含まれます。
(All) レベル (必要に応じて IsAggregatable=True を指定した場合)。親子階層のリーフ メンバーを集計した値が含まれています。(All) レベルのメンバーを (All) メンバーともいいます。
ディメンションに存在できる親子階層は 1 つのみで、その階層はキー属性に関連付ける必要があります。
不規則階層
不均衡階層を参照してください。サブキューブ
サブキューブは、キューブにフィルターを適用したビューを表す、キューブのサブセットです。サブキューブを定義するには、MDX 計算スクリプトの SCOPE ステートメント、または MDX クエリのサブセレクト句、あるいはセッション キューブとして使用します。サブセレクトで定義したサブキューブ
MDX クエリのサブセレクト句で定義したサブキューブには、このサブキューブ定義と共に存在するすべてのメンバーが含まれます。その結果を次に示します。任意のメンバーを含めると、その先祖と子孫が含まれます。
ユーザー定義階層内のあるレベルのすべてのメンバーを含めると、そのユーザー定義階層のすべてのメンバーが含まれます。ただし、そのレベルのメンバーと共存できない他の階層のメンバーは除外される可能性があります (顧客が含まれていない市町村など)。
キューブから作成したサブキューブには、そのキューブのすべての (All) メンバーが常に存在します。
すべての値は、サブキューブで集計すると、新しいキューブの空間のみを反映し、このキューブを派生する外部キューブの空間は反映しません。
不均衡階層
不均衡階層は、最上位メンバーとリーフ メンバーの間のレベル数が一様でない階層です。不均衡階層の例として、親子階層があります。不均衡階層は不規則階層ともいいます。ユーザー定義階層
ユーザー定義階層は、キューブ データをユーザーが見やすくするために使用される、属性階層の均衡階層です。ユーザー定義階層はキューブ空間に追加されません。ユーザー定義階層のレベルを特定の状況で非表示にして、不均衡階層として表示できます。