JP2000099540A - 多次元データベース管理方法 - Google Patents

多次元データベース管理方法

Info

Publication number
JP2000099540A
JP2000099540A JP10270900A JP27090098A JP2000099540A JP 2000099540 A JP2000099540 A JP 2000099540A JP 10270900 A JP10270900 A JP 10270900A JP 27090098 A JP27090098 A JP 27090098A JP 2000099540 A JP2000099540 A JP 2000099540A
Authority
JP
Japan
Prior art keywords
data
cell
dimension
virtual
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10270900A
Other languages
English (en)
Inventor
Nobuyuki Yamashita
信之 山下
Hirofumi Hashizume
裕文 橋詰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10270900A priority Critical patent/JP2000099540A/ja
Publication of JP2000099540A publication Critical patent/JP2000099540A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】規則により値が決定するデータをディスクに格
納する方式とディスクに格納せずに検索処理を行うとき
に値を決定するためのデータ値を取得し計算する方式の
うち検索処理が高速である方式をシステムで判断・採用
する方法を提供する。 【解決手段】多次元データ検索時は、前者方式を採用し
た場合、仮想セルではないセルと同様に、仮想セルもデ
ィスクから取り出す。後者方式を採用した場合、仮想セ
ルが検索対象である場合、該仮想セルの参照セルをすべ
てディスクから取り出し、仮想セルの値を計算する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、多次元データベー
ス管理システムにかかわり、他の多次元データをパラメ
ータとする計算により得られる多次元データを含む多次
元データベースに対し、とくに大量の多次元データをよ
り高速に検索するのに好適な多次元データの格納および
検索の処理方法に関する。
【0002】
【従来の技術】多次元データベースモデルは、任意のメ
ンバの集まりで構成される複数の次元によって定義され
る多次元空間内の点にある値をもつデータを対応させる
もので、データを多面的に分析するのに有効なモデルあ
る。さらに、一定の規則を与えることにより多次元空間
内の1つのまたは複数の点に対応するデータの値から、
他の点に対応するデータの値を決定する機能は基本的な
機能の1つである(豊島一政、木村哲、 「OLAP 実
践データウェアハウス」、 日本経営科学研究所、 pp.7
6-79, 1997),(Erik Thomsen, "OLAP SOLUTIONS buildin
g Multidimensional Information Systems", Wiley Com
puter Publishing, pp.89-104, 1997)。この機能によ
り、必要最小限のデータ入力によるデータベース構築
や、計算済のデータを容易に取得することができる。
【0003】
【発明が解決しようとする課題】従来の技術では、 (1)ある与えられた規則により、多次元空間内のある
点に対応するデータAの値が、多次元空間内の他の1つ
のまたは複数の点に対応したデータの値によって決定す
る。
【0004】(2)検索処理において多次元空間を構成
する各次元の任意のメンバの集まりによって、張られる
部分多次元空間内に存在するすべての点に対応するデー
タを取得する。とくに大量のデータの取得を行う。
【0005】という条件を満たす場合に、以下のような
問題があった。
【0006】データAをディスクに格納した方が検索処
理が高速である場合と、データAをディスクに格納せず
に検索処理を行うときに値を決定するためのデータ値を
取得し計算した方が検索処理が高速である場合がある
が、その判断がユーザには困難である場合に、システム
で判断し、いずれかの方法を採用する手段が提供されて
ない。本発明では前記手段を提供し、さらにその手段に
対応した格納方法および検索方法を提供する。
【0007】
【課題を解決するための手段】まず、課題を解決するた
めの手段を説明するために必要な用語の定義を示す。
【0008】本発明が前提している多次元データモデル
では、多次元データベースを構成する複数の次元のう
ち、1つの次元を「メジャー次元」と呼ぶ特別な次元と
し、その他の次元を「通常次元」と呼ぶものとする。メ
ジャー次元の任意のメンバAに、該メンバ以外のメジャ
ー次元の1つまたは複数のメンバをパラメータとする計
算式を定義することができる。このように計算式を定義
したメンバを「仮想メンバ」と呼ぶ。また仮想メンバに
定義された計算式のパラメータとなっているメンバを、
該仮想メンバの「参照メンバ」と呼ぶ。逆にあるメンバ
Aがある仮想メンバBに定義された計算式のパラメータ
であるとき、仮想メンバBを、メンバAの「被参照メン
バ」と呼ぶ。
【0009】多次元空間上の点に対応するデータを「セ
ル」と呼び、データの値を「セル値」と呼ぶ。セルは各
次元のメンバ値とデータ値の組によって表現される。メ
ジャー次元のメンバ値が仮想メンバであるセルを「仮想
セル」と呼ぶ。ある仮想セルAに対し、すべての通常次
元のメンバ値が仮想セルAのそれと一致し、メジャー次
元のメンバ値が、仮想セルAのメジャー次元のメンバ
(仮想メンバ)の参照メンバであるセルBを、仮想セル
Aの「参照セル」と呼ぶ。また仮想セルAを、セルBの
「被参照セル」と呼ぶ。
【0010】仮想セルの値は、そのセルの参照セルがす
べて与えられたときに、仮想メンバに定義された計算式
に従い、決定する。
【0011】続いて、課題を解決するための手段を以下
に示す。
【0012】(1)、多次元データベース管理システム
に仮想メンバを定義したとき、次に示す(a)および
(b)の格納・検索方式における検索処理時間を見積も
る。このとき、本発明を実施するシステムに依存するI
/O処理時間および計算式算出処理時間は、例えば試験
的に同等の処理を行わせることにより取得する。
【0013】(a)多次元データを格納するときに参照
セルがすべて与えられた仮想セルの値を計算してディス
クに格納し、多次元データを検索するときにディスクに
格納された値を取り出すことにより仮想セルの値を得る
方式。
【0014】(b)多次元データを格納するときに仮想
セル値の計算およびディスクへの格納は行わず、多次元
データを検索するときに参照セルの値をディスクから取
り出し、計算することにより仮想セルの値を得る方式。
【0015】(2)、(1)での見積りの結果、検索処
理時間が短いと判断された方式を示すコードを仮想メン
バの情報を管理するテーブルに格納する。
【0016】(3)、多次元データを格納するときに、
格納・検索処理方式(a)を採用した仮想セルの参照セ
ルがすべて揃った時点で、仮想セルの値を計算して、そ
の値をディスクに格納する。
【0017】(4)、多次元データを検索するときに、
格納・検索処理方式(a)を採用した仮想セルが検索対
象である場合、仮想セルではないセルと同様に、ディス
クから取り出す。
【0018】(5)、多次元データを検索するときに、
格納・検索処理方式(b)を採用した仮想セルが検索対
象である場合、該仮想セルの参照セルをすべてディスク
から取り出し、仮想セルの値を計算する。
【0019】
【発明の実施の形態】以下、本発明の実施の形態につい
て図1〜8を用いて説明する。
【0020】図2は本発明のシステム構成を示す。本発
明のシステムは多次元データの格納、検索処理を実行す
るためのプログラムとデータを記憶するためのメモリ2
01と、プログラムを実行するプロセッサ202および
多次元データと定義情報を記憶するディスク装置203
からなる。メモリ201は各処理を行うためのプログラ
ムを格納したプログラム部204とプログラム実行のた
めに必要なデータを格納したデータ部205からなる。
ディスク装置203には多次元データを格納する多次元
データベース206と多次元データの構造を示す情報を
コード化した定義情報207から構成される。
【0021】図3は多次元データの一例を説明する図で
ある。この例はある店舗における商品の売上の分析を想
定したものである。
【0022】多次元データモデルでは、データベースは
複数の次元によって構成されるキューブと呼ばれる多次
元空間として表される。
【0023】次元は多次元空間の座標軸に相当する。例
では「商品」次元301、「日付」次元302、「売上
項目」次元303の3つ次元で構成されている。次元
は、その次元における座標値を表わす次元メンバ(ある
いは単に「メンバ」と呼ぶ)の集まりからなる。例では
「商品」次元201は「商品1」〜「商品100」(3
04)、「日付」次元302は「1日」〜「30日」
(305)の次元メンバからなり、「売上項目」次元3
03は「単価」306、「売上数」307、「売上額」
308の3つ次元メンバからなる。
【0024】多くのモデルでは、特定の次元を分析の指
標を示すための次元と位置づけて、他の次元とは異なっ
た扱いをする。ここではその特別な次元を「メジャー次
元」と呼ぶ。一方、メジャー次元以外の次元を「通常次
元」と呼ぶ。メジャー次元において、任意のメンバを他
のメンバと関連付けることができることが可能であるも
のとする。より具体的に言えば、任意のメンバに対し他
のメンバをパラメータとする計算式を定義できるものと
する。例では、「売上項目」次元303がメジャー次元
であるものとし、「売上額」308に次に示す計算式が
定義されているものとする。
【0025】
【数1】「売上額」=「単価」×「売上数」 「売上額」308のように、計算式が定義されたメンバ
を「仮想メンバ」と呼ぶ。また「単価」306や「売上
数」307のように、仮想メンバに定義された計算式の
パラメータとなっているメンバを、該仮想メンバ(ここ
では「売上額」308)の「参照メンバ」と呼ぶ。逆に
あるメンバがある仮想メンバに定義された計算式のパラ
メータであるとき、仮想メンバを、該メンバの「被参照
メンバ」と呼ぶ。ここでは「単価」306や「売上数」
307の被参照メンバは「売上額」である。
【0026】セルと呼ばれる多次元データベースのデー
タは、キューブ内のある値を持つ点として表され、各次
元のメンバ値とデータ値の組で表される。例では、セル
309は「商品」次元のメンバ値が「商品2」、「日
付」次元のメンバ値が「4日」、「売上項目」次元のメ
ンバ値が「単価」であり、データ値は1980である。
またセル310は「商品」次元のメンバ値が同じく「商
品2」、「日付」次元のメンバ値が同じく「4日」、
「売上項目」次元のメンバ値が「売上数」であり、デー
タ値は73である。
【0027】ここに示した2つのセル309,310に
は直接的な値が設定されているが、「売上項目」次元が
「売上額」であるセルには直接的な値が設定されるわけ
ではなく、数1で示された計算式によってセルの値が決
定する。つまり、「売上項目」次元が「売上額」である
セルの値は、各通常次元(「商品」次元と「日付」次
元)の次元メンバがすべて同じで、「売上項目」次元が
「単価」であるセルの値と「売上数」であるセルの値の
積である。例では、「商品」次元が「商品2」、「日
付」次元が「4日」、「売上項目」次元が「売上額」で
あるセル311の値はセル309の値1980とセル3
10の値73の積144540である。
【0028】セル311のようにメジャー次元のメンバ
値が仮想メンバであるセルを「仮想セル」と呼ぶ。仮想
セルは他のセル値からの計算によって値を決定する。仮
想メンバのセル値を計算のために必要なセルを「参照セ
ル」と呼ぶ。例ではセル311の参照セルはセル309
とセル310である。逆にあるセルに対し、データ値を
決定するために該セルを必要としているセルを、「被参
照セル」と呼ぶ。
【0029】ここで、多次元データの格納において2つ
の方式が考えられる。1つは、格納要求されたセルと、
参照セルがすべて揃った仮想セルをディスク装置203
に格納する方式である。もうひとつは仮想セルはディス
ク装置203に格納せず、格納要求があったセルのみを
格納する方式である。前者の方式を「格納方式1」と
し、後者の方式を「格納方式2」と呼ぶものする。
【0030】図4はデータが各セルに満ちている場合
に、格納方式1を採用した場合に1ページに格納できる
データの範囲を示したものである。同じく図5は格納方
式2を採用した場合に1ページ格納できるデータの範囲
を示したものである。ページとはディスク装置203に
格納されるデータに対するアクセスの単位である。両方
式とも、1ページには60件のデータが格納できるもの
とする。一般的な多次元データベースモデルでは、いず
れの次元方向の検索に対しても一定の検索性能(検索速
度)が要求されている。
【0031】その要求に対応するための格納方法とし
て、各次元を、それを構成するメンバを一定のメンバ数
(以下「分割幅」)毎に分割し、分割点を通り次元方向
に直交する超平面でキューブを区切り、キューブを小さ
な多次元直方体の集まりとみなして、その小さな多次元
直方体を格納の単位とするという方式が提案されてい
る。格納の単位となる多次元直方体を「格納ブロック」
と呼ぶものとする。
【0032】このとき、次元の分割幅はなるべく各次元
とも近い値であるほど各次元方向に対する検索性能の偏
りが少なくなる。格納方式1の例では、「商品」、「日
付」、「売上項目」次元の分割幅はそれぞれ4(40
1),5(402),3(403)であり、図4で網掛
け表示されている部分(404〜406)が1ページに
格納される範囲を示している。
【0033】この多次元直方体内には4×5×3=60
のセルが存在する。また格納方式2の例では、メジャー
次元である「売上項目」次元の仮想メンバである「売上
額」メンバのセル値は格納しないので、残りのメンバは
2個しかないため、「売上項目」次元の分割幅は2(5
03)である。「商品」、「日付」次元の分割幅はそれ
ぞれ5(501)、6(502)であり、「売上項目」
次元の分割幅2と合わせて、この多次元直方体内には5
×6×2=60のセルが存在する。
【0034】図5で網掛け表示されている部分(50
4、505)が1ページ格納される範囲を示している。
また図5において斜線で示されている部分(506)は
どのページにも格納されない。506のセルは仮想セル
であり、それらのセルの参照セルは504、505の部
分に含まれている。506のセル値を求めるには、50
4および505のセル値を取得し関連付けれている計算
式に従い計算すればよい。504および505は同じ格
納ブロックに含まれるため、取得に必要なI/Oは1ペ
ージでよい。つまり内在的に該ページには仮想セルのデ
ータも含まれているとみなせる。
【0035】図6は1ページ内に含まれる「売上項目」
次元のメンバが「単価」、「売上数」、「売上額」であ
るセルのそれぞれの個数を格納方式1と格納方式2とで
対比して示した表である。図6に示すようにページに格
納されているセル数はいずれの格納方式でも60である
が内在的なものも含めると格納方式2では90のセルを
持つとみなせる。そのため大量なセルデータを要求され
たとき、格納方式2の方が格納効率がよくなっているた
め格納方式1に比べ少ないページ数のI/Oで済む。
【0036】図6を基に検索時の各方式の検索性能の比
較を行う。多次元データモデルにおける検索は各次元の
任意のメンバの集合の直積で示される検索範囲のセルの
値をすべて求めるというのが一般的である。このとき、
検索範囲は通常次元に関しては、次元に定義されている
メンバのうち、連続しているメンバが選択される場合が
多く、ここではそれを前提とする。
【0037】この前提に従えば、検索範囲のセルデータ
が格納されている格納ブロックは、メジャー次元方向を
除けば隣接している格納ブロックである。とくに検索範
囲が広い場合、つまり多くの次元が分割幅を大きく上回
る数のメンバが検索範囲となっていれば、検索範囲の境
界付近を除く格納ブロック内のすべてのセルが検索対象
となる。格納方式1と格納方式2について、「商品」次
元の連続するN1個のメンバ、「日付」次元の連続する
N2個のメンバおよび「売上項目」次元の全メンバの直
積で示される検索範囲の検索処理時間の比較を示す。検
索範囲内のセル数Nは次式で計算される。
【0038】
【数2】検索範囲内セル数 N=N1×N2×3 ここで、説明の便宜上、
【0039】
【数3】N12 = N1 × N2 を定義しておく。N12は検索範囲のうち、「売上項
目」次元のメンバがある1つのメンバであるセルの個数
である。格納方式1と格納方式2とでは、ページI/O
時間と仮想メンバのセル値を求めるための計算時間(以
下「仮想メンバ計算時間」と呼ぶ)の違いが、検索処理
時間の違いに大きく現れるものとする。そうすると格納
方式1と格納方式2とで検索処理時間の比較は、各方式
での
【0040】
【数4】比較対象時間T = ページI/O時間 + 仮想
メンバ計算時間 の比較に帰結する。まずページI/O時間は、1ページ
あたりのI/O時間(以下「単位I/O時間」)とI/
Oページ数の積で求められる。
【0041】
【数5】ページI/O時間 = 単位I/O時間 × I/
Oページ数 単位I/O時間はシステム依存である。I/Oページ数
は、検索範囲のセルを含む格納ブロック数である。検索
範囲の境界付近の誤差を無視するものとすると、図6よ
り、
【0042】
【数6】 格納方式1のI/Oページ数 = N12/20 格納方式2のI/Oページ数 = N12/30 となる。
【0043】次に仮想メンバ計算時間は、計算しなけれ
ばならないセルの数(以下「セル計算数」)と1つのセ
ルを計算するために必要な平均時間(以下「セル計算時
間」)の積で求められる。
【0044】
【数7】 仮想メンバ計算時間 = セル計算時間 × セル計算数 セル計算時間は、仮想メンバに定義された式と実現する
システムに依存する値である。セル計算数は、格納方式
1では既に計算された値が格納されていて計算は不要の
ため、0である。格納方式2では、セル計算数は検索範
囲のメジャー次元が仮想メンバであるセルの個数、つま
りN12である。
【0045】
【数8】格納方式1のセル計算数 = 0 格納方式2のセル計算数 = N12 これらの数2〜8により、各方式の検索処理時間を比較
する。
【0046】
【数9】 格納方式1の比較対照時間T1 = 単位I/O時間 × I/Oページ数 + セル計算時間 × セル計算数 = 単位I/O時間 × (N12/20) + セル計算時間 × 0 = N12 × (単位I/O時間 /20)
【0047】
【数10】 格納方式2の比較対照時間T2 = 単位I/O時間 × I/Oページ数 + セル計算時間 × セル計算数 = 単位I/O時間 × (N12/30) + セル計算時間 × N12 = N12 × (単位I/O時間/30 + セル計算時間) となる。T1のT2の差が正負によって、いずれの方式
が検索に有利かがわかる。
【0048】
【数11】T1−T2 = N12 × (単位I/O時間
/60 − セル計算時間) この結果より、単位I/O時間がセル計算時間の60倍
以下であれば、格納方式1の方が有利であり、そうでな
ければ格納方式2の方が有利になることがわかる。また
数11の正負はN12の値に依存しないことがわかる。
つまり、ある程度検索範囲が広い場合、いずれの方式が
有利かどうかは、通常次元(「商品」次元と「日付」次
元)のメンバの選択には依存しない。
【0049】この時点で未知であるのは、単位I/O時
間とセル計算時間である。これらの値はシステム依存の
値であり、さらにセル計算時間はメジャー次元の仮想メ
ンバの定義の仕方によって異なる。例では比較的簡単な
乗算のみであったが、他の関数、複数の演算の組合せあ
るいは複数の仮想メンバを定義した場合には、セル計算
時間は異なってくる。これらシステム依存の値は、例え
ばメジャー次元が定義されて時点で、試験的にI/O処
理やセルの計算を行い、実測値を基に決定するようにす
る。その結果、格納方式1と格納方式2とで有利な格納
方式を採用する。
【0050】図7は、多次元データ管理情報のテーブル
の構成を示す図である。多次元データ管理情報は、キュ
ーブ情報テーブル701、次元情報テーブル706、次
元メンバ情報テーブル710、メジャー次元情報テーブ
ル712、メジャー次元メンバ情報テーブル716、被
参照メンバリスト722,723、仮想メンバ情報テー
ブル724、計算式リスト729および参照メンバリス
ト731からなる。これらのテーブルは多次元データベ
ースを定義したときにディスク装置203に作成され
る。
【0051】キューブ情報テーブル701はキューブ名
702、次元数703、次元情報テーブルオフセット7
04、メジャー次元情報テーブルオフセット705から
なり、テーブルの各エントリはそれぞれ1つのキューブ
に対応する。キューブ名702には該当するキューブの
名称を格納する。次元数703には該キューブに定義さ
れた通常次元の数を格納する。次元情報テーブルオフセ
ット704には該キューブの通常次元に関する情報を格
納した次元情報テーブル706へのオフセットを格納す
る。メジャー次元情報テーブルオフセット705には該
キューブのメジャー次元に関する情報を格納したメジャ
ー次元情報テーブル712へのオフセットを格納する。
【0052】次元情報テーブル706は次元名707、
次元メンバ数708および次元メンバ情報オフセット7
09からなり、テーブルの各エントリはそれぞれ1つの
通常次元に対応する。次元名707には該当する通常次
元に定義された名称を格納する。次元メンバ数708に
は該通常次元が持つメンバの数を格納する。次元メンバ
情報オフセット709には該通常次元のメンバに関する
情報を格納した次元メンバ情報テーブル710へのオフ
セットを格納する。
【0053】次元メンバ情報テーブル710は次元メン
バ名711からなり、テーブルの各エントリはそれぞれ
通常次元の次元メンバに対応する。次元メンバ名711
には該次元メンバに定義された次元メンバの名称を格納
する。
【0054】メジャー次元情報テーブル712はメジャ
ー次元名713、メジャー次元メンバ数714およびメ
ジャー次元メンバ情報オフセット715からなり、1つ
のメジャー次元に関する情報を持つ。メジャー次元名7
13には、該メジャー次元の名称を格納する。メジャー
次元メンバ数714には、該メジャー次元に定義されて
いるメンバの数を格納する。メジャー次元メンバ情報オ
フセット715には、該メジャー次元のメンバの情報を
格納するメジャー次元メンバ情報テーブル716へのオ
フセットを格納する。
【0055】メジャー次元メンバ情報テーブル716は
メジャーメンバ名717、メンバID718、データ型
コード719、計算式オフセット720、被参照メンバ
リストオフセット721および被参照メンバリスト72
2からなり、テーブルの各エントリはそれぞれ1つのメ
ジャー次元メンバに対応する。メジャーメンバ名717
には、を格納する。メンバID718には、該メンバの
該メジャー次元内の通番を格納する。データ型コード7
19には、メジャー次元のメンバ値が該メンバであるセ
ルに格納する値のデータの型を表わすコードを格納す
る。
【0056】計算式オフセット720には、該メンバが
仮想メンバである場合には仮想メンバの情報を格納した
仮想メンバ情報テーブル724へのオフセットを、そう
でない場合にはオフセットとみなせない決められた値を
格納する。被参照メンバリストオフセット721には、
該メンバを参照する仮想メンバの情報を格納する被参照
メンバリスト722へのオフセットを格納する。被参照
メンバリスト722は参照メンバID723の列であ
り、該メンバを参照する格納方式2を選択した仮想メン
バのメンバIDを連続して格納する。
【0057】仮想メンバ情報テーブル724は計算式リ
スト項目数725、計算式リストオフセット726、参
照メンバ数727、参照メンバリストオフセット72
8、格納フラグ729、計算式リスト730および参照
メンバリスト732からなり、1つの仮想メンバの関す
る情報を持つ。計算式リスト項目数725には、該仮想
メンバに関連付けられた計算式をコード化した計算式リ
スト730の項目数を格納する。計算式リストオフセッ
ト726には、該仮想メンバに関連付けられた計算式を
コード化した計算式リスト730へのオフセットを格納
する。
【0058】参照メンバ数727には、該仮想メンバの
参照メンバの数を格納する。参照メンバリストオフセッ
ト728には、該仮想メンバの参照メンバのリスト73
2へのオフセットを格納する。格納フラグ729には、
該メジャー次元のメンバ値が該仮想メンバであるセルを
ディスク装置203に格納するかどうかを表わすコー
ド、即ち該仮想メンバに対し、図4で説明した格納方式
1あるいは図5で説明した格納方式2のいずれの格納方
式を選択したかを表わすコードを格納する。
【0059】計算式リスト730はメンバID/演算コ
ード731の列であり、該仮想メンバに関連付けられた
計算式を、後置法あるいは逆ポーランド法と呼ばれる形
式に変換した、演算子あるいは参照メンバを表わすコー
ドを連続して格納する。参照メンバリスト732は、参
照メンバID733の列であり、該仮想メンバが参照す
るメンバのメンバIDを連続して格納する。
【0060】図8はデータ格納処理手順を示すフローチ
ャートである。本手順は、ユーザが多次元データの格納
を要求したときに実行される。本手順は1件の多次元デ
ータに対する処理手順であり、複数の多次元データの格
納を要求された場合は、本手順をすべての多次元データ
に対して繰り返し行う。本手順のユーザからの入力は格
納すべき多次元データであり、ユーザへの出力はない。
【0061】まずステップ801において、入力された
多次元データのメジャー次元名より、メジャー次元情報
メンバ情報テーブル716を取得する。ステップ802
において、メジャー次元情報メンバ情報テーブル716
の被参照メンバリストオフセット721が無効なオフセ
ットを示す値あれば、次のステップ803に続きステッ
プ808に進む。そうでなければ、そのオフセットが指
す被参照メンバリスト722の仮想メンバID723を
順番に一つずつ取得する。
【0062】ステップ803において、直前のステップ
802で取得したメンバIDが有効な値かどうかを調
べ、有効でなければステップ808に進む。有効なメン
バIDであるときは、該入力データを用いて値を計算す
るセルが存在することを示している。さらにそのセルは
計算に必要なセルがすべて揃ったらディスク装置に格納
する必要がある。つまり、そのセルのメジャー次元のメ
ンバは仮想メンバであり、格納方式2を選択しているこ
とを示している。このセルのことを以後「要格納仮想セ
ル」と呼び、それのメジャー次元のメンバを「要格納仮
想メンバ」と呼ぶ。仮想メンバID723は要格納仮想
メンバのメンバIDである。
【0063】ステップ804において、要格納仮想メン
バの仮想メンバID723から、要格納仮想メンバのメ
ジャー次元メンバ情報テーブル716を取得し、その計
算式オフセット720から仮想メンバ情報テーブル72
4を取得する。ステップ805において、参照メンバリ
ストオフセット728で示される参照メンバリスト73
2にある参照メンバ733すべてのメンバに関するセル
データが既に格納済か調べる。すべて格納済であれば、
要格納仮想セルに必要なセルが揃っていることになり、
次の806ステップに進む。そうでなければステップ8
02に進み、他の要格納仮想セルについて調べる。ステ
ップ806において、計算式リストオフセット726で
指される計算式リスト730で、要格納仮想セルを計算
し、ステップ807において、要格納仮想セルを一時記
憶領域に記憶し、ステップ802に進み、他の要格納仮
想セルについて調べる。
【0064】ステップ808において、入力データのセ
ルと、もしステップ807で記憶した要格納仮想セルが
あれば、それも合わせてディスク装置203に格納し、
以上でデータ格納の処理を終了する。
【0065】図1はデータ検索処理手順を示すフローチ
ャートである。本手順は、ユーザがセルデータの検索を
要求したときに実行される。本手順のユーザからの入力
は検索範囲であり、ユーザへの出力は検索範囲に含まれ
るセルデータの集まりである。
【0066】まず、ステップ101において、ユーザが
入力した検索範囲のメジャー次元のメンバにディスクに
格納しない仮想メンバ(以下「非格納仮想メンバ」)が
あるかどうか調べる。もし非格納仮想メンバがあれば、
そのメンバの参照メンバリスト732を取得して、それ
に含まれる参照メンバID732にあるすべてのメンバ
を検索範囲に追加する。つまりメジャー次元が非格納仮
想メンバであるセル(以下「非格納仮想セル」)を求め
るために必要なセルも合わせて検索するようにする。ス
テップ102において、ユーザに返すセルデータの集ま
りを格納するための領域であるデータワークを確保す
る。
【0067】ステップ103において、検索範囲を含む
格納ブロックに対応するページ(以下「検索対象ペー
ジ」)を既にすべての検索対象ページの処理が完了して
いれば、ステップ115に進む。まだ検索対象ページが
あれば、ステップ104に進み、検索対象ページを1ペ
ージだけ、ページバッファ領域に読み込む。ステップ1
05で、データワークのまだデータを格納していない領
域の先頭を該ページ用のセルデータ格納領域先頭として
位置づける。ステップ106において、該ページ内に格
納されているセルデータを調べて、検索範囲にあるセル
データをすべてデータワークに追加する。この時点で
は、実際にユーザが要求しているセルデータと、ユーザ
が要求している非格納仮想セルを計算するために必要な
セルデータとが混在している状態である。これ以降のス
テップで、非格納仮想セルの計算と、ユーザが直接要求
していないデータの削除を行う必要がある。
【0068】ステップ107において直前のステップ1
06で得たセルデータの集まりから、非格納仮想セルを
求めやすくするために、通常次元のメンバ値がすべて一
致して、メジャー次元のメンバ値のみが一致しないセル
データ(このようなセルデータの集まりを以下「通常次
元メンバ同値群」と呼ぶ)を近くに集める。これは通常
次元のメンバ値をキーとしてソートを行うことにより実
現できる。このソートの結果、通常次元メンバ同値群は
連続した領域に集まる。ソートしなくても、あるセルデ
ータの通常次元メンバ同値群に含まれる他のセルデータ
をサーチすることができるが、そうした場合、セルデー
タの数をNが十分大きいとするとNの2乗オーダーの計
算量が必要であり、クイックソートのような計算量がN
logNのオーダーの処理より不利である。
【0069】ステップ108において、既に該格納ブロ
ック内のすべての通常次元メンバ同値群について処理が
完了していれば、ステップ103に進み、次の検索対象
ページついての処理を行う。まだ未処理の通常次元メン
バ同値群があれば、次のステップ109に進み、通常次
元メンバ同値群を1つ取得する。
【0070】ステップ110において、既に通常次元メ
ンバ同値群での検索対象である非格納仮想メンバの処理
が完了していれば、該通常次元メンバ同値群に関して検
索範囲に含まれるセルデータすべて揃っていることにな
り、ステップ114に進み、非格納仮想セルを計算する
ために必要だったセルデータを削除して、ステップ10
8に戻り、次の通常次元メンバ同値群の処理を行う。そ
うでなく、非格納仮想メンバの処理が完了していなけれ
ば、次のステップ111に進み、未処理の検索対象非格
納仮想メンバの仮想メンバ情報テーブル724を取得す
る。
【0071】ステップ112において、仮想メンバ情報
テーブル724の参照メンバリストオフセット728で
指し示される参照メンバリスト732の参照メンバID
733をみて、該仮想メンバのセルを計算するのに必要
なセルデータが揃っているか調べる。ここで必要なセル
データはあるとすれば、該通常次元同値メンバ群に含ま
れており、該通常同値メンバ群のセルデータ群は連続し
た領域にあるので、狭い範囲内で調べられる。その結
果、必要なセルが揃っていれば、計算リストオフセット
726で指し示される計算リスト730に従ってセル値
を算出し、データワークに追加する。この後は、ステッ
プ110に戻り、次の検索対象非格納仮想メンバについ
ての処理を行う。
【0072】ステップ115において、この時点でユー
ザが要求した検索範囲のセルデータは過不足なくデータ
ワークに格納されており、ユーザに返し、以上でデータ
検索処理を終了する。
【0073】
【発明の効果】本発明によれば、検索効率が高い多次元
データベース格納方法をシステムで選択・採用する。
【図面の簡単な説明】
【図1】本発明のデータ検索の処理手順を示すフローチ
ャートである。
【図2】本発明のシステム構成を示す図である。
【図3】多次元データの一例を説明する図である。
【図4】格納方式1における1ページに格納する範囲を
示す図である。
【図5】格納方式2における1ページに格納する範囲を
示す図である。
【図6】格納方式1と格納方式2の1ページあたりに格
納できるセル数の表を示す図である。
【図7】多次元データ管理情報のテーブル構成を示す図
である。
【図8】データ格納の処理手順を示すフローチャートで
ある。
【符号の説明】
201…メモリ、 202…プロセッサ、 2
03…ディスク装置、204…プログラム部、205…
データ部、206…多次元データベース、207…定義
情報、 701…キューブ情報テーブル、702…キ
ューブ名、 703…次元数、704…次元情報テーブ
ルオフセット、705…メジャー次元情報テーブルオフ
セット、706…次元情報テーブル、 707…次元
名、 708…次元メンバ数、710…次元メンバ情報
テーブル、 711…次元メンバ名、712…メ
ジャー次元情報テーブル、 713…メジャー次元
名、714…メジャー次元メンバ数、715…メジャー
次元メンバ情報オフセット、716…メジャー次元メン
バ情報テーブル、717…メジャーメンバ名、718…
メンバID、 719…データ型コード、720…計算
式オフセット、 721…被参照メンバリストオフセ
ット、722…被参照メンバリスト、 723…仮想メ
ンバID、724…仮想メンバ情報テーブル、
725…計算式リスト項目数、726…計算リストオフ
セット、727…参照メンバ数、728…参照メンバリ
ストオフセット、 729…格納フラグ、730…計
算式リスト、731…メンバID/演算コード、732
…参照メンバリスト、 733…参照メンバID。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】複数の次元のメンバの組合せで識別される
    データを記憶装置に格納し、一定の条件を満たす前記デ
    ータに対し新規の前記データを導出する規則を記憶し、
    該データに関する問合せを処理するデータベース管理シ
    ステムにおいて、前記規則を入力する第1のステップ
    と、前記第1ステップで入力された規則に対し、一定の
    評価方法に従って、該規則によって導出される新規の前
    記データを前記記憶装置に格納するあるいは格納しない
    かを決定する第2のステップと、前記記憶装置に格納す
    る1つまたは複数のデータを入力する第3のステップ
    と、前記第2のステップで規則によって導出される新規
    のデータを記憶装置に格納すると決定した場合に、前記
    第3のステップにおいて入力されたデータと、該規則の
    条件を満たす該データによって導出される新規のデータ
    を前記記憶装置に格納する第4のステップと、前記第2
    のステップで規則によって導出される新規のデータを記
    憶装置に格納しないと決定した場合に、前記第3のステ
    ップにおいて入力されたデータを前記記憶装置に格納す
    る第5のステップからなることを特徴とする多次元デー
    タの格納方法。
  2. 【請求項2】複数の次元のメンバの組合せで識別される
    データを記憶装置に格納し、一定の条件を満たす前記デ
    ータに対し新規の前記データを導出する規則を記憶し、
    該データに関する問合せを処理するデータベース管理シ
    ステムにおいて、前記規則を入力する第1のステップ
    と、前記第1ステップで入力された規則に対し、一定の
    評価方法に従って、該規則によって導出される新規の前
    記データを前記記憶装置に格納するあるいは格納しない
    かを決定する第2のステップと、前記記憶装置に格納す
    る1つまたは複数のデータを入力する第3のステップ
    と、前記第2のステップで規則によって導出される新規
    のデータを記憶装置に格納すると決定した場合に、前記
    第3のステップにおいて入力されたデータと、該規則の
    条件を満たす該データによって導出される新規のデータ
    を前記記憶装置に格納する第4のステップと、前記第2
    のステップで規則によって導出される新規のデータを記
    憶装置に格納しないと決定した場合に、前記第3のステ
    ップにおいて入力されたデータを前記記憶装置に格納す
    る第5のステップと、次元のメンバの組合わせで表され
    た検索条件を入力する第6のステップと、前記第2のス
    テップで規則によって導出される新規のデータを記憶装
    置に格納すると決定した場合に、前記第6のステップに
    おいて入力された検索条件を満たすデータを、前記記憶
    装置から取得する第7のステップと、前記第2のステッ
    プで規則によって導出される新規のデータを記憶装置に
    格納しないと決定した場合に、前記第6のステップにお
    いて入力された検索条件を満たすデータと、規則によっ
    て導出される新規のデータが検索条件を満たすようなデ
    ータを前記記憶装置から取得し、取得したデータから規
    則によって新規のデータを導出する第7のステップから
    なることを特徴とする多次元データの検索方法。
