(57)【要約】【課題】繰り返し型のクエリ処理の効率化を図ることを課題とする。【解決手段】分析装置１０は、所定の処理を繰り返し行う繰り返し型の処理要求を解析し、該処理要求を、繰り返し処理において結果が変化しない不変データ処理要求と、繰り返し処理において結果が変化する可変データ処理要求とで分割する。そして、分析装置１０は、処理要求分割部１１によって分割された不変データ処理要求を実行して実行結果を記憶部１３に記憶し、記憶部１３に記憶された実行結果を用いて、処理要求分割部１１によって分割された可変データ処理要求を繰り返し実行する。【選択図】図１
2014228974.tif 000002
【特許請求の範囲】
【請求項１】
分析装置で実行される分析方法であって、
所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割工程と、
前記分割工程によって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割工程によって分割された第二の処理要求を繰り返し実行する実行工程と、
を含んだことを特徴とする分析方法。
【請求項２】
前記分割工程は、一つまたは複数のテーブルを入力とする処理要求であって、出力結果を入力で指定されたテーブルの一つに出力する処理要求を解析し、出力に指定されたテーブルの全ての属性について、カラムの値が変化しない不変属性であるか、前記繰り返し処理の前後でカラムの値が変化する可変属性であるかを判定し、判定結果に応じて、不変属性で構成される不変テーブルと、可変属性で構成される可変テーブルとに分割し、前記不変テーブルに対する処理要求を前記第一の処理要求とし、前記可変テーブルに対する処理要求を前記第二の処理要求として分割することを特徴とする請求項１に記載の分析方法。
【請求項３】
前記分割工程は、前記不変テーブルおよび前記可変テーブルを用いて出力に指定されたテーブルを得る処理要求を導出し、導出した処理要求を用いて、前記所定の処理を繰り返し行う要求を含む処理要求を、前記不変テーブルと前記可変テーブルに対する処理要求に書き換えて、書き換えられた処理要求を分解して、前記不変テーブルに対する処理要求を前記第一の処理要求とし、前記可変テーブルに対する処理要求を前記第二の処理要求として分割することを特徴とする請求項２に記載の分析方法。
【請求項４】
前記実行工程は、前記分割工程によって分割された第一の処理要求を実行し、実行結果を実体化し、該実体化された実行結果を、前記第二の処理要求の繰り返し処理において再利用することを特徴とする請求項１〜３のいずれか一つに記載の分析方法。
【請求項５】
前記実行工程は、前記分割工程によって可変属性であると判定された属性について、処理要求を差分計算の式に展開し、繰り返し処理の間で出力に指定されたテーブルの可変属性の差分を記録し、記録した差分を差分計算の式に展開された処理要求に入力することを特徴とする請求項２に記載の分析方法。
【請求項６】
所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割部と、
前記分割部によって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割部によって分割された第二の処理要求を繰り返し実行する実行部と、
を備えることを特徴とする分析装置。
【請求項７】
所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割ステップと、
前記分割ステップによって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割ステップによって分割された第二の処理要求を繰り返し実行する実行ステップと、
をコンピュータに実行させるための分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析方法、分析装置および分析プログラムに関する。
【背景技術】
【０００２】
従来より、データベースに対して繰り返し型のクエリを入力し、所定の処理を繰り返し実行する繰り返し処理を行わせていることが知られている。例えば、リレーショナルデータベースにおいては、ＷＩＴＨ句を用いたＳＱＬ言語を用いて繰り返し処理が記述可能である（例えば、非特許文献１参照）。このような繰り返し処理を含むクエリを受け付けた場合には、所定の終了条件を満たすまで、繰り返し型のクエリを単純に繰り返し行っていた。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】An  Optimization  Framework  for  Map-Reduce  Queries,  by  Leonidas  Fegaras,  Chengkai  Li,  and  Upa  Gupta.  EDBT  2012
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のように単純に繰り返し処理を実行する手法では、クエリを実行する際に、複数の繰り返し処理の間で冗長な処理を行う場合があるので、繰り返し型のクエリ処理を効率よく行えないという課題があった。
【０００５】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、繰り返し型のクエリ処理の効率化を図ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、分析方法は、分析装置で実行される分析方法であって、所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割工程と、前記分割工程によって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割工程によって分割された第二の処理要求を繰り返し実行する実行工程と、を含んだことを特徴とする。
【０００７】
また、分析装置は、所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割部と、前記分割部によって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割部によって分割された第二の処理要求を繰り返し実行する実行部と、を備えることを特徴とする。
【０００８】
また、分析プログラムは、所定の処理を繰り返し行う要求を含む処理要求を解析し、該処理要求を、前記繰り返し処理において結果が変化しない第一の処理要求と、前記繰り返し処理において結果が変化する第二の処理要求とで分割する分割ステップと、前記分割ステップによって分割された第一の処理要求を実行して実行結果を記憶部に記憶し、前記記憶部に記憶された実行結果を用いて前記分割ステップによって分割された第二の処理要求を繰り返し実行する実行ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【０００９】
本願に開示する分析方法、分析装置および分析プログラムは、繰り返し型のクエリ処理の効率化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、第一の実施の形態に係る分析装置の構成を示すブロック図である。
【図２】図２は、Ｐａｇｅ  Ｒａｎｋ計算のクエリの一例を示す図である。
【図３】図３は、更新属性の判定処理を説明する図である。
【図４】図４は、Ｐａｇｅ  Ｒａｎｋ計算を例とした処理要求分割処理の実行例を説明する図である。
【図５】図５は、第一の実施の形態に係る分析装置における処理要求分割部の処理動作を示すフローチャートである。
【図６】図６は、第一の実施の形態に係る分析装置における処理要求実行部の処理動作を示すフローチャートである。
【図７】図７は、第二の実施の形態に係る分析装置の処理動作を示すフローチャートである。
【図８】図８は、Ｐａｇｅ  Ｒａｎｋ計算を例とした処理要求を差分計算の式に展開した例を説明する図である。
【図９】図９は、分析プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明に係る分析方法、分析装置および分析プログラムの実施形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１２】
［第一の実施の形態］
以下の実施の形態では、第一の実施の形態に係る分析装置の構成、および処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
【００１３】
［分析装置の構成］
まず、図１を用いて、分析装置１０の構成を説明する。図１は、第一の実施の形態に係る分析装置の構成を示すブロック図である。図１に示すように、分析装置１０は、処理要求分割部１１と、処理要求実行部１２と、記憶部１３とを有し、また、端末装置２０と接続されている。端末装置２０は、検索要求を分析装置１０に対して送信し、該検索要求に対する検索結果を分析装置１０から受信する。
【００１４】
処理要求分割部１１は、所定の処理を繰り返し行う繰り返し型の処理要求を解析し、該処理要求を、繰り返し処理において結果が変化しない不変データ処理要求と、繰り返し処理において結果が変化する可変データ処理要求とで分割する。
【００１５】
具体的には、処理要求分割部１１は、端末装置２０から検索要求を受信し、受信した検索要求のうちの繰り返し型の処理要求を解析することで、出力に指定されたテーブルのすべての属性について、繰り返し処理の前後でカラムの値が変化しない不変属性、あるいは繰り返し処理の前後で変化する可変属性かを判定する。そして、処理要求分割部１１は、出力に指定されたテーブルＵを２つに分解して、主キーと全ての不変属性から成る不変テーブル、および、主キーと全ての可変属性から成る可変テーブルを得る。
【００１６】
ここで、テーブルＵは、主キーの等価条件を用いて不変テーブルと可変テーブルをテーブル結合するクエリによって得ることができるため、本クエリを用いることで、ユーザが入力した繰り返し型のクエリを書き換えて、テーブルＵを排除する。なお、ここで、繰り返し型のクエリ（処理要求）とは、例えば、一つまたは複数のテーブルを入力として、出力結果を入力で指定されたテーブルの１つに出力するクエリであり、ユーザが、指定した一定回数回処理要求を実行するか、あるいは出力に指定されたテーブルが格納するデータが繰り返し操作の前後で変化しなくなるまで実行するかのいずれかを選択できる。
【００１７】
例えば、処理要求分割部１１は、不変テーブルと可変テーブルを用いて出力に指定された元テーブルを得る処理要求を導出し、導出した処理要求を用いてユーザが入力した繰り返し型の処理要求を不変テーブルと可変テーブルに対する処理要求に書き換えて、書き換えられた処理要求を分解して、不変テーブルに対する処理要求（不変データ処理要求）と，不変テーブルに対する処理要求結果および可変テーブルに対する処理要求（可変データ処理要求）とを得る。
【００１８】
ここで、図２および図３の例を用いて、Ｐａｇｅ  Ｒａｎｋ計算を、具体例として処理要求分割部１１の処理について具体的に説明する。図２は、Ｐａｇｅ  Ｒａｎｋ計算のクエリの一例を示す図である。図３は、更新属性の判定処理を説明する図である。
【００１９】
例えば、Ｐａｇｅ  Ｒａｎｋを処理するクエリは図２のように記述される。ここで、Ｇｒａｐｈはテーブルであり、属性としてノードＩＤを示すｓｒｃ（主キー）、ｓｒｃから発するリンクによって接続されるノードのＩＤを示す「ｄｅｓｔ」、「ｓｒｃ」から発するリンク数を表す「ｃｏｕｎｔ」、「ｓｒｃ」のＰａｇｅ  Ｒａｎｋスコアを表す「ｓｃｏｒｅ」である。本クエリは、入れ子になっており、内側のクエリにおいて、ｄｅｓｔ毎にＰａｇｅ  Ｒａｎｋスコアを次のように計算する。接続されるノードから伝搬されるスコアの総和を計算し（sum（n.score／n.count））、ダンピングファクタ「０．８５」を乗算して、ランダムジャンプにより得られるスコア「０．１５」を加算する。外側のクエリにおいて、ｄｅｓｔをｓｒｃとするデータ構造を取得し、次の繰り返し処理の入力となるよう「Ｇｒａｐｈ」テーブルを更新する。
【００２０】
このようなクエリを入力として、処理要求分割部１１は、図３の（１）に記載のクエリグラフを以下のように導出する。
【００２１】
図３のクエリは入れ子クエリであり、内側のクエリは、
select  n.dest,  0.15+0.85*sum（n.score／n.count）  as  score
from  Graph  as  n
group  by  n.dest
であり、上記Graph  as  nから図２のGraph  nを得る。
【００２２】
また、上記のselect,  group  by句に指定されるscore,  count,  destから，図６のGraph  nから上位にn.sore,  n.count,  n.destを得る。また、上記のgroup  by  句とsumの指定から，図３のsum（$1／$2）と破線で接続されるn.destを得る。
【００２３】
次に、外側のクエリでは，内側のクエリ結果とGraph  mをm.src=c.destを条件として結合処理しており、この部分から図３の最上位の箇所であるc.score,  c.dest,  m.src,  m.dest,  m.countを得る。
【００２４】
次に、このクエリグラフを使って，繰り返し処理の前後で変化する可変属性か変化しない不変属性かの判定を行う。クエリグラフを下側から辿って、集約演算がある場合にはその出力結果を可変属性とし、可変属性から導出される属性も可変属性である。例えば、図３の（１）において、下側のGraph  m,  nから開始してグラフを上位に辿る。辿る際に集約演算sumがあるため，その出力結果c.scoreが可変属性である。
【００２５】
更に繰り返し処理であるため、再度クエリグラフを下から辿って、可変属性から導出される属性も可変属性とする。例えば、図３の（１）において、n.scoreが可変属性と分かっているため、n.scoreから導出される属性も可変属性とする。結果的に、図３の（２）の図を得る。つまり、scoreが更新属性であり，src,  dest,  countが不変属性である。
【００２６】
そして、処理要求分割部１１は、テーブル分割処理を行い、結果として、主キーと全ての不変属性から成る不変テーブルIT（src,  dest,  count）および、主キーと全ての可変属性から成る可変テーブルVT(src,  score)を得る。
【００２７】
最後に、処理要求分割部１１は、処理要求分割処理を行う。処理要求分割部１１は、処理要求分割処理として、まず、不変テーブルと可変テーブルとを用いて出力に指定された元テーブルGraphを得る処理要求を、
Graph  =  select    IT.src,  IT  dest,  IT.count,  VT.score
from  IT,  VT
where  IT.src  =  VT.src
として導出する。この導出した処理要求を、ユーザが入力した繰り返し型の処理要求である図２のGraphに代入して以下のクエリを得る。
iterate
set  VT  =  ｛select  n.dest,  0.15+0.85*sum(n.score/n.count)  as  score
from  ｛select  src,  dest,  count,  score
from  IT,  VT
where  IT.src  =  VT.src｝  as  n
group  by  n.dest;｝
until  |  new.score  -  old.score  |  /old.score  <  0.01;
【００２８】
また、入れ子クエリをフラット化することで以下のクエリＱ１を得る。
iterate
set  VT  =  ｛select  IT.dest,  sum(VT.score/IT.count)  as  score
from  IT,  VT
where  IT.src  =  VT.src
group  by  IT.dest;｝
until  |  new.score  -  old.score  |  /old.score  <  0.01;
【００２９】
本クエリにおいて不変テーブルＩＴに関する操作を抽出して、図４上側に記載のクエリＰを不変データ処理要求として得る。そして、図４に示すように、クエリＰを用いて，先に得られたクエリＱ１が書き換えられる（図４の下側に記載のクエリ）。
【００３０】
iterate  
set  VT  =  select  P.dest,  0.15+  0.85*sum(VT.score/P.count)  as  score
from  P,  VT
where  P.src  =  VT.src
group  by  P.dest;
until  |  new.score  -  old.score  |  /old.score  <  0.01;
を得る。これが可変データ処理要求である。
【００３１】
処理要求実行部１２は、処理要求分割部１１によって分割された不変データ処理要求を実行して実行結果を記憶部１３に記憶し、記憶部１３に記憶された実行結果を用いて、処理要求分割部１１によって分割された可変データ処理要求を繰り返し実行する。
【００３２】
具体的には、処理要求実行部１２は、不変データ処理要求および可変データ処理要求を処理要求分割部１１から受け付けると、不変データ処理要求を実行して結果を実体化し記憶部１３に格納する。そして、処理要求実行部１２は、ユーザが指定した一定回数回処理要求を実行するか、あるいは出力に指定されたテーブルが格納するデータが繰り返し操作の前後で変化しなくなるまで可変データ処理要求を実行する。この実行の際に、記憶部１３に格納した不変データ処理要求の実行結果を再利用する。
【００３３】
つまり、処理要求実行部１２は、不変データ処理要求を実行して結果を実体化し、繰り返し処理において実体化結果を再利用して可変データ処理要求を実行することで、冗長な処理である不変データ処理要求を繰り返し処理することを排除して高速な繰り返し型のクエリ処理を実現する。このため、単純に繰り返し処理を実行するだけで、繰り返し処理の間に内在する冗長な処理を排除することができる。
【００３４】
記憶部１３は、不変データ処理要求の実行結果を記憶する。具体的には、記憶部１３は、処理要求実行部１２により実行された不変データ処理要求の実行結果を記憶し、処理要求実行部１２により可変データ処理要求が実行される際に、処理要求実行部１２により不変データ処理要求の実行結果が読み出される。
【００３５】
ここで記憶部１３０とは、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
【００３６】
［分析装置による処理］
次に、図５および図６を用いて、第一の実施形態に係る分析装置１０による処理を説明する。図５は、第一の実施の形態に係る分析装置における処理要求分割部の処理動作を示すフローチャートである。図６は、第一の実施の形態に係る分析装置における処理要求実行部の処理動作を示すフローチャートである。
【００３７】
まず、図５を用いて、第一の実施の形態に係る分析装置における処理要求分割部１１の処理について説明する。図５に示すように、処理要求分割部１１は、ユーザが入力する繰り返し型の処理要求を解析することで、出力に指定されたテーブルのすべての属性について，繰り返し処理の前後でカラムの値が変化しない不変属性、あるいは繰り返し処理の前後で変化する可変属性かを判定する処理する処理（属性の変化特性判定処理）を行う（ステップＳ１０１）。
【００３８】
そして、処理要求分割部１１は、出力に指定されたテーブルを２つに分解して，主キーと全ての不変属性から成る不変テーブル、および、主キーと全ての可変属性から成る可変テーブルを得るテーブル分割処理を行う（ステップＳ１０２）。
【００３９】
続いて、処理要求分割部１１は、不変テーブルと可変テーブルを用いて出力に指定された元テーブルを得る処理要求を導出し、導出した処理要求を用いてユーザが入力した繰り返し型の処理要求を不変テーブルと可変テーブルに対する処理要求に書き換える。そして、処理要求分割部１１は、書き換えられた処理要求を分解して、不変テーブルに対する不変データ処理要求と、不変テーブルに対する処理要求結果および可変テーブルに対する可変データ処理要求と得る処理要求分割処理を行う（ステップＳ１０３）。
【００４０】
次に、図６を用いて、第一の実施の形態に係る分析装置における処理要求実行部１２の処理について説明する。図６に示すように、処理要求実行部１２は、不変データ処理要求を実行し（ステップＳ２０１）、結果を実体化し記憶部１３に格納する。続いて、処理要求実行部１２は、可変データ処理要求を実行する（ステップＳ２０２）。この実行の際に、ステップ２０１で格納した不変データ処理要求の実行結果を再利用する。
【００４１】
その後、処理要求実行部１２は、可変データ処理要求の実行を終了するか否かを判定する（ステップＳ２０３）。例えば、処理要求実行部１２は、ユーザが指定した一定回数回処理要求を実行するか判定する。この結果、処理要求実行部１２は、可変データ処理要求の実行を終了しないと判定した場合には（ステップＳ２０３否定）、ステップＳ２０２およびステップＳ２０３の処理を繰り返す。また、可変データ処理要求の実行を終了すると判定した場合には（ステップＳ２０３肯定）、処理を終了する。
【００４２】
[第一の実施形態の効果]
上述してきたように、分析装置１０は、所定の処理を繰り返し行う繰り返し型の処理要求を解析し、該処理要求を、繰り返し処理において結果が変化しない不変データ処理要求と、繰り返し処理において結果が変化する可変データ処理要求とで分割する。そして、分析装置１０は、処理要求分割部１１によって分割された不変データ処理要求を実行して実行結果を記憶部１３に記憶し、記憶部１３に記憶された実行結果を用いて、処理要求分割部１１によって分割された可変データ処理要求を繰り返し実行する。
【００４３】
このため、繰り返し処理の間で冗長な処理を不変データ処理要求として抜き出し、不変データ処理要求を１回だけ実行し、その結果を再利用することで、冗長な処理である不変データ処理要求を繰り返し処理することを排除して高速な繰り返し型のクエリ処理を実現する。これにより、繰り返し型のクエリ処理の効率化を図ることが可能である。
【００４４】
［第二の実施の形態]
上述した第一の実施の形態においては、処理要求の実行処理として、不変データ処理要求を実行して結果を実体化し、繰り返し処理において実体化結果を再利用して可変データ処理要求を実行する場合を説明した。しかし、処理要求の実行処理として、出力に指定されたテーブルの属性が可変属性である属性について処理要求を差分計算の式に展開し、繰り返し処理の間で出力に指定されたテーブルの可変属性の差分を記録することで、記録した差分を差分計算の式に展開された処理要求に入力するようにしてもよい。
【００４５】
そこで、以下、第二の実施の形態では、処理要求の実行処理として、出力に指定されたテーブルの属性が可変属性である属性について処理要求を差分計算の式に展開し、繰り返し処理の間で出力に指定されたテーブルの可変属性の差分を記録することで、記録した差分を差分計算の式に展開された処理要求に入力する場合について説明する。図７は、第二の実施の形態に係る分析装置の処理動作を示すフローチャートである。図８は、Ｐａｇｅ  Ｒａｎｋ計算を例とした処理要求を差分計算の式に展開した例を説明する図である。
【００４６】
図７に示すように、第二の実施の形態に係る分析装置の処理要求実行部１２では、処理要求分割部１１によって判定されたテーブル可変属性である属性について、処理要求を差分計算の式に展開する（ステップＳ３０１）。ここでテーブルとは、処理要求実行部１２によって得られた可変データ処理要求の出力テーブルである。
【００４７】
そして、処理要求実行部１２は、１回前の繰り返し処理要求の実行において記録したテーブルの変更差分を参照して繰り返し処理要求を実行する（ステップＳ３０２）。そして、処理要求実行部１２は、繰り返しの処理要求の実行が完了した際に、テーブルの変更差分を計算して記憶部１３に記録する（ステップＳ３０３）。
【００４８】
その後、処理要求実行部１２は、可変データ処理要求の実行を終了するか否かを判定する（ステップＳ３０４）。例えば、処理要求実行部１２は、ユーザが指定した一定回数回処理要求を実行するか判定する。この結果、処理要求実行部１２は、可変データ処理要求の実行を終了しないと判定した場合には（ステップＳ３０４否定）、ステップＳ３０２〜ステップＳ３０４の処理を繰り返す。また、可変データ処理要求の実行を終了すると判定した場合には（ステップＳ３０４肯定）、処理を終了する。
【００４９】
図８を用いて、処理要求実行部１２における処理をＰａｇｅ  Ｒａｎｋ計算の例を用いて説明する。図７におけるステップＳ３０１では、テーブルＶＴの可変属性である属性ｓｃｏｒｅについて、以下のように、処理要求を差分計算の式に展開する。
「VT’(id,  V.score’)  =  VT(id,  V.score)  +map  ΔVT(id,  V.  Δscore)」
【００５０】
この式の意味は，繰り返し処理において，繰り返し処理前のVT(id,  V.score)テーブルに対して、更新差分ΔVT(id,  V.  Δscore)テーブルを記録しておくことで、各idのレコード毎に、更新後のscore‘がscore+Δscoreとして得ることができるということである。
【００５１】
ここで、ＶＴの定義は図８の下側のクエリで与えられ、更に前述のステップＳ１０１では属性の変化特性判定処理において更新属性が「score」であることが判明しているため、scoreの更新差分をΔscoreとすると、ΔVT(id,  V.  Δscore)が図８の下側のクエリ
ΔVT  =  select  P.dest,  sum(VT.  Δscore/P.count)  as  score
From  VT,  P
Where  P.src  =  VT.dest
Group  by  P.dest;
で与えられる。
【００５２】
このように、第二の実施の形態に係る分析装置では、処理要求を差分計算の式に展開し、繰り返し処理の間で出力に指定されたテーブルの可変属性の差分を記録することで、変更差分のないレコードの処理を排除して高速な繰り返し型のクエリ処理を実現する。
【００５３】
［システム構成］
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００５５】
［プログラム］
また、上記実施形態において説明した分析装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第一の実施形態に係る分析装置１０が実行する処理をコンピュータが実行可能な言語で記述したデータ検索プログラムを作成することもできる。この場合、コンピュータが分析プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる分析プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録され分析プログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図１に示した分析装置１０と同様の機能を実現する分析プログラムを実行するコンピュータの一例を説明する。
【００５６】
図９は、分析プログラムを実行するコンピュータ１０００を示す図である。図９に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００５７】
メモリ１０１０は、図９に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図９に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図９に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０４１に挿入される。シリアルポートインタフェース１０５０は、図９に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図９に例示するように、例えばディスプレイ１０６１に接続される。
【００５８】
ここで、図９に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の分析プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。
【００５９】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、テーブル作成手順、グラフ作成手順、検索手順を実行する。
【００６０】
なお、分析プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、分析プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６１】
１０  分析装置
１１  処理要求分割部
１２  処理要求実行部
１３  記憶部
２０  端末装置
１０００  コンピュータ
１０１０  メモリ
１０２０  ＣＰＵ
１０３０  ハードディスクドライブインタフェース
１０４０  ディスクドライブインタフェース
１０５０  シリアルポートインタフェース
１０６０  ビデオアダプタ
１０７０  ネットワークインタフェース
１０８０  バス
１０９０  ハードディスクドライブ
１１００  ディスクドライブ
【図１】
2014228974.tif 000003
【図２】
2014228974.tif 000004
【図３】
2014228974.tif 000005
【図４】
2014228974.tif 000006
【図５】
2014228974.tif 000007
【図６】
2014228974.tif 000008
【図７】
2014228974.tif 000009
【図８】
2014228974.tif 000010
【図９】
2014228974.tif 000011