(57)【要約】【課題】複数のテーブルのそれぞれの列名を変数名として含んだ計算式の計算結果を容易に算出できるようにすることを目的とする。【解決手段】集計装置記憶部２９０は計算式と部分式ファイルとを記憶する。計算式は第一のテーブルに含まれる第一の列名と、他のテーブルに含まれる他の列名と、を変数名として含む。部分式ファイルは第一のテーブルを識別する第一のテーブル名と、第一の列名を含んで他の列名を含まない第一の部分式と、を含む。検索文生成部２２０は部分式ファイルに基づいて第一のテーブル名と第一の部分式とを含む検索文１０２を生成する。検索文発行部２３０は検索文１０２を発行し、第一の部分式の検索結果１０３を取得する。マージ結果集計部２５０は第一の部分式の検索結果１０３を用いて計算式の計算結果を算出する。【選択図】図２
2015125538.tif 000002
【特許請求の範囲】
【請求項１】
第一のテーブルに含まれる第一のテーブル項目名と、他のテーブルに含まれる他のテーブル項目名と、を変数名として含んだ計算式を取得する計算式取得部と、
前記計算式取得部によって取得された前記計算式から、前記第一のテーブル項目名を含んで前記他のテーブル項目名を含まない第一の部分式を抽出する部分式抽出部と、
前記部分式抽出部によって抽出された前記第一の部分式と、前記第一のテーブルを識別する第一のテーブル名と、を含む部分式ファイルを生成する部分式ファイル生成部と
を備えることを特徴とする部分式ファイル生成装置。
【請求項２】
前記部分式抽出部は、前記計算式に含まれる各演算子の種類と前記計算式に含まれる各組の括弧とに基づいて前記計算式を複数の部分式に分割し、前記複数の部分式から前記第一の部分式を抽出する
ことを特徴とする請求項１に記載の部分式ファイル生成装置。
【請求項３】
第一のテーブルに含まれる第一のテーブル項目名と、他のテーブルに含まれる他のテーブル項目名と、を変数名として含んだ計算式を記憶する計算式記憶部と、
前記第一のテーブルを識別する第一のテーブル名と、前記第一のテーブル項目名を含んで前記他のテーブル項目名を含まない部分の前記計算式である第一の部分式と、を含む部分式ファイルを記憶する部分式ファイル記憶部と、
前記部分式ファイル記憶部に記憶された前記部分式ファイルに基づいて、前記第一のテーブル名と前記第一の部分式とを含む第一の問い合わせデータを生成する問い合わせデータ生成部と、
前記問い合わせデータ生成部によって生成された前記第一の問い合わせデータを用いて、前記第一の部分式の計算結果である第一の部分結果を取得する問い合わせ部と、
前記問い合わせ部によって取得された前記第一の部分結果を用いて、前記計算式記憶部に記憶された前記計算式の計算結果を算出する計算結果算出部と
を備えることを特徴とする計算結果算出装置。
【請求項４】
第一のテーブルに含まれる第一のテーブル項目名と、他のテーブルに含まれる他のテーブル項目名と、を変数名として含んだ計算式を取得する計算式取得処理と、
前記計算式取得処理によって取得された前記計算式から、前記第一のテーブル項目名を含んで前記他のテーブル項目名を含まない第一の部分式を抽出する部分式抽出処理と、
前記部分式抽出処理によって抽出された前記第一の部分式と、前記第一のテーブルを識別する第一のテーブル名と、を含む部分式ファイルを生成する部分式ファイル生成処理と
をコンピュータに実行されるための部分式ファイル生成プログラム。
【請求項５】
計算式と部分式ファイルとを用いる計算結果算出プログラムであって、
前記計算式は、第一のテーブルに含まれる第一のテーブル項目名と、他のテーブルに含まれる他のテーブル項目名と、を変数名として含み、
前記部分式ファイルは、前記第一のテーブルを識別する第一のテーブル名と、前記第一のテーブル項目名を含んで前記他のテーブル項目名を含まない部分の前記計算式である第一の部分式と、を含み、
前記部分式ファイルに基づいて、前記第一のテーブル名と前記第一の部分式とを含む第一の問い合わせデータを生成する問い合わせデータ生成処理、
前記問い合わせデータ生成処理によって生成された前記第一の問い合わせデータを用いて、前記第一の部分式の計算結果である第一の部分結果を取得する問い合わせ処理と、
前記問い合わせ処理によって取得された前記第一の部分結果を用いて、前記計算式の計算結果を算出する計算結果算出処理と
をコンピュータに実行させるための計算結果算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テーブルの列名を変数名として含んだ計算式を計算するための技術に関するものである。
【背景技術】
【０００２】
電力量、水量または交通量等を測るために、身の回りでは多くの計測点（センサ）が使用されている。これら複数の計測点から収集した計測値を集計することで、新たな知見を得ることが可能になる。
例えば、電力量を測る計測点が建物内に複数存在する場合、それらの計測点から収集した計測値を合計することで、建物全体の電力量の合計値を知ることができるようになる。
また、建物全体の電力量と建物全体の照明の電力量とがわかっている場合、建物全体の電力量から建物全体の照明の電力量を引くことで、照明以外の機器が消費している電力量を知ることができる。
【０００３】
計測点から収集した計測値は、通常、計測時刻（タイムスタンプ）と一緒に時系列に保存される。計測値を管理する格納先としてデータベースが挙げられる。データベースが使用される場合、計測時刻の列と計測点名の列とを持つテーブルが用意され、計測点から収集された計測値が時系列に格納される。また、検索文がデータベースに発行され、検索条件に合致するデータ（計測値）が検索される。検索文の発行により、複数のテーブルを結合した検索またはテーブル列を指定してデータの集計などを行うこともできる。
【０００４】
しかし、計測点から収集した計測値の格納先が単一のデータベースであるとは限らず、複数のデータベースに分散して計測値が格納される場合がある。例えば、異なるシステムで収集した計測値は、別々のデータベースに格納される。
また、計測点の数が多くなると、テーブルの列数の制限により、１つのテーブルでは全ての計測点の計測値を管理することができず、複数のテーブルに分散して計測値が格納される。
この場合、利用者は、計測値が格納された複数のデータベースおよび複数のテーブルを意識して検索文を発行する必要がある。例えば、利用者は、各テーブルのテーブル構造の違いを意識して検索文を発行する必要がある。
【０００５】
分散された計測値を集計するための従来技術として、特許文献１が挙げられる。
特許文献１は、個々の情報源管理システムに独自な機能を隠蔽することによって高度な検索を容易にする仕組みを開示している。また、特許文献１は、各情報源間管理システムからの検索結果を統合し、統合した検索結果を応答する仕組みを開示している。
この従来技術では、各情報源の所在情報と論理構造に関する情報と独自処理に関する情報とを含むメタ情報が使用されることによって、利用者からの問い合わせが各情報源に対応した検索命令文に変換される。例えば、利用者からの問い合わせに指定された検索項目が格納されているテーブルの問い合わせが行われた後に、検索命令文が組み立てられる。
このため、利用者からの問い合わせに多数の検索項目が指定された場合、テーブルの問い合わせに時間がかかる結果として、検索命令文の生成に時間がかかってしまう。
また、従来技術では、多数の検索項目のそれぞれの計測値が個別に取得された後に、検索結果のマージおよび集計が行われる。このため、取得される計測値の情報量が多くなってしまう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−３０８３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、複数のテーブルのそれぞれの列名を変数名として含んだ計算式の計算結果を容易に算出できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の部分式ファイル生成装置は、
第一のテーブルに含まれる第一のテーブル項目名と、他のテーブルに含まれる他のテーブル項目名と、を変数名として含んだ計算式を取得する計算式取得部と、
前記計算式取得部によって取得された前記計算式から、前記第一のテーブル項目名を含んで前記他のテーブル項目名を含まない第一の部分式を抽出する部分式抽出部と、
前記部分式抽出部によって抽出された前記第一の部分式と、前記第一のテーブルを識別する第一のテーブル名と、を含む部分式ファイルを生成する部分式ファイル生成部とを備える。
【発明の効果】
【０００９】
本発明によれば、第一のテーブル名と、第一のテーブルの列名（第一のテーブル項目名）を変数名として含んで他のテーブルの列名を含まない第一の部分式と、を含む部分式ファイルを生成することができる。
この部分式ファイルを用いることにより、第一のテーブル名と第一の部分式とを含む第一の問い合わせデータを生成することができる。そして、第一の問い合わせデータを用いて第一の部分式の計算結果を取得し、第一の部分式の計算結果を用いて計算式の計算結果を算出することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１におけるクライアントサーバシステム１００の構成図である。
【図２】実施の形態１における分散データ集計システム１３０および分散データ集計装置２００の構成図である。
【図３】実施の形態１における分散データ集計装置２００の分散データ集計処理を示すフローチャートである。
【図４】実施の形態１における集計要求１０１の一例を示す図である。
【図５】実施の形態１における取得項目ファイル２９１の一例を示す図である。
【図６】実施の形態１における検索文テンプレート２９２の一例を示す図である。
【図７】実施の形態１におけるマージキー情報ファイル２９３の一例を示す図である。
【図８】実施の形態１における検索文生成処理（Ｓ１２０）のフローチャートである。
【図９】実施の形態１における検索文１０２の一例を示す図である。
【図１０】実施の形態１におけるテーブル１４１の一例を示す図である。
【図１１】実施の形態１における検索結果１０３の一例を示す図である。
【図１２】実施の形態１における検索結果１０３の一例を示す図である。
【図１３】実施の形態１におけるマージされた検索結果１０３の一例を示す図である。
【図１４】実施の形態１における集計式ファイル２９４の一例を示す図である。
【図１５】実施の形態１における集計結果１０４の一例を示す図である。
【図１６】実施の形態１における計算式解析装置３００の機能構成図である。
【図１７】実施の形態１における計算式解析装置３００の計算式解析処理の概要を示すフローチャートである。
【図１８】実施の形態１における計算式ファイル３９１の一例を示す図である。
【図１９】実施の形態１におけるテーブル情報ファイル３９２の一例を示す図である。
【図２０】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図２１】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図２２】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図２３】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図２４】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図２５】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図２６】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図２７】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図２８】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図２９】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図３０】実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
【図３１】実施の形態１における括弧管理リスト３０１を示す図である。
【図３２】実施の形態１における括弧管理リスト３０１（ソート後）を示す図である。
【図３３】実施の形態１における括弧管理リスト３０１と取得項目ファイル２９１と集計式ファイル２９４との設定例を示す図である。
【図３４】実施の形態１における括弧管理リスト３０１と取得項目ファイル２９１と集計式ファイル２９４との設定例を示す図である。
【図３５】実施の形態１における括弧管理リスト３０１と取得項目ファイル２９１と集計式ファイル２９４との設定例を示す図である。
【図３６】実施の形態１における括弧管理リスト３０１と取得項目ファイル２９１と集計式ファイル２９４との設定例を示す図である。
【図３７】実施の形態１における括弧管理リスト３０１と取得項目ファイル２９１と集計式ファイル２９４との設定例を示す図である。
【図３８】実施の形態１における分散データ集計装置２００および計算式解析装置３００のハードウェア構成の一例を示す図である。
【図３９】実施の形態１におけるクライアントサーバシステム１００の一例を示す図である。
【図４０】実施の形態１におけるクライアントサーバシステム１００の一例を示す図である。
【図４１】実施の形態１におけるサーバ情報ファイル２９５の一例を示す図である。
【発明を実施するための形態】
【００１１】
実施の形態１．
複数のテーブルのそれぞれの列名を変数名として含んだ計算式の計算結果を容易に算出する形態について説明する。
【００１２】
図１は、実施の形態１におけるクライアントサーバシステム１００の構成図である。
実施の形態１におけるクライアントサーバシステム１００の構成について、図１に基づいて説明する。
【００１３】
クライアントサーバシステム１００は、クライアントである利用者端末１１０が電力量、水量または交通量などの計測値（データ）の集計をアプリケーションサーバ１２０に要求するためのシステムである。
例えば、利用者端末１１０は、全体の電力量または全体の電力量のうちの照明器具の電力量などの集計を要求する。
【００１４】
クライアントサーバシステム１００は、複数の利用者端末１１０と、アプリケーションサーバ１２０と、分散データ集計システム１３０（部分式ファイル生成装置、計算結果算出装置の一例）と、データベースサーバ１４０とを備える。これらの構成はネットワーク１０９を介して互いに通信する。
【００１５】
利用者端末１１０は利用者が使用するコンピュータである。
利用者端末１１０は、利用者の指示に従って計測値の集計を要求する集計要求１０１をアプリケーションサーバ１２０に送信し、アプリケーションサーバ１２０から集計結果１０４を受信する。
【００１６】
アプリケーションサーバ１２０は利用者端末１１０から集計要求１０１を受け付けるコンピュータである。
アプリケーションサーバ１２０は、利用者端末１１０から集計要求１０１を受信し、受信した集計要求１０１を分散データ集計システム１３０に送信する。
アプリケーションサーバ１２０は、分散データ集計システム１３０から集計結果１０４に受信し、受信した集計結果１０４を利用者端末１１０に送信する。
【００１７】
分散データ集計システム１３０は、集計要求１０１に応じて集計結果１０４を生成する一つまたは複数のコンピュータである。
分散データ集計システム１３０は、アプリケーションサーバ１２０から集計要求１０１を受信し、受信した集計要求１０１に基づいてテーブル１４１毎の検索文１０２（問い合わせデータの一例）を生成し、生成したテーブル１４１毎の検索文１０２をデータベースサーバ１４０に送信する。
分散データ集計システム１３０は、データベースサーバ１４０からテーブル１４１毎の検索結果１０３（部分結果の一例）を受信し、受信したテーブル１４１毎の検索結果１０３に基づいて集計結果１０４を生成し、生成した集計結果１０４をアプリケーションサーバ１２０に送信する。
【００１８】
データベースサーバ１４０は、複数のテーブル１４１を備えるデータベースを管理するコンピュータである。
データベースサーバ１４０は、分散データ集計システム１３０からテーブル１４１毎の検索文１０２を受信し、受信したテーブル１４１毎の検索文１０２に従って検索処理を実行する。
データベースサーバ１４０は、検索処理の実行結果に基づいてテーブル１４１毎の検索結果１０３を生成し、生成したテーブル１４１毎の検索結果１０３を分散データ集計システム１３０に送信する。
【００１９】
図２は、実施の形態１における分散データ集計システム１３０および分散データ集計装置２００の構成図である。
実施の形態１における分散データ集計システム１３０および分散データ集計装置２００の構成について、図２に基づいて説明する。
【００２０】
分散データ集計システム１３０は、分散データ集計装置２００（計算結果算出装置の一例）と、計算式解析装置３００（部分式ファイル生成装置の一例）とを備える。
【００２１】
分散データ集計装置２００は、集計要求受信部２１０と、検索文生成部２２０（問い合わせデータ生成部の一例）と、検索文発行部２３０（問い合わせ部の一例）とを備える。
さらに、分散データ集計装置２００は、検索結果マージ部２４０と、マージ結果集計部２５０（計算結果算出部の一例）と、集計結果送信部２６０と、集計装置記憶部２９０（計算式記憶部、部分式ファイル記憶部の一例）とを備える。
【００２２】
集計要求受信部２１０は集計要求１０１を受信する。
検索文生成部２２０は、集計要求１０１と取得項目ファイル２９１と検索文テンプレート２９２とマージキー情報ファイル２９３とに基づいて、テーブル１４１毎の検索文１０２を生成する。取得項目ファイル２９１、検索文テンプレート２９２およびマージキー情報ファイル２９３については後述する。
検索文発行部２３０は、テーブル１４１毎の検索文１０２を用いて、テーブル１４１毎の検索結果１０３を取得する。
【００２３】
検索結果マージ部２４０はテーブル１４１毎の検索結果１０３をマージする。
マージ結果集計部２５０は、集計式ファイル２９４に基づいて、テーブル１４１毎の検索結果１０３を集計する。集計式ファイル２９４については後述する。
集計結果送信部２６０は集計結果１０４を送信する。
【００２４】
集計装置記憶部２９０は、分散データ集計装置２００が使用、生成または入出力するデータを記憶する。
例えば、集計装置記憶部２９０は、集計項目（集計内容）毎の取得項目ファイル２９１と、検索文１０２の検索文テンプレート２９２と、マージキー情報ファイル２９３と、集計式ファイル２９４とを記憶する。
取得項目ファイル２９１は、各テーブル１４１から取得される取得項目をテーブル１４１毎に示す。
検索文テンプレート２９２は、検索文１０２のテンプレート（様式、形式またはパターンともいう）を示す。
マージキー情報ファイル２９３は、各テーブル１４１のマージキーを示す。
集計式ファイル２９４は、集計用の計算式（集計式）を集計項目毎に示す。
【００２５】
計算式解析装置３００は、集計項目毎の計算式を解析することよって取得項目ファイル２９１および集計式ファイル２９４を生成する装置である。
計算式解析装置３００の詳細については後述する。
【００２６】
図３は、実施の形態１における分散データ集計装置２００の分散データ集計処理を示すフローチャートである。
実施の形態１における分散データ集計装置２００の分散データ集計処理について、図３に基づいて説明する。
【００２７】
Ｓ１１０において、集計要求受信部２１０は、利用者端末１１０からアプリケーションサーバ１２０を介して集計要求１０１を受信する。
Ｓ１１０の後、処理はＳ１２０に進む。
【００２８】
図４は、実施の形態１における集計要求１０１の一例を示す図である。
図４に示すように、集計要求１０１は、集計項目と集計項目に対応付けられた集計条件とを含む。集計要求１０１は集計項目および集計条件を複数含んでも構わない。
集計項目は、集計する内容を識別する集計項目名を示す。
集計条件は、集計する条件（例えば、条件式）を示す。集計条件は検索条件として用いられる。
図３に戻り、Ｓ１２０から説明を続ける。
【００２９】
Ｓ１２０において、検索文生成部２２０は、取得項目ファイル２９１と検索文テンプレート２９２とマージキー情報ファイル２９３とに基づいて、テーブル１４１毎の検索文１０２を生成する。
例えば、取得項目ファイル２９１が３つのテーブル名Ａ、Ｂ、Ｃを含む場合、検索文生成部２２０は、テーブルＡの検索文１０２と、テーブルＢの検索文１０２と、テーブルＣの検索文１０２との３つの検索文１０２を生成する。
検索文生成処理（Ｓ１２０）の詳細については後述する。
Ｓ１２０の後、処理はＳ１３０に進む。
【００３０】
図５は、実施の形態１における取得項目ファイル２９１の一例を示す図である。
図５に示すように、取得項目ファイル２９１は、テーブル名とテーブル名に対応付けられた取得項目とを含む。
取得項目は、テーブルに含まれる列名（テーブル項目名）、または、１つ以上のテーブル項目名を含んだ計算式を示す。
実施の形態１において、ａｘはテーブルＡの列名であり、ｂｘはテーブルＢの列名であり、ｃｘはテーブルＣの列名である。
【００３１】
図６は、実施の形態１における検索文テンプレート２９２の一例を示す図である。
図６に示すように、検索文テンプレート２９２は、ｓｅｌｅｃｔ句とｆｒｏｍ句とｗｈｅｒｅ句とを含む。
【００３２】
図７は、実施の形態１におけるマージキー情報ファイル２９３の一例を示す図である。
図７に示すように、マージキー情報ファイル２９３は、テーブル名とテーブル名に対応付けられたマージキーとを含む。
マージキーは、テーブル毎の検索結果１０３をマージするための列名（テーブル項目名）を示す。
【００３３】
図８は、実施の形態１における検索文生成処理（Ｓ１２０）のフローチャートである。
実施の形態１における検索文生成処理（Ｓ１２０）について、図８に基づいて説明する。
集計要求１０１に複数の集計項目が含まれる場合、検索文生成部２２０は以下の検索文生成処理（Ｓ１２０）を集計項目毎に実行する。
【００３４】
Ｓ１２１について、検索文生成部２２０は、集計要求１０１（図４参照）から集計項目を取得し、取得した集計項目に対応付けられた取得項目ファイル２９１を集計項目毎の取得項目ファイル２９１から選択する。
以下、Ｓ１２１で選択した取得項目ファイル２９１を単に取得項目ファイル２９１という。
Ｓ１２１の後、処理はＳ１２２に進む。
【００３５】
Ｓ１２２において、検索文生成部２２０は、取得項目ファイル２９１（図５参照）から未選択のテーブル名を一つ選択する。
例えば、検索文生成部２２０は、図５の取得項目ファイル２９１からテーブル名Ａを選択する。
以下、Ｓ１２２で選択したテーブル名を選択テーブル名という。
Ｓ１２２の後、処理はＳ１２３に進む。
【００３６】
Ｓ１２３において、検索文生成部２２０は、検索文テンプレート２９２（図６参照）を複製する。
以下、Ｓ１２３で複製した検索文テンプレート２９２を複製テンプレートという。
Ｓ１２３の後、処理はＳ１２４に進む。
【００３７】
Ｓ１２４において、検索文生成部２２０は、選択テーブル名に対応付けられた取得項目を取得項目ファイル２９１（図５参照）から取得し、選択テーブル名に対応付けられたマージキーをマージキー情報ファイル２９３（図７参照）から取得する。
そして、検索文生成部２２０は、複製テンプレートに含まれるｓｅｌｅｃｔ句に取得した取得項目およびマージキーを設定する。
例えば、検索文生成部２２０は、テーブル名Ａに対応付けられた取得項目「ａ４，ａ５，ａ３＋ａ１＋ａ２  ａｓ  Ａ＿１」（図５参照）およびマージキー「ｔｉｍｅ」（図７参照）を複製テンプレート（図６参照）のｓｅｌｅｃｔ句に設定する。
Ｓ１２４の後、処理はＳ１２５に進む。
【００３８】
Ｓ１２５において、検索文生成部２２０は、複製テンプレートに含まれるｆｒｏｍ句に選択テーブル名を設定する。
例えば、検索文生成部２２０は、複製テンプレート（図６参照）のｆｒｏｍ句にテーブル名Ａを設定する。
Ｓ１２５の後、処理はＳ１２６に進む。
【００３９】
Ｓ１２６において、検索文生成部２２０は、集計項目に対応付けられた集計条件を集計要求１０１から取得し、複製テンプレートに含まれるｗｈｅｒｅ句に取得した集計条件を設定する。
例えば、検索文生成部２２０は、集計要求１０１（図４参照）に含まれる集計条件「ｔｉｍｅ  ＞  ２０１３／９／２４  ９：００、ｔｉｍｅ  ＜＝  ２０１３／９／２４  １２：００」を複製テンプレート（図６参照）のｗｈｅｒｅ句に設定する。
Ｓ１２６の後、処理はＳ１２７に進む。
【００４０】
図９は、実施の形態１における検索文１０２の一例を示す図である。
Ｓ１２２からＳ１２６（図８参照）により、図９に示すような検索文１０２が生成される。図９の検索文１０２は、テーブル名Ａで識別されるテーブル用の検索文の一例である。
図８に戻り、Ｓ１２７から説明を続ける。
【００４１】
Ｓ１２７において、検索文生成部２２０は、Ｓ１２２で選択していない未選択のテーブル名が有るか否かを判定する。
未選択のテーブル名が有る場合（ＹＥＳ）、処理はＳ１２２に戻る。
未選択のテーブル名が無い場合（ＮＯ）、検索文生成処理（Ｓ１２０）は終了する。
図３に戻り、Ｓ１３０から説明を続ける。
【００４２】
Ｓ１３０において、検索文発行部２３０は、テーブル１４１毎の検索文１０２をデータベースサーバ１４０に送信する。
データベースサーバ１４０は、テーブル１４１毎の検索文１０２を受信し、テーブル１４１毎の検索文１０２に従って各テーブル１４１を検索し、テーブル１４１毎の検索結果１０３を分散データ集計装置２００に送信する。
そして、検索文発行部２３０は、データベースサーバ１４０からテーブル１４１毎の検索結果１０３を受信する。
【００４３】
例えば、データベースサーバ１４０は、テーブルＡの検索文１０２（図９参照）に従ってテーブルＡ（図１０参照）を検索し、テーブルＡの検索結果１０３（図１１参照）を生成する。
図１０は、実施の形態１におけるテーブル１４１の一例を示す図である。
図１１は、実施の形態１における検索結果１０３の一例を示す図である。検索結果１０３に含まれるＡ＿１の値はＡ＿１＝ａ３＋ａ１＋ａ２の計算結果である。
Ｓ１３０の後、処理はＳ１４０に進む。
【００４４】
Ｓ１４０において、検索結果マージ部２４０は、テーブル１４１毎の検索結果１０３を各テーブル１４１のマージキーに基づいてマージする。各テーブル１４１のマージキーは、マージキー情報ファイル２９３（図７参照）、検索文１０２（図９）のｓｅｌｅｃｔ句および検索結果１０３に設定されている。
例えば、検索結果マージ部２４０は、テーブルＡの検索結果１０３（図１１参照）と、テーブルＢの検索結果１０３（図１２の上段参照）と、テーブルＣの検索結果１０３（図１２の下段参照）と、をマージキー（ｔｉｍｅ）に基づいてマージする。これにより、図１３に示すような検索結果１０３が得られる。
図１２は、実施の形態１における検索結果１０３の一例を示す図である。
図１３は、実施の形態１におけるマージされた検索結果１０３の一例を示す図である。
Ｓ１４０の後、処理はＳ１５０に進む。
【００４５】
Ｓ１５０において、マージ結果集計部２５０は、マージした検索結果１０３と集計式ファイル２９４とに基づいて、集計結果１０４を生成する。但し、集計要求１０１に複数の集計項目が含まれる場合、マージ結果集計部２５０は集計項目毎に集計結果１０４を生成する。
例えば、マージ結果集計部２５０は、図１３のマージされた検索結果１０３を用いて、図１４の集計式ファイル２９４に含まれる集計式（計算式）を計算する。これにより、図１５に示すような集計結果１０４が得られる。
図１４は、実施の形態１における集計式ファイル２９４の一例を示す図である。図１４の集計式ファイル２９４は、集計項目と集計項目に対応付けられた集計式（計算式）とを含んでいる。
図１５は、実施の形態１における集計結果１０４の一例を示す図である。図１５の集計結果１０４は、集計値（計算結果）と集計値に対応付けられた時刻とを含んでいる。
Ｓ１５０の後、処理はＳ１６０に進む。
【００４６】
Ｓ１６０において、集計結果送信部２６０は、集計結果１０４をアプリケーションサーバ１２０を介して利用者端末１１０に送信する。
Ｓ１６０の後、分散データ集計処理は終了する。
【００４７】
図１６は、実施の形態１における計算式解析装置３００の機能構成図である。
実施の形態１における計算式解析装置３００の機能構成について、図１６に基づいて説明する。
【００４８】
計算式解析装置３００は、集計項目を集計するための計算式に基づいて取得項目ファイル２９１（図５参照）および集計式ファイル２９４（図１４参照）を生成する装置である。
計算式解析装置３００は、計算式解析部３１０と解析装置記憶部３９０とを備える。
計算式解析部３１０は、計算式取得部３２０と、取得項目抽出部３３０（部分式抽出部の一例）と、取得項目ファイル生成部３４０（部分式ファイル生成部の一例）と、集計式ファイル生成部３５０とを備える。
【００４９】
計算式取得部３２０は、集計項目を集計するための計算式を取得する。
取得項目抽出部３３０は、テーブル情報ファイル３９２に基づいて、テーブル１４１毎の取得項目を計算式から抽出する。テーブル情報ファイル３９２については後述する。
取得項目ファイル生成部３４０は、テーブル１４１毎の取得項目に基づいて取得項目ファイル２９１を生成する。
集計式ファイル生成部３５０は、テーブル１４１毎の取得項目に基づいて集計式ファイル２９４を生成する。
【００５０】
解析装置記憶部３９０は、計算式解析装置３００が使用、生成または入出力するデータを記憶する。
例えば、解析装置記憶部３９０は、計算式ファイル３９１と、テーブル情報ファイル３９２と、取得項目ファイル２９１と、集計式ファイル２９４とを記憶する。
計算式ファイル３９１は、１つ以上の計算式を含んだデータである。
テーブル情報ファイル３９２は、各テーブル１４１の列名（テーブル項目名）を含んだデータである。
【００５１】
図１７は、実施の形態１における計算式解析装置３００の計算式解析処理の概要を示すフローチャートである。
実施の形態１における計算式解析装置３００の計算式解析処理の概要について、図１７に基づいて説明する。
【００５２】
Ｓ２１０において、分散データ集計システム１３０の開発者は、集計項目名と計算式とを計算式解析装置３００に入力する。
計算式取得部３２０は、入力された集計項目名と計算式とを取得し、取得した集計項目名と計算式とを計算式ファイル３９１に登録する。
Ｓ２１０の後、処理はＳ２２０に進む。
【００５３】
図１８は、実施の形態１における計算式ファイル３９１の一例を示す図である。
図１８に示すように、計算式ファイル３９１は、集計項目の名称と集計項目の名称に対応付けられた計算式とを含む。
図１７に戻り、Ｓ２２０から説明を続ける。
【００５４】
Ｓ２２０において、取得項目抽出部３３０は、テーブル情報ファイル３９２（図１９参照）に基づいて、Ｓ２１０で取得された計算式からテーブル１４１毎の取得項目を抽出する。
図１９は、実施の形態１におけるテーブル情報ファイル３９２の一例を示す図である。
図１９に示すように、テーブル情報ファイル３９２は、テーブル名とテーブル名に対応付けられた列名（テーブル項目名）とを含む。ａｘはテーブルＡの列名である。
【００５５】
例えば、取得項目抽出部３３０は、以下の（１）から（３）のように、テーブルＡの取得項目を計算式から抽出する。
（１）取得項目抽出部３３０は、計算式に含まれる各演算子の種類および各組の括弧に基づいて、計算式を複数の部分式に分割する。そして、取得項目抽出部３３０は、複数の部分式から、テーブルＡの列名（テーブル項目名）を変数名として含んで他のテーブルの列名を含まない部分式を、テーブルＡの取得項目として抽出する。
例えば、四則演算の計算式は、括弧内の部分式、乗法（＊）と除法（／）とを組み合わせた部分式および加法（＋）と減法（−）とを組み合わせた部分式に分割される。
例えば、取得項目抽出部３３０は、図１８に示す集計項目Ｘの計算式をａ３＋ａ１＋ａ２と、（ａ４＊ｂ５）と、ｂ１−ｂ２と、（ｂ３＋ａ５／ｃ３）と、（ｃ４＋（ｃ１＋ｃ２））との５つの部分式に分割する。
この場合、取得項目抽出部３３０は、図１９のテーブル情報ファイル３９２に基づいて、テーブルＡの列名だけを含むａ３＋ａ１＋ａ２をテーブルＡの取得項目として抽出する。また、取得項目抽出部３３０は、抽出したａ３＋ａ１＋ａ２に一つの変数名Ａ＿１を割り当てる。
【００５６】
（２）取得項目抽出部３３０は、残りの部分式に含まれる各演算子の種類および各組の括弧に基づいて、残りの部分式を複数の細部式に分割する。そして、取得項目抽出部３３０は、複数の細部式から、テーブルＡの列名を変数名として含んで他のテーブルの列名を含まない細部式を、テーブルＡの取得項目として抽出する。
例えば、取得項目抽出部３３０は、残りの部分式である（ｂ３＋ａ５／ｃ３）をｂ３とａ５／ｃ３との２つの細部式に分割する。また、取得項目抽出部３３０は、残りの部分式である（ｃ４＋（ｃ１＋ｃ２））をｃ４と（ｃ１＋ｃ２）との２つの細部式に分割する。
この場合、取得項目抽出部３３０は、図１９のテーブル情報ファイル３９２に基づいて、テーブルＡの列名だけを含む細部式が無いと判断する。
【００５７】
（３）取得項目抽出部３３０は、残りの細部式に含まれるテーブルＡの列名をテーブルＡの取得項目として抽出する。
例えば、取得項目抽出部３３０は、残りの細部式であるａ５／ｃ３からテーブルＡの列名であるａ５をテーブルＡの取得項目として抽出する。
Ｓ２２０の後、処理はＳ２３０に進む。
【００５８】
Ｓ２３０において、取得項目ファイル生成部３４０は、テーブル毎の取得項目に基づいて取得項目ファイル２９１（図５参照）を生成する。
取得項目ファイル２９１は、テーブル名とテーブル名に対応付けられた取得項目とを含む。
Ｓ２３０の後、処理はＳ２４０に進む。
【００５９】
Ｓ２４０において、集計式ファイル生成部３５０は、テーブル毎の取得項目に基づいて集計式ファイル２９４（図１４参照）を生成する。
集計式ファイル２９４は、集計項目と集計項目に対応付けられた集計式（計算式）とを含む。集計式は、取得項目である部分式（および細部式）が変数名に置き換えられた計算式である。
Ｓ２４０の後、計算式解析処理は終了する。
【００６０】
図２０から図３０は、実施の形態１における計算式解析装置３００の計算式解析処理の詳細を示すフローチャートである。
実施の形態１における計算式解析装置３００の計算式解析処理の詳細について、図２０から図３０に基づいて説明する。
【００６１】
Ｓ３００１（図２０参照）において、計算式解析部３１０は計算式を取得し、取得した計算式を集計式ファイル２９４に設定する。
以後、集計式ファイル２９４に設定された計算式の一部が、Ａ＿１、Ｂ＿１またはＣ＿１などの変数名に置き換えられる（図１４参照）。
Ｓ３００１の後、処理はＳ３００２に進む。
【００６２】
Ｓ３００２において、計算式解析部３１０は、計算式に計算式を囲む括弧を付ける。
Ｓ３００２の後、処理はＳ３００３に進む。
【００６３】
Ｓ３００３において、計算式解析部３１０は、計算式から括弧に囲まれた部分（以下、括弧式という）を抽出し、抽出した括弧式を括弧管理リスト３０１（図３１参照）に設定する。
計算式解析部３１０は、各括弧式の識別子を生成し、生成した各括弧式の識別子を括弧管理リスト３０１に設定する。また、各括弧式に含まれる下位の括弧式（例えば、計算式に含まれる各括弧式）を識別子に置き換える。
計算式解析部３１０は、各括弧式を囲う括弧の階層の深さを括弧管理リスト３０１に設定する。
Ｓ３００３の後、処理はＳ３００４に進む。
【００６４】
図３１は、実施の形態１における括弧管理リスト３０１を示す図である。
図３１に示すように、括弧管理リスト３０１は、Ｎｏと、括弧式名と、テーブル名と、括弧式と、深さと、済みフラグとを設定欄として含む。
括弧式名は、計算式３０９に含まれる括弧式を識別する識別子である。
テーブル名は、括弧式に含まれる各演算要素に共通するテーブルの識別子である。
深さは、括弧式を囲う括弧の階層の深さである。深さが０である括弧式は計算式３０９である。
済みフラグは、括弧式が処理済みであるか否かを意味するフラグ値を示す。初期値（０）は括弧式が未処理であることを意味する。
図２０に戻り、Ｓ３００４から説明を続ける。
【００６５】
Ｓ３００４において、計算式解析部３１０は、括弧管理リスト３０１に含まれる各括弧式を括弧の深い順にソートする。
Ｓ３００４により、図３１の括弧管理リスト３０１は図３２のように変化する。
図３２は、実施の形態１における括弧管理リスト３０１（ソート後）を示す図である。
Ｓ３００４の後、処理はＳ３０１１に進む。
【００６６】
Ｓ３０１１において、計算式解析部３１０は、括弧管理リスト３０１から未選択の括弧式を順番に一つ選択する。つまり、計算式解析部３１０は括弧の深い順に未選択の括弧式を一つ選択する。
以下、Ｓ３０１１で選択した括弧式を選択式という。
Ｓ３０１１の後、処理はＳ３０１２に進む。
【００６７】
Ｓ３０１２において、計算式解析部３１０は、選択式に含まれる各演算子を分割する位置として、選択式を複数の演算要素に分割する。
例えば、選択式が図３２の１番目の括弧式（ｃ１＋ｃ２）である場合、計算式解析部３１０は選択式をｃ１＋とｃ２との２個の演算要素に分割する。
例えば、選択式が図３２の５番目の括弧式である場合、計算式解析部３１０は選択式をａ３＋、ａ１＋、ａ２＋、Ｋ１＋、ｂ１−、ｂ２＋、Ｋ２＋およびＫ４の８個の演算要素に分割する。
Ｓ３０１２の後、処理はＳ３０１３に進む。
【００６８】
Ｓ３０１３において、計算式解析部３１０は、演算要素を識別する番号を示す作業変数ｎに初期値（１）を設定する。
Ｓ３０１３の後、処理はＳ３０２１に進む。
【００６９】
Ｓ３０２１において、計算式解析部３１０は、選択式からｎ番目の演算要素を選択する。以下、ｎ番目の演算要素を第ｎ要素という。
Ｓ３０２１の後、処理はＳ３０２２に進む。
【００７０】
Ｓ３０２２において、計算式解析部３１０は第ｎ要素を要素列に追加する。要素列は、取得項目を決定するために各演算要素が追加および削除される配列である。
Ｓ３０２２の後、処理はＳ３１０１（図２１参照）に進む。
【００７１】
Ｓ３１０１（図２１参照）において、計算式解析部３１０は、要素列に含まれる演算要素が１つであるか又は複数であるかを判定する。
要素列に含まれる演算要素が１つである場合（ＹＥＳ）、処理はＳ３１０２に進む。
要素列に含まれる演算要素が複数である場合（ＮＯ）、処理はＳ３１０３に進む。
【００７２】
Ｓ３１０２において、計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、第ｎ要素が含まれるテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名を第ｎ要素が含まれる選択式に対応付けて、括弧管理リスト３０１（図３２参照）のテーブル名の欄に設定する。
Ｓ３１０２の後、処理はＳ３１１１に進む。
【００７３】
Ｓ３１０３において、計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、第ｎ要素が含まれるテーブルのテーブル名と第ｎ−１要素が含まれるテーブルのテーブル名とを特定する。
そして、計算式解析部３１０は、第ｎ要素のテーブル名と第ｎ−１要素のテーブル名とが同じであるか否かを判定する。
第ｎ要素のテーブル名と第ｎ−１要素のテーブル名とが同じである場合（ＹＥＳ）、処理はＳ３１１１に進む。
第ｎ要素のテーブル名と第ｎ−１要素のテーブル名とが異なる場合（ＮＯ）、処理はＳ３３０１（図２３参照）に進む。
【００７４】
Ｓ３１１１において、計算式解析部３１０は作業変数ｎに１を加える。
Ｓ３１１１の後、処理はＳ３１２１に進む。
【００７５】
Ｓ３１２１において、計算式解析部３１０は、作業変数ｎが選択式に含まれる演算要素の数（要素数）より大きいか否かを判定する。
作業変数ｎが選択式の要素数より大きい場合（ＹＥＳ）、処理はＳ３１２２に進む。
作業変数ｎが選択式の要素数以下である場合（ＮＯ）、処理はＳ３０２１（図２０参照）に戻る。
【００７６】
Ｓ３１２２において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）に含まれる選択式の済みフラグに、処理済みを意味する値（１）を設定する。以下、処理済みを意味する値を処理済み値という。
Ｓ３１２２の後、処理はＳ３１３１に進む。
【００７７】
Ｓ３１３１において、計算式解析部３１０は、要素列が少なくとも１つの演算要素を含んでいるか否かを判定する。
要素列が演算要素を含んでいる場合（ＹＥＳ）、処理はＳ３２０１（図２２参照）に進む。
要素列が演算要素を含んでいない場合（ＮＯ）、処理はＳ３１３２に進む。
【００７８】
Ｓ３１３２において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）から選択式の済みフラグを選択し、選択した済みフラグのフラグ値を処理済み値に更新する。
Ｓ３１３２の後、処理はＳ３１４１に進む。
【００７９】
Ｓ３１４１において、計算式解析部３１０は、Ｓ３０１１（図２０参照）で選択していない未選択の括弧式が有るか否かを判定する。
未選択の括弧式が有る場合（ＹＥＳ）、処理はＳ３０１１に戻る。
未選択の括弧式が無い場合（ＮＯ）、計算式解析処理は終了する。
【００８０】
Ｓ３２０１（図２２参照）において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）に選択式のテーブル名が設定されているか否かを判定する。
括弧管理リスト３０１に選択式のテーブル名が設定されている場合（ＹＥＳ）、処理はＳ３２０２に進む。
括弧管理リスト３０１に選択式のテーブル名が設定されていない場合（ＮＯ）、処理はＳ３２１１に進む。
【００８１】
Ｓ３２０２において、計算式解析部３１０は、括弧管理リスト３０１から選択式のテーブル名を取得する。
そして、計算式解析部３１０は、取得したテーブル名に対応付けて部分式を取得項目ファイル２９１（図５参照）に設定する。
但し、要素列に複数の演算要素が含まれる場合、計算式解析部３１０は、その複数の演算要素から成る部分式を識別する変数名を生成し、部分式と変数名とを取得項目ファイル２９１（図５参照）に設定する。また、計算式解析部３１０は、集計式ファイル２９４に含まれる部分式を変数名に置き換える。
Ｓ３２０２の後、処理はＳ３２０３に進む。
【００８２】
Ｓ３２０３において、計算式解析部３１０は、要素列から要素列に含まれる全ての演算要素を削除する。
Ｓ３２０３の後、処理はＳ３１４１（図２１参照）に進む。
【００８３】
Ｓ３２１１において、計算式解析部３１０は、要素列に含まれる演算要素が１つであるか又は複数であるかを判定する。
要素列に含まれる演算要素が１つである場合（ＹＥＳ）、処理はＳ３２１２に進む。
要素列に含まれる演算要素が複数である場合（ＮＯ）、処理はＳ３２１４に進む。
【００８４】
Ｓ３２１２において、計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、要素列に含まれる演算要素を含むテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名に対応付けて演算要素を取得項目ファイル２９１（図５参照）に設定する。
Ｓ３２１２の後、処理はＳ３２１３に進む。
【００８５】
Ｓ３２１３において、計算式解析部３１０は、要素列から要素列に含まれる演算要素を削除する。
Ｓ３２１３の後、処理はＳ３１４１（図２１参照）に進む。
【００８６】
Ｓ３２１４において、計算式解析部３１０は、要素列に含まれる複数の演算要素から成る部分式を識別する変数名を生成する。
計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、部分式に含まれる演算要素を含むテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名に対応付けて部分式と変数名とを取得項目ファイル２９１（図５参照）に設定する。
Ｓ３２１４の後、処理はＳ３２１５に進む。
【００８７】
Ｓ３２１５において、計算式解析部３１０は、集計式ファイル２９４に含まれる部分式を変数名に置換する。
Ｓ３２１５の後、処理はＳ３２１６に進む。
【００８８】
Ｓ３２１６において、計算式解析部３１０は、要素列から全ての演算要素を削除する。
Ｓ３２１６の後、処理はＳ３１４１（図２１参照）に進む。
【００８９】
Ｓ３３０１（図２３参照）において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）から選択式のテーブル名を削除する。
Ｓ３３０１の後、処理はＳ３３１１に進む。
【００９０】
Ｓ３３１１において、計算式解析部３１０は、第ｎ−１要素の演算子が加減演算子（＋または−）と乗除演算子（＊又は／）とのいずれであるかを判定する。
第ｎ−１要素の演算子が加減演算子である場合、処理はＳ３３２１に進む。
第ｎ−１要素の演算子が乗除演算子である場合、処理はＳ３４０１（図２５参照）に進む。
【００９１】
Ｓ３３２１において、計算式解析部３１０は、第ｎ要素を除いた要素列に含まれる演算要素が１つであるか又は複数であるかを判定する。
第ｎ要素を除いた要素列に含まれる演算要素が１つである場合（ＹＥＳ）、処理はＳ３３３１に進む。
第ｎ要素を除いた要素列に含まれる演算要素が複数である場合（ＮＯ）、処理はＳ３３４１（図２４参照）に進む。
【００９２】
Ｓ３３３１において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）に基づいて、第ｎ−１要素が括弧式であるか否かを判定する。第ｎ−１要素が括弧管理リスト３０１に含まれるいずれかの括弧式名と同じである場合、第ｎ−１要素は括弧式である。
第ｎ−１要素が括弧式である場合（ＹＥＳ）、処理はＳ３３３２に進む。
第ｎ−１要素が括弧式でない場合（ＮＯ）、処理はＳ３３３５に進む。
【００９３】
Ｓ３３３２において、計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、第ｎ−１要素（括弧式）に含まれる各演算要素を含むテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名に対応付けて第ｎ−１要素を取得項目ファイル２９１（図５参照）に設定する。
Ｓ３３３２の後、処理はＳ３３３３に進む。
【００９４】
Ｓ３３３３において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）から第ｎ−１要素（括弧式）の済みフラグを選択し、選択した済みフラグのフラグ値を処理済み値に更新する。
Ｓ３３３３の後、処理はＳ３３３４に進む。
【００９５】
Ｓ３３３４において、計算式解析部３１０は第ｎ−１要素を要素列から削除する。
Ｓ３３３４の後、処理はＳ３１１１（図２１参照）に進む。
【００９６】
Ｓ３３３５において、計算式解析部３１０は第ｎ−１要素を取得項目ファイル２９１に設定する（Ｓ３３３２と同様）。
Ｓ３３３５の後、処理はＳ３３３６に進む。
【００９７】
Ｓ３３３６において、計算式解析部３１０は第ｎ−１要素を要素列から削除する。
Ｓ３３３６の後、処理はＳ３１１１（図２１参照）に進む。
【００９８】
Ｓ３３４１（図２４参照）において、計算式解析部３１０は、要素列に含まれる複数の演算要素から第ｎ要素を除いた残りの１つ以上の演算要素（以下、第ｎ要素を除いた要素列という）に括弧式が含まれるか否かを判定する。
第ｎ要素を除いた要素列に括弧式が含まれる場合（ＹＥＳ）、処理はＳ３３４２に進む。
第ｎ要素を除いた要素列に括弧式が含まれない場合（ＮＯ）、処理はＳ３３４６に進む。
【００９９】
Ｓ３３４２において、計算式解析部３１０は、第ｎ要素を除いた要素列を識別する変数名を生成する。
計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、第ｎ要素を除いた要素列に含まれる各演算要素を含むテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名に対応付けて第ｎ要素を除いた要素列と変数名とを取得項目ファイル２９１（図５参照）に設定する。
Ｓ３３４２の後、処理はＳ３３４３に進む。
【０１００】
Ｓ３３４３において、計算式解析部３１０は、集計式ファイル２９４に含まれる第ｎ要素を除いた要素列を変数名に置換する。
Ｓ３３４３の後、処理はＳ３３４４に進む。
【０１０１】
Ｓ３３４４において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）から第ｎ要素を除いた要素列に含まれる括弧式の済みフラグを選択し、選択した済みフラグのフラグ値を処理済み値に更新する。
Ｓ３３４４の後、処理はＳ３３４５に進む。
【０１０２】
Ｓ３３４５において、計算式解析部３１０は、要素列から第ｎ要素以外の全ての演算要素を削除する。
Ｓ３３４５の後、処理はＳ３１１１（図２１参照）に進む。
【０１０３】
Ｓ３３４６において、計算式解析部３１０は、第ｎ要素を除いた要素列を変数名付きで取得項目ファイル２９１に設定する（Ｓ３３４２と同様）。
Ｓ３３４６の後、処理はＳ３３４７に進む。
【０１０４】
Ｓ３３４７において、計算式解析部３１０は、集計式ファイル２９４に含まれる第ｎ要素を除いた要素列を変数名に置換する。
Ｓ３３４７の後、処理はＳ３３４８に進む。
【０１０５】
Ｓ３３４８において、計算式解析部３１０は、要素列から第ｎ要素以外の全ての演算要素を削除する。
Ｓ３３４８の後、処理はＳ３１１１（図２１参照）に進む。
【０１０６】
Ｓ３４０１（図２５参照）において、計算式解析部３１０は、第ｎ要素を除いた要素列に加減演算子（＋又は−）が含まれるか否かを判定する。
第ｎ要素を除いた要素列に加減演算子が含まれる場合（ＹＥＳ）、処理はＳ３４１１に進む。
第ｎ要素を除いた要素列に加減演算子が含まれない場合（ＮＯ）、処理はＳ３５０１に進む（図２９参照）。
【０１０７】
Ｓ３４１１において、計算式解析部３１０は、第ｎ要素を除いた要素列に含まれる加減演算子付きの演算要素のうちの最後尾の演算要素の順番を示す番号を作業変数ｍに設定する。
例えば、要素列の３番目に含まれる演算要素および要素列の５番目に含まれる演算要素が加減演算子付きの演算要素である場合、計算式解析部３１０は３番と５番とのうちの最大の番号である５番を選択し、作業変数ｍに５を設定する。
Ｓ３４１１の後、処理はＳ３４２１に進む。
【０１０８】
Ｓ３４２１において、計算式解析部３１０は、作業変数ｍの値が１であるか又は２以上の値であるかを判定する。
作業変数ｍの値が１である場合（ＹＥＳ）、処理はＳ３４３１に進む。
作業変数ｍの値が２以上の値である場合（ＮＯ）、処理はＳ３４４１（図２６参照）に進む。
【０１０９】
Ｓ３４３１において、計算式解析部３１０は、第ｍ要素（第１要素）が括弧式であるか否かを判定する。
第ｍ要素が括弧式である場合（ＹＥＳ）、処理はＳ３４３２に進む。
第ｍ要素が括弧式でない場合（ＮＯ）、処理はＳ３４３５に進む。
【０１１０】
Ｓ３４３２において、計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、第ｍ要素（括弧式）に含まれる各演算要素を含むテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名に対応付けて第ｍ要素を取得項目ファイル２９１（図５参照）に設定する。
Ｓ３４３２の後、処理はＳ３４３３に進む。
【０１１１】
Ｓ３４３３において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）から第ｍ要素（括弧式）の済みフラグを選択し、選択した済みフラグのフラグ値を処理済み値に更新する。
Ｓ３４３３の後、処理はＳ３４３４に進む。
【０１１２】
Ｓ３４３４において、計算式解析部３１０は、要素列から第ｍ要素を削除する。
Ｓ３４３４の後、処理はＳ３４５１（図２７参照）に進む。
【０１１３】
Ｓ３４３５において、計算式解析部３１０は、第ｍ要素を取得項目ファイル２９１に設定する（Ｓ３４３２と同様）。
Ｓ３４３５の後、処理はＳ３４３６に進む。
【０１１４】
Ｓ３４３６において、計算式解析部３１０は、要素列から第ｍ要素を削除する。
Ｓ３４３６の後、処理は３４５１（図２７参照）に進む。
【０１１５】
Ｓ３４４１（図２６参照）において、計算式解析部３１０は、要素列の１番目からｍ番目に含まれる演算要素（以下、第１〜第ｍ要素という）に括弧式が含まれるか否かを判定する。
第１〜第ｍ要素に括弧式が含まれる場合（ＹＥＳ）、処理はＳ３４４２に進む。
第１〜第ｍ要素に括弧式が含まれない場合（ＮＯ）、処理はＳ３４４６に進む。
【０１１６】
Ｓ３４４２において、計算式解析部３１０は、第１〜第ｍ要素を識別する変数名を生成する。
計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、第１〜第ｍ要素を含むテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名に対応付けて第１〜第ｍ要素と変数名とを取得項目ファイル２９１（図５参照）に設定する。
Ｓ３４４２の後、処理はＳ３４４３に進む。
【０１１７】
Ｓ３４４３において、計算式解析部３１０は、集計式ファイル２９４に含まれる第１〜第ｍ要素を変数名に置換する。
Ｓ３４４３の後、処理はＳ３４４４に進む。
【０１１８】
Ｓ３４４４において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）から第１〜第ｍ要素（括弧式）に含まれる括弧式の済みフラグを選択し、選択した済みフラグのフラグ値を処理済み値に更新する。
Ｓ３４４４の後、処理はＳ３４４５に進む。
【０１１９】
Ｓ３４４５において、計算式解析部３１０は、要素列から第１〜第ｍ要素を削除する。
Ｓ３４４５の後、処理はＳ３４５１（図２７参照）に進む。
【０１２０】
Ｓ３４４６において、計算式解析部３１０は、第１〜第ｍ要素を変数名付きで取得項目ファイル２９１に設定する（Ｓ３４４２と同様）。
Ｓ３４４６の後、処理はＳ３４４７に進む。
【０１２１】
Ｓ３４４７において、計算式解析部３１０は、集計式ファイル２９４に含まれる第１〜第ｍ要素を変数名に置換する。
Ｓ３４４７の後、処理はＳ３４４８に進む。
【０１２２】
Ｓ３４４８において、計算式解析部３１０は、要素列から第１〜第ｍ要素を削除する。
Ｓ３４４８の後、処理はＳ３４５１（図２７参照）に進む。
【０１２３】
以下、Ｓ３４３４（図２５参照）、Ｓ３４３６（図２５参照）、Ｓ３４４５（図２６参照）またはＳ３４４８（図２６参照）で第１〜第ｍ要素を削除した後の要素列を残り要素列という。
【０１２４】
Ｓ３４５１（図２７参照）において、計算式解析部３１０は、第ｎ要素を除いた残り要素列に含まれる演算要素が１つであるか又は複数であるかを判定する。
第ｎ要素を除いた残り要素列に含まれる演算要素が１つである場合（ＹＥＳ）、処理はＳ３４６１に進む。
第ｎ要素を除いた残り要素列に含まれる演算要素が複数である場合（ＮＯ）、処理はＳ３４７１（図２８参照）に進む。
【０１２５】
Ｓ３４６１において、計算式解析部３１０は、第ｎ要素を除いた残り要素列に含まれる演算要素が括弧式であるか否かを判定する。
第ｎ要素を除いた残り要素列が括弧式である場合（ＹＥＳ）、処理はＳ３４６２に進む。
第ｎ要素を除いた残り要素列が括弧式でない場合（ＮＯ）、処理はＳ３４６５に進む。
【０１２６】
Ｓ３４６２において、計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、第ｎ要素を除いた残り要素列（括弧式）に含まれる各演算要素を含むテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名に対応付けて第ｎ要素を除いた残り要素列を取得項目ファイル２９１（図５参照）に設定する。
Ｓ３４６２の後、処理はＳ３４６３に進む。
【０１２７】
Ｓ３４６３において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）から第ｎ要素を除いた残り要素列（括弧式）の済みフラグを選択し、選択した済みフラグのフラグ値を処理済み値に更新する。
Ｓ３４６３の後、処理はＳ３４６４に進む。
【０１２８】
Ｓ３４６４において、計算式解析部３１０は、要素列から第ｎ要素以外の演算要素を削除する。
Ｓ３４６４の後、処理はＳ３１１１（図２１参照）に進む。
【０１２９】
Ｓ３４６５において、計算式解析部３１０は、第ｎ要素を除いた残り要素列を取得項目ファイル２９１に設定する（Ｓ３４６２と同様）。
Ｓ３４６５の後、処理はＳ３４６６に進む。
【０１３０】
Ｓ３４６６において、計算式解析部３１０は、要素列から第ｎ要素以外の演算要素を削除する。
Ｓ３４３６の後、処理は３１１１（図２１参照）に進む。
【０１３１】
Ｓ３４７１（図２８参照）において、計算式解析部３１０は、第ｎ要素を除いた残り要素列に括弧式が含まれるか否かを判定する。
第ｎ要素を除いた残り要素列に括弧式が含まれる場合（ＹＥＳ）、処理はＳ３４７２に進む。
第ｎ要素を除いた残り要素列に括弧式が含まれない場合（ＮＯ）、処理はＳ３４７６に進む。
【０１３２】
Ｓ３４７２において、計算式解析部３１０は、第ｎ要素を除いた残り要素列を識別する変数名を生成する。
計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、第ｎ要素を除いた残り要素列に含まれる各演算要素を含むテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名に対応付けて第ｎ要素を除いた残り要素列と変数名とを取得項目ファイル２９１（図５参照）に設定する。
Ｓ３４７２の後、処理はＳ３４７３に進む。
【０１３３】
Ｓ３４７３において、計算式解析部３１０は、集計式ファイル２９４に含まれる第ｎ要素を除いた残り要素列を変数名に置換する。
Ｓ３４７３の後、処理はＳ３４７４に進む。
【０１３４】
Ｓ３４７４において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）から第ｎ要素を除いた残り要素列に含まれる括弧式の済みフラグを選択し、選択した済みフラグのフラグ値を処理済み値に更新する。
Ｓ３４７４の後、処理はＳ３４７５に進む。
【０１３５】
Ｓ３４７５において、計算式解析部３１０は、要素列から第ｎ要素以外の全ての演算要素を削除する。
Ｓ３４７５の後、処理はＳ３１１１（図２１参照）に進む。
【０１３６】
Ｓ３４７６において、計算式解析部３１０は、第ｎ要素を除いた残り要素列を変数名付きで取得項目ファイル２９１に設定する（Ｓ３４７２と同様）。
Ｓ３４７６の後、処理はＳ３４７７に進む。
【０１３７】
Ｓ３４７７において、計算式解析部３１０は、集計式ファイル２９４に含まれる第ｎ要素を除いた残り要素列を変数名に置換する。
Ｓ３４７７の後、処理はＳ３４７８に進む。
【０１３８】
Ｓ３４７８において、計算式解析部３１０は、要素列から第ｎ要素以外の演算要素を削除する。
Ｓ３４７８の後、処理はＳ３１１１（図２１参照）に進む。
【０１３９】
Ｓ３５０１（図２９参照）において、計算式解析部３１０は、第ｎ要素を除いた要素列に含まれる演算要素が１つであるか又は複数であるかを判定する。
第ｎ要素を除いた要素列に含まれる演算要素が１つである場合（ＹＥＳ）、処理はＳ３５１１に進む。
第ｎ要素を除いた要素列に含まれる演算要素が複数である場合（ＮＯ）、処理はＳ３５２１（図３０参照）に進む。
【０１４０】
Ｓ３５１１において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）に基づいて、第ｎ−１要素が括弧式であるか否かを判定する。第ｎ−１要素が括弧管理リスト３０１に含まれるいずれかの括弧式名と同じである場合、第ｎ−１要素は括弧式である。
第ｎ−１要素が括弧式である場合（ＹＥＳ）、処理はＳ３５１２に進む。
第ｎ−１要素が括弧式でない場合（ＮＯ）、処理はＳ３５１５に進む。
【０１４１】
Ｓ３５１２において、計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、第ｎ−１要素に含まれる各演算要素を含むテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名に対応付けて第ｎ−１要素を取得項目ファイル２９１（図５参照）に設定する。
Ｓ３５１２の後、処理はＳ３５１３に進む。
【０１４２】
Ｓ３５１３において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）から第ｎ−１要素（括弧式）の済みフラグを選択し、選択した済みフラグのフラグ値を処理済み値に更新する。
Ｓ３５１３の後、処理はＳ３５１４に進む。
【０１４３】
Ｓ３５１４において、計算式解析部３１０は第ｎ−１要素を要素列から削除する。
Ｓ３５１４の後、処理はＳ３１１１（図２１参照）に進む。
【０１４４】
Ｓ３５１５において、計算式解析部３１０は第ｎ−１要素を取得項目ファイル２９１に設定する（Ｓ３５１２と同様）。
Ｓ３５１５の後、処理はＳ３５１６に進む。
【０１４５】
Ｓ３５１６において、計算式解析部３１０は第ｎ−１要素を要素列から削除する。
Ｓ３５１６の後、処理はＳ３１１１（図２１参照）に進む。
【０１４６】
Ｓ３５２１（図３０参照）において、計算式解析部３１０は、第ｎ要素を除いた要素列に括弧式が含まれるか否かを判定する。
第ｎ要素を除いた要素列に括弧式が含まれる場合（ＹＥＳ）、処理はＳ３５２２に進む。
第ｎ要素を除いた要素列に括弧式が含まれない場合（ＮＯ）、処理はＳ３５２５に進む。
【０１４７】
Ｓ３５２２において、計算式解析部３１０は、第ｎ要素を除いた要素列を識別する変数名を生成する。
計算式解析部３１０は、テーブル情報ファイル３９２（図１９参照）に基づいて、第ｎ要素を除いた要素列に含まれる各演算要素を含むテーブルのテーブル名を特定する。
そして、計算式解析部３１０は、特定したテーブル名に対応付けて第ｎ要素を除いた要素列と変数名とを取得項目ファイル２９１（図５参照）に設定する。
Ｓ３５２２の後、処理はＳ３５２３に進む。
【０１４８】
Ｓ３５２３において、計算式解析部３１０は、括弧管理リスト３０１（図３２参照）から第ｎ要素を除いた要素列に含まれる括弧式の済みフラグを選択し、選択した済みフラグのフラグ値を処理済み値に更新する。
Ｓ３５２３の後、処理はＳ３５２４に進む。
【０１４９】
Ｓ３５２４において、計算式解析部３１０は、要素列から第ｎ要素以外の全ての演算要素を削除する。
Ｓ３５２４の後、処理はＳ３１１１（図２１参照）に進む。
【０１５０】
Ｓ３５２５において、計算式解析部３１０は、第ｎ要素を除いた要素列を変数名付きで取得項目ファイル２９１に設定する（Ｓ３５２２と同様）。
Ｓ３５２５の後、処理はＳ３５２６に進む。
【０１５１】
Ｓ３５２６において、計算式解析部３１０は、要素列から第ｎ要素以外の全ての演算要素を削除する。
Ｓ３５２６の後、処理はＳ３１１１（図２１参照）に進む。
【０１５２】
図３３から図３７は、実施の形態１における括弧管理リスト３０１と取得項目ファイル２９１と集計式ファイル２９４との設定例を示す図である。
計算式解析処理（図２０から図３０参照）が実行されることにより、括弧管理リスト３０１、取得項目ファイル２９１および集計式ファイル２９４は図３３から図３７に示すように設定される。図中の太枠内の括弧式はＳ３０１１（図２０参照）で選択された選択式である。
図３３は、１番目の括弧式が選択された場合の図である。
図３４は、２番目の括弧式が選択された場合の図である。
図３５は、３番目の括弧式が選択された場合の図である。
図３６は、４番目の括弧式が選択された場合の図である。
図３７は、５番目の括弧式が選択された場合の図である。
【０１５３】
図３８は、実施の形態１における分散データ集計装置２００および計算式解析装置３００のハードウェア構成の一例を示す図である。
実施の形態１における分散データ集計装置２００および計算式解析装置３００のハードウェア構成の一例について、図３８に基づいて説明する。但し、分散データ集計装置２００および計算式解析装置３００のハードウェア構成は図３８に示す構成と異なる構成であってもよい。
【０１５４】
分散データ集計装置２００および計算式解析装置３００は、演算装置９０１、補助記憶装置９０２、主記憶装置９０３、通信装置９０４および入出力装置９０５を備えるコンピュータである。
演算装置９０１、補助記憶装置９０２、主記憶装置９０３、通信装置９０４および入出力装置９０５はバス９０９に接続している。
【０１５５】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリまたはハードディスク装置である。
主記憶装置９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、有線または無線でインターネット、ＬＡＮ（ローカルエリアネットワーク）、電話回線網またはその他のネットワークを介して通信を行う。
入出力装置９０５は、例えば、マウス、キーボード、ディスプレイ装置である。
【０１５６】
プログラムは、通常は補助記憶装置９０２に記憶されており、主記憶装置９０３にロードされ、演算装置９０１に読み込まれ、演算装置９０１によって実行される。
例えば、オペレーティングシステム（ＯＳ）が補助記憶装置９０２に記憶される。また、「〜部」として説明している機能を実現するプログラムが補助記憶装置９０２に記憶される。そして、ＯＳおよび「〜部」として説明している機能を実現するプログラムは主記憶装置９０３にロードされ、演算装置９０１によって実行される。「〜部」は「〜処理」「〜工程」と読み替えることができる。
【０１５７】
「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等の処理の結果を示す情報、データ、ファイル、信号値または変数値が主記憶装置９０３または補助記憶装置９０２に記憶される。また、分散データ集計装置２００または計算式解析装置３００が使用するその他のデータが主記憶装置９０３または補助記憶装置９０２に記憶される。
【０１５８】
実施の形態１は、クライアントサーバシステム１００の形態の一例である。
つまり、クライアントサーバシステム１００は、実施の形態１で説明した構成要素の一部を備えなくても構わない。また、クライアントサーバシステム１００は、実施の形態１で説明していない構成要素を備えても構わない。
【０１５９】
例えば、クライアントサーバシステム１００に備わる分散データ集計システム１３０は１台の装置で構成されても構わない。つまり、分散データ集計装置２００が計算式解析装置３００の機能を備えても構わない。
例えば、分散データ集計システム１３０はデータベースサーバ１４０（テーブル１４１）を備えても構わない。
【０１６０】
例えば、クライアントサーバシステム１００は、複数のアプリケーションサーバ１２０を備えても構わない（図３９参照）。
この場合、利用者は、いずれかのアプリケーションサーバ１２０を利用者端末１１０に指定する。そして、利用者端末１１０は指定されたアプリケーションサーバ１２０に集計要求１０１を送信し、そのアプリケーションサーバ１２０から集計結果１０４を受信する。
分散データ集計システム１３０は、集計要求１０１を送信したアプリケーションサーバ１２０に集計結果１０４を送信する。
図３９は、実施の形態１におけるクライアントサーバシステム１００の一例を示す図である。
【０１６１】
例えば、クライアントサーバシステム１００は、アプリケーションサーバ１２０を備えなくても構わない。
この場合、利用者端末１１０はアプリケーションサーバ１２０を介さずに分散データ集計システム１３０と直接通信する。
【０１６２】
例えば、クライアントサーバシステム１００は、複数のデータベースサーバ１４０を備えても構わない（図４０参照）。
この場合、分散データ集計装置２００はサーバ情報ファイル２９５（図４１参照）を記憶する。サーバ情報ファイル２９５は、データベースサーバ１４０のサーバ名と通信アドレスとに対応付けてデータベースサーバ１４０が管理しているテーブルのテーブル名を含む。
そして、分散データ集計装置２００はサーバ情報ファイル２９５に基づいてデータベースサーバ１４０を選択し、選択したデータベースサーバ１４０に検索文１０２を送信する。例えば、テーブルＡの検索文１０２を送信する場合、分散データ集計装置２００は、図４１のサーバ情報ファイル２９５に基づいてテーブル名Ａに対応付けられたサーバａを選択する。そして、分散データ集計装置２００は、サーバａの通信アドレスＩＰａを用いてテーブルＡの検索文１０２をサーバａに送信する。
図４０は、実施の形態１におけるクライアントサーバシステム１００の一例を示す図である。
図４１は、実施の形態１におけるサーバ情報ファイル２９５の一例を示す図である。
【０１６３】
実施の形態１においてフローチャート等を用いて説明した処理手順は、実施の形態１に係る方法およびプログラムの処理手順の一例である。つまり、実施の形態１に係る方法およびプログラムは、実施の形態１で説明した処理手順と一部異なる処理手順で実現されても構わない。
【０１６４】
実施の形態１により、例えば、以下のような効果を奏する。
分散データ集計システム１３０は、分散した格納先（テーブルおよびデータベース）に対する検索文を高速に組み立て、分散した格納先から取得する情報量（取得項目の数）を抑制し、分散した格納先に格納されている複数の計測値を集計することができる。
【符号の説明】
【０１６５】
１００  クライアントサーバシステム、１０１  集計要求、１０２  検索文、１０３  検索結果、１０４  集計結果、１０９  ネットワーク、１１０  利用者端末、１２０  アプリケーションサーバ、１３０  分散データ集計システム、１４０  データベースサーバ、１４１  テーブル、２００  分散データ集計装置、２１０  集計要求受信部、２２０  検索文生成部、２３０  検索文発行部、２４０  検索結果マージ部、２５０  マージ結果集計部、２６０  集計結果送信部、２９０  集計装置記憶部、２９１  取得項目ファイル、２９２  検索文テンプレート、２９３  マージキー情報ファイル、２９４  集計式ファイル、２９５  サーバ情報ファイル、３００  計算式解析装置、３０１  括弧管理リスト、３０９  計算式、３１０  計算式解析部、３２０  計算式取得部、３３０  取得項目抽出部、３４０  取得項目ファイル生成部、３５０  集計式ファイル生成部、３９０  解析装置記憶部、３９１  計算式ファイル、３９２  テーブル情報ファイル、９０１  演算装置、９０２  補助記憶装置、９０３  主記憶装置、９０４  通信装置、９０５  入出力装置、９０９  バス。
【図１】
2015125538.tif 000003
【図２】
2015125538.tif 000004
【図３】
2015125538.tif 000005
【図４】
2015125538.tif 000006
【図５】
2015125538.tif 000007
【図６】
2015125538.tif 000008
【図７】
2015125538.tif 000009
【図８】
2015125538.tif 000010
【図９】
2015125538.tif 000011
【図１０】
2015125538.tif 000012
【図１１】
2015125538.tif 000013
【図１２】
2015125538.tif 000014
【図１３】
2015125538.tif 000015
【図１４】
2015125538.tif 000016
【図１５】
2015125538.tif 000017
【図１６】
2015125538.tif 000018
【図１７】
2015125538.tif 000019
【図１８】
2015125538.tif 000020
【図１９】
2015125538.tif 000021
【図２０】
2015125538.tif 000022
【図２１】
2015125538.tif 000023
【図２２】
2015125538.tif 000024
【図２３】
2015125538.tif 000025
【図２４】
2015125538.tif 000026
【図２５】
2015125538.tif 000027
【図２６】
2015125538.tif 000028
【図２７】
2015125538.tif 000029
【図２８】
2015125538.tif 000030
【図２９】
2015125538.tif 000031
【図３０】
2015125538.tif 000032
【図３１】
2015125538.tif 000033
【図３２】
2015125538.tif 000034
【図３３】
2015125538.tif 000035
【図３４】
2015125538.tif 000036
【図３５】
2015125538.tif 000037
【図３６】
2015125538.tif 000038
【図３７】
2015125538.tif 000039
【図３８】
2015125538.tif 000040
【図３９】
2015125538.tif 000041
【図４０】
2015125538.tif 000042
【図４１】
2015125538.tif 000043