次の方法で共有


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) メンバーが常に存在します。

    • すべての値は、サブキューブで集計すると、新しいキューブの空間のみを反映し、このキューブを派生する外部キューブの空間は反映しません。

  • 不均衡階層
    不均衡階層は、最上位メンバーとリーフ メンバーの間のレベル数が一様でない階層です。不均衡階層の例として、親子階層があります。不均衡階層は不規則階層ともいいます。

  • ユーザー定義階層
    ユーザー定義階層は、キューブ データをユーザーが見やすくするために使用される、属性階層の均衡階層です。ユーザー定義階層はキューブ空間に追加されません。ユーザー定義階層のレベルを特定の状況で非表示にして、不均衡階層として表示できます。