SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

難解クエリー言語「MDX」に挑戦

多次元データベースクエリー言語「MDX」入門
~MDX構文の基本文法(1)

第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

3)タプル

 マイクロソフト社の日本語マニュアル(Books Online等)ではタプルは「組」と翻訳されています。しかしここではあえて「タプル」と記述します。タプルの概念はMDXの理解における重要事項の1つです。多次元データベース特有の独特の概念であり、日本語の「組」という言葉のイメージとは程遠いものだからです。

 タプルとは、ひとことで言うと、「1つ以上の異なるディメンションの、それぞれ1つずつのメンバーの組み合わせ」です。タプルは各メンバーをカンマ区切りで列挙し、()で括ります。

 サンプルキューブからタプルを1つ、記述してみましょう。

タプルの例
( [TOKUISAKI].[TODOFUKEN].[東京都],
  [SHOHIN].[SHOHINBUNRUI].[家電製品],
  [Measures].[URIKINGAKU]
)

 これは何を表しているのでしょう?

 このコードは、「東京都の顧客(たち)に、家電製品(液晶テレビ等)が売れた金額」を表しています。つまりタプルとは、元のキューブを、いくつかのディメンションで切り取った(スライスした)かたまりです。それは「元のキューブの一部分」であり、それ自体が1つの小さなキューブであると考えることもできます。

図10:タプルのイメージ図
図10:タプルのイメージ図

 最も単純なタプルは「1つのディメンションの、1つのメンバー」で構成され、元のキューブを「輪切り」にした状態のものです。

 MDX内でタプルを指定すると、そのタプルは「値」を戻します。値を戻す、ということはメジャーの指定が1つだけ必要です。クエリー結果に含まれるその「値」は、「スライス」されたかたまり(小さなキューブ)のメジャー集計値です。

 タプルの記述には通常、メジャーが1つだけ含まれます。ただし、メジャーの記述は省略可能であり、指定がない場合はそのキューブのデフォルトメジャーが指定されたものとみなされます。なお、タプルとは「元のキューブの一部の小さなキューブ」を示すものなので、タプルを構成する各メンバーの属するディメンションは、かならず異なっていなければなりません。

 例えば、次のようなタプルの指定は無効です。

無効なタプルの例
([TOKUISAKI].[TODOFUKEN].[東京都], ← 同じディメンションから
 [TOKUISAKI].[TODOFUKEN].[北海道], ← 2つのメンバーは指定できない
 [Measures].[URIKINGAKU]
)


([TOKUISAKI].[TODOFUKEN].[東京都],
 [Measures].[URIKINGAKU],      ← メジャーもディメンションの一種
 [Measures].[SURYO]            ←なので2つ指定できない
)

 ではこのような「タプル」の概念はなぜ必要なのでしょうか?

 MDXにおいてタプルの用途は大きく2つあります。1つ目はクエリー結果の項目としての使用です。この場合、タプルは指定された単位での集計値を戻します。2つ目はキューブのスライサとしての使用です。

次のページ
4)セット

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
難解クエリー言語「MDX」に挑戦連載記事一覧

もっと読む

この記事の著者

大家 正巳(オオヤ マサミ)

株式会社ヴィバーク代表取締役。 システムアナリスト。 この度、当社では SQL Server Analysis Services に接続し、MDXの発行が可能な BIシステム構築ツール「CubeWalker」を開発しました。2009年10月より発売致します。 高速かつ安価なBIシステム作りに、是非お...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4334 2009/09/09 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング