JP2003141133A - Multi-dimensional database processing method and system for implementing the same - Google Patents
Multi-dimensional database processing method and system for implementing the sameInfo
- Publication number
- JP2003141133A JP2003141133A JP2001341467A JP2001341467A JP2003141133A JP 2003141133 A JP2003141133 A JP 2003141133A JP 2001341467 A JP2001341467 A JP 2001341467A JP 2001341467 A JP2001341467 A JP 2001341467A JP 2003141133 A JP2003141133 A JP 2003141133A
- Authority
- JP
- Japan
- Prior art keywords
- data
- calculation
- range
- group
- members
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は多次元データベース
中のデータを処理する多次元データベース処理システム
に関し、特に複数のバックエンド処理装置中に格納され
た多次元データベースのデータをフロントエンド処理装
置に転送して処理する多次元データベース処理システム
に適用して有効な技術に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multidimensional database processing system for processing data in a multidimensional database, and more particularly to transferring multidimensional database data stored in a plurality of backend processing devices to a frontend processing device. The present invention relates to a technique effectively applied to a multi-dimensional database processing system for processing.
【0002】[0002]
【従来の技術】本発明に関連する技術として、多次元デ
ータベース処理方法、及び、その並列化と多次元データ
ベース上での計算機能について示す。2. Description of the Related Art As a technique related to the present invention, a multidimensional database processing method, its parallelization, and a calculation function on a multidimensional database will be described.
【0003】最初に多次元データベース処理方法、及
び、その並列化について示す。多次元データの分析の効
率化を目標とする多次元データベース管理システムは、
次元のメンバの自由な組合せで指定されたデータを検索
する機能(スライス機能)と、様々な次元方向について
様々な詳細レベルでデータを集約する機能を、データ演
算の基本機能として提供する。First, a multidimensional database processing method and its parallelization will be described. A multidimensional database management system that aims to improve the efficiency of multidimensional data analysis is
It provides the function (slice function) of searching data specified by free combination of dimension members and the function of aggregating data at various levels of detail in various dimension directions as basic functions of data operation.
【0004】多次元データベース管理システムにおける
データ集約の代表的な高速化手法は、データベースにデ
ータを読込む際に集約計算を済ませ、結果を保存(実体
化)するという方法である。集約要求があったときは、
実体化してある集約データを読み出すだけで良い。しか
し、多次元の素データを様々に集約して得られる集約デ
ータの総量は、次元の増大や集約の詳細レベルを決める
次元階層の増大と共に組合せ爆発を起こすことが知られ
ており、性能劣化を最小限に抑えながら、実体化対象と
する集約データを制限する方法がある。A typical speed-up method for data aggregation in a multidimensional database management system is a method of completing aggregation calculation when reading data into a database and storing (materializing) the result. When there is an aggregation request,
All that is required is to read the aggregated data that has been materialized. However, it is known that the total amount of aggregated data obtained by aggregating multidimensional raw data in various ways causes a combinatorial explosion with an increase in dimensions and an increase in the dimensional hierarchy that determines the level of detail of aggregation. There is a method to limit the aggregated data to be materialized while minimizing it.
【0005】データ検索や読込み等の処理は、並列処理
の適用によって高速化できる。実体化対象とする集約デ
ータを含む多次元データを、並列読出し可能な記憶装置
に分割して格納し、データ検索、読込み等に並列処理を
適用する。その際の多次元データの効率的な分割方法に
ついては、特開平9-265479号公報に記述がある。Processing such as data retrieval and reading can be speeded up by applying parallel processing. Multidimensional data including aggregated data to be materialized is divided and stored in a parallel readable storage device, and parallel processing is applied to data retrieval, reading, and the like. An efficient division method of multidimensional data in that case is described in Japanese Patent Laid-Open No. 9-265479.
【0006】上記の様に、多次元データを複数の記憶装
置に分割して格納した場合、並列データベースアクセス
用の複数の処理装置の他に、各並列データベースアクセ
ス用の処理装置からの結果をまとめる1つ以上の処理装
置が必要になる。これは、検索等の処理が必ずしも各並
列データベースアクセス用の処理装置内で閉じるとは限
らないからである。以下、並列アクセス用の処理装置を
バックエンド処理装置、結果をまとめる処理装置をフロ
ントエンド処理装置と呼ぶことにする。なお、バックエ
ンド処理装置の1つがフロントエンド処理装置を兼任す
る構成をとる場合もある。As described above, when the multidimensional data is divided and stored in a plurality of storage devices, the results from the processing devices for parallel database access as well as the processing devices for parallel database access are summarized. More than one processor is required. This is because processing such as search is not always closed in the processing device for accessing each parallel database. Hereinafter, the processing device for parallel access will be referred to as a back-end processing device, and the processing device that collects the results will be referred to as a front-end processing device. In some cases, one of the back-end processing devices also serves as the front-end processing device.
【0007】[0007]
【発明が解決しようとする課題】前記従来の多次元デー
タベース処理システムでは、計算に必要なデータが1つ
のバックエンド処理装置に閉じていない場合、必要なデ
ータをどこかに集めて計算を行う必要がある(但し、部
分的な計算を各バックエンド処理装置に閉じた範囲等で
行うことが可能な場合はある)が、各次元からの複数の
メンバに対する問合せにおいて、各計算メンバを含む交
点(各次元からのメンバの組合せ)毎に、必要なデータ
を、データがあるバックエンド処理装置から計算を行う
フロントエンド処理装置に転送する為、バックエンド処
理装置とフロントエンド処理装置と間の通信が性能ネッ
クになる可能性があり、その為、バックエンド処理装置
とフロントエンド処理装置との間の通信回数を減らす必
要がある。In the conventional multidimensional database processing system described above, if the data required for calculation is not closed in one back-end processing device, it is necessary to collect the necessary data somewhere and perform the calculation. (However, in some cases, it is possible to perform partial calculation in each back-end processing device in a closed range, etc.), but in the query to multiple members from each dimension, the intersection point ( For each (combination of members from each dimension), the necessary data is transferred from the back-end processing device that has the data to the front-end processing device that performs calculations, so that communication between the back-end processing device and the front-end processing device is performed. This may be a performance bottleneck, and therefore it is necessary to reduce the number of communications between the back-end processing device and the front-end processing device.
【0008】本発明の目的は上記問題を解決し、計算に
使用するデータを転送する際の通信回数を減らし、問合
せ処理の高速化を行うことが可能な技術を提供すること
にある。An object of the present invention is to solve the above problems, to provide a technique capable of reducing the number of communications when transferring data used for calculation and speeding up inquiry processing.
【0009】[0009]
【課題を解決するための手段】本発明は、複数のバック
エンド処理装置中に格納された多次元データベースのデ
ータをフロントエンド処理装置に転送して処理する多次
元データベース処理システムにおいて、計算に使用する
データを計算式のグループ毎に取得して問合せの各交点
の計算値を求めるものである。The present invention is used for calculation in a multi-dimensional database processing system for transferring data of a multi-dimensional database stored in a plurality of back-end processing devices to a front-end processing device for processing. The data to be obtained is acquired for each group of calculation formulas, and the calculated value at each intersection of the inquiry is obtained.
【0010】本発明の多次元データベース処理システム
では、多次元データベースに対する問合せを受け取る
と、その問合せの中から問合せ範囲のメンバの組を示す
問合せ範囲情報を入力し、それらのメンバの組を同じ計
算式が適用されるグループ毎に分類する。In the multidimensional database processing system of the present invention, when a query for a multidimensional database is received, query range information indicating a set of members of a query range is input from the query, and the set of those members is calculated by the same calculation. Classify by the group to which the formula applies.
【0011】また、前記分類したメンバの組に計算メン
バが含まれている場合には、その計算メンバを計算式と
計算式を適用するメンバの範囲に分解し、その分解した
計算式が適用されるグループと、そうでないグループに
分類する処理を行って、分類されたメンバの組に計算メ
ンバが含まれなくなるまでこの処理を再帰または繰り返
しにより実行し、計算に使用するデータを識別する為の
メンバの組の情報である計算使用データ範囲情報を計算
式のグループ毎に抽出する。When a calculated member is included in the set of classified members, the calculated member is decomposed into a calculation formula and a range of members to which the calculation formula is applied, and the decomposed calculation formula is applied. Members to identify the data to be used in the calculation by performing the process of classifying into the group that does not include it and the process that does not include the calculated member until the set of classified members does not include the calculated members. The calculation use data range information which is the information of the group is extracted for each group of calculation formulas.
【0012】次に、前記計算使用データ範囲情報で示さ
れた範囲のデータの送信を計算式のグループ毎にバック
エンド処理装置に要求してバックエンド処理装置から送
信された多次元データベースのデータを取得し、当該グ
ループの計算式によりそのデータを評価して問合せの各
交点の値である計算値を求める。Next, the data of the multidimensional database transmitted from the back-end processing device is requested by requesting the back-end processing device for each group of calculation formulas to transmit the data in the range indicated by the calculation use data range information. Obtained, the data is evaluated by the calculation formula of the group, and the calculated value which is the value at each intersection of the inquiry is obtained.
【0013】ここで、前記計算使用データ範囲情報で示
された範囲のデータを計算式のグループ毎に取得する際
に、複数のグループのデータの送信要求をバックエンド
処理装置に一度に行って、複数のグループのデータをま
とめて取得するものとしても良く、また各グループの計
算式間に依存関係がある場合にはその依存関係に従った
順番で各グループのデータを取得するものとしても良
い。Here, when the data in the range indicated by the calculation use data range information is acquired for each group of the calculation formula, a request for transmitting data of a plurality of groups is sent to the back-end processing device at one time, The data of a plurality of groups may be collectively acquired, and if there is a dependency relationship between the calculation expressions of each group, the data of each group may be acquired in an order according to the dependency relationship.
【0014】以上の様に本発明の多次元データベース処
理システムによれば、計算に使用するデータを計算式の
グループ毎に取得して問合せの各交点の計算値を求める
ので、計算に使用するデータを転送する際の通信回数を
減らし、問合せ処理の高速化を行うことが可能である。As described above, according to the multidimensional database processing system of the present invention, the data used for calculation is obtained for each group of calculation formulas and the calculated value at each intersection of the inquiry is obtained. It is possible to reduce the number of times of communication when transferring a message and speed up inquiry processing.
【0015】[0015]
【発明の実施の形態】以下に複数のバックエンド処理装
置中に格納された多次元データベースのデータをフロン
トエンド処理装置に転送して処理する一実施形態の多次
元データベース処理システムについて説明する。BEST MODE FOR CARRYING OUT THE INVENTION A multidimensional database processing system according to an embodiment for transferring data of a multidimensional database stored in a plurality of back end processing devices to a front end processing device for processing will be described below.
【0016】図1は本実施形態の並列多次元データベー
ス処理システムの概略構成を示す図である。図1に示す
様に本実施形態のフロントエンド処理装置13は、計算
使用データ範囲抽出処理部110と、計算評価処理部1
11と、問合せ解析処理部112と、最適化処理部11
3と、コード生成処理部114と、コード配布・実行要
求処理部115と、データ取得制御処理部116とを有
している。FIG. 1 is a diagram showing a schematic configuration of a parallel multidimensional database processing system of this embodiment. As shown in FIG. 1, the front-end processing device 13 of this embodiment includes a calculation use data range extraction processing unit 110 and a calculation evaluation processing unit 1.
11, an inquiry analysis processing unit 112, and an optimization processing unit 11
3, a code generation processing unit 114, a code distribution / execution request processing unit 115, and a data acquisition control processing unit 116.
【0017】計算使用データ範囲抽出処理部110は、
問合せ範囲のメンバの組を示す問合せ範囲情報101を
入力し、同じ計算式が適用されるグループ毎に問合せ範
囲のメンバの組を分類し、計算に使用するデータを識別
する為のメンバの組の情報である計算使用データ範囲情
報102を計算式のグループ毎に抽出する処理部であ
る。The calculation use data range extraction processing unit 110 is
The inquiry range information 101 indicating the set of members of the inquiry range is input, the set of members of the inquiry range is classified for each group to which the same calculation formula is applied, and the set of members for identifying the data used for calculation is input. It is a processing unit that extracts the calculation use data range information 102, which is information, for each group of calculation formulas.
【0018】計算評価処理部111は、計算使用データ
範囲情報102で示された範囲のデータを計算式のグル
ープ毎に取得し、その計算式により当該データを評価し
て問合せの各交点の値である計算値104を求める処理
部である。The calculation evaluation processing unit 111 acquires the data in the range indicated by the calculation use data range information 102 for each group of calculation formulas, evaluates the data according to the calculation formulas, and uses the value at each intersection of the inquiry. It is a processing unit for obtaining a certain calculated value 104.
【0019】問合せ解析処理部112は、問合せ文10
5の構文解析や意味解析を行う処理部である。最適化処
理部113は、問合せ解析処理部112での解析結果を
基に最適な実行手順を決定する処理部である。コード生
成処理部114は、前記決定した実行手順を示すコード
106を生成する処理部である。The inquiry analysis processing unit 112 uses the inquiry sentence 10
5 is a processing unit that performs syntax analysis and semantic analysis. The optimization processing unit 113 is a processing unit that determines an optimum execution procedure based on the analysis result of the query analysis processing unit 112. The code generation processing unit 114 is a processing unit that generates the code 106 indicating the determined execution procedure.
【0020】コード配布・実行要求処理部115は、前
記生成したコード106を配布してその実行を要求する
処理部である。データ取得制御処理部116は、バック
エンド処理装置14からのデータの取得を制御する処理
部である。The code distribution / execution request processing unit 115 is a processing unit that distributes the generated code 106 and requests its execution. The data acquisition control processing unit 116 is a processing unit that controls the acquisition of data from the back-end processing device 14.
【0021】フロントエンド処理装置13を計算使用デ
ータ範囲抽出処理部110、計算評価処理部111、問
合せ解析処理部112、最適化処理部113、コード生
成処理部114、コード配布・実行要求処理部115及
びデータ取得制御処理部116として機能させる為のプ
ログラムは、CD−ROM等の記録媒体に記録され磁気
ディスク等に格納された後、メモリにロードされて実行
されるものとする。なお前記プログラムを記録する記録
媒体はCD−ROM以外の他の記録媒体でも良い。また
前記プログラムを当該記録媒体から情報処理装置にイン
ストールして使用しても良いし、ネットワークを通じて
当該記録媒体にアクセスして前記プログラムを使用する
ものとしても良い。The front-end processing device 13 includes a calculation use data range extraction processing unit 110, a calculation evaluation processing unit 111, a query analysis processing unit 112, an optimization processing unit 113, a code generation processing unit 114, and a code distribution / execution request processing unit 115. The program for functioning as the data acquisition control processing unit 116 is recorded in a recording medium such as a CD-ROM, stored in a magnetic disk or the like, and then loaded into a memory and executed. The recording medium for recording the program may be a recording medium other than the CD-ROM. The program may be installed in the information processing apparatus from the recording medium and used, or the recording medium may be accessed through the network to use the program.
【0022】バックエンド処理装置14はデータ取得処
理部117を有している。データ取得処理部117は、
フロントエンド処理装置13から要求されたデータを記
憶装置17から読み出してフロントエンド処理装置13
へ送信する処理部である。The back-end processing device 14 has a data acquisition processing unit 117. The data acquisition processing unit 117
The data requested by the front-end processing device 13 is read from the storage device 17 and the front-end processing device 13 is read.
Is a processing unit for transmitting to.
【0023】バックエンド処理装置14をデータ取得処
理部117として機能させる為のプログラムは、CD−
ROM等の記録媒体に記録され磁気ディスク等に格納さ
れた後、メモリにロードされて実行されるものとする。
なお前記プログラムを記録する記録媒体はCD−ROM
以外の他の記録媒体でも良い。また前記プログラムを当
該記録媒体から情報処理装置にインストールして使用し
ても良いし、ネットワークを通じて当該記録媒体にアク
セスして前記プログラムを使用するものとしても良い。The program for causing the back-end processing unit 14 to function as the data acquisition processing unit 117 is a CD-
After being recorded in a recording medium such as a ROM and stored in a magnetic disk or the like, it is loaded into a memory and executed.
The recording medium for recording the program is a CD-ROM.
Other recording media other than the above may be used. The program may be installed in the information processing apparatus from the recording medium and used, or the recording medium may be accessed through the network to use the program.
【0024】本実施形態の並列多次元データベース処理
システム12は、多次元データを格納する記憶装置17
に対する並列データベースアクセス用の複数のバックエ
ンド処理装置14と、多次元データへの問合せ文105
の解析や、バックエンド処理装置14からの結果をまと
めるフロントエンドの役割をする1つ以上のフロントエ
ンド処理装置13を有しており、フロントエンド処理装
置13と各バックエンド処理装置14の間は、高速なネ
ットワーク18により相互に接続されている。The parallel multidimensional database processing system 12 of this embodiment is a storage device 17 for storing multidimensional data.
A plurality of back-end processing devices 14 for parallel database access to a query, and a query statement 105 for multidimensional data
And one or more front-end processing devices 13 that play the role of a front-end that summarizes the results from the back-end processing devices 14, and between the front-end processing devices 13 and the respective back-end processing devices 14. , Are connected to each other by a high-speed network 18.
【0025】本実施形態において、問合せ文105は、
各次元からの問合せするメンバの範囲の指定を含むもの
であれば、どの様な形式でも良く、図1の場合、1つの
問合せを発行して解析する形になっているが、例えば、
問合せするメンバの範囲を各次元毎に順次指定していく
等の様に、複数の問合せ文に分けて1つの問合せを形成
する形式の問合せであっても、各次元からの問合せする
メンバの範囲を最終的に解析できる形式であれば本発明
を適用することができる。In this embodiment, the inquiry sentence 105 is
Any format may be used as long as it includes designation of the range of members to be inquired from each dimension. In the case of FIG. 1, one inquiry is issued and analyzed.
The range of members to be inquired from each dimension, even if the query is of a form that divides it into multiple query statements to form one query, such as sequentially specifying the range of members to inquire for each dimension. The present invention can be applied to any format that can finally analyze.
【0026】フロントエンド処理装置13は、クライア
ント11により発せられる多次元データへの問合せ文1
05を解析し、解析結果の処理手順を表すコード106
を生成する解析処理部15と、コード106cが示す内
容に従って問合せを実行する実行処理部16cを有して
おり、バックエンド処理装置14は、解析結果のコード
106が示す内容に従って、問合せを実行する実行処理
部16を有している。コード106は、その内容に従っ
て実行処理部16が各種の処理を実行できるものであれ
ば任意の形式で良く、実行形式のコードや、インタプリ
タで解釈及び実行する形式であっても良い。The front-end processing device 13 is a query sentence 1 for multidimensional data issued by the client 11.
Code 106 that analyzes 05 and represents the processing procedure of the analysis result
The back-end processing device 14 has an analysis processing unit 15 that generates a query and an execution processing unit 16c that executes an inquiry according to the content indicated by the code 106c. It has an execution processing unit 16. The code 106 may be in any format as long as the execution processing unit 16 can execute various processes according to the content thereof, and may be a code in the execution format or a format that is interpreted and executed by an interpreter.
【0027】フロントエンド処理装置13の実行処理部
16cとバックエンド処理装置14の実行処理部16a
及び実行処理部16bとは、それぞれ役割が異なる処理
を含んでおり、バックエンド処理装置14の実行処理部
16a及び実行処理部16bは、多次元データへのアク
セスを行う処理(データ取得処理部117等)を含み、
フロントエンド処理装置13の実行処理部16cは、バ
ックエンド処理装置14からの結果をまとめる処理や、
取得した結果を基に計算を行う処理(データ取得制御処
理部116、計算評価処理部111等)を含んでいる。The execution processing unit 16c of the front-end processing device 13 and the execution processing unit 16a of the back-end processing device 14
The execution processing unit 16b and the execution processing unit 16b include processes having different roles, and the execution processing unit 16a and the execution processing unit 16b of the back-end processing device 14 perform a process of accessing multidimensional data (data acquisition processing unit 117). Etc.),
The execution processing unit 16c of the front-end processing device 13 collects the results from the back-end processing device 14 and
It includes a process (a data acquisition control processing unit 116, a calculation evaluation processing unit 111, etc.) for performing calculation based on the acquired result.
【0028】フロントエンド処理装置13の解析処理部
15では、問合せ文105の構文解析や意味解析等の処
理を行う問合せ解析処理部112や、解析結果を基に最
適な実行手順を決定する最適化処理部113、決定した
実行手順を示すコードを生成するコード生成処理部11
4を含んでいる。In the analysis processing unit 15 of the front-end processing device 13, a query analysis processing unit 112 that performs processing such as syntax analysis and semantic analysis of the query sentence 105, and optimization that determines an optimum execution procedure based on the analysis result. Processing unit 113, code generation processing unit 11 that generates a code indicating the determined execution procedure
Includes 4.
【0029】本実施形態の特徴を示す計算使用データ範
囲抽出処理部110は、解析処理部15に存在してい
る。また、計算使用データ範囲抽出処理部110により
作成された計算使用データ範囲情報102を使用し、計
算を含む問合せを効率的に実行する計算評価処理部11
1は、実行処理部16cに存在している。図3以降で
は、本実施形態を特徴付ける計算使用データ範囲抽出処
理部110と、計算評価処理部111を中心に説明す
る。The calculation use data range extraction processing section 110 showing the feature of the present embodiment exists in the analysis processing section 15. In addition, the calculation evaluation processing unit 11 that uses the calculation use data range information 102 created by the calculation use data range extraction processing unit 110 to efficiently execute an inquiry including a calculation.
1 exists in the execution processing unit 16c. In and after FIG. 3, the calculation use data range extraction processing unit 110 and the calculation evaluation processing unit 111, which characterize the present embodiment, will be mainly described.
【0030】なお、本実施形態の並列多次元データベー
ス処理システム12は、図1の例に示したシステム構成
でなくても良く、本発明の要旨を逸脱しない限り他のシ
ステム構成でも発明を適用できることは勿論であり、計
算を含む問合せを解析し、解析した結果に従ってデータ
にアクセスする処理から、解析した結果に従って計算を
行う処理へ、計算に使用するデータを通信する構成であ
れば、本発明を適用することが可能である。The parallel multidimensional database processing system 12 of this embodiment does not have to have the system configuration shown in the example of FIG. 1, and the invention can be applied to other system configurations without departing from the gist of the invention. Of course, the present invention can be applied to any configuration in which data used for calculation is communicated from a process of analyzing a query including a calculation and accessing data according to the analyzed result to a process of performing calculation according to the analyzed result. It is possible to apply.
【0031】図2は本実施形態のフロントエンド処理装
置13の概略構成を示す図である。図2に示す様に本実
施形態のフロントエンド処理装置13は、ディスプレイ
201、キーボード202、中央処理装置203(CP
U)、フレキシブルディスクドライブ204、主メモリ
205、磁気ディスク装置206、通信制御装置207
を含む一般的な計算機で実現可能であり、本実施形態を
適用することのみを目的する特殊なハードウェア装置は
必要無い。FIG. 2 is a view showing the schematic arrangement of the front end processing apparatus 13 of this embodiment. As shown in FIG. 2, the front-end processing unit 13 of this embodiment includes a display 201, a keyboard 202, and a central processing unit 203 (CP).
U), flexible disk drive 204, main memory 205, magnetic disk device 206, communication control device 207
It can be realized by a general computer including, and a special hardware device only for applying the present embodiment is not necessary.
【0032】ディスプレイ201は、データベース管理
システムの実行状況等を表示する為に使用される。キー
ボード202は、データベース管理システムの実行等を
指示するコマンドを入力する為に使用される。The display 201 is used to display the execution status of the database management system. The keyboard 202 is used to input a command instructing execution of the database management system.
【0033】中央処理装置203は、本実施形態を実現
する為のプログラムを含んだ各種プログラムを実行す
る。フレキシブルディスクドライブ204は、フレキシ
ブルディスク209に対するデータの読み書きの為に使
用される。The central processing unit 203 executes various programs including a program for realizing the present embodiment. The flexible disk drive 204 is used for reading / writing data from / to the flexible disk 209.
【0034】主メモリ205は、本実施形態を実現する
為のプログラムを含む各種プログラム及びプログラム実
行等に伴う一時的なデータを保持する為に使用される。
磁気ディスク装置206は、データベース(多次元デー
タ)の格納や、データベースに対する問合せ操作中に生
じる一時的なデータの格納等に使用される。The main memory 205 is used to hold various programs including programs for implementing the present embodiment and temporary data associated with program execution and the like.
The magnetic disk device 206 is used for storing a database (multidimensional data), storing temporary data generated during an inquiry operation to the database, and the like.
【0035】通信制御装置207は、並列多次元データ
ベース処理システム12において、同様の構成を持つ他
のデータベースシステムと、リクエストやデータの交換
等を行う等の様に、ネットワーク210を介した通信に
使用される。システムバス208は、これらの各種装置
を接続する為に使用される。The communication control device 207 is used for communication via the network 210 such as exchanging requests and data with other database systems having the same configuration in the parallel multidimensional database processing system 12. To be done. The system bus 208 is used to connect these various devices.
【0036】主メモリ205中には、オペレーティング
システム211、ワークエリア212、データベースサ
ーバ処理部213等が保持される。In the main memory 205, an operating system 211, a work area 212, a database server processing unit 213, etc. are held.
【0037】オペレーティングシステム211は、周辺
装置との間のデータの入出力等、本実施形態を実現する
為のプログラムを含む各種プログラムを実行する際の基
本機能を提供する。ワークエリア212は、プログラム
の実行時に一時的に必要となるデータを記憶する為に用
いられる。The operating system 211 provides basic functions for executing various programs including a program for realizing the present embodiment, such as inputting / outputting data to / from a peripheral device. The work area 212 is used to store data that is temporarily needed when the program is executed.
【0038】データベースサーバ処理部213は、デー
タベースに対する問合せ文105を解析してコード10
6を作成したり、コード106に基づいて問合せの実行
を行ったりする処理部であり、上記機能の他にも、多次
元データの定義等を解析し、ディクショナリ情報として
ワークエリア212や磁気ディスク装置206等に登録
する機能を有している。データベースサーバ処理部21
3は、解析処理部15や、実行処理部16を有し、デー
タベース管理システム制御部214が、これらの機能を
制御する。The database server processing unit 213 analyzes the query sentence 105 for the database and executes the code 10
6 is a processing unit that creates 6 or executes an inquiry based on the code 106. In addition to the above functions, the definition of multidimensional data is analyzed and the work area 212 and the magnetic disk device are used as dictionary information. It has a function of registering in 206 or the like. Database server processing unit 21
3 has an analysis processing unit 15 and an execution processing unit 16, and the database management system control unit 214 controls these functions.
【0039】本実施形態は、多次元データの問合せの解
析や実行に関するものであり、本実施形態のこれらの処
理は、解析処理部15や実行処理部16で行われる。実
行用ワークエリアやディクショナリ情報は、ワークエリ
ア212に存在しているものとする。ディクショナリ情
報は、磁気ディスク装置206に置く形でも良く、ワー
クエリア212にキャッシュ情報として置く形でも良
い。The present embodiment relates to analysis and execution of a query of multidimensional data, and these processes of this embodiment are performed by the analysis processing unit 15 and the execution processing unit 16. It is assumed that the work area for execution and the dictionary information are present in the work area 212. The dictionary information may be placed in the magnetic disk device 206 or may be placed in the work area 212 as cache information.
【0040】図2では、解析処理部15及び実行処理部
16を明確に分け、データベース管理システム制御部2
14が制御する形で書いているが、各機能に対して共通
に実行される処理部が存在したり、各機能がデータベー
ス管理システム制御部214を介さずに混在していて
も、問合せの解析や実行を行える構成であれば構わない
ものとする。In FIG. 2, the analysis processing unit 15 and the execution processing unit 16 are clearly separated, and the database management system control unit 2
Although it is written under the control of 14, the query analysis is performed even if there is a processing unit commonly executed for each function or if the respective functions are mixed without going through the database management system control unit 214. It does not matter as long as it can execute or execute.
【0041】本実施形態を実現する為のプログラムは、
フレキシブルディスク209や、ネットワーク210を
介して、主メモリ205中に設定される。なお本実施形
態では、外部とのプログラムやデータのやりとりに、フ
レキシブルディスクドライブ204を使用する構成にし
ているが、光磁気ディスクや追記型光ディスク等、他種
の可搬型媒体を使用する構成をとることもできる。A program for realizing this embodiment is
It is set in the main memory 205 via the flexible disk 209 or the network 210. In the present embodiment, the flexible disk drive 204 is used for exchanging programs and data with the outside. However, another type of portable medium such as a magneto-optical disk or a write-once optical disk is used. You can also
【0042】以下に、本実施形態の多次元データベース
処理システムにおける概要を簡単な概要図を利用して説
明する。The outline of the multidimensional database processing system of this embodiment will be described below with reference to a simple schematic diagram.
【0043】図16は本実施形態の問合せするメンバの
組合せに計算メンバが含まれている場合のクライアント
APからの問合せ内容の一例を示す図である。一般的にメ
ンバに計算式を用いた問合せでは、その計算式と関連す
る交点(各次元からのメンバの組合せ)により適用するメ
ンバや計算式が異なる為、異なった計算結果が得られ
る。その為、計算式は、関連する交点毎に必要なデータ
を取得し、独立に評価を行う。FIG. 16 shows a client in the case where a calculated member is included in the combination of inquired members of this embodiment.
It is a figure which shows an example of the inquiry content from AP. Generally, in a query using a calculation formula for a member, different calculation results are obtained because the applied member and the calculation formula are different depending on the intersection (combination of members from each dimension) related to the calculation formula. Therefore, the calculation formula acquires necessary data for each relevant intersection and evaluates them independently.
【0044】従来技術では、図16の様な各次元からの
複数のメンバに対する問合せにおいて、各計算メンバを
含む交点(各次元からのメンバの組合せ)毎に、必要なデ
ータをそのデータが格納されているバックエンド処理装
置14から、計算を行うフロントエンド処理装置13に
転送する為、バックエンド処理装置14とフロントエン
ド処理装置13との間の通信が性能ネックになる可能性
がある。In the prior art, in an inquiry for a plurality of members from each dimension as shown in FIG. 16, necessary data is stored for each intersection (combination of members from each dimension) including each calculated member. Since the data is transferred from the back-end processing device 14 to the front-end processing device 13 that performs calculation, the communication between the back-end processing device 14 and the front-end processing device 13 may become a performance bottleneck.
【0045】本実施形態では、これを解決する為に、計
算に使用するデータを解析処理部15で求めておき、実
行処理部16においてバックエンド処理装置14から1
回の通信でまとめて取得する様にすることを考える(通
信バッファの大きさと計算に使用するデータの量により
1回で済まないことも有り得るが、その場合でもまとめ
て取得することにより通信回数の大幅な削減を見込むこ
とができる)。In the present embodiment, in order to solve this, the analysis processing unit 15 obtains data to be used for calculation, and the execution processing unit 16 causes the back-end processing unit 14 to
Consider collecting data in a batch of communication. (It may not be necessary to complete once depending on the size of the communication buffer and the amount of data used for calculation. Can be expected to reduce).
【0046】しかし、1つ1つの交点(各次元からのメ
ンバの組合せ)に対し、計算に必要なデータに対応する
メンバの組を独立に求め、マージするのでは、非効率的
であるし、マージを除く部分は、実行時に行う処理とも
重複することになる為、計算に使用するデータの範囲を
効率的に求める為に以下のことを行う。However, it is inefficient to independently obtain and merge a set of members corresponding to the data required for calculation for each intersection (combination of members from each dimension). The parts other than merge will overlap with the processing performed at the time of execution, so the following is done to efficiently find the range of data used for calculation.
【0047】・同じ計算式を適用する範囲のグループ化
・グループ化した範囲毎に、計算式で使用するデータを
識別するメンバの組を抽出
これは、計算式中における多次元データを使用する要素
が、次の(1)〜(3)の様なものであれば、問合せ範囲(各
グループ化した範囲)のメンバの組に対して、使用する
データを識別するメンバの組をまとめて求めることが可
能な為である。但し、計算式の中に条件式が含まれてい
ないことを仮定する。条件式が含まれている場合、使用
するデータをまとめて正確に求めるのは困難になる。Grouping of ranges to which the same formula is applied.-For each grouped range, a set of members for identifying data used in the formula is extracted. This is an element that uses multidimensional data in the formula. If any of the following (1) to (3), the set of members that identify the data to be used should be obtained collectively for the set of members of the query range (range grouped). Because it is possible. However, it is assumed that the calculation formula does not include a conditional formula. If conditional expressions are included, it will be difficult to collect data to be used collectively and accurately.
【0048】(1)任意の次元からのメンバの組で識別さ
れる要素
(2)任意の次元からの、0個以上のメンバ値式を適用し
たカレントメンバ
(3)指定した範囲のデータに対して演算を行うタイプの
数値関数
これ以外にも使用するデータをまとめて求めることがで
きる要素であれば、本実施形態に問題なく適用すること
ができる。(1) Element identified by a set of members from any dimension (2) Current member from any dimension to which 0 or more member value expressions are applied (3) For data in the specified range Numerical function of a type that performs calculations other than this, as long as it is an element that can collectively obtain data to be used, it can be applied to the present embodiment without problems.
【0049】本実施形態において、問合せ範囲(以下QR
とする)、及び、計算式中の要素で使用するデータの範
囲(以下UAとする)は、各次元からのメンバの範囲の組な
ので、以下の様に表すものとする。なお本実施形態で
は、簡単化の為、次元毎に独立してメンバの範囲を指定
する場合のみ考えることとする。In this embodiment, the inquiry range (hereinafter referred to as QR
, And the range of data used in the elements in the calculation formula (hereinafter referred to as UA) is a set of the range of the members from each dimension, and thus is expressed as follows. In the present embodiment, for simplification, only when the range of members is designated independently for each dimension will be considered.
【0050】[0050]
【数1】QR := <p, (D1, D2, …, Dp), (QMR1, QMR2,
…, QMRp)>
UA := <p, (D1, D2, …, Dp), (UMR1, UMR2, …, UMR
p)>
ここで、pは次元数、Diは次元ID(次元を一意に識別で
きる情報であれば良い)、QMRi及びUMRiは、次元Diから
のメンバの範囲を示すものとする。メンバの範囲は、メ
ンバID(メンバを一意に識別できる情報であれば良い)
の集合等により表すことができる。[Equation 1] QR: = <p, (D1, D2,…, Dp), (QMR1, QMR2,
…, QMRp)> UA: = <p, (D1, D2,…, Dp), (UMR1, UMR2,…, UMR
p)> where p is the number of dimensions, Di is the dimension ID (as long as the information can uniquely identify the dimension), and QMRi and UMRi indicate the range of members from the dimension Di. The member range is the member ID (as long as the information can uniquely identify the member)
Can be represented by a set or the like.
【0051】なお、次元毎に独立してメンバの範囲を指
定しない場合、使用するデータの範囲を求める処理は、
下記に記すものより多少複雑になるが、使用するメンバ
を抽出することは可能であり、本実施形態を適用するこ
とは可能である。If the range of members is not specified independently for each dimension, the process of obtaining the range of data to be used is
Although it is a little more complicated than that described below, it is possible to extract the members to be used and it is possible to apply this embodiment.
【0052】本実施形態では、問合せ範囲QRの計算式中
の要素(以下CEとする)が、前述の(1)〜(3)の場合、その
要素で使用するデータの範囲は、それぞれ以下の様に求
める。In the present embodiment, when the element (hereinafter, CE) in the calculation formula of the inquiry range QR is the above-mentioned (1) to (3), the range of data used by the element is as follows. Ask.
【0053】(1)任意の次元からのメンバの組で識別さ
れる要素の場合
この場合、計算式中の要素CEを以下の様に表すものとす
る。ここで、kは計算式中の次元数(k≦p)、Dmjはj個目
のメンバの次元ID(1≦j≦k)、Mmjはj個目のメンバのID
(1≦j≦k)である。(1) In the case of an element identified by a set of members from an arbitrary dimension In this case, the element CE in the calculation formula is expressed as follows. Where k is the number of dimensions in the formula (k ≦ p), Dmj is the dimension ID of the jth member (1 ≦ j ≦ k), and Mmj is the ID of the jth member.
(1 ≦ j ≦ k).
【0054】[0054]
【数2】
CE := <k, (Dm1, Dm2, …, Dmk), (Mm1,Mm2, …, Mmk)>
この計算式中の要素CEで使用するデータ範囲UA中の各メ
ンバの範囲UMRiは、次の様に求められる。[Equation 2] CE: = <k, (Dm1, Dm2,…, Dmk), (Mm1, Mm2,…, Mmk)> Range UMRi of each member in the data range UA used by element CE in this formula Is calculated as follows.
【0055】すなわち、問合せ範囲QR中の次元Di(1≦i
≦p)の各次元と、計算式中の要素CEの次元Dmj(1≦j≦k)
とを比較し、問合せ範囲QR中の次元Diと一致する次元が
計算式中の要素CEの次元Dm1〜Dmkの中に存在している場
合には、その一致している次元DmjのメンバMmjを、デー
タ範囲UAの次元DiのメンバUMRiに設定し、問合せ範囲QR
中の次元Diと一致する次元が計算式中の要素CEの次元Dm
1〜Dmkの中に存在していない場合には、問合せ範囲QR中
の次元DiのメンバQMRiを、データ範囲UAの次元Diのメン
バUMRiに設定する。That is, the dimension Di (1 ≦ i in the inquiry range QR
≤p) and the dimension CE of the element CE in the formula Dmj (1 ≤ j ≤ k)
If a dimension matching the dimension Di in the query range QR exists in the dimensions Dm1 to Dmk of the element CE in the calculation formula, the member Mmj of the matching dimension Dmj is compared with , Set to member UMRi of dimension Di of data range UA, and query range QR
The dimension Dm of the element CE in the formula is the dimension that matches the dimension Di in
If it does not exist in 1 to Dmk, the member QMRi of the dimension Di in the query range QR is set to the member UMRi of the dimension Di in the data range UA.
【0056】(2)任意の次元からの、0個以上のメンバ
値式を適用したカレントメンバを含む場合
この場合、計算式中の要素CEを以下の様に表すものとす
る。ここで、kは次元数(k≦p)、Dmjはj個目のメンバの
次元ID(1≦j≦k)、Mmjはj個目のメンバのID(1≦j≦k)、
VELmjはj個目のメンバに適用するメンバ値式のリスト(1
≦j≦k)である。但しカレントメンバの場合ではメンバ
を指定しないのでメンバのIDはNULLであるものとする。(2) Including a current member to which zero or more member value expressions are applied from any dimension In this case, the element CE in the calculation expression is expressed as follows. Here, k is the number of dimensions (k ≦ p), Dmj is the dimension ID of the j-th member (1 ≦ j ≦ k), Mmj is the ID of the j-th member (1 ≦ j ≦ k),
VELmj is a list of member value expressions applied to the jth member (1
≦ j ≦ k). However, in the case of the current member, the member ID is NULL because no member is specified.
【0057】[0057]
【数3】CE := <k, (Dm1, Dm2, …, Dmk), (Mm1,Mm2,
…, Mmk),(VELm1, VELm2, …,VELmk)>
この計算式中の要素CEで使用するデータ範囲UA中の各メ
ンバの範囲UMRiは、次の様に求められる。[Equation 3] CE: = <k, (Dm1, Dm2,…, Dmk), (Mm1, Mm2,
…, Mmk), (VELm1, VELm2,…, VELmk)> The range UMRi of each member in the data range UA used in the element CE in this calculation formula is calculated as follows.
【0058】すなわち、問合せ範囲QR中の次元Di(1≦i
≦p)の各次元と、計算式中の要素CEの次元Dmj(1≦j≦k)
とを比較し、問合せ範囲QR中の次元Diと一致する次元が
計算式中の要素CEの次元Dm1〜Dmkの中に存在しており、
その一致している次元DmjのメンバMmjがNULL(カレント
メンバ)でない場合には、そのメンバMmjをデータ範囲U
Aの次元DiのメンバUMRiに設定し、前記一致している次
元DmjのメンバMmjがNULL(カレントメンバ)である場合
には、問合せ範囲QR中の次元DiのメンバQMRiにメンバ値
式VELmjを適用したものを、データ範囲UAの次元Diのメ
ンバUMRiに設定する。That is, the dimension Di (1 ≦ i in the inquiry range QR
≤p) and the dimension CE of the element CE in the formula Dmj (1 ≤ j ≤ k)
And a dimension matching the dimension Di in the query range QR exists in the dimensions Dm1 to Dmk of the element CE in the calculation formula,
If the member Mmj of the matching dimension Dmj is not NULL (current member), set the member Mmj to the data range U.
Set to member UMRi of dimension Di of A, and if member Mmj of matching dimension Dmj is NULL (current member), apply member value expression VELmj to member QMRi of dimension Di in query range QR This is set in the member UMRi of the dimension Di of the data range UA.
【0059】また、問合せ範囲QR中の次元Diと一致する
次元が計算式中の要素CEの次元Dm1〜Dmkの中に存在して
いない場合には、問合せ範囲QR中の次元DiのメンバQMRi
を、データ範囲UAの次元DiのメンバUMRiに設定する。If a dimension matching the dimension Di in the query range QR does not exist in the dimensions Dm1 to Dmk of the element CE in the calculation formula, the member QMRi of the dimension Di in the query range QR.
Is set to member UMRi of dimension Di of data range UA.
【0060】(3)指定した範囲のデータに対して演算を
行うタイプの数値関数の場合
数値関数で使用するデータを識別するメンバの組を以下
の様に表す。簡単化の為、次元毎に独立してメンバの範
囲を指定する場合のみ考えることとする。また、簡単化
の為、数値関数に指定したメンバ範囲にカレントメンバ
は含まないものとする。(3) In case of a numerical function of a type that operates on data in a specified range A set of members for identifying data used in the numerical function is expressed as follows. For simplification, we will consider only when the range of members is specified independently for each dimension. For simplification, the current member is not included in the member range specified in the numerical function.
【0061】この場合、計算式中の要素CEを以下の様に
表すものとする。ここで、kは数値関数に指定したメン
バ範囲の次元数(k≦p)、Dmjは数値関数に指定したj個目
のメンバ範囲の次元ID(1≦j≦k)、NMRmjは数値関数に指
定したj個目のメンバ範囲(1≦j≦k)である。In this case, the element CE in the calculation formula is expressed as follows. Where k is the number of dimensions of the member range specified in the numerical function (k ≤ p), Dmj is the dimension ID of the jth member range specified in the numerical function (1 ≤ j ≤ k), and NMRmj is the numerical function It is the specified j-th member range (1 ≤ j ≤ k).
【0062】[0062]
【数4】CE := <k, (Dm1, Dm2, …, Dmk), (NMRm1,NMRm
2, …, NMRmk)>
この計算式中の要素CEで使用するデータ範囲UA中の各メ
ンバの範囲UMRiは、次の様に求められる。[Equation 4] CE: = <k, (Dm1, Dm2,…, Dmk), (NMRm1, NMRm
2, ..., NMRmk)> The range UMRi of each member in the data range UA used by the element CE in this calculation formula is calculated as follows.
【0063】すなわち、問合せ範囲QR中の次元Di(1≦i
≦p)の各次元と、計算式中の要素CEの次元Dmj(1≦j≦k)
とを比較し、問合せ範囲QR中の次元Diと一致する次元が
計算式中の要素CEの次元Dm1〜Dmkの中に存在している場
合には、その一致している次元Dmjのメンバ範囲NMRmj
を、データ範囲UAの次元DiのメンバUMRiに設定し、問合
せ範囲QR中の次元Diと一致する次元が計算式中の要素CE
の次元Dm1〜Dmkの中に存在していない場合には、問合せ
範囲QR中の次元DiのメンバQMRiを、データ範囲UAの次元
DiのメンバUMRiに設定する。That is, the dimension Di (1 ≦ i in the inquiry range QR
≤p) and the dimension CE of the element CE in the formula Dmj (1 ≤ j ≤ k)
, And if a dimension matching the dimension Di in the query range QR exists in the dimensions Dm1 to Dmk of the element CE in the calculation formula, the member range NMRmj of the matching dimension Dmj.
To the member UMRi of the dimension Di of the data range UA, and the dimension matching the dimension Di in the query range QR is the element CE in the calculation formula.
If it does not exist in the dimensions Dm1 to Dmk of, the member QMRi of the dimension Di in the query range QR is set to the dimension of the data range UA.
Set to member UMRi of Di.
【0064】ここで、次元毎に独立してメンバの範囲を
指定しない場合、または、数値関数に指定したメンバ範
囲にカレントメンバを含む場合でも、処理は上述のもの
より多少複雑になるが、使用するメンバを抽出すること
は可能であり、本実施形態を適用することは可能であ
る。Even if the member range is not specified independently for each dimension or the current member is included in the member range specified in the numerical function, the processing becomes slightly more complicated than that described above. It is possible to extract the members to be applied, and it is possible to apply this embodiment.
【0065】また、前述の条件式が含まれる場合の様
に、使用するデータをまとめて正確に求めるのが困難な
場合がある。この場合、バックエンド処理装置14から
交点毎に使用するデータを取得する等、従来の方法を、
本実施形態と併用して用いれば良い。Further, as in the case where the above-mentioned conditional expression is included, it may be difficult to collectively and accurately obtain the data to be used. In this case, a conventional method such as acquiring data to be used for each intersection from the back-end processing device 14 is
It may be used in combination with this embodiment.
【0066】図16では、同じ計算式が適用される範囲
のグループを判り易く視覚的に表しており、グループに
なる範囲が判る様に同じグループの交点に同じ英文字を
入れている。勿論、クライアントAPが実際に表示するの
は、一般的に、交点のメンバの組に対応するデータ(計
算値を含む)である。In FIG. 16, the groups of the range to which the same calculation formula is applied are shown visually so as to be easy to understand, and the same English characters are put at the intersections of the same groups so that the range to be a group can be understood. Of course, what the client AP actually displays is generally data (including calculated values) corresponding to the set of members at the intersection.
【0067】例えば、Cが入れてある交点は、メジャ次
元に計算メンバである売上数移動平均計算、他の次元は
計算式と関連しないデータベースに格納されているメン
バ(以下、基本メンバと呼ぶことにする)であるグルー
プにあたり、結果として、売上数移動平均計算の計算式
を適用するグループである。For example, the intersection point in which C is entered is the moving average calculation of the number of sales which is a calculation member in the major dimension, and the other dimensions are members stored in the database not related to the calculation formula (hereinafter referred to as basic member). As a result, it is a group to which the formula for calculating the sales number moving average is applied.
【0068】また、Eが入れてある交点は、メジャ次元
に計算メンバである売上数移動平均計算、地域次元に計
算メンバである四国合計、他の次元は基本メンバである
グループにあたり、結果として、売上数移動平均計算の
計算式と、四国合計の計算式を適用するグループであ
る。Further, the intersection point with E is the moving average calculation of the number of sales which is the calculation member in the major dimension, the total of Shikoku which is the calculation member in the area dimension, and the other dimension is the group which is the basic member. This is a group to which the formula for calculating the moving average of sales and the formula for calculating Shikoku total are applied.
【0069】このグループ化を行う際に、売上数移動平
均計算の計算式と、四国合計の計算式のどちらを先に適
用するかを決める方法は任意の方法であって良い。売上
数移動平均計算の計算式の方が、四国合計の計算式より
優先度が高く、売上数移動平均計算の計算式が使用され
ると仮定すると、Cと同じ計算式を適用することにな
り、更にCとEを同じグループにすることも考えられそう
であるが、一般に、Eの場合、売上数移動平均計算の計
算式に使用するデータを識別するメンバの組を抽出した
結果に、四国合計の計算メンバが含まれることになる。
その場合、再帰的な処理等により、四国合計の計算式で
使用するデータを識別するメンバの組を抽出することに
なる。結果として、CとEでは、使用するデータを識別す
るメンバの組を求める過程が異なることになり、1つの
手順でまとめて求めることはできないことになる。When performing this grouping, any method may be used as a method of determining which of the calculation formula of the sales number moving average calculation formula and the calculation formula of the Shikoku total is applied first. Assuming the formula for moving average sales calculation has a higher priority than the formula for total Shikoku, and the formula for moving average sales calculation is used, the same formula as in C is applied. , And C and E may be considered to be in the same group, but in general, in the case of E, the result of extracting the set of members identifying the data used in the formula for calculating the moving average of sales is Shikoku. It will include the total calculated members.
In that case, a set of members that identify the data used in the Shikoku total calculation formula is extracted by recursive processing or the like. As a result, C and E differ in the process of obtaining the set of members that identify the data to be used, and it is not possible to obtain them collectively by one procedure.
【0070】一般に、交点に関連する計算メンバの数と
種類により、使用するデータを識別するメンバの組を求
める過程が異なることになり、A〜G及び空白の8グルー
プに分かれることになる。手順としては、まず、各次元
毎に射影するメンバを基本メンバ群と各計算メンバに分
け、問合せの全ての次元に対する各組合せにより、グル
ープを作る。Generally, the process of obtaining the set of members for identifying the data to be used differs depending on the number and type of calculation members related to the intersection, and the process is divided into 8 groups of A to G and blanks. As a procedure, first, the members projected for each dimension are divided into a basic member group and each calculation member, and a group is formed by each combination for all dimensions of the query.
【0071】グループの数は次の計算式で計算すること
ができる。ここで、NCMiは次元Diから射影する計算メン
バの数(1≦i≦全次元数)である。The number of groups can be calculated by the following formula. Here, NCMi is the number of calculation members projected from the dimension Di (1 ≦ i ≦ the total number of dimensions).
【0072】[0072]
【数5】π(NCMi+1)
図16の例の場合、各次元射影する計算メンバは1つず
つで3次元あるので、以下の様になる[Equation 5] π (NCMi + 1) In the case of the example in FIG. 16, since there is one calculation member for each dimension projection and there are three dimensions, the following is obtained.
【0073】[0073]
【数6】(1+1)*(1+1)*(1+1) = 8
図17は本実施形態の実行時のグループ毎にまとめたデ
ータの取得例を示す図である。図17では、図16で示
した例を基に、実行時のグループ毎にまとめたデータの
取得を判り易く視覚的に表している。図16と同じく、
実際にクライアントAP上でこの様な表示が行われるわけ
では無い。実際は、各交点のメンバの組で識別されるデ
ータを取得する処理がデータベースシステムの方で行わ
れる。## EQU00006 ## (1 + 1) * (1 + 1) * (1 + 1) = 8 FIG. 17 is a diagram showing an example of acquisition of data collected for each group at the time of execution of this embodiment. In FIG. 17, based on the example shown in FIG. 16, acquisition of data collected for each group at the time of execution is visually represented in an easy-to-understand manner. As in Figure 16,
This kind of display is not actually displayed on the client AP. In reality, the database system performs the process of acquiring the data identified by the set of members at each intersection.
【0074】実行時、任意の順序で、各交点のメンバの
組で識別されるデータを取得または計算していく。図1
7の場合矢印の順でデータを取得または計算していき、
矢印の先頭の交点(1996年, 東京, 売上数移動平均)ま
で進んだところと仮定する。At the time of execution, the data identified by the set of members at each intersection is acquired or calculated in an arbitrary order. Figure 1
In the case of 7, data is acquired or calculated in the order of arrows,
Assume that you have reached the intersection at the beginning of the arrow (1996, Tokyo, moving average of sales).
【0075】最初に、交点に対するグループを選択す
る。図17の例の場合Cで示されるグループである。First, the group for the intersection is selected. This is a group indicated by C in the case of the example in FIG.
【0076】グループCで最初の交点の評価である為、
2つの点線の楕円の領域で囲んだCの範囲で使用するデ
ータを、バックエンド処理装置14から、1回の通信で
まとめて取得する。(通信バッファの大きさと計算に使
用するデータの量により1回で済まないことも有り得る
が、その場合でも通信回数の大幅な削減を見込むことが
できる)。但し、図16の説明で述べた様に、条件式等
と関連して、使用するデータをまとめて取得できない場
合は、交点毎に取得する。そうで無ければ、取得した結
果はバッファ等にとっておく。Since it is the evaluation of the first intersection in group C,
The data used in the range C enclosed by the two dotted ellipses is collectively acquired from the back-end processing device 14 in one communication. (There may be cases where it is not necessary to do it only once depending on the size of the communication buffer and the amount of data used for calculation, but even in that case, a drastic reduction in the number of times of communication can be expected). However, as described in the description of FIG. 16, when the data to be used cannot be collectively acquired in association with the conditional expression and the like, the data is acquired at each intersection. If not, the obtained result is stored in a buffer or the like.
【0077】以下、他の11個のCの交点の評価時に
は、使用するデータを、バックエンド処理装置14から
では無く、バッファから取り出すことができる。結果と
して、Cのグループに対して、従来、最低12回通信が
必要なところが、1回で済むことになる。全体に対して
は、交点42箇所で、最低42回通信が必要なところ
が、グループ数8回の通信で済むことになり、通信回数
を削減する目的を達成することができる。In the following, at the time of evaluating the other 11 intersections of C, the data to be used can be taken out from the buffer, not from the backend processing unit 14. As a result, in the conventional case, at least 12 times communication is required for the group C, but only once. With respect to the whole, where there are 42 intersections and communication is required at least 42 times, the communication with the number of groups of 8 is sufficient, and the purpose of reducing the number of communication can be achieved.
【0078】図17の例の場合、グループ毎に使用する
データを取得しているが、解析時に、複数のグループの
使用データを識別するメンバの組をマージして、実行時
にまとめて取得しても良い。また、グループに適用する
計算式のデータを使用する要素毎に分けた範囲内でまと
めて取得しても良い。これは実行時に準備できるバッフ
ァの大きさ等に関連して決めるのが良い。In the case of the example in FIG. 17, the data used for each group is acquired, but at the time of analysis, the set of members for identifying the used data of a plurality of groups are merged and acquired collectively at the time of execution. Is also good. Further, the data of the calculation formula applied to the group may be collectively acquired within the range divided for each element to be used. This should be decided in relation to the size of the buffer that can be prepared at the time of execution.
【0079】また各グループの計算式間に依存関係があ
る場合にはその依存関係に従った順番で各グループのデ
ータを取得するものとしても良い。例えば売上数移動平
均を算出する前に、1995年以前平均や四国合計の計算を
行っておく必要がある場合には、該当するグループのデ
ータを先に取得するものとしても良い。When there is a dependency relationship between the calculation expressions of each group, the data of each group may be acquired in the order according to the dependency relationship. For example, if it is necessary to calculate the average before 1995 and the Shikoku total before calculating the moving average of sales, the data of the corresponding group may be acquired first.
【0080】以上、本実施形態の概要を示したので、次
に、本実施形態を特徴付ける計算使用データ範囲抽出処
理部110と、計算評価処理部111を中心に説明す
る。The outline of the present embodiment has been described above. Next, the calculation use data range extraction processing unit 110 and the calculation evaluation processing unit 111 which characterize the present embodiment will be mainly described.
【0081】図3は本実施形態の計算使用データ範囲抽
出処理部110の処理内容を示す図である。図3に示す
様に計算使用データ範囲抽出処理部110は、問合せ範
囲のメンバの組の情報である問合せ範囲情報101を入
力とし、計算に使用するデータを識別するメンバの組の
情報である計算使用データ範囲情報102を出力とす
る。FIG. 3 is a diagram showing the processing contents of the calculation and use data range extraction processing unit 110 of this embodiment. As shown in FIG. 3, the calculation use data range extraction processing unit 110 receives the inquiry range information 101, which is the information of the set of members of the inquiry range, and calculates the set of information that identifies the data used for the calculation. The used data range information 102 is output.
【0082】本実施形態の計算使用データ範囲抽出処理
部110は、計算適用グループ化処理301、グループ
別範囲変換処理302、グループ別計算使用データ範囲
抽出処理303を含んでいる。The calculation use data range extraction processing unit 110 of this embodiment includes a calculation application grouping process 301, a group range conversion process 302, and a group calculation use data range extraction process 303.
【0083】計算適用グループ化処理301は、図16
に関連した概要で示した、同じ計算式を適用する範囲の
グループ化に対応する処理であり、グループ別範囲変換
処理302は、図16に関連した概要で示した、グルー
プ化した範囲毎に、計算式で使用するデータを識別する
メンバの組を抽出に対応する処理である。The calculation application grouping processing 301 is shown in FIG.
16 is a process corresponding to the grouping of the ranges to which the same calculation formula is applied, which is shown in the outline related to, and the range conversion process 302 for each group is performed for each grouped range shown in the outline related to FIG. This is a process corresponding to extraction of a set of members that identify data used in a calculation formula.
【0084】また、グループ別計算使用データ範囲抽出
処理303は、前記処理により、1つの計算式に対して
抽出した使用するデータを識別するメンバの組に、計算
メンバが含まれる場合、再帰的に計算使用データ範囲抽
出処理部110を適用して、使用するデータを識別する
メンバの組を求める処理である。再帰による処理で無
く、繰返しによる処理で実現しても良い。Further, the group-based calculation use data range extraction process 303 recursively recursively when a calculation member is included in the set of members identifying the data to be used extracted for one calculation formula by the above process. This is a process of applying the calculation use data range extraction processing unit 110 to obtain a set of members for identifying the data to be used. It may be realized not by recursion processing but by iterative processing.
【0085】図4は本実施形態の計算評価処理部111
の処理内容を示す図である。図4に示す様に計算評価処
理部111は、問合せの各交点のメンバの組の情報であ
るデータメンバ情報103と、計算に使用するデータを
識別するメンバの組の情報である計算使用データ範囲情
報102を入力とし、問合せの各交点の値である計算値
104を出力とする。FIG. 4 shows the calculation evaluation processing section 111 of this embodiment.
It is a figure which shows the processing content of. As shown in FIG. 4, the calculation evaluation processing unit 111 includes a data member information 103 that is information of a set of members at each intersection of a query and a calculation use data range that is information of a set of members that identifies data used for calculation. The information 102 is input, and the calculated value 104, which is the value at each intersection of the inquiry, is output.
【0086】本実施形態の計算評価処理部111は、計
算適用グループ範囲情報選択処理401、計算使用デー
タ取得処理402、計算式評価処理403を含んでい
る。The calculation evaluation processing unit 111 of this embodiment includes a calculation applicable group range information selection process 401, a calculation use data acquisition process 402, and a calculation formula evaluation process 403.
【0087】計算適用グループ範囲情報選択処理401
は、図17に関連した概要で示した、評価する交点(メ
ンバの組)に対するグループの選択に対応する処理であ
り、計算使用データ取得処理402は、図17に関連し
た概要で示した、グループ化した範囲に対して、計算で
使用するデータのまとめた取得に対応する処理である。
また計算式評価処理403は、前記処理により取得した
計算に使用するデータを用いて計算を行い、交点に対す
る計算値104を求める処理である。Calculation applicable group range information selection processing 401
Is a process corresponding to the selection of a group for an intersection (a set of members) to be evaluated shown in the outline related to FIG. 17, and a calculation use data acquisition process 402 is a group shown in the outline related to FIG. This is a process corresponding to the collective acquisition of the data used in the calculation for the converted range.
The calculation formula evaluation process 403 is a process of performing a calculation using the data used for the calculation acquired by the above process to obtain the calculated value 104 for the intersection.
【0088】図5は本実施形態の問合せ範囲情報101
の例を示す図である。図5に示す様に問合せ範囲情報1
01は、問合せ範囲のメンバの組の情報であり、各次元
毎の問合せするメンバの範囲で表される。簡単化の為、
次元毎に独立してメンバの範囲を指定する場合のみ考え
ることとする。FIG. 5 shows the inquiry range information 101 of this embodiment.
It is a figure which shows the example of. Inquiry range information 1 as shown in FIG.
01 is the information of the set of members of the inquiry range, and is represented by the range of the inquired member for each dimension. For simplicity,
Consider only when the range of members is specified independently for each dimension.
【0089】本実施形態の問合せ範囲情報101では、
範囲情報を次元別範囲情報501に分けており、次元毎
にメンバの範囲を示すメンバIDリスト502を持ってい
る。なお、この形式で無くても、各次元毎の問合せする
メンバの範囲を取得できる情報であれば問題無く本発明
を適用することができる。In the inquiry range information 101 of this embodiment,
The range information is divided into dimension-based range information 501, and has a member ID list 502 indicating the range of members for each dimension. Even if the information is not in this format, the present invention can be applied without any problem as long as the information can acquire the range of the member to be inquired for each dimension.
【0090】図6は本実施形態の計算使用データ範囲情
報102の例を示す図である。図6に示す様に計算使用
データ範囲情報102は、計算に使用するデータを識別
するメンバの組の情報である。FIG. 6 is a diagram showing an example of the calculation use data range information 102 of this embodiment. As shown in FIG. 6, the calculation use data range information 102 is information of a set of members for identifying data used for calculation.
【0091】本実施形態の計算使用データ範囲情報10
2では、範囲情報を計算適用グループ化処理301にお
いて形成したグループ毎の計算適用グループ別範囲情報
601に分けており、グループ別範囲変換処理302及
びグループ別計算使用データ範囲抽出処理303で、計
算に使用するデータを識別するメンバの組に対応した使
用データ範囲情報604が作成されている。Calculation use data range information 10 of this embodiment
In FIG. 2, the range information is divided into the calculation-applied group-specific range information 601 for each group formed in the calculation-applied grouping process 301, and the group-specific range conversion process 302 and the group-specific calculation use data range extraction process 303 perform calculation. Use data range information 604 corresponding to a set of members for identifying data to be used is created.
【0092】グループ範囲情報602は、問合せ範囲情
報101を計算適用グループに分けた結果の各次元から
のメンバの範囲の組を示す情報であり、問合せ範囲情報
101と同じ形式で表すことができる。グループID60
3は、実行時に、データメンバ情報103による交点の
メンバの組に対応するグループを選択する為の情報であ
り、解析時、計算使用データ範囲抽出処理部110の中
で設定される。The group range information 602 is information indicating a set of member ranges from each dimension as a result of dividing the inquiry range information 101 into calculation applicable groups, and can be expressed in the same format as the inquiry range information 101. Group ID 60
3 is information for selecting a group corresponding to the set of members at the intersection according to the data member information 103 at the time of execution, and is set in the calculation use data range extraction processing unit 110 at the time of analysis.
【0093】なお、この形式で無くても、計算に使用す
るデータを識別するメンバの組をまとめて実行時の計算
評価処理部111に渡すことができる情報であれば良
い。図6の例の場合、グループ毎にグループ範囲情報6
02を分けているが、複数のグループの範囲をマージし
て実行時にまとめて取得できる様にしても良い。It is to be noted that, even if it is not in this format, any information can be used as long as it can collectively pass a set of members for identifying data used for calculation to the calculation evaluation processing unit 111 at the time of execution. In the case of the example in FIG. 6, group range information 6 for each group
Although 02 is divided, the ranges of a plurality of groups may be merged so that the ranges can be collectively acquired at the time of execution.
【0094】図7は本実施形態のグループID603の例
を示す図である。図7に示す様にグループID603は、
実行時に、データメンバ情報103による交点のメンバ
の組に対応する計算適用グループ別範囲情報601を選
択する為の情報である。FIG. 7 is a diagram showing an example of the group ID 603 of this embodiment. As shown in FIG. 7, the group ID 603 is
This is information for selecting the calculation application group range information 601 corresponding to the set of members at the intersection according to the data member information 103 at the time of execution.
【0095】図16に関連した概要で述べた様に、計算
適用グループ別範囲情報601は、各次元毎に射影する
メンバを基本メンバ群と各計算メンバに分け、全ての次
元で組合せることで作られる。その為、各次元の計算メ
ンバのIDの組で計算適用グループ別範囲情報601を識
別することができる。但し、基本メンバ群により識別さ
れる次元に対しては、NULL等、計算メンバIDには使用さ
れない値で識別を行うものとする。As described in the outline relating to FIG. 16, the range information 601 by calculation application group is obtained by dividing the members projected for each dimension into a basic member group and each calculation member and combining them in all dimensions. Made Therefore, the range information 601 for each calculation applicable group can be identified by the set of IDs of the calculation members of each dimension. However, the dimension identified by the basic member group is identified by a value not used for the calculated member ID such as NULL.
【0096】グループID603は、グループ範囲情報6
02から抽出することができ、また、グループ範囲情報
602で代用することもできる。なお、データメンバ情
報103による交点のメンバの組と比較して、計算適用
グループ別範囲情報601を一意に決定することができ
るものであればそれをグループID603として用いても
良い。The group ID 603 is the group range information 6
02, and the group range information 602 can be used as a substitute. If the calculation applicable group-specific range information 601 can be uniquely determined by comparing it with the set of intersection members according to the data member information 103, it may be used as the group ID 603.
【0097】図8は本実施形態の使用データ範囲情報6
04の例を示す図である。図8に示す様に使用データ範
囲情報604では、計算適用グループ別範囲情報601
に対して適用する計算式の中で、多次元のデータを使用
する要素毎に、使用するデータを識別するメンバの組の
使用データ範囲情報801が作成されている。FIG. 8 shows the used data range information 6 of this embodiment.
It is a figure which shows the example of 04. As shown in FIG. 8, in the used data range information 604, the calculation application group range information 601 is included.
In the calculation formula applied to, the use data range information 801 of the set of members for identifying the data to be used is created for each element using the multidimensional data.
【0098】使用データ範囲情報801の要素範囲情報
は、グループ別範囲変換処理302で、グループ別のグ
ループ範囲情報602から変換することで作成される。
この要素範囲情報は、各次元毎のメンバの範囲であり、
問合せ範囲情報101と同じ形式で表すことができる。The element range information of the used data range information 801 is created by converting the group range information 602 for each group in the group range conversion process 302.
This element range information is the range of members for each dimension,
It can be expressed in the same format as the inquiry range information 101.
【0099】計算メンバを複数含むグループの場合、要
素範囲情報にまだ計算メンバが残っている可能性が大き
いが、その場合には、グループ別計算使用データ範囲抽
出処理303で、要素範囲情報を問合せ範囲として再帰
的処理または繰り返し処理で計算使用データ範囲抽出処
理部110を適用し、計算使用データ範囲情報802を
作成する。In the case of a group including a plurality of calculated members, there is a high possibility that there are still calculated members in the element range information. In such a case, the element range information is queried in the group-specific calculation use data range extraction processing 303. The calculation use data range extraction processing unit 110 is applied as a range by recursive processing or repetitive processing to create calculation use data range information 802.
【0100】図9は本実施形態のデータメンバ情報10
3の例を示す図である。図9に示す様にデータメンバ情
報103は、問合せの各交点のメンバの組の情報であ
る。図17に関連した概要で述べた様に、実行時、任意
の順序で、各交点のメンバの組で識別されるデータを取
得または計算していく。この際、各交点は、図9の様な
各次元のメンバのIDの組で識別することができる。FIG. 9 shows the data member information 10 of this embodiment.
It is a figure which shows the example of 3. As shown in FIG. 9, the data member information 103 is information on the set of members at each intersection of the inquiry. As described in the outline related to FIG. 17, at the time of execution, the data identified by the set of members at each intersection is acquired or calculated in an arbitrary order. At this time, each intersection can be identified by a set of IDs of members of each dimension as shown in FIG.
【0101】図10は本実施形態の計算適用グループ化
処理301の処理手順を示すフローチャートである。図
16に関連した概要で述べた様に、最初に、同じ計算式
を適用する範囲のグループ化を行う。FIG. 10 is a flow chart showing the processing procedure of the calculation application grouping processing 301 of this embodiment. As described in the outline related to FIG. 16, first, the ranges to which the same calculation formula is applied are grouped.
【0102】これは、図16に関連した概要で述べた様
に、各次元毎に射影するメンバを基本メンバ群と各計算
メンバに分け(ステップ1001)、全ての次元で組合
せることで(ステップ1002)、組合せ毎にグループ
を作ることができる。各グループ毎に、計算適用グルー
プ別範囲情報601を作成し(ステップ1003)、後
の処理で必要な情報(グループ範囲情報602、グルー
プID603等)を作成、設定する(ステップ1004及
びステップ1005)。As described in the outline relating to FIG. 16, this is achieved by dividing the members projected for each dimension into a basic member group and calculation members (step 1001) and combining them in all dimensions (steps). 1002), groups can be created for each combination. The calculation-applied group range information 601 is created for each group (step 1003), and the information (group range information 602, group ID 603, etc.) necessary for the subsequent processing is created and set (steps 1004 and 1005).
【0103】図11は本実施形態のグループ別範囲変換
処理302の内で各計算適用グループ毎に行う処理の処
理手順を示すフローチャートである。図16に関連した
概要で述べた様に、グループ化した範囲毎に、計算式で
使用するデータを識別するメンバの組を抽出する。FIG. 11 is a flow chart showing a processing procedure of processing for each calculation application group in the group range conversion processing 302 of the present embodiment. As described in the outline relating to FIG. 16, a set of members for identifying the data used in the calculation formula is extracted for each grouped range.
【0104】複数の計算メンバと関連するグループが有
り得るので、まず、最初に適用する計算式を一意に決定
する(ステップ1101)。決める方法は任意の方法で
あって良い。Since there may be a group associated with a plurality of calculation members, first, the calculation formula to be applied is uniquely determined (step 1101). The method of determination may be any method.
【0105】適用する計算式中の各多次元データを使用
する要素に対して、順次使用するデータを識別するメン
バの組を抽出していく(ステップ1102)。With respect to the element using each multidimensional data in the applied formula, a set of members for identifying the data to be used sequentially is extracted (step 1102).
【0106】ステップ1103では、ステップ1102
でデータ使用要素が取得されたかどうかを調べ、取得さ
れたデータ使用要素がある場合にはステップ1104へ
進む。In step 1103, step 1102
It is checked whether or not the data use element has been acquired in step S1, and if there is the acquired data use element, the process proceeds to step 1104.
【0107】条件式と関連する場合等の様に、簡単な操
作で、使用するデータを識別するメンバの組をまとめて
求めることが困難な場合があるので、変換処理が可能か
判断し(ステップ1104)、可能で無い要素に対して
は、変換は行わず、実行時に、使用するデータをまとめ
てバックエンド処理装置14から取得することをあきら
め、従来の方法を併用して用いる。Since it may be difficult to collectively obtain a set of members that identify the data to be used by a simple operation such as in the case of being related to a conditional expression, it is judged whether conversion processing is possible (step 1104), the conversion is not performed for the elements that are not possible, and at the time of execution, the data to be used is collectively given up from the back-end processing device 14 and the conventional method is used together.
【0108】また変換処理が可能な場合にはステップ1
105へ進み、図16に関連した概要で述べた様に、多
次元データを使用する要素には、メンバの組で識別され
る要素、カレントメンバ、数値関数等がある。これらの
要素に対して、図16に関連した概要で示した様な、簡
単な変換処理を行い、使用するデータを識別するメンバ
の組をまとめて求める。If conversion processing is possible, step 1
Proceeding to step 105, as described in the outline relating to FIG. 16, the elements using the multidimensional data include the elements identified by the set of members, the current member, the numerical function and the like. A simple conversion process as shown in the outline of FIG. 16 is performed on these elements to collectively obtain a set of members for identifying the data to be used.
【0109】図12は本実施形態のグループ別計算使用
データ範囲抽出処理303の処理手順を示すフローチャ
ートである。ステップ1201では、グループ別範囲変
換処理302の結果として抽出したグループ別、要素別
の各使用データ範囲を順次取得する。ステップ1202
では、ステップ1201で使用データ範囲が取得された
かどうかを調べ、取得された使用データ範囲がある場合
にはステップ1203へ進む。FIG. 12 is a flow chart showing the processing procedure of the group-based calculation use data range extraction processing 303 of this embodiment. In step 1201, the use data ranges for each group and each element extracted as a result of the range conversion process for each group 302 are sequentially acquired. Step 1202
Then, it is checked whether or not the used data range is acquired in step 1201, and if there is the acquired used data range, the process proceeds to step 1203.
【0110】ステップ1203では、前記取得された使
用データ範囲の使用するデータを識別するメンバの組
に、まだ計算メンバが含まれるかどうかを調べ、計算メ
ンバが含まれる場合にはステップ1204へ進む。ステ
ップ1204では、再帰的に計算使用データ範囲抽出処
理部110を適用して、使用するデータを識別するメン
バの組を求める。In step 1203, it is checked whether or not the calculated member is still included in the set of members for identifying the data used in the acquired used data range. If the calculated member is included, the process proceeds to step 1204. In step 1204, the calculation and use data range extraction processing unit 110 is recursively applied to obtain a set of members for identifying the data to be used.
【0111】図13は本実施形態の計算適用グループ範
囲情報選択処理401の処理手順を示すフローチャート
である。図17に関連した概要で述べた様に、実行時、
任意の順序で、各交点のメンバの組で識別されるデータ
を取得または計算していく。各交点のメンバの組で識別
されるデータを計算する為に、最初に、交点に対するグ
ループを選択する。FIG. 13 is a flow chart showing the processing procedure of the calculation applicable group range information selection processing 401 of this embodiment. As mentioned in the overview related to Figure 17, at run time,
The data identified by the set of members at each intersection is acquired or calculated in any order. To calculate the data identified by the set of members at each intersection, first select a group for the intersection.
【0112】ステップ1301では、計算使用データ範
囲情報102から、グループの情報である計算適用グル
ープ別範囲情報601を順次取得し、ステップ1302
では、交点の情報であるデータメンバ情報103と前記
取得した計算適用グループ別範囲情報601のグループ
ID603を比較する。そしてステップ1303では、計
算メンバの構成が一致する計算適用グループ別範囲情報
601を選択する。In step 1301, range information 601 for each calculation application group, which is group information, is sequentially acquired from the calculation use data range information 102, and step 1302 is executed.
Then, the group of the data member information 103 which is the information of the intersection and the obtained range information 601 for each calculation applicable group
Compare the ID 603. Then, in step 1303, the range information 601 for each calculation application group having the same composition of the calculation members is selected.
【0113】図14は本実施形態の計算使用データ取得
処理402の処理手順を示すフローチャートである。図
17に関連した概要で述べた様に、各グループにおい
て、最初の交点の評価のときに、グループ全体の範囲で
使用するデータを、バックエンド処理装置14から、1
回の通信でまとめて取得し、グループと関連付けて、バ
ッファ等にとっておく(通信バッファの大きさと計算に
使用するデータの量により1回で済まないことも有り得
るが、その場合でも通信回数の大幅な削減を見込むこと
ができる)。FIG. 14 is a flow chart showing the processing procedure of the calculation and use data acquisition processing 402 of this embodiment. As described in the outline related to FIG. 17, in each group, the data used in the range of the entire group at the time of evaluation of the first intersection is set from the backend processing device 14 to 1
Collected in a single communication, associated with a group, and stored in a buffer, etc. (It may be possible to do it only once depending on the size of the communication buffer and the amount of data used for calculation, but even in that case, the number of times of communication is greatly reduced Can be expected).
【0114】最初に、計算適用グループ範囲情報選択処
理401で選択した計算適用グループ別範囲情報601
で識別されるグループと関連するバッファが存在するか
調べる(ステップ1401及びステップ1402)。First, the range information 601 for each calculation application group selected in the calculation application group range information selection processing 401.
It is checked whether or not there is a buffer associated with the group identified by (step 1401 and step 1402).
【0115】ステップ1402の処理で関連するバッフ
ァが存在しなければ、グループの最初の交点の評価にあ
たり、計算適用グループ別範囲情報601下の各使用デ
ータ範囲情報604により、その範囲のデータを多次元
データベースの格納データから、まとめて取得し(ステ
ップ1403)、グループと関連付けてバッファにとっ
ておく(ステップ1404)。If there is no related buffer in the processing of step 1402, the data of the range is multidimensionally calculated by the use data range information 604 under the calculation application group range information 601 when evaluating the first intersection of the group. The data is collectively obtained from the data stored in the database (step 1403) and stored in the buffer in association with the group (step 1404).
【0116】ステップ1402の処理で関連するバッフ
ァが存在すれば、グループの2つめ以降の交点の評価に
あたり、既にバッファに使用するデータを取得済みなの
で、格納データを取りに行く必要は無く、通信回数を削
減できることになる。If there is a related buffer in the processing of step 1402, the data used for the buffer has already been acquired in the evaluation of the second and subsequent intersections of the group, so there is no need to go to the stored data, and the number of communication Can be reduced.
【0117】グループとバッファとを関連付けるには、
グループID603、計算適用グループ別範囲情報601
のアドレス等、グループを一意に識別できるものを使用
すれば良い。またグループID603とは別に、計算適用
グループ別範囲情報601に通番のIDを付ける方法もあ
る。To associate a group with a buffer,
Group ID 603, range information 601 by calculation application group
An address that can uniquely identify the group may be used. In addition to the group ID 603, there is also a method of assigning a serial number ID to the calculation applicable group-specific range information 601.
【0118】図14の例の場合、グループ下の各使用デ
ータ範囲情報604の範囲のデータをグループと関連付
けたバッファで管理しているが、使用データ範囲情報6
04毎に、計算式中の要素等と関連付けたバッファで管
理しても良い。In the example of FIG. 14, the data in the range of each used data range information 604 under the group is managed by the buffer associated with the group, but the used data range information 6
For each 04, it may be managed by a buffer associated with an element or the like in the calculation formula.
【0119】また、複数のグループをまとめたものでID
を付け、マージした範囲のデータを、そのIDと関連付け
たバッファで管理しても良く、計算に使用するデータ
を、まとめた範囲で取得し、通信回数を減らすことがで
きる関連付け方法であれば、本実施形態に適用できる。Also, a group ID is a group of IDs.
The data in the merged range may be managed in a buffer associated with the ID, and the data used for the calculation can be obtained in the grouped range, and if the association method can reduce the number of communications, It can be applied to this embodiment.
【0120】図15は本実施形態の計算式評価処理40
3の処理手順を示すフローチャートである。図15に示
す様に計算式評価処理403では、計算使用データ取得
処理402で取得したデータを利用して計算を行い、交
点に対する計算値104を求める。FIG. 15 shows the calculation formula evaluation processing 40 of this embodiment.
It is a flowchart which shows the processing procedure of 3. As shown in FIG. 15, in the calculation formula evaluation processing 403, calculation is performed using the data acquired in the calculation use data acquisition processing 402, and the calculated value 104 for the intersection is obtained.
【0121】ステップ1501では、計算の規則に従
い、計算式を構成する要素を順次取得する。多次元のデ
ータを必要とする要素等、多次元独自の部分を除けば、
四則演算子、括弧、条件式等、一般的な、計算式の評価
に用いられるルールや方法に従い、計算を進めることが
できる。In step 1501, the elements forming the calculation formula are sequentially acquired in accordance with the calculation rule. Except for parts that are unique to multidimensional, such as elements that require multidimensional data,
Calculations can be performed according to the general rules and methods used for evaluation of calculation formulas, such as four arithmetic operators, parentheses, and conditional expressions.
【0122】本実施形態に関連するのは、多次元のデー
タを必要とする要素の評価部分であり、ステップ150
2では、評価する要素が、メンバの組で識別される要
素、カレントメンバ、数値関数等、多次元のデータを使
用する要素であるかどうかを調べ、多次元のデータを使
用するデータ使用要素の場合にはステップ1503へ進
む。Relevant to the present embodiment is the evaluation part of an element that requires multidimensional data, and step 150
In 2, it is checked whether the evaluated element is an element identified by a set of members, a current member, an element that uses multidimensional data, such as a numerical function, and the number of data use elements that use multidimensional data In that case, the process proceeds to step 1503.
【0123】ステップ1503では、条件式と関連する
場合等の様に、簡単な操作で使用するデータを識別する
メンバの組をまとめて求めることが困難な場合があるの
で、変換処理が可能か判断し、範囲変換可能なデータ使
用要素である場合にはステップ1504へ進み、バッフ
ァから使用するデータを取得する。また、範囲変換可能
でないデータ使用要素である場合にはステップ1505
へ進み、従来の方法を用いて多次元データベースの格納
データから使用するデータを取得する。In step 1503, it may be difficult to collectively obtain a set of members for identifying data to be used by a simple operation, such as in the case of being related to a conditional expression. Therefore, it is determined whether conversion processing is possible. If it is a data use element capable of range conversion, the process proceeds to step 1504, and the data to be used is acquired from the buffer. If the element is a data use element whose range cannot be converted, step 1505
Proceed to and obtain the data to be used from the stored data of the multidimensional database using the conventional method.
【0124】ステップ1506では、バッファまたは格
納データから取得したデータを使用して、計算式を構成
する要素の評価を行い、計算式が終了していなければス
テップ1507からステップ1501へ戻って計算を進
めていく。In step 1506, the data which is obtained from the buffer or the stored data is used to evaluate the elements constituting the calculation formula. If the calculation formula is not completed, the process returns from step 1507 to step 1501 to proceed with the calculation. To go.
【0125】以上、説明した処理は、図2で例として示
したデータベースサーバ処理部213の解析処理部15
や実行処理部16により実行される。しかし、そのプロ
グラムは図2の例の様にコンピュータシステムに物理的
に直接接続される外部記憶装置に格納されるものに限定
されることはなく、磁気ディスク装置、フレキシブルデ
ィスク装置等のコンピュータで読み書きできる他の記録
媒体に格納することができる。The processing described above is performed by the analysis processing unit 15 of the database server processing unit 213 shown as an example in FIG.
And the execution processing unit 16. However, the program is not limited to the one stored in the external storage device physically connected directly to the computer system as in the example of FIG. 2, and is read and written by a computer such as a magnetic disk device or a flexible disk device. It can be stored in another recording medium.
【0126】以上説明した様に本実施形態の多次元デー
タベース処理システムによれば、計算に使用するデータ
を計算式のグループ毎に取得して問合せの各交点の計算
値を求めるので、計算に使用するデータを転送する際の
通信回数を減らし、問合せ処理の高速化を行うことが可
能である。As described above, according to the multidimensional database processing system of this embodiment, the data used for the calculation is acquired for each group of the calculation formulas and the calculated value at each intersection of the inquiry is obtained. It is possible to speed up the inquiry process by reducing the number of communications when transferring the data to be transmitted.
【0127】[0127]
【発明の効果】本発明によれば計算に使用するデータを
計算式のグループ毎に取得して問合せの各交点の計算値
を求めるので、計算に使用するデータを転送する際の通
信回数を減らし、問合せ処理の高速化を行うことが可能
である。According to the present invention, since the data used for calculation is acquired for each group of calculation formulas and the calculated value at each intersection of the inquiry is obtained, the number of communications when transferring the data used for calculation is reduced. It is possible to speed up the inquiry processing.
【図1】本実施形態の並列多次元データベース処理シス
テムの概略構成を示す図である。FIG. 1 is a diagram showing a schematic configuration of a parallel multidimensional database processing system of the present embodiment.
【図2】本実施形態のフロントエンド処理装置13の概
略構成を示す図である。FIG. 2 is a diagram showing a schematic configuration of a front-end processing device 13 of this embodiment.
【図3】本実施形態の計算使用データ範囲抽出処理部1
10の処理内容を示す図である。FIG. 3 is a calculation use data range extraction processing unit 1 of the present embodiment.
It is a figure which shows the processing content of 10.
【図4】本実施形態の計算評価処理部111の処理内容
を示す図である。FIG. 4 is a diagram showing processing contents of a calculation evaluation processing unit 111 of the present embodiment.
【図5】本実施形態の問合せ範囲情報101の例を示す
図である。FIG. 5 is a diagram showing an example of inquiry range information 101 according to the present embodiment.
【図6】本実施形態の計算使用データ範囲情報102の
例を示す図である。FIG. 6 is a diagram showing an example of calculation use data range information 102 of the present embodiment.
【図7】本実施形態のグループID603の例を示す図で
ある。FIG. 7 is a diagram showing an example of a group ID 603 of this embodiment.
【図8】本実施形態の使用データ範囲情報604の例を
示す図である。FIG. 8 is a diagram showing an example of used data range information 604 of the present embodiment.
【図9】本実施形態のデータメンバ情報103の例を示
す図である。FIG. 9 is a diagram showing an example of data member information 103 of the present embodiment.
【図10】本実施形態の計算適用グループ化処理301
の処理手順を示すフローチャートである。FIG. 10 is a calculation application grouping process 301 of the present embodiment.
5 is a flowchart showing the processing procedure of step S1.
【図11】本実施形態のグループ別範囲変換処理302
の内で各計算適用グループ毎に行う処理の処理手順を示
すフローチャートである。FIG. 11 is a range conversion process 302 for each group according to the present embodiment.
10 is a flowchart showing a processing procedure of processing performed for each calculation application group in FIG.
【図12】本実施形態のグループ別計算使用データ範囲
抽出処理303の処理手順を示すフローチャートであ
る。FIG. 12 is a flowchart showing a processing procedure of group-specific calculation and use data range extraction processing 303 of the present embodiment.
【図13】本実施形態の計算適用グループ範囲情報選択
処理401の処理手順を示すフローチャートである。FIG. 13 is a flowchart showing a processing procedure of calculation applicable group range information selection processing 401 according to the present embodiment.
【図14】本実施形態の計算使用データ取得処理402
の処理手順を示すフローチャートである。FIG. 14 is a calculation use data acquisition process 402 of the present embodiment.
5 is a flowchart showing the processing procedure of step S1.
【図15】本実施形態の計算式評価処理403の処理手
順を示すフローチャートである。FIG. 15 is a flowchart showing a processing procedure of a calculation formula evaluation processing 403 of this embodiment.
【図16】本実施形態の問合せするメンバの組合せに計
算メンバが含まれている場合のクライアントAPからの問
合せ内容の一例を示す図である。FIG. 16 is a diagram showing an example of inquiry contents from a client AP when a combination of inquired members includes a calculated member in the present embodiment.
【図17】本実施形態の実行時のグループ毎にまとめた
データの取得例を示す図である。FIG. 17 is a diagram showing an example of acquisition of data collected for each group at the time of execution of this embodiment.
11…クライアント、12…並列多次元データベース処
理システム、13…フロントエンド処理装置、14…バ
ックエンド処理装置、15…解析処理部、16…実行処
理部、17…記憶装置、18…ネットワーク、101…
問合せ範囲情報、102…計算使用データ範囲情報、1
03…データメンバ情報、104…計算値、105…問
合せ文、106…コード、110…計算使用データ範囲
抽出処理部、111…計算評価処理部、112…問合せ
解析処理部、113…最適化処理部、114…コード生
成処理部、115…コード配布・実行要求処理部、11
6…データ取得制御処理部、117…データ取得処理
部、201…ディスプレイ、202…キーボード、20
3…中央処理装置、204…フレキシブルディスクドラ
イブ、205…主メモリ、206…磁気ディスク装置、
207…通信制御装置、208…システムバス、209
…フレキシブルディスク、210…ネットワーク、21
1…オペレーティングシステム、212…ワークエリ
ア、213…データベースサーバ処理部、214…デー
タベース管理システム制御部、301…計算適用グルー
プ化処理、302…グループ別範囲変換処理、303…
グループ別計算使用データ範囲抽出処理、401…計算
適用グループ範囲情報選択処理、402…計算使用デー
タ取得処理、403…計算式評価処理、501…次元別
範囲情報、502…メンバIDリスト、601…計算適用
グループ別範囲情報、602…グループ範囲情報、60
3…グループID、604…使用データ範囲情報、801
…使用データ範囲情報、802…計算使用データ範囲情
報。11 ... Client, 12 ... Parallel multi-dimensional database processing system, 13 ... Front-end processing device, 14 ... Back-end processing device, 15 ... Analysis processing unit, 16 ... Execution processing unit, 17 ... Storage device, 18 ... Network, 101 ...
Inquiry range information, 102 ... Calculation use data range information, 1
03 ... Data member information, 104 ... Calculated value, 105 ... Query sentence, 106 ... Code, 110 ... Calculation use data range extraction processing unit, 111 ... Calculation evaluation processing unit, 112 ... Query analysis processing unit, 113 ... Optimization processing unit , 114 ... Code generation processing unit, 115 ... Code distribution / execution request processing unit, 11
6 ... Data acquisition control processing unit, 117 ... Data acquisition processing unit, 201 ... Display, 202 ... Keyboard, 20
3 ... Central processing unit, 204 ... Flexible disk drive, 205 ... Main memory, 206 ... Magnetic disk unit,
207 ... Communication control device, 208 ... System bus, 209
… Flexible disk, 210… Network, 21
DESCRIPTION OF SYMBOLS 1 ... Operating system, 212 ... Work area, 213 ... Database server processing part, 214 ... Database management system control part, 301 ... Computation application grouping process, 302 ... Group range conversion process, 303 ...
Calculation-use data range extraction process by group, 401 ... Calculation-applied group range information selection process, 402 ... Calculation-use data acquisition process, 403 ... Calculation formula evaluation process, 501 ... Dimension range information by dimension, 502 ... Member ID list, 601 ... Calculation Range information by application group, 602 ... Group range information, 60
3 ... Group ID, 604 ... Used data range information, 801
... use data range information, 802 ... calculation use data range information.
Claims (5)
れた多次元データベースのデータをフロントエンド処理
装置に転送して処理する多次元データベース処理方法に
おいて、 問合せ範囲のメンバの組を示す問合せ範囲情報を入力
し、同じ計算式が適用されるグループ毎に問合せ範囲の
メンバの組を分類し、計算に使用するデータを識別する
為のメンバの組の情報である計算使用データ範囲情報を
計算式のグループ毎に抽出するステップと、 前記計算使用データ範囲情報で示された範囲のデータを
計算式のグループ毎に取得してその計算式により当該デ
ータを評価して問合せの各交点の値である計算値を求め
るステップとを有することを特徴とする多次元データベ
ース処理方法。1. A multi-dimensional database processing method for transferring data of a multi-dimensional database stored in a plurality of back-end processing devices to a front-end processing device for processing, and query range information indicating a set of members of a query range. Enter the value, classify the set of members of the query range for each group to which the same calculation formula is applied, and set the calculation use data range information, which is the information of the set of members for identifying the data used for calculation, to the calculation formula. The step of extracting for each group, the data in the range indicated by the calculation use data range information is acquired for each group of the calculation formula, the data is evaluated by the calculation formula, and the calculation is the value at each intersection of the inquiry. And a step of obtaining a value.
含まれている場合にその計算メンバを計算式と計算式を
適用するメンバの範囲に分解して前記計算使用データ範
囲情報の抽出を行うことを特徴とする請求項1に記載さ
れた多次元データベース処理方法。2. When a calculated member is included in the set of classified members, the calculated member is decomposed into a calculation formula and a range of members to which the calculation formula is applied, and the calculation use data range information is extracted. The multidimensional database processing method according to claim 1, characterized in that.
範囲のデータを計算式のグループ毎に取得する際に複数
のグループのデータをまとめて取得することを特徴とす
る請求項1または請求項2のいずれかに記載された多次
元データベース処理方法。3. The data of a plurality of groups are collectively acquired when the data of the range indicated by the calculation use data range information is acquired for each group of the calculation formula. 2. The multidimensional database processing method described in any one of 2.
範囲のデータを計算式のグループ毎に取得する際に、各
計算式間の依存関係に従った順番でデータを取得するこ
とを特徴とする請求項1乃至請求項3のいずれか1項に
記載された多次元データベース処理方法。4. When acquiring the data of the range indicated by the calculation use data range information for each group of calculation formulas, the data is acquired in an order according to the dependency relation between the calculation formulas. The multidimensional database processing method according to any one of claims 1 to 3.
れた多次元データベースのデータをフロントエンド処理
装置に転送して処理する多次元データベース処理システ
ムにおいて、 問合せ範囲のメンバの組を示す問合せ範囲情報を入力
し、同じ計算式が適用されるグループ毎に問合せ範囲の
メンバの組を分類し、計算に使用するデータを識別する
為のメンバの組の情報である計算使用データ範囲情報を
計算式のグループ毎に抽出する計算使用データ範囲抽出
処理部と、 前記計算使用データ範囲情報で示された範囲のデータを
計算式のグループ毎に取得してその計算式により当該デ
ータを評価して問合せの各交点の値である計算値を求め
る計算評価処理部とを備えることを特徴とする多次元デ
ータベース処理システム。5. In a multidimensional database processing system for transferring data of a multidimensional database stored in a plurality of back-end processing devices to a front-end processing device for processing, query range information indicating a set of members of a query range. Enter the value, classify the set of members of the query range for each group to which the same calculation formula is applied, and set the calculation use data range information, which is the information of the set of members for identifying the data used for calculation, to the calculation formula. A calculation use data range extraction processing unit that extracts for each group, and obtains data in the range indicated by the calculation use data range information for each group of the calculation formula, evaluates the data by the calculation formula, and inquires A multidimensional database processing system, comprising: a calculation evaluation processing unit that obtains a calculation value that is a value of an intersection.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001341467A JP2003141133A (en) | 2001-11-07 | 2001-11-07 | Multi-dimensional database processing method and system for implementing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001341467A JP2003141133A (en) | 2001-11-07 | 2001-11-07 | Multi-dimensional database processing method and system for implementing the same |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003141133A true JP2003141133A (en) | 2003-05-16 |
Family
ID=19155488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001341467A Pending JP2003141133A (en) | 2001-11-07 | 2001-11-07 | Multi-dimensional database processing method and system for implementing the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003141133A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008547131A (en) * | 2005-06-27 | 2008-12-25 | エービー イニティオ ソフトウェア コーポレーション | Data aggregation by compound operation |
-
2001
- 2001-11-07 JP JP2001341467A patent/JP2003141133A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008547131A (en) * | 2005-06-27 | 2008-12-25 | エービー イニティオ ソフトウェア コーポレーション | Data aggregation by compound operation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6567806B1 (en) | System and method for implementing hash-based load-balancing query processing in a multiprocessor database system | |
US20010014888A1 (en) | Database management system and method for query process for the same | |
CN105677812A (en) | Method and device for querying data | |
CN114547072A (en) | Method, system, equipment and storage medium for converting natural language query into SQL | |
JP5791149B2 (en) | Computer-implemented method, computer program, and data processing system for database query optimization | |
CN108694221A (en) | Data real-time analysis method, module, equipment and device | |
CN109241100B (en) | Query method, device, equipment and storage medium | |
CN111475588A (en) | Data processing method and device | |
JP2724082B2 (en) | Data analysis support system for VLSI process | |
CN110874366B (en) | Data processing and inquiring method and device | |
CN110008448B (en) | Method and device for automatically converting SQL code into Java code | |
US6269359B1 (en) | Relational data base system and method for rapidly realizing a query to a database | |
JP2003141133A (en) | Multi-dimensional database processing method and system for implementing the same | |
CN111368055A (en) | Retrieval method and device for patent database combined enterprise information platform | |
CN111695031A (en) | Label-based searching method, device, server and storage medium | |
JP3538322B2 (en) | Database management system and query processing method | |
KR102605932B1 (en) | Method for providing data processing service for structured data and non-structured data based on work space and server for performing the method | |
KR102605933B1 (en) | Method for allocating work space on server based on instance feature and apparatus for performing the method | |
CN116257545B (en) | Data query method and device, electronic equipment and storage medium | |
JP3668243B2 (en) | Database management system | |
Mach et al. | Parallel database join operations in heterogeneous grids | |
JP4422697B2 (en) | Database management system and query processing method | |
WO2023168659A1 (en) | Entity pair recognition method and apparatus spanning graph data and relational data | |
JPH1078968A (en) | Statistic data base system | |
JP3732655B2 (en) | Database management system, database management apparatus, and query processing method |