JP2008084134A - 検索システム、検索方法、および情報管理装置 - Google Patents

検索システム、検索方法、および情報管理装置 Download PDF

Info

Publication number
JP2008084134A
JP2008084134A JP2006265096A JP2006265096A JP2008084134A JP 2008084134 A JP2008084134 A JP 2008084134A JP 2006265096 A JP2006265096 A JP 2006265096A JP 2006265096 A JP2006265096 A JP 2006265096A JP 2008084134 A JP2008084134 A JP 2008084134A
Authority
JP
Japan
Prior art keywords
execution
search
information
result
information management
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.)
Granted
Application number
JP2006265096A
Other languages
English (en)
Other versions
JP4181196B2 (ja
Inventor
Hiroshi Niina
博 新名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006265096A priority Critical patent/JP4181196B2/ja
Priority to US11/896,042 priority patent/US20080082516A1/en
Publication of JP2008084134A publication Critical patent/JP2008084134A/ja
Application granted granted Critical
Publication of JP4181196B2 publication Critical patent/JP4181196B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

【課題】検索処理を高速化する検索システムを提供する。
【解決手段】複数のDBを管理する複数の情報管理装置200と、検索装置100と、を備えた検索システムであって、検索装置100は、検索要求から検索プランを生成するプラン生成部102と、実行情報を情報管理装置200に送信する要求送信部104とを備え、情報管理装置200は、実行情報を用いて処理を実行する実行部と、取得元のDBを識別する取得元情報を実行結果に対応づける対応づけ部と、実行結果を利用する処理を実行する情報管理装置200に実行結果を転送する転送部とを備え、実行部は、転送された実行結果を利用する処理をさらに実行して実行結果を追加し、対応づけ部は、実行結果に取得元情報をさらに対応づけ、転送部は、対応づけられた取得元情報で識別されるDBを管理する情報管理装置に実行結果をさらに転送することを特徴とする。
【選択図】 図1

Description

この発明は、ネットワーク接続された複数のデータベースにデータを水平分割して登録する分散データベースに対し、与えられた検索条件に従い検索を行う検索システム、検索方法、および情報管理装置に関するものである。
近年、多数の件数からなるデータを、例えば件数が均等となるように複数の塊に分割し、分割した塊ごとにネットワーク接続された複数のデータベースに登録して処理する水平分割型の分散データベースシステムが広く知られている。
分散データベースの検索処理では、ネットワーク結合されて分散している装置間で検索処理の中間結果を転送し、検索処理の各ステップを継続して実行する必要がある。このような検索処理では、ネットワーク経由の中間結果の転送処理は、CPU(Central Processing Unit)での演算、メモリI/O、ディスクI/Oなどの検索処理に関する他の処理と比較して桁違いに時間コストが高い。このため、極力転送データ量を削減することが検索処理の高速化のために必要となる。
これに対し、従来の水平分割されたデータベースでは、検索処理中のデータ転送の際の無駄な情報転送を避け、処理に必要な情報を適切に判断し転送するアプローチがとられている。例えば、非特許文献1では、パラレル連想ジョインなどのハッシュ関数を用いてデータ転送先を決定し、決定したデータ転送先にのみデータを転送することで無駄な情報転送を回避する技術が提案されている。
具体的には、非特許文献1の方法では、まず、データの属性に関する特定のハッシュ関数をあらかじめ想定しておく。また、その結果のハッシュ値に対応する、中間結果の転送先となる物理データベースをあらかじめ定義しておく。
ここで、ジョイン演算のような、論理データベース上の結果を他の論理データベースに転送して演算を行う場合を考える。各データベースの中間結果を転送する際には、まず、その中間結果に含まれるデータの属性の値について、前記のハッシュ関数を適用した結果得られるハッシュ値を求める。求めたハッシュ値に基づき、ハッシュ値と転送先の物理データベースに関して事前に定義した対応関係に従って、転送する中間結果一つ一つのデータ転送先の物理データベースを決定する。
転送した先の物理データベースでは、ジョイン演算で行う比較演算で、一致する可能性のあるデータだけが、ハッシュ関数により振り分けられて、同一の物理データベース上に集まってくることになる。このようにして、演算の結果破棄されてしまうような、無駄なデータの転送を削減できる。
また、仮にデータの属性Bについてジョイン演算を行うことが事前にわかっている場合、データ登録時に事前に上記のハッシュ関数とデータベースの対応関係に従い、データの属性Bに関してハッシュ値を求めることで、個々のデータの登録先物理データベースを決定できる。そこで、このような手法で決定した登録先物理データベースに、事前にデータを登録しておく。
このようにして作成した論理データベースA上の中間結果と、他の論理データベースB上の中間結果との間のジョイン演算の演算を行う場合を考える。この場合、ジョイン演算の演算対象となる中間結果のうち、転送するデータの識別を、片方の論理データベースBの結果だけに限定できるため、上記に示した中間結果の転送方法と比較して転送データを減少させられる。
なお、非特許文献1の438ページ第3段落に示されるように、このような仕組みを用いて中間結果転送を行わない場合は、それぞれの論理データベースの結果すべてを、他方の論理データベースに属する一つの物理データベースに転送することが必要となる。受け取った中間結果に含まれるデータのうち、転送先の物理データベース上のデータと関連するデータは一部のデータに限定されることが多い。したがって、関連しないデータの転送は、無駄なデータの転送であったことになる。
Ozsu Valduriez、"Principles of Distributed Database Systems"、Printice Hall、Chapter 13.3.3(P.436-P.444)、Parallel Database Systems.
しかしながら、非特許文献1の方法では、分散配置するデータを登録するときの処理負担が大きいという問題があった。すなわち、非特許文献1の方法では、登録に先立ってデータベースに登録されるデータ特性を予測評価し、適切なハッシュ関数の設定を行い、検索の前に予め水平分割して登録しておく必要があった。
このため、例えば、データベースシステム運用時にデータ分割の構成を変更する必要が生じた場合、ハッシュ関数を用いてデータの登録先を再設定しなければならず、処理負担が増大するという問題があった。
本発明は、上記に鑑みてなされたものであって、データ登録時の処理負担を軽減しつつ、検索処理における中間的な処理結果の通信コストを削減し、検索処理の高速化を実現できる検索システム、検索方法、および情報管理装置を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、情報を分散して格納する複数のデータベースを、前記データベースごとに管理する複数の情報管理装置と、前記情報管理装置とネットワークを介して接続され、前記情報管理装置から前記情報を検索する検索装置と、を備えた検索システムであって、前記検索装置は、前記ネットワークに接続されたクライアント端末からの前記情報の検索要求を受付ける受付部と、受付けた前記検索要求を解析し、複数の前記情報管理装置が実行すべき検索指令を含む検索プランを生成するプラン生成部と、生成された前記検索プランに含まれる前記検索指令ごとに、前記検索指令の実行に用いる実行情報を、前記検索指令を実行すべき前記情報管理装置に対して送信する要求送信部と、前記検索指令の実行結果を前記情報管理装置から受信する結果受信部と、受信した前記実行結果に基づいて検索結果を生成する結果生成部と、生成した前記検索結果を前記クライアント端末に送信する結果送信部と、を備え、前記情報管理装置は、前記実行情報を前記検索装置から受信する受信部と、受信した前記実行情報を用いて前記検索指令を実行する実行部と、実行した前記検索指令の前記実行結果に、前記実行結果の取得元である前記データベースを識別する予め定められた取得元情報を対応づける対応づけ部と、前記取得元情報が対応づけられた前記実行結果を、前記実行結果を利用する前記検索指令を実行すべき他の前記情報管理装置に転送する転送部と、を備え、前記実行部は、前記他の前記情報管理装置から転送された前記実行結果を利用する前記検索指令をさらに実行し、転送された前記実行結果に、実行した前記検索指令の前記実行結果を追加し、前記対応づけ部は、実行した前記検索指令の前記実行結果を追加した前記実行結果に、実行した前記検索指令の前記実行結果の取得元である前記データベースを識別する前記取得元情報をさらに対応づけ、前記転送部は、前記取得元情報が対応づけられた前記実行結果を、前記実行結果に対応づけられた前記取得元情報で識別される前記データベースを管理する前記情報管理装置にさらに転送すること、を特徴とする。
また、本発明は、上記装置を実行することができる検索方法である。
また、本発明は、情報を分散して格納する複数のデータベースを、前記データベースごとに管理する外部情報管理装置と、前記情報を検索する検索装置とにネットワークを介して接続された情報管理装置であって、前記データベースを記憶する情報記憶部と、検索指令の実行に用いる実行情報を前記検索装置から受信する受信部と、受信した前記実行情報を用いて前記検索指令を実行する実行部と、実行した前記検索指令の前記実行結果に、前記実行結果の取得元である前記データベースを識別する予め定められた取得元情報を対応づける対応づけ部と、前記取得元情報が対応づけられた前記実行結果を、前記実行結果を利用する前記検索指令を実行すべき前記外部情報管理装置に転送する転送部と、を備え、前記実行部は、前記外部情報管理装置から転送された前記実行結果を利用する前記検索指令をさらに実行し、転送された前記実行結果に、実行した前記検索指令の前記実行結果を追加し、前記対応づけ部は、実行した前記検索指令の前記実行結果を追加した前記実行結果に、実行した前記検索指令の前記実行結果の取得元である前記データベースを識別する前記取得元情報をさらに対応づけ、前記転送部は、前記取得元情報が対応づけられた前記実行結果を、前記実行結果に対応づけられた前記取得元情報で識別される前記データベースを管理する前記外部情報管理装置にさらに転送すること、を特徴とする。
本発明によれば、中間結果に対応づけられた取得元の情報を参照して適切な転送先に中間結果を転送できる。このため、データ登録時の処理負担を軽減し、検索処理における中間的な処理結果の通信コストを削減して検索処理の高速化を実現することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる検索システム、検索方法、および情報管理装置の最良な実施の形態を詳細に説明する。
本実施の形態にかかる検索システムは、中間結果の取得元となったデータベースを特定する情報を中間結果に対応づけ、この情報を参照して、中間結果のうち転送して処理の対象となりえる部分のみを転送するものである。
図1は、本実施の形態にかかる検索システム10の構成を示すブロック図である。同図に示すように、検索システム10は、検索装置100と、複数の情報管理装置200a、200b、200c、200d(以下、単に情報管理装置200という。)と、ネットワーク300と、クライアント400と、を備えている。
クライアント400は、情報管理装置200に格納された情報(データ)の検索要求を検索装置100に送信するものであり、通常のPC(Personal Computer)などにより構成される。
ネットワーク300は、検索装置100と、情報管理装置200と、クライアント400とを接続するネットワークであり、インターネットやVPNなどのあらゆるネットワーク形態により構成することができる。
また、クライアント400と検索装置100とを接続するネットワークと、情報管理装置200と検索装置100とを接続するネットワークを別のネットワークで構成してもよい。
検索装置100は、情報管理装置200からデータを検索するものであり、受付部101と、プラン生成部102と、決定部103と、要求送信部104と、結果受信部105と、結果生成部106と、結果送信部107と、を備えている。
受付部101は、クライアント400からデータの検索要求を受付けるものである。後述するように、本実施の形態では、受付部101は、XML(Extensible Markup Language)などの階層化された論理構造を有する構造化文書を対象とする検索要求を受付ける。このような検索要求では、検索結果を構造化文書の形式で返信することを指定することも可能である。検索要求の詳細については後述する。
プラン生成部102は、受付けられた検索要求を解析し、各データがいずれの情報管理装置200に分割配置されているかを表すデータ分割配置情報を参照して、オペレータ群と、各オペレータ間のデータの受け渡し依存関係と、オペレータを実行するノードの割り当てとを含む検索プランを生成するものである。ここで、オペレータとは、検索結果を取得する各過程で実行される検索処理の指令をいう。
決定部103は、生成された検索プランを受け取り、検索プランに含まれる各オペレータの実行順序を決定し、決定した順序に従って、オペレータの実行に必要な情報を含むオペレータ実行情報を要求送信部104に順次引渡すものである。
すなわち、決定部103は、あるオペレータを実行した情報管理装置200から、オペレータの実行終了を示す情報を受信したあと、次に実行すべきオペレータに関するオペレータ実行情報を生成し、要求送信部104に引き渡す。次に実行すべきオペレータが尽きた場合に、検索処理は終了する。
要求送信部104は、決定部103から受け取ったオペレータ実行情報に従い、オペレータを実行すべき情報管理装置200に対してオペレータ実行情報を送信するものである。
結果受信部105は、オペレータを実行した情報管理装置200から、オペレータの実行終了を示す情報や、オペレータの実行結果である中間結果を受信するものである。また、結果受信部105は、各オペレータの実行終了を示す情報を受け取った場合、決定部103に対して指定されたオペレータの実行終了を通知する。
結果生成部106は、結果受信部105から受信し、最終的に残された中間結果から、検索要求に対する検索結果を生成するものである。例えば、検索要求内に、検索結果をXML形式で返信することが指定されていた場合、プラン生成部102によりXML形式で検索結果を生成するオペレータを含む検索プランが生成されるため、結果生成部106は、当該オペレータに従い、中間結果をXML形式で表した検索結果を生成する。
結果送信部107は、結果生成部106により生成された検索結果をクライアント400に送信するものである。
情報管理装置200は、データを水平分割して記憶するデータベースを分散して管理し、検索装置100からの要求に応じてデータ検索を行い、検索結果を検索装置100に返信するものである。情報管理装置200は、処理部210と、結果記憶部221と、対応記憶部222と、情報記憶部231と、を備えている。
情報記憶部231は、検索対象となるデータを水平分割して格納する、物理的に異なる複数のデータベースのそれぞれを記憶するものである。本実施の形態では、4つの情報管理装置200のうち、情報管理装置200a、200bにそれぞれ備えられた情報記憶部231a、231bに、ユーザに関する情報を格納する論理的なデータベース「people」を水平分割する。また、情報管理装置200c、200dにそれぞれ備えられた情報記憶部231c、231dに、オークションでの取引に関する情報を格納する論理的なデータベース「auction」を水平分割する。
なお、すべての論理的なデータベースが水平分割される必要はなく、少なくとも1つの水平分割されたデータベースを備えていればよい。また、データベースの個数は4つに限られるものではない。
以下では、情報管理装置200a、200b、200c、200dに分割配置されたデータベースを、それぞれDB1、DB2、DB3、DB4という。すなわち、DB1およびDB2によって論理的なデータベース「people」が構成され、DB3およびDB4によって論理的なデータベース「auction」が構成される。
なお、本実施の形態では、データを分割配置する方法として、非ハッシュ値などを用いた特段の基準を設けずに、格納するデータレコードを順次交互に各データベースに登録するラウンドロビン方式で登録するものとする。これにより、どのようなデータ登録順序であっても、または運用開始後に想定外の新たなデータの登録が発生した場合でも、各データベースには均等な件数のデータを登録することができ、負荷分散を図ることができる。
また、本実施の形態では「people」データベースおよび「auction」データベースにはXML形式でデータが格納されているものとする。図2は、「people」データベースに登録されるデータのデータ構造の一例を示す説明図である。同図に示すように、「people」データベースには、ユーザを識別するID(@id)、ユーザ名(name)、住所(address)などのユーザに関する各種情報を含む「person」データが格納される。
図3は、「auction」データベースに登録されるデータのデータ構造の一例を示す説明図である。同図に示すように、「auction」データベースには、オークションの取引を識別するID(@id)、取引される商品名の種別(item)、価格(price)などのオークションでの取引に関する各種情報を含む「deal」データが格納される。
結果記憶部221は、中間結果の取得元である情報記憶部231ごとに分けて中間結果を格納するものである。対応記憶部222は、中間結果を識別する結果識別情報と、中間結果に含まれる情報ごとの情報の取得元であるデータベースを識別する取得元情報とを対応づけて記憶するものである。
図4は、結果記憶部221および対応記憶部222のデータ構造の一例を示す説明図である。同図は、DB1から「person」データを取得したときの中間結果および取得元情報の一例を表している。
同図に示すように、結果記憶部221は、取得した中間結果をテーブル形式で表したバインドテーブル41を格納している。また、対応記憶部222は、バインドテーブル41を識別する結果識別情報(BT1)と、取得した中間結果の取得元のデータベースを識別する取得元情報(DB1)とを対応づけて格納している。
図5は、結果記憶部221および対応記憶部222のデータ構造の別の例を示す説明図である。同図は、DB1およびDB2からユーザを識別するID(@id)を取得したときの中間結果および取得元情報の一例を表している。
同図に示すように、結果記憶部221は、取得元であるデータベースごとに、取得した中間結果を格納したバインドテーブル51、52を分けて格納している。また、対応記憶部222は、バインドテーブル51、52をそれぞれ識別する結果識別情報(BT1、BT2)と、取得した中間結果の取得元のデータベースを識別する取得元情報(DB1、DB2)とをそれぞれ対応づけて格納している。
このように、取得元であるデータベースごとに中間結果を分けて管理することにより、当該中間結果を利用するオペレータを実行する情報管理装置200に対し、必要な中間結果のみをそれぞれ分離して転送することが可能となる。
図6は、結果記憶部221および対応記憶部222のデータ構造の別の例を示す説明図である。同図は、図5で示した中間結果を利用して、さらにDB3からオークションの取引を表す「deal」データを取得したときの中間結果および取得元情報の一例を表している。
図6に示すように、結果記憶部221は、図5のバインドテーブル51、52に対し、それぞれ新たに取得された「deal」データが中間結果として追加されたバインドテーブル61、62を格納している。
また、対応記憶部222は、バインドテーブル61、62をそれぞれ識別する結果識別情報(BT1、BT2)に、新たに取得した中間結果の取得元のデータベースを識別する取得元情報(DB3)をさらに対応づけて格納している。このように、中間結果として取得したデータの属性ごとに取得元情報が異なりうるため、取得元情報はデータの属性ごとに複数格納されうる。
なお、情報記憶部231、結果記憶部221、および対応記憶部222は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
ここで、受付部101により受け付けられる検索要求の詳細について説明する。図7は、検索要求の一例を示す説明図である。同図は、上述のように4つの情報記憶部231内にXMLデータを水平分割して格納した分散データベースを対象とし、検索結果としてXML形式のデータを返す検索式(検索要求)の例を示している。
同図の検索要求は、住所が「Kawasaki」のユーザ(person)すべてについて、その名前(name)を取得し、さらにオークションで購入した取引情報(deal)を取得し、ユーザが所望する物の種別(watch/@category)と競り落とした商品の種別(item/@category)とが一致しているユーザと、その商品の名前とを取り出して出力することを表している。
図8は、検索結果の出力形式の一例を示す説明図である。同図は、図7に示した検索要求で指定された検索結果の返信形式に対応する検索結果の出力形式を表している。図8に示すように、ユーザ名や商品の種別名をXML形式で表した検索結果を出力可能である。
次に、図1の処理部210の詳細について説明する。図9は、処理部210の詳細な構成を示すブロック図である。同図に示すように、処理部210は、受信部211と、実行部212と、対応づけ部213と、結果取得部214と、転送部215と、を備えている。
受信部211は、検索装置100から、オペレータ実行情報を受信するものである。
実行部212は、受信部211により受信されたオペレータ実行情報に従って、オペレータを実行するものである。なお、実行部212は、受信したオペレータ実行情報が、中間結果の転送を要求するオペレータに関するオペレータ実行情報である場合は、転送部215に対して、オペレータ実行情報を引き渡す。この場合のオペレータ実行情報には、転送先となる情報管理装置200を識別する情報と、転送する中間結果および転送するカラムを特定する情報とが含まれる。
また、実行部212は、各オペレータの実行結果を結果記憶部221に記憶する。すなわち、実行すべきオペレータがデータ検索である場合は、情報記憶部231内のデータベースを検索して得られた結果を中間結果として結果記憶部221に記録する。
XMLデータのノードスキャンなど中間結果の特定のカラム値で示されるノードを基点とした条件に合致するデータを取得するオペレータの場合は、対応するカラム値と同じレコードを構成するような形式で中間結果を記録する。また、ジョインなど複数の中間結果間の演算の場合は、それら中間結果間のカラム値の対応関係をレコードとして表現した中間結果を記録する。
また、実行部212は、他の情報管理装置200から転送された中間結果を受信した場合、受信した中間結果を新規に作成して結果記憶部221に記憶する。記憶した中間結果は、この後に実行されるオペレータで利用される。また、実行部212は、各オペレータの処理が終了した場合、終了状態を表す情報を検索装置100に返信する。
対応づけ部213は、実行部212が実行したオペレータの結果である中間結果に、当該中間結果の取得元であるデータベースの取得元情報を対応づけて対応記憶部222に記憶するものである。また、対応づけ部213は、他の情報管理装置200から転送された中間結果を受信した場合、当該中間結果に対応づけられている取得元情報を新規に作成して対応記憶部222に記憶する。
結果取得部214は、実行部212が中間結果の転送を要求するオペレータ実行情報を受け取ったとき、当該オペレータ実行情報に記述されている転送先の情報管理装置200を識別する情報、転送する中間結果およびカラムを特定する情報を参照して、転送すべき中間結果を結果記憶部221から取得するものである。
転送部215は、結果取得部214により取得された中間結果を、転送が指定された転送先の情報管理装置200に転送するものである。
次に、このように構成された本実施の形態にかかる検索システム10による検索処理について説明する。図10は、本実施の形態における検索処理の全体の流れを示すフローチャートである。
まず、検索装置100の受付部101は、クライアント400から入力された検索要求を受付ける(ステップS1001)。次に、プラン生成部102は、入力された検索要求を解析し、検索プランを生成する(ステップS1002)。
例えば、図7に示したような検索要求が入力された場合、プラン生成部102は、まず「people」データベースから住所が「Kawasaki」であるユーザを検索し、次に「auction」データベースからユーザのIDに一致するバイヤーのIDを有する取引を取得し、次に「people」データベースから取引される商品の種別と一致する物の種別を有するユーザを検索するような検索プランを生成する。
次に、決定部103は、各検索プランに含まれるオペレータの実行順序を決定する(ステップS1003)。続いて、決定部103は、実行順序に従い、次に実行するオペレータを決定する(ステップS1004)。
次に、要求送信部104は、決定されたオペレータを実行する情報管理装置200に対し、当該オペレータのオペレータ実行情報を送信する(ステップS1005)。
オペレータ実行情報を送信された情報管理装置200は、当該オペレータ実行情報にしたがってオペレータを実行するオペレータ実行処理を行う(ステップS1006)。オペレータ実行処理の詳細については後述する。
次に、検索装置100の結果生成部106は、検索プランに応じてオペレータの実行を行う(ステップS1007)。なお、結果生成部106が実行するオペレータの実行が決定されていない場合は、当該ステップはスキップする。すなわち、例えば、最終的に得られた中間結果から検索結果を生成するオペレータの実行が決定された場合に、結果生成部106は、当該オペレータを実行する。
次に、決定部103は、すべてのオペレータが実行されたか否かを判断し(ステップS1008)、実行されていない場合は(ステップS1008:NO)、次に実行するオペレータを決定して処理を繰り返す(ステップS1004)。
すべてのオペレータが実行された場合は(ステップS1008:YES)、結果送信部107が検索結果をクライアント400に送信して(ステップS1009)、検索処理を終了する。
次に、ステップS1006のオペレータ実行処理の詳細について説明する。なお、オペレータ実行処理は、生成された検索プランによってその内容が異なる。例えば、1つの情報管理装置200でオペレータが実行される場合や、複数の情報管理装置200間で中間結果を転送してオペレータが実行される場合などが存在しうる。
以下では、他の情報管理装置200の中間結果を利用しないオペレータの場合(図11)、中間結果を転送するオペレータの場合(図12)、および、他の情報管理装置200の中間結果を利用するオペレータの場合(図13)に分けて説明する。なお、オペレータ実行処理はこの3つに限られるものではない。例えば、検索装置100内で実行されるオペレータもありうる。
図11は、他の情報管理装置200の中間結果を利用しないオペレータについてのオペレータ実行処理の全体の流れを示すフローチャートである。
まず、受信部211が、検索装置100からオペレータ実行情報を受信する(ステップS1101)。次に、実行部212が、オペレータ実行情報に従いオペレータを実行する(ステップS1102)。
次に、実行部212が、オペレータの実行結果を結果記憶部221に記憶する(ステップS1103)。例えば、情報管理装置200aの実行部212が、「people」データベースから「person」データを取得するオペレータを実行した場合、取得した「person」データを結果記憶部221に記憶する。この場合、図4に示したようなバインドテーブル41が結果記憶部221に記憶される。
次に、対応づけ部213が、取得元であるデータベースを識別するための取得元情報を作成し(ステップS1104)、作成した取得元情報を中間結果と対応づけて対応記憶部222に記憶する(ステップS1105)。
上記例では、対応づけ部213は、取得元のデータベースである「DB1」を取得元情報としてバインドテーブル41と対応づけた、図5のような情報を対応記憶部222に記憶する。
図12は、中間結果を転送するオペレータについてのオペレータ実行処理の全体の流れを示すフローチャートである。
まず、受信部211が、検索装置100から転送を要求するオペレータ実行情報を受信する(ステップS1201)。次に、結果取得部214が、転送すべき中間結果を取得する処理を実行する。具体的には、まず結果取得部214は、オペレータ実行情報内に指定された転送先となる情報管理装置200を識別する情報を参照し、当該情報管理装置200で管理するデータベースを取得元情報とする中間結果のバインドテーブルを識別する情報(テーブル識別情報)を対応記憶部222から取得する(ステップS1202)。
次に、結果取得部214は、取得したテーブル識別情報で識別される中間結果のうち、オペレータ実行情報内に指定された転送するカラムを特定する情報を参照し、転送するカラムの情報のみを含む中間結果を結果記憶部221から取得する(ステップS1203)。
これにより、必要な情報のみを取得して外部の情報管理装置200に転送可能となるため、転送処理の負荷軽減を図り検索処理の高速化が実現できる。
次に、転送部215が、取得した中間結果と、当該中間結果に対応づけられている取得元情報とを転送先の情報管理装置200に転送する(ステップS1204)。
転送先の情報管理装置200では、受信部211が、中間結果と取得元情報とを受信する(ステップS1205)。そして、実行部212が、受信した中間結果を新たに作成し、自装置内の結果記憶部221に保存する(ステップS1206)。
なお、外部の複数の情報管理装置200から中間結果を受信したときは、それぞれの中間結果を取得元のデータベースごとに分けて結果記憶部221内に保存する。例えば、情報管理装置200cが、情報管理装置200a、200bからそれぞれ「people」データベース内の「@id」データを中間結果として受信した場合、図5に示すようにそれぞれの装置に対応する中間結果を2つのバインドテーブル51、52に分けて保存する。
次に、対応づけ部213が、受信した取得元情報を参照して取得元情報を新たに作成し、作成した取得元情報と、ステップS1206で作成した中間結果とを対応づけて対応記憶部222に保存する(ステップS1207)。
以上の処理により、他の情報管理装置200における中間結果を利用するオペレータ実行の準備が整い、次に中間結果を利用するオペレータ実行の要求が検索装置100から送信された場合にオペレータを実行することが可能となる。
図13は、他の情報管理装置200の中間結果を利用するオペレータについてのオペレータ実行処理の全体の流れを示すフローチャートである。
まず、受信部211が、検索装置100から、中間結果を利用するオペレータのオペレータ実行情報を受信する(ステップS1301)。次に、実行部212が、オペレータ実行情報に従いオペレータを実行する(ステップS1302)。
次に、実行部212が、オペレータの実行結果を結果記憶部221に記憶する(ステップS1303)。このとき、事前に結果記憶部221に記憶された中間結果に、当該中間結果を利用して得られた中間結果を追加して結果記憶部221に記憶する。
次に、対応づけ部213が、取得元であるデータベースを識別するための取得元情報を作成し(ステップS1304)、作成した取得元情報を中間結果と対応づけて対応記憶部222に記憶する(ステップS1305)。
このように、他の情報管理装置200の中間結果を利用するオペレータの場合は、他の情報管理装置200から事前に受信した中間結果に、新たに実行したオペレータの実行結果を追加して中間結果を作成し、結果記憶部221に記憶していく。この際、取得元のデータベースが異なるごとに中間結果を分けて管理しているため、中間結果をさらに別の情報管理装置200に転送するとき、必要な中間結果のみを抽出して転送することが可能となる。
次に、このように構成された検索システム10で転送される中間結果の例について説明する。図14は、転送される中間結果の一例を示した模式図である。同図は、情報管理装置200a、bで「people」データベースから「@id」データを取得し、それぞれに対して情報管理装置200c、dで「deal」データと「item/category」データをさらに取得して、その結果を情報管理装置200a、bにされに転送する場合の例を示している。
なお、同図の左上が情報管理装置200c、右上が情報管理装置200dを表している。また、同図の左下が情報管理装置200a、右下が情報管理装置200bを表している。
例えば、左上の情報管理装置200cでは、2つの取得元(DB1、DB2)ごとに中間結果を分けて2つのバインドテーブル1001、1002として管理している。このため、これらの中間結果を転送する場合、取得元情報(DB1、DB2)に従ってそれぞれ対応する情報管理装置200a、200bのいずれか一方に必要な中間結果のみを転送できる。
同様に、右上の情報管理装置200dでは、2つの取得元(DB1、DB2)ごとに中間結果を分けて2つのバインドテーブル1003、1004として管理している。結果として、情報管理装置200aには、バインドテーブル1001に対応するバインドテーブル1005と、バインドテーブル1003に対応するバインドテーブル1006と、が転送される。また、情報管理装置200bには、バインドテーブル1002に対応するバインドテーブル1007と、バインドテーブル1004に対応するバインドテーブル1008と、が転送される。
次に、上述のように構成された検索システム10における検索処理の具体例について説明する。以下では、図1に示すように「people」データベースがDB1、DB2に分割配置され、「auction」データベースがDB3、DB4に分割配置された構成で、図7に示すような条件の検索要求が入力された場合の例について説明する。なお、以下では、各データベース(DB1〜DB4)を管理する情報管理装置200(200a〜200d)を、単にDBn(nは1〜4)という場合がある。
まず、「people」データベースを対象として住所が「Kawasaki」(address/text()=「Kawasaki」)のpersonの検索を行い、得られた結果を中間結果として格納する。このときの処理は以下のようになる。
「people」データベースはDB1とDB2に分割して格納されているので、決定部103はDB1、DB2のそれぞれのデータベースの上で「people」データベースを対象として住所が「Kawasaki」(address/text()="Kawasaki")である「person」データの検索を行うオペレータ実行情報を生成する(ステップS1004)。
要求送信部104は生成されたオペレータ実行情報を受け取り、DB1、DB2のそれぞれのデータベースにオペレータ実行情報を送信する(ステップS1005)。オペレータ実行情報を受信したDB1、DB2のそれぞれのデータベース上の実行部212は、該当するオペレータを実行して中間結果を作成する。
図15〜図18は、この例の検索処理で生成される中間結果の一例を示す説明図である。各図の上下方向に、処理の流れに従い生成される中間結果のバインドテーブルと取得元情報とが示されている。各図の横方向には、2つの論理データベース「people」、「auction」と、それらを水平分割したデータベースであるDB1〜DB4とが示されている。各データベースの下部に示された中間結果が、当該データベースを取得元とする中間結果であることを意味する。
最初の処理では、DB1、DB2それぞれのデータベース上の中間結果として得られた「person」データは、それぞれBT101およびBT102で識別されるバインドテーブルに記憶され、取得元情報としてDB1およびDB2がそれぞれ対応づけられて対応記憶部222に記憶される。
次に、得られた「person」データに関してその名前(name/text())をデータベースより取得し、得られた結果を中間結果として格納する。このときの処理は以下のようになる。
まず、決定部103は、DB1、DB2それぞれで得られている「person」データに関し、「name/text()」の取得処理をDB1、DB2それぞれのデータベースの上で実行するオペレータ実行情報を生成する(ステップS1004)。要求送信部104は生成されたオペレータ実行情報を受け取り、DB1、DB2のそれぞれのデータベースにオペレータ実行情報を送信する(ステップS1005)。
オペレータ実行情報を受信したDB1、DB2のそれぞれのデータベース上の実行部212は、該当するオペレータを実行して中間結果を作成する。この処理では、DB1、DB2それぞれのデータベース上の中間結果として得られた「name/text()」は、BT101およびBT102のバインドテーブルに追加され、それぞれBT103およびBT104のバインドテーブルが作成される。
次に、得られた「person」データに関してその「id(@id)」データをデータベースより取得し、得られた結果を中間結果として格納する。このときの処理は以下のようになる。
まず、決定部103は、DB1、DB2それぞれで得られている「person」データに関し、「@id」データの取得処理をDB1、DB2それぞれのデータベースの上で実行するオペレータ実行情報を生成する(ステップS1004)。要求送信部104は生成されたオペレータ実行情報を受け取り、DB1、DB2のそれぞれのデータベースにオペレータ実行情報を送信する(ステップS1005)。
オペレータ実行情報を受信したDB1、DB2のそれぞれのデータベース上の実行部212は、該当するオペレータを実行して中間結果を作成する。この処理では、DB1、DB2それぞれのデータベース上の中間結果として得られた「@id」は、BT103およびBT104のバインドテーブルに追加され、それぞれBT105およびBT106のバインドテーブルが作成される。
ここまでの処理は「people」データベースに閉じた処理であり、中間結果のすべてのカラムはDB1、DB2のいずれかで閉じている。
次に、ここまででDB1、DB2上で得られている「@id」データをキーとして、その値と一致する属性(@buyer)を有する取引情報(deal)の検索を行う。このときの処理は以下のようになる。
まず、「auction」データベースがDB3、DB4に格納されているため、決定部103はDB1、DB2の中間結果に保持されているキー情報(@id)をDB3、DB4に転送するオペレータ実行情報を生成する(ステップS1004)。要求送信部104は生成されたオペレータ実行情報を受け取り、転送処理を実行するDB1、DB2のそれぞれのデータベースにオペレータ実行情報を送信する(ステップS1005)。
オペレータ実行情報を受信したDB1、DB2のそれぞれのデータベース上の実行部212は、該当する転送処理を実行し、中間結果と取得元情報をDB3、DB4へ転送する(ステップS1204)。DB1とDB2のそれぞれは、DB1とDB2の中間結果のうち後の処理に使用する「@id」カラムのみを、DB3とDB4のそれぞれへ転送する。
転送先であるDB3とDB4のそれぞれのデータベース上の実行部212は、転送された中間結果を受け取り、中間結果を組み立てる(ステップS1206)。この際、得られた中間結果それぞれに関して、取得元情報も同時に受け取り、中間結果の取得元情報を対応付けて記録する(ステップS1207)。
すなわち、DB1、DB2それぞれのデータベースから転送された中間結果である「@id」データは、取得元ごとに区別して管理される。例えば、図16に示すように、DB3上では、BT201およびBT202のバインドテーブルが作成される。また、DB4上では、BT203およびBT204のバインドテーブルが作成される。
このように、転送された中間結果を受け取ったDB3とDB4とのそれぞれでは、DB1とDB2のそれぞれから得られた中間結果を区別して管理し、中間結果のそれぞれのカラムの値がいずれのデータベースから得られたものであるかを知ることが可能となる。
次に、DB3、DB4それぞれについて「@id」の値に一致する「@buyer」属性を持つ「deal」データを検索する。このときの処理は以下のようになる。
決定部103は、DB3、DB4のそれぞれで格納されている中間結果の「@id」をキーとして、DB3、DB4それぞれのデータベースに関して、「@id」と一致する「@buyer」を有する「deal」データの検索を行うオペレータ実行情報を生成する(ステップS1004)。要求送信部104は生成されたオペレータ実行情報を受け取り、DB3、DB4のそれぞれのデータベース対してオペレータ実行情報を送信する(ステップS1005)。
オペレータ実行情報を受信したDB3、DB4のそれぞれのデータベース上の実行部212は、該当するオペレータを実行して中間結果を作成する。実行部212および対応づけ部213は、このとき得られた「deal」データに関して取得元情報を作成し、既存の中間結果および取得元情報に追加する(ステップS1303〜ステップS1305)。
これにより、DB3に関しては、DB1から得られた「@id」と、DB3から得られた「deal」データを有する中間結果(BT205)と、DB2から得られた「@id」とDB3から得られた「deal」データを有する中間結果(BT206)とがそれぞれ区別して管理される。DB4に関しても同様に、BT207とBT208とで中間結果が区別して管理される。
次に、DB3、DB4のそれぞれについて、後の処理で使用する「item/@category」の値をデータベースより取得する。このときの処理は以下のようになる。
決定部103は、DB3、DB4のそれぞれで格納されている中間結果の「deal」を基点として、DB3、DB4それぞれのデータベースに関して、「item/@category」の取得を行うオペレータ実行情報を生成する(ステップS1004)。要求送信部104は生成されたオペレータ実行情報を受け取り、オペレータが実行されるDB3、DB4のそれぞれにオペレータ実行情報を送信する(ステップS1005)。
オペレータ実行情報を受信したDB3、DB4のそれぞれのデータベース上の実行部212は、該当するオペレータを実行して中間結果を作成する。また、実行部212および対応づけ部213は、このとき得られた「item/@category」に関して取得元情報を作成し、既存の中間結果および取得元情報に追加する。
次に、DB3、DB4で得られている中間結果のitem/@categoryに一致する「watch/@category」を有する「person」データを選択する。このときの処理は以下のようになる。
まず、「people」データベースがDB1、DB2に格納されているため、決定部103は、DB3、DB4の中間結果に保持されているキー情報(item/@category)を、DB1、DB2に転送するオペレータ実行情報を生成する(ステップS1004)。要求送信部104は生成されたオペレータ実行情報を受け取り、DB3、DB4のそれぞれのデータベース対してオペレータ実行情報を送信する(ステップS1005)。
オペレータ実行情報を受信したDB3、DB4のそれぞれのデータベース上の実行部212は、該当する中間結果を転送する処理を実行し、中間結果をDB1、DB2に転送する(ステップS1204)。このとき、DB3とDB4のそれぞれは、DB3とDB4で得られている中間結果のうち、DB1、DB2のそれぞれで処理の継続可能な中間結果を、対応記憶部222を参照して結果記憶部221から取得し、取得した有効な中間結果のみをそれぞれ対応するデータベースへ転送する。
すなわち、DB3、DB4のそれぞれで得られている中間結果のうち、後の処理で参照する「person」データが、DB1、DB2のいずれから求められた中間結果であるかを取得元情報から決定し、DB1に対してはDB1から求められた部分が、DB2に対してはDB2から求められた部分が、それぞれに有効な中間結果となる。このようにして取得元情報を用いて区分管理されている中間結果を区分単位で転送することにより、無駄な転送を排除することが可能となる。
次に、転送先であるDB1とDB2のデータベース上の実行部212は、転送された中間結果を受け取り、転送された中間結果をもとに同じ中間結果を作成する(ステップS1206)。この際、得られた中間結果それぞれに関して、取得元情報も同時に受け取り、中間結果の取得元情報を対応付けて記録する(ステップS1207)。
すなわち、DB3、DB4それぞれのデータベースから転送された中間結果は、取得元ごとに区別して管理される。例えば、図17に示すように、DB1上では、DB3上のBT209に対応するBT213およびDB4上のBT211に対応するBT214が作成される。また、DB2上では、DB3上のBT210に対応するBT215およびDB4上のBT212に対応するBT216が作成される。
このように、転送された中間結果を受け取ったDB1とDB2のそれぞれでは、DB3とDB4、およびそれ以前にDB1とDB2のそれぞれから得られた中間結果を区別して管理し、中間結果のそれぞれのカラムの値が、いずれのデータベースから得られたものであるかを知ることが可能となる。
次に、決定部103は、別々に演算された結果を一つに統合するために、DB1とDB2のそれぞれのデータベースで、自身で管理している中間結果と、転送により得られた転送結果を結合(Join)するオペレータ実行情報を生成する(ステップS1004)。要求送信部104は、オペレータ実行情報を受け取り、オペレータを実行するDB1、DB2のそれぞれに対してオペレータ実行情報を転送する(ステップS1005)。
転送されたオペレータ実行情報を受け取ったDB1、DB2のそれぞれのデータベース上の実行部212は、該当するオペレータを実行して中間結果を格納する。この結果、DB1上では、図15のBT105と、図17のBT213およびBT214とをそれぞれ統合したBT217とBT218とが作成される。また、DB2上では、図15のBT106と、図17のBT215およびBT216とをそれぞれ統合したBT219とBT220とが作成される。
この際、統合した結果として得られた中間結果の各カラムに関する取得元情報も、それぞれの中間結果に関する取得元情報からカラムごとに抽出しひとつに統合する。
次に、DB1とDB2のそれぞれのデータベースで、中間結果の「person」データに関して、中間結果の「item/@category」の値と一致する属性(watch/@category)値を有するものを抽出し、得られた結果を中間結果に反映する。この処理は以下のようになる。
処理を行うDB1、DB2のそれぞれのデータベース上にオペレータの実行に必要な中間結果が存在するので、決定部103は、DB1、DB2のそれぞれに対して、中間結果の「item/@category」の値と一致する属性(watch/@category)値を有する「person」データを抽出するオペレータ実行情報を生成する(ステップS1004)。要求送信部104は、オペレータ実行情報を受け取り、オペレータを実行するDB1、DB2のそれぞれに対してオペレータ実行情報を転送する(ステップS1005)。
転送されたオペレータ実行情報を受け取ったDB1、DB2のそれぞれのデータベース上の実行部212は、該当するオペレータを実行して中間結果を格納する。この処理では、DB1、DB2それぞれのデータベース上の中間結果として抽出された「person」データは、図18のBT221、BT222、BT223、およびBT224のバインドテーブルに格納される。
なお、この処理で得られた「person」データはDB1、DB2それぞれのデータベースから得られたデータであるので取得元情報は変化しない。
次に、「auction」データベースに対して、「deal/name/text()」を取得する処理を行う。この処理は以下のように行われる。
処理を行うDB3、DB4では、取得する際の元となる「deal」データを示す中間結果が存在しないため、決定部103は、DB1とDB2で得られている中間結果のうち、「deal」データのみをDB3、DB4へ転送するオペレータ実行情報を生成する(ステップS1004)。要求送信部104はオペレータ実行するDB1、DB2に対してオペレータ実行情報を転送する(ステップS1005)。
オペレータ実行情報を受信したDB1、DB2のデータベース上の実行部212は転送部215に該当する転送処理を実行させる。このとき、DB1は、DB1で得られている中間結果のうち、後の処理で使用する「deal」データがDB3から求められた中間結果を取得元情報から決定し、DB3へ転送する。同様にDB1で得られている中間結果のうち、後の処理で使用するdealがDB4から求められた中間結果を取得元情報から決定し、DB4へ転送する。DB2についても同様である。
このように、取得元情報を用いて区分管理されている中間結果を区分単位で転送することにより、無駄な転送を排除することが可能となる。
転送された中間結果を受信したDB3、DB4のデータベース上の実行部212は、受信した中間結果を復元する(ステップS1206)。この際、得られた中間結果それぞれに関して、取得元情報も同時に受け取り、中間結果の取得元情報を対応付けて記録する(ステップS1207)。
すなわち、DB1、DB2それぞれのデータベースから転送された中間結果は、取得元ごとに区別して管理される。例えば、図18に示すように、DB3上では、DB1上のBT221に対応するBT225およびDB2上のBT223に対応するBT226が作成される。また、DB4上では、DB1上のBT222に対応するBT227およびDB2上のBT224に対応するBT228が作成される。
このように、転送された中間結果を受け取ったDB3とDB4のそれぞれでは、DB1とDB2、およびそれ以前にDB3とDB4のそれぞれから得られた中間結果を区別して管理し、中間結果のそれぞれのカラムの値が、いずれのデータベースから得られたものであるかを知ることが可能となる。
次に、中間結果で得られている「deal」データに関して、その「item/name/text()」の値を取得する。この処理は以下のようになる。
決定部103は、DB3とDB4で、中間結果で得られている「deal」データに関して、その「item/name/text()」の値を取得するオペレータ実行情報を生成する(ステップS1004)。要求送信部104は、生成されたオペレータ情報を受け取り、オペレータを実行するDB3、DB4に対して送信する(ステップS1005)。
オペレータ実行情報を受信したDB3、DB4のデータベース上の実行部212は、該当するオペレータを実行して中間結果を作成する。この処理では、DB3、DB4それぞれのデータベース上の中間結果として得られた「item/name/text()」は、BT225〜BT228のバインドテーブルに追加され、それぞれBT229〜BT232のバインドテーブルが作成される。
以上の処理により、分割して格納されたデータベースから検索式に従い横断的に検索を実行でき、最終的に図8に示すような「person/name/text()」、「person」、および「deal/item/name」のカラムからなる情報の列として検索結果を取得することができる。
このように、本実施の形態にかかる検索システムでは、中間結果の取得元となったデータベースを特定する情報を中間結果に対応づけ、この情報を参照して、中間結果のうち転送して処理の対象となりえる部分のみを転送することができる。このため、データ登録に先立ち事前に設計する必要のある特定のハッシュ関数などを用いることなく、無駄な通信コストの削減を実現できる。また、この結果、分散データベースシステムにおける検索処理の高速化が可能となる。さらに、転送コストの削減とデータベース運用時におけるデータ分割の変更の容易さを両立させることができる。
図19は、本実施の形態にかかる情報管理装置のハードウェア構成を示す説明図である。
本実施の形態にかかる情報管理装置は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、HDD(Hard Disk Drive)、CD(Compact Disc)ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス55を備えており、通常のコンピュータを利用したハードウェア構成となっている。
本実施の形態にかかる情報管理装置で実行される情報管理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施の形態にかかる情報管理装置で実行される情報管理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態にかかる情報管理装置で実行される情報管理プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、本実施の形態の情報管理プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
本実施の形態にかかる情報管理装置で実行される情報管理プログラムは、上述した各部(受信部、実行部、対応づけ部、結果取得部、転送部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51(プロセッサ)が上記記憶媒体から情報管理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
以上のように、本発明にかかる検索システム、検索方法、および情報管理装置は、XMLなどの構造化文書を複数の装置に水平分散配置して管理するシステムに適している。
本実施の形態にかかる検索システムの構成を示すブロック図である。 「people」データベースに登録されるデータのデータ構造の一例を示す説明図である。 「auction」データベースに登録されるデータのデータ構造の一例を示す説明図である。 結果記憶部および対応記憶部のデータ構造の一例を示す説明図である。 結果記憶部および対応記憶部のデータ構造の別の例を示す説明図である。 結果記憶部および対応記憶部のデータ構造の別の例を示す説明図である。 検索要求の一例を示す説明図である。 検索結果の出力形式の一例を示す説明図である。 処理部の詳細な構成を示すブロック図である。 本実施の形態における検索処理の全体の流れを示すフローチャートである。 オペレータ実行処理の全体の流れを示すフローチャートである。 オペレータ実行処理の全体の流れを示すフローチャートである。 オペレータ実行処理の全体の流れを示すフローチャートである。 転送される中間結果の一例を示した模式図である。 中間結果の一例を示す説明図である。 中間結果の一例を示す説明図である。 中間結果の一例を示す説明図である。 中間結果の一例を示す説明図である。 本実施の形態にかかる情報管理装置のハードウェア構成を示す説明図である。
符号の説明
51 CPU
52 ROM
53 RAM
54 通信I/F
55 バス
10 検索システム
100 検索装置
101 受付部
102 プラン生成部
103 決定部
104 要求送信部
105 結果受信部
106 結果生成部
107 結果送信部
200 情報管理装置
210 処理部
211 受信部
212 実行部
213 対応づけ部
214 結果取得部
215 転送部
221 結果記憶部
222 対応記憶部
231 情報記憶部
300 ネットワーク
400 クライアント
41 バインドテーブル
51、52 バインドテーブル
61、62 バインドテーブル
1001、1002、1003、1004、1005、1006、1007、1008 バインドテーブル

Claims (10)

  1. 情報を分散して格納する複数のデータベースを、前記データベースごとに管理する複数の情報管理装置と、前記情報管理装置とネットワークを介して接続され、前記情報管理装置から前記情報を検索する検索装置と、を備えた検索システムであって、
    前記検索装置は、
    前記ネットワークに接続されたクライアント端末からの前記情報の検索要求を受付ける受付部と、
    受付けた前記検索要求を解析し、複数の前記情報管理装置が実行すべき検索指令を含む検索プランを生成するプラン生成部と、
    生成された前記検索プランに含まれる前記検索指令ごとに、前記検索指令の実行に用いる実行情報を、前記検索指令を実行すべき前記情報管理装置に対して送信する要求送信部と、
    前記検索指令の実行結果を前記情報管理装置から受信する結果受信部と、
    受信した前記実行結果に基づいて検索結果を生成する結果生成部と、
    生成した前記検索結果を前記クライアント端末に送信する結果送信部と、を備え、
    前記情報管理装置は、
    前記実行情報を前記検索装置から受信する受信部と、
    受信した前記実行情報を用いて前記検索指令を実行する実行部と、
    実行した前記検索指令の前記実行結果に、前記実行結果の取得元である前記データベースを識別する予め定められた取得元情報を対応づける対応づけ部と、
    前記取得元情報が対応づけられた前記実行結果を、前記実行結果を利用する前記検索指令を実行すべき他の前記情報管理装置に転送する転送部と、を備え、
    前記実行部は、前記他の前記情報管理装置から転送された前記実行結果を利用する前記検索指令をさらに実行し、転送された前記実行結果に、実行した前記検索指令の前記実行結果を追加し、
    前記対応づけ部は、実行した前記検索指令の前記実行結果を追加した前記実行結果に、実行した前記検索指令の前記実行結果の取得元である前記データベースを識別する前記取得元情報をさらに対応づけ、
    前記転送部は、前記取得元情報が対応づけられた前記実行結果を、前記実行結果に対応づけられた前記取得元情報で識別される前記データベースを管理する前記情報管理装置にさらに転送すること、
    を特徴とする検索システム。
  2. 前記情報管理装置は、
    前記実行結果の取得元である前記データベースごとに前記実行結果を記憶可能な結果記憶部をさらに備え、
    前記実行部は、転送された前記実行結果に対応づけられた前記取得元情報に基づいて、転送された前記実行結果を、取得元である前記データベースごとに前記結果記憶部に記憶し、記憶した前記実行結果のそれぞれに、実行した前記検索指令の前記実行結果を追加すること、
    を特徴とする請求項1に記載の検索システム。
  3. 前記情報管理装置は、
    取得元である前記データベースごとの前記実行結果を識別する結果識別情報と、前記実行結果ごとの前記実行結果の取得元の前記データベースを識別する前記取得元情報とを対応づけて記憶可能な対応記憶部をさらに備え、
    前記対応づけ部は、実行した前記検索指令の前記実行結果を識別する前記結果識別情報と、実行した前記検索指令の前記実行結果の取得元である前記データベースを識別する前記取得元情報を対応づけて前記対応記憶部に記憶すること、
    を特徴とする請求項2に記載の検索システム。
  4. 前記プラン生成部は、前記実行結果を転送する内容を表す前記検索指令に関する情報を含む前記検索プランを生成し、
    前記要求送信部は、前記実行結果を利用する前記検索指令を実行する前記情報管理装置に前記実行結果を転送する内容を表す前記検索指令の前記実行情報を送信し、
    前記転送部は、前記実行部が前記実行結果を転送する内容を表す前記検索指令の前記実行情報を受信した場合に、前記実行結果を利用する前記検索指令を実行する前記情報管理装置に前記実行結果を転送すること、
    を特徴とする請求項1に記載の検索システム。
  5. 前記要求送信部は、前記実行結果のうち利用する前記実行結果を特定する特定情報を含む前記実行情報を送信し、
    前記情報管理装置は、
    前記実行部が実行した前記検索指令の前記実行結果のうち、前記実行部が受信した前記実行情報に含まれる前記特定情報で特定される前記実行結果を取得する結果取得部をさらに備え、
    前記転送部は、前記結果取得部が取得した前記実行結果を、前記実行結果を利用する前記検索指令を実行する前記情報管理装置に転送すること、
    を特徴とする請求項4に記載の検索システム。
  6. 前記要求送信部は、転送先の前記情報管理装置を識別する装置識別情報を含む前記実行情報を送信し、
    前記転送部は、前記結果取得部が取得した前記実行結果を、前記実行部が受信した前記実行情報に含まれる前記装置識別情報で識別される前記情報管理装置に転送すること、
    を特徴とする請求項5に記載の検索システム。
  7. 前記結果生成部は、生成された前記検索プランに含まれる前記検索指令であって、受信した前記実行結果から前記検索結果を生成する前記検索指令を実行すること、
    を特徴とする請求項1に記載の検索システム。
  8. 生成された前記検索プランに基づいて前記検索指令の実行順序を決定する決定部をさらに備え、
    前記要求送信部は、決定された前記実行順序で、前記検索指令を実行する前記情報管理装置に対して前記実行情報を送信すること、
    を特徴とする請求項1に記載の検索システム。
  9. 情報を分散して格納する複数のデータベースを、前記データベースごとに管理する複数の情報管理装置と、前記情報管理装置とネットワークを介して接続され、前記情報管理装置から前記情報を検索する検索装置と、を備えた検索システムにおける検索方法であって、
    前記検索装置によって、前記ネットワークに接続されたクライアント端末からの前記情報の検索要求を受付ける受付ステップと、
    前記検索装置によって、受付けた前記検索要求を解析し、複数の前記情報管理装置が実行すべき検索指令を含む検索プランを生成するプラン生成ステップと、
    前記検索装置によって、生成された前記検索プランに含まれる前記検索指令ごとに、前記検索指令の実行に用いる実行情報を、前記検索指令を実行すべき前記情報管理装置に対して送信する要求送信ステップと、
    前記情報管理装置によって、前記実行情報を前記検索装置から受信する受信ステップと、
    前記情報管理装置によって、受信した前記実行情報を用いて前記検索指令を実行する第1実行ステップと、
    前記情報管理装置によって、実行した前記検索指令の実行結果に、前記実行結果の取得元である前記データベースを識別する予め定められた取得元情報を対応づける第1対応づけステップと、
    前記情報管理装置によって、前記取得元情報が対応づけられた前記実行結果を、前記実行結果を利用する前記検索指令を実行すべき他の前記情報管理装置に転送する第1転送ステップと、
    前記情報管理装置によって、前記他の前記情報管理装置から転送された前記実行結果を利用する前記検索指令を実行し、転送された前記実行結果に、実行した前記検索指令の前記実行結果を追加する第2実行ステップと、
    前記情報管理装置によって、実行した前記検索指令の前記実行結果を追加した前記実行結果に、実行した前記検索指令の前記実行結果の取得元である前記データベースを識別する前記取得元情報を対応づける第2対応づけステップと、
    前記情報管理装置によって、前記取得元情報が対応づけられた前記実行結果を、前記実行結果に対応づけられた前記取得元情報で識別される前記データベースを管理する前記情報管理装置に転送する第2転送ステップと、
    前記検索装置によって、前記実行結果を前記情報管理装置から受信する結果受信ステップと、
    前記検索装置によって、受信した前記実行結果に基づいて検索結果を生成する結果生成ステップと、
    前記検索装置によって、生成した前記検索結果を前記クライアント端末に送信する結果送信ステップと、
    を備えたことを特徴とする検索方法。
  10. 情報を分散して格納する複数のデータベースを、前記データベースごとに管理する外部情報管理装置と、前記情報を検索する検索装置とにネットワークを介して接続された情報管理装置であって、
    前記データベースを記憶する情報記憶部と、
    検索指令の実行に用いる実行情報を前記検索装置から受信する受信部と、
    受信した前記実行情報を用いて前記検索指令を実行する実行部と、
    実行した前記検索指令の前記実行結果に、前記実行結果の取得元である前記データベースを識別する予め定められた取得元情報を対応づける対応づけ部と、
    前記取得元情報が対応づけられた前記実行結果を、前記実行結果を利用する前記検索指令を実行すべき前記外部情報管理装置に転送する転送部と、を備え、
    前記実行部は、前記外部情報管理装置から転送された前記実行結果を利用する前記検索指令をさらに実行し、転送された前記実行結果に、実行した前記検索指令の前記実行結果を追加し、
    前記対応づけ部は、実行した前記検索指令の前記実行結果を追加した前記実行結果に、実行した前記検索指令の前記実行結果の取得元である前記データベースを識別する前記取得元情報をさらに対応づけ、
    前記転送部は、前記取得元情報が対応づけられた前記実行結果を、前記実行結果に対応づけられた前記取得元情報で識別される前記データベースを管理する前記外部情報管理装置にさらに転送すること、
    を特徴とする情報管理装置。
JP2006265096A 2006-09-28 2006-09-28 検索システム、検索方法、および情報管理装置 Active JP4181196B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006265096A JP4181196B2 (ja) 2006-09-28 2006-09-28 検索システム、検索方法、および情報管理装置
US11/896,042 US20080082516A1 (en) 2006-09-28 2007-08-29 System for and method of searching distributed data base, and information management device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006265096A JP4181196B2 (ja) 2006-09-28 2006-09-28 検索システム、検索方法、および情報管理装置

Publications (2)

Publication Number Publication Date
JP2008084134A true JP2008084134A (ja) 2008-04-10
JP4181196B2 JP4181196B2 (ja) 2008-11-12

Family

ID=39262207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006265096A Active JP4181196B2 (ja) 2006-09-28 2006-09-28 検索システム、検索方法、および情報管理装置

Country Status (2)

Country Link
US (1) US20080082516A1 (ja)
JP (1) JP4181196B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5538585B1 (ja) * 2013-03-18 2014-07-02 三菱電機インフォメーションシステムズ株式会社 データ検索システム及びデータ検索プログラム
JP2017027325A (ja) * 2015-07-22 2017-02-02 株式会社東芝 データベースシステムおよびデータベースシステム用プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8585712B2 (en) * 2010-02-03 2013-11-19 Covidien Lp Surgical retrieval apparatus
CN104239417B (zh) * 2014-08-19 2017-06-09 天津南大通用数据技术股份有限公司 一种分布式数据库数据分片后动态调整方法及装置
CN104537078B (zh) * 2014-12-31 2018-02-27 天津南大通用数据技术股份有限公司 一种基于滑块的目录索引优化方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4155382B2 (ja) * 2001-01-25 2008-09-24 富士通株式会社 パターン検索方法、パターン検索装置、パターン検索プログラムを記録したコンピュータ読み取り可能な記録媒体、パターン検索システムおよびパターン検索プログラム
US20040143644A1 (en) * 2003-01-21 2004-07-22 Nec Laboratories America, Inc. Meta-search engine architecture

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5538585B1 (ja) * 2013-03-18 2014-07-02 三菱電機インフォメーションシステムズ株式会社 データ検索システム及びデータ検索プログラム
JP2014182446A (ja) * 2013-03-18 2014-09-29 Mitsubishi Electric Information Systems Corp データ検索システム及びデータ検索プログラム
JP2017027325A (ja) * 2015-07-22 2017-02-02 株式会社東芝 データベースシステムおよびデータベースシステム用プログラム

Also Published As

Publication number Publication date
JP4181196B2 (ja) 2008-11-12
US20080082516A1 (en) 2008-04-03

Similar Documents

Publication Publication Date Title
RU2427896C2 (ru) Аннотирование документов в совместно работающих приложениях данными в разрозненных информационных системах
JP5005726B2 (ja) 複数の供給源からのメディアファイルの管理
JP4419879B2 (ja) 情報処理システム
JP5147947B2 (ja) クエリ別検索コレクション生成方法およびシステム
WO2005045698A2 (fr) Procede mis en oeuvre dans un environnement informatique pour engendrer une vue courante a partir d’au moins un objet d’information source susceptible de varier
JP2008521106A (ja) デバイスのネットワークにおける類似オブジェクトの自動検索方法、デバイス、およびシステム
JP5968744B2 (ja) コンセプトキーワード拡張データセットを利用した検索方法、装置、及びコンピュータ読み取り可能な記録媒体
JP2007249899A (ja) 検索処理プログラム
JP5075653B2 (ja) データベース管理方法、データベース管理装置、データベース管理プログラム、及び、データベースシステム
JP4181196B2 (ja) 検索システム、検索方法、および情報管理装置
US20110137855A1 (en) Music recognition method and system based on socialized music server
JP2006172067A (ja) データベース管理方法、システム及びプログラム
JP2002049637A (ja) データベース管理方法及び装置並びに記録媒体
JP2005275488A (ja) 入力支援方法およびプログラム
JP5867540B2 (ja) プログラム生成装置、プログラム生成装置の制御方法、およびプログラム
CN112925954A (zh) 用于在图数据库中查询数据的方法和装置
JP2023162154A (ja) 地域知識グラフに基づいて推薦情報を提供する方法、コンピュータ装置、およびコンピュータプログラム
JP5283600B2 (ja) 情報検索プログラム、情報検索システム
JP2004287835A (ja) オブジェクト表作成方法及びオブジェクト推薦方法及びオブジェクト表作成プログラム及びオブジェクト推薦方法
JP2010160577A (ja) 検索装置及びその制御方法、並びにコンピュータプログラム
WO2009139165A1 (ja) サービス結合支援装置及びサービス結合支援方法並びに記憶媒体
JP2007156995A (ja) データ管理装置、データ管理システム及びデータ管理方法
JP7354330B2 (ja) 趣向による場所関連推薦を提供する方法、システム、およびコンピュータプログラム
JP7093244B2 (ja) データ利用支援装置、及びデータ利用支援方法
JP4479439B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080826

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080828

R151 Written notification of patent or utility model registration

Ref document number: 4181196

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120905

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120905

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130905

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350