CodeZine(コードジン)

特集ページ一覧

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

第1回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/09/09 14:00

目次

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つ目はキューブのスライサとしての使用です。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

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

著者プロフィール

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

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

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5