JP10270900A 1998-09-25 1998-09-25 多次元データベース管理方法 Pending JP2000099540A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10270900A JP2000099540A (ja) 1998-09-25 1998-09-25 多次元データベース管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10270900A JP2000099540A (ja) 1998-09-25 1998-09-25 多次元データベース管理方法

Publications (1)

Publication Number Publication Date
JP2000099540A true JP2000099540A (ja) 2000-04-07

Family

ID=17492554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10270900A Pending JP2000099540A (ja) 1998-09-25 1998-09-25 多次元データベース管理方法

Country Status (1)

Country Link
JP (1) JP2000099540A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645826B2 (en) 2001-10-15 2014-02-04 Apple Inc. Graphical multidimensional file management system and method
US8984417B2 (en) 2008-09-12 2015-03-17 9224-5489 Quebec Inc. Method of associating attributes with documents
US9058093B2 (en) 2011-02-01 2015-06-16 9224-5489 Quebec Inc. Active element
US9251643B2 (en) 2001-10-15 2016-02-02 Apple Inc. Multimedia interface progression bar
US9262381B2 (en) 2007-08-22 2016-02-16 9224-5489 Quebec Inc. Array of documents with past, present and future portions thereof
US9519693B2 (en) 2012-06-11 2016-12-13 9224-5489 Quebec Inc. Method and apparatus for displaying data element axes
US9613167B2 (en) 2011-09-25 2017-04-04 9224-5489 Quebec Inc. Method of inserting and removing information elements in ordered information element arrays
US9646080B2 (en) 2012-06-12 2017-05-09 9224-5489 Quebec Inc. Multi-functions axis-based interface
US9652438B2 (en) 2008-03-07 2017-05-16 9224-5489 Quebec Inc. Method of distinguishing documents
US9690460B2 (en) 2007-08-22 2017-06-27 9224-5489 Quebec Inc. Method and apparatus for identifying user-selectable elements having a commonality thereof
US10671266B2 (en) 2017-06-05 2020-06-02 9224-5489 Quebec Inc. Method and apparatus of aligning information element axes

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251643B2 (en) 2001-10-15 2016-02-02 Apple Inc. Multimedia interface progression bar
US8893046B2 (en) 2001-10-15 2014-11-18 Apple Inc. Method of managing user-selectable elements in a plurality of directions
US8904281B2 (en) 2001-10-15 2014-12-02 Apple Inc. Method and system for managing multi-user user-selectable elements
US8954847B2 (en) 2001-10-15 2015-02-10 Apple Inc. Displays of user select icons with an axes-based multimedia interface
US8645826B2 (en) 2001-10-15 2014-02-04 Apple Inc. Graphical multidimensional file management system and method
US9454529B2 (en) 2001-10-15 2016-09-27 Apple Inc. Method of improving a search
US10430495B2 (en) 2007-08-22 2019-10-01 9224-5489 Quebec Inc. Timescales for axis of user-selectable elements
US11550987B2 (en) 2007-08-22 2023-01-10 9224-5489 Quebec Inc. Timeline for presenting information
US9262381B2 (en) 2007-08-22 2016-02-16 9224-5489 Quebec Inc. Array of documents with past, present and future portions thereof
US9348800B2 (en) 2007-08-22 2016-05-24 9224-5489 Quebec Inc. Method of managing arrays of documents
US10719658B2 (en) 2007-08-22 2020-07-21 9224-5489 Quebec Inc. Method of displaying axes of documents with time-spaces
US10282072B2 (en) 2007-08-22 2019-05-07 9224-5489 Quebec Inc. Method and apparatus for identifying user-selectable elements having a commonality thereof
US9690460B2 (en) 2007-08-22 2017-06-27 9224-5489 Quebec Inc. Method and apparatus for identifying user-selectable elements having a commonality thereof
US9652438B2 (en) 2008-03-07 2017-05-16 9224-5489 Quebec Inc. Method of distinguishing documents
US8984417B2 (en) 2008-09-12 2015-03-17 9224-5489 Quebec Inc. Method of associating attributes with documents
US9733801B2 (en) 2011-01-27 2017-08-15 9224-5489 Quebec Inc. Expandable and collapsible arrays of aligned documents
US9529495B2 (en) 2011-02-01 2016-12-27 9224-5489 Quebec Inc. Static and dynamic information elements selection
US9189129B2 (en) 2011-02-01 2015-11-17 9224-5489 Quebec Inc. Non-homogeneous objects magnification and reduction
US9122374B2 (en) 2011-02-01 2015-09-01 9224-5489 Quebec Inc. Expandable and collapsible arrays of documents
US9588646B2 (en) 2011-02-01 2017-03-07 9224-5489 Quebec Inc. Selection and operations on axes of computer-readable files and groups of axes thereof
US10067638B2 (en) 2011-02-01 2018-09-04 9224-5489 Quebec Inc. Method of navigating axes of information elements
US9058093B2 (en) 2011-02-01 2015-06-16 9224-5489 Quebec Inc. Active element
US11080465B2 (en) 2011-09-25 2021-08-03 9224-5489 Quebec Inc. Method of expanding stacked elements
US10289657B2 (en) 2011-09-25 2019-05-14 9224-5489 Quebec Inc. Method of retrieving information elements on an undisplayed portion of an axis of information elements
US10558733B2 (en) 2011-09-25 2020-02-11 9224-5489 Quebec Inc. Method of managing elements in an information element array collating unit
US11281843B2 (en) 2011-09-25 2022-03-22 9224-5489 Quebec Inc. Method of displaying axis of user-selectable elements over years, months, and days
US9613167B2 (en) 2011-09-25 2017-04-04 9224-5489 Quebec Inc. Method of inserting and removing information elements in ordered information element arrays
US9519693B2 (en) 2012-06-11 2016-12-13 9224-5489 Quebec Inc. Method and apparatus for displaying data element axes
US10845952B2 (en) 2012-06-11 2020-11-24 9224-5489 Quebec Inc. Method of abutting multiple sets of elements along an axis thereof
US11513660B2 (en) 2012-06-11 2022-11-29 9224-5489 Quebec Inc. Method of selecting a time-based subset of information elements
US10180773B2 (en) 2012-06-12 2019-01-15 9224-5489 Quebec Inc. Method of displaying axes in an axis-based interface
US9646080B2 (en) 2012-06-12 2017-05-09 9224-5489 Quebec Inc. Multi-functions axis-based interface
US10671266B2 (en) 2017-06-05 2020-06-02 9224-5489 Quebec Inc. Method and apparatus of aligning information element axes

