3)タプル
マイクロソフト社の日本語マニュアル(Books Online等)ではタプルは「組」と翻訳されています。しかしここではあえて「タプル」と記述します。タプルの概念はMDXの理解における重要事項の1つです。多次元データベース特有の独特の概念であり、日本語の「組」という言葉のイメージとは程遠いものだからです。
タプルとは、ひとことで言うと、「1つ以上の異なるディメンションの、それぞれ1つずつのメンバーの組み合わせ」です。タプルは各メンバーをカンマ区切りで列挙し、()
で括ります。
サンプルキューブからタプルを1つ、記述してみましょう。
( [TOKUISAKI].[TODOFUKEN].[東京都], [SHOHIN].[SHOHINBUNRUI].[家電製品], [Measures].[URIKINGAKU] )
これは何を表しているのでしょう?
このコードは、「東京都の顧客(たち)に、家電製品(液晶テレビ等)が売れた金額」を表しています。つまりタプルとは、元のキューブを、いくつかのディメンションで切り取った(スライスした)かたまりです。それは「元のキューブの一部分」であり、それ自体が1つの小さなキューブであると考えることもできます。
最も単純なタプルは「1つのディメンションの、1つのメンバー」で構成され、元のキューブを「輪切り」にした状態のものです。
MDX内でタプルを指定すると、そのタプルは「値」を戻します。値を戻す、ということはメジャーの指定が1つだけ必要です。クエリー結果に含まれるその「値」は、「スライス」されたかたまり(小さなキューブ)のメジャー集計値です。
タプルの記述には通常、メジャーが1つだけ含まれます。ただし、メジャーの記述は省略可能であり、指定がない場合はそのキューブのデフォルトメジャーが指定されたものとみなされます。なお、タプルとは「元のキューブの一部の小さなキューブ」を示すものなので、タプルを構成する各メンバーの属するディメンションは、かならず異なっていなければなりません。
例えば、次のようなタプルの指定は無効です。
([TOKUISAKI].[TODOFUKEN].[東京都], ← 同じディメンションから [TOKUISAKI].[TODOFUKEN].[北海道], ← 2つのメンバーは指定できない [Measures].[URIKINGAKU] ) ([TOKUISAKI].[TODOFUKEN].[東京都], [Measures].[URIKINGAKU], ← メジャーもディメンションの一種 [Measures].[SURYO] ←なので2つ指定できない )
ではこのような「タプル」の概念はなぜ必要なのでしょうか?
MDXにおいてタプルの用途は大きく2つあります。1つ目はクエリー結果の項目としての使用です。この場合、タプルは指定された単位での集計値を戻します。2つ目はキューブのスライサとしての使用です。