Similar Documents

Publication Publication Date Title
Benetis et al. Nearest and reverse nearest neighbor queries for moving objects
JP6377622B2 (ja) 位置情報を用いたデータのプロファイリング
US6272487B1 (en) Query optimization through the use of multi-column statistics to avoid the problems of non-indexed column correlation
US9880012B2 (en) Hybrid road network and grid based spatial-temporal indexing under missing road links
Lian et al. Monochromatic and bichromatic reverse skyline search over uncertain databases
Liu et al. U-skyline: A new skyline query for uncertain databases
Shao et al. An efficient similarity search framework for SimRank over large dynamic graphs
US5899986A (en) Methods for collecting query workload based statistics on column groups identified by RDBMS optimizer
US6212526B1 (en) Method for apparatus for efficient mining of classification models from databases
US7324991B1 (en) Sampling in a multidimensional database
CN108932347B (zh) 一种分布式环境下基于社会感知的空间关键字查询方法
US20090210413A1 (en) K-nearest neighbor search method, k-nearest neighbor search program, and k-nearest neighbor search device
CN106991141B (zh) 一种基于深度剪枝策略的关联规则挖掘方法
US8566308B2 (en) Intelligent adaptive index density in a database management system
JP2000099540A (ja) 多次元データベース管理方法
Yin et al. A cost-efficient framework for finding prospective customers based on reverse skyline queries
Tatikonda et al. LCS-TRIM: Dynamic programming meets XML indexing and querying
US20140280283A1 (en) Database System with Data Organization Providing Improved Bit Parallel Processing
Xie et al. OLAP over probabilistic data cubes II: parallel materialization and extended aggregates
JP3505393B2 (ja) 類似オブジェクト検索方法、装置、および類似オブジェクト検索プログラムを記録した記録媒体
He et al. Efficient and robust data augmentation for trajectory analytics: A similarity-based approach
Xu et al. Continuous k nearest neighbor queries over large multi-attribute trajectories: a systematic approach
Werstein A performance benchmark for spatiotemporal databases
CN110245208B (zh) 一种基于大数据存储的检索分析方法、装置及介质
Liu et al. An efficient algorithm for reverse furthest neighbors query with metric index