(57)【要約】【課題】互いに共通のテーブル項目を持つ複数のテーブルを複雑かつ多量の選択条件で高速に検索するデータ検索装置、データ検索方法及びデータ検索プログラムを提供する。【解決手段】検索データの選択条件を入力し、選択条件が入力された項目数をテーブル毎に計数し、テーブル毎の計数値に基づいて、複数のテーブルの検索順序を決定して、順に複数のテーブルより選択条件に合致するデータを検索する。【選択図】図２
2008108272.tif 000002
【特許請求の範囲】
【請求項１】
複数のテーブルを記憶する記憶手段よりデータを検索するデータ検索装置において、
検索データの選択条件を入力する入力手段と、
前記入力手段が入力する選択条件が入力された項目数を、前記テーブル毎に計数する計
数手段と、
前記計数手段が計数した前記テーブル毎の計数値に基づいて、前記複数のテーブルの検
索順序を決定する検索順序決定手段と、
前記検索順序決定手段が決定した検索順序で前記複数のテーブルより順に前記入力手段
が入力する選択条件に合致するデータを検索する検索手段と
を具備することを特徴とするデータ検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータベースからデータを検索するデータ検索装置、データ検索方法及びデータ検索プログラムに関する。
【背景技術】
【０００２】
従来、以下のようなデータベース検索技術が存在する。
例えば、特許文献１には、リレーショナル・データ・ベースを高速に検索する方法が開示されている。この発明によれば、リレーショナル・データ・ベースに更新コマンドが入力されて基本テーブルの更新処理が行われると、更新処理が行われた基本テーブルのデータ特性分布が解析される。検索コマンドが入力されると、その検索コマンドが蓄積されて検索コマンドの使用状況が使用状況監視処理によって監視される。検索コマンドの使用状況に応じて、テーブル編集処理によって基本テーブルの編集または高速検索テーブルの作成を行う。また、検索コマンドが入力されると、検索処理作成処理によってリレーショナル・データ・ベースを検索する最適な検索処理経路が決定されてその検索経路にしたがって、リレーショナル・データ・ベースの検索が実行される。
【０００３】
また、特許文献２には、データベースから検索したデータを所定の出力形式で帳票に出力する方法が開示されている。この発明によれば、オペレータが入出力装置を介して帳票情報設定手段を利用して帳票へ出力する日時とプラントデータ番号を設定すると、この設定された設定情報が検索情報として検索情報管理ファイルに保存される。この検索情報の設定後にオペレータが要求を行うと、帳票データ検索手段は、検索情報管理ファイルの検索情報に基づいて定周期履歴データファイルを検索し、検索情報管理ファイルの結果データの出力書式に基づいて結果データとしての帳票が入出力装置１Ａから出力される。したがって、帳票作成作業の効率向上を図ることができる。
また、この発明によれば、さらに、帳票情報自動検索設定手段が設けられ、検索スケジュール管理ファイルの検索スケジュール情報に複数の検索が重複するとき検索時刻と検索順位設定情報を加えて保存し、検索順序を予め設定し、あるいは、検索終了後に検索期間を加えて次の検索予約を登録するようにしている。
【０００４】
また、特許文献３には、ルーティング処理におけるテーブル検索処理を高速化する方法が開示されている。この発明によれば、宛先アドレスで検索される複数の検索テーブルの検索順序情報を予め定められたグループに対応してグループ単位に規定しておく。そして、ルーティング処理に際して、受信パケットに付加されたグループ識別フラグで指定されるグループ情報から、管理テーブルを検索して、グループに対応した複数の検索テーブルに関する検索順序情報を取得し、受信パケットから抽出した宛先アドレスについて、複数の検索テーブルから、検索順序情報に従って検索処理を実行する。
【特許文献１】特開平７−１０５０５８号公報
【特許文献２】特開平１１−１７５６４５号公報
【特許文献３】特開２０００−１７４８０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、テーブルの選択条件がより複雑かつ多量となってくると、上述したようなデータ検索技術を用いるよりも、選択条件をうまく活用して検索対象データを逐次絞り込んでいった方が高速化を図ることが出来る場合がある。具体的には、特許文献１に開示されているように、データベースを検索する最適な検索処理経路をうまく決定することで、より高速化を図ることが出来る。
しかし、この最適な検索処理経路は、選択条件やテーブル構成によって変わってしまうため、ユーザが必要なデータを得るための選択条件が変更されることやテーブルの追加、削除によってデータ特性分布を解析しなおさなくてはならず、汎用性、柔軟性に欠けるという問題点があった。
【０００６】
本発明は、このような事情を考慮してなされたものであり、その目的は、互いに共通のテーブル項目を持つ複数のテーブルを複雑かつ多量の選択条件で高速に検索するデータ検索装置、データ検索方法及びデータ検索プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
この発明は上記の課題を解決すべくなされたもので、本発明は、複数のテーブルを記憶する記憶手段よりデータを検索するデータ検索装置において、検索データの選択条件を入力する入力手段と、前記入力手段が入力する選択条件が入力された項目数を、前記テーブル毎に計数する計数手段と、前記計数手段が計数した前記テーブル毎の計数値に基づいて、前記複数のテーブルの検索順序を決定する検索順序決定手段と、前記検索順序決定手段が決定した検索順序で前記複数のテーブルより順に前記入力手段が入力する選択条件に合致するデータを検索する検索手段とを具備することを特徴とする。
【０００８】
また、本発明は、前記複数のテーブルは、共通のテーブル項目を持つことを特徴とする。
【０００９】
また、本発明は、前記検索順序決定手段は、前記テーブル毎の計数値に所定の重み付け係数を乗算し、該乗算値に基づいて、前記複数のテーブルの検索順序を決定することを特徴とする。
【００１０】
また、本発明は、前記検索手段は、前記検索順序決定手段が決定した検索順序が先のテーブルより、前記入力手段が入力する選択条件に合致するデータを検索し、該選択条件に合致したデータであって、前記検索順序決定手段が決定した検索順序が後のテーブルに格納されているデータより、前記入力手段が入力する選択条件に合致するデータを検索することを特徴とする。
【００１１】
また、本発明は、複数のテーブルを記憶する記憶手段よりデータを検索するデータ検索方法において、検索データの選択条件を入力し、前記選択条件が入力された項目数を、前記テーブル毎に計数し、前記テーブル毎の計数値に基づいて、前記複数のテーブルの検索順序を決定し、前記決定した検索順序で前記複数のテーブルより順に前記入力手段が入力する選択条件に合致するデータを検索することを特徴とする。
【００１２】
また、本発明は、複数のテーブルを記憶する記憶手段よりデータを検索する処理をコンピュータに実行させるためのプログラムであって、検索データの選択条件を入力する処理と、前記選択条件が入力された項目数を、前記テーブル毎に計数する処理と、前記テーブル毎の計数値に基づいて、前記複数のテーブルの検索順序を決定する処理と、前記決定した検索順序で前記複数のテーブルより順に前記入力手段が入力する選択条件に合致するデータを検索する処理とをコンピュータに実行させるためのデータ検索プログラムである。
【発明の効果】
【００１３】
以上説明したように、本発明によれば、検索データの選択条件を入力し、選択条件が入力された項目数をテーブル毎に計数し、テーブル毎の計数値に基づいて、複数のテーブルの検索順序を決定して、順に複数のテーブルより選択条件に合致するデータを検索する。
したがって、互いに共通のテーブル項目を持つ複数のテーブルを複雑かつ多量の選択条件で高速に検索することができる効果が得られる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施するための最良の形態について説明する。
【実施例１】
【００１５】
以下、図面を参照して、本発明のデータ検索装置の一実施形態について説明する。図１は、本実施形態のデータ検索装置１の構成図である。
本実施形態のデータ検索装置１は、入力部１０と、計数部１１と、テーブル記憶部１２と、検索順序決定部１３と、検索部１４と、出力部１５とから構成され、共通のテーブル項目を持つ複数のテーブルを記憶するテーブル記憶部１２よりデータを検索する。
入力部１０は、検索データの選択条件を入力する。検索データの選択条件は、検索対象のデータが格納されたテーブルの項目と対応関係を有する入力フィールドに入力される。
具体的には、例えば、テーブル記憶部１２に格納され、共通のテーブル項目を持つテーブル１〜３について、選択条件の入力フィールド１、２がテーブル１と対応し、選択条件の入力フィールド３がテーブル２と対応し、選択条件の入力フィールド４がテーブル３と対応とするように、検索データの選択条件の入力形式を構成する。そして、ユーザが入力部１０において入力フィールド１〜４のうち、任意の入力フィールド（例えば、入力フィールド１のみ、あるいは、入力フィールド１〜４すべて等）に選択条件を入力する。なお、各テーブル項目の入力フィールドは、単一の値の入力だけではなく、複数入力やＡＮＤ条件・ＯＲ条件、ワイルドカード（例えば先頭が１の受注伝票）などを入力するようにしてもよい。
なお、この入力形式は一例であり、入力フィールドとテーブルの対応関係は、実装に応じて変更されるものである。
【００１６】
計数部１１は、入力部１０が入力する選択条件が入力された項目数を、テーブル毎に計数する。具体的には、入力部１０において、共通のテーブル項目を持つテーブル１〜３について、選択条件の入力フィールド１、２がテーブル１と対応し、選択条件の入力フィールド３がテーブル２と対応し、選択条件の入力フィールド４がテーブル３と対応とするように、検索データの選択条件の入力形式を構成した場合、入力フィールド１のみに選択条件が入力されていれば、テーブル毎の計数値は、テーブル１〜３の順に（１、０、０）となり、入力フィールド１〜４すべてに選択条件が入力されていれば、テーブル毎の計数値は、テーブル１〜３の順に（２、１、１）となる。
【００１７】
検索順序決定部１３は、計数部１１が計数したテーブル毎の計数値に基づいて、複数のテーブルの検索順序を決定する。具体的には、計数値が大きいほど、多くの選択条件が指定されており、早い段階で検索対象データを大きく絞り込めることから、検索順序が先になるように構成する。ただし、対応するテーブル項目によっては、データ分布特性を考慮して、計数値を補正するようにすることも考えられる。この場合、検索順序決定部１３は、さらに、テーブル毎の計数値に所定の重み付け係数（補正計数）を乗算し、この乗算値に基づいて、複数のテーブルの検索順序を決定するようにする。
検索部１４は、検索順序決定部１３が決定した検索順序で複数のテーブルより順に入力部１０が入力する選択条件に合致するデータを検索する。具体的には、検索部１４は、検索順序決定部１３が決定した検索順序が先のテーブルより選択条件に合致するデータを検索する。そして、このテーブルで選択条件に合致するデータであって、検索順序が後のテーブルに格納されているデータより、さらに、選択条件に合致するデータを検索する。
出力部１５は、検索部１４の検索結果を所定の出力形式で表示部（図示せず）等に出力する。
【００１８】
次に、図面を参照して、本実施形態のデータ検索装置１の動作について説明する。図２は、本実施形態のデータ検索装置１におけるデータ検索処理の過程を示すフローチャートである。
今、図３に示すようなテーブルＴ１〜Ｔ３が構成されているものとする。すなわち、テーブルＴ１は、テーブル名を受注伝票（ヘッダー）、主キー（ＰＫ）を受注伝票番号とし、受注日、受注担当者、得意先のテーブル項目を有しており、テーブルＴ２は、テーブル名を請求書、主キー（ＰＫ）を請求伝票番号とし、請求日、請求先、受注伝票番号、受注明細番号のテーブル項目を有しており、テーブルＴ３は、テーブル名を受注伝票（明細）、主キー（ＰＫ）を受注伝票番号、明細番号とし、受注品目、受注数量、受注金額のテーブル項目を有しているものとする。
このとき、テーブルＴ１〜Ｔ３と対応する入力フィールド１〜４として、テーブルＴ１より（入力フィールド１：受注日、入力フィールド２：得意先）、テーブルＴ２より（入力フィールド３：請求日）、テーブルＴ３より（入力フィールド４：受注品目）、が設定された場合において、ユーザが選択条件を入力フィールド１、２、４に受注日、得意先、受注品目を入力すると、入力部１０は、入力フィールド１〜４の入力データを読み込む（図２のステップＳ１）。
【００１９】
入力部１０によって読み込まれた入力データは計数部１１に出力され、テーブルＴ１〜Ｔ３毎に入力された選択条件の数がカウントされる（ステップＳ２）。図４は、この例におけるカウント結果を示す。すなわち、選択条件の入力がある入力フィールド１、２の計数値２が対応するテーブル１の計数値として書き込まれる。また、選択条件の入力がない入力フィールド３の計数値０が対応するテーブル２の計数値として書き込まれる。選択条件の入力がある入力フィールド４の計数値１が対応するテーブル３の計数値として書き込まれる。
【００２０】
テーブル毎の計数値は計数部１１から検索順序決定部１３に出力され、入力された選択条件と合致するデータを、テーブル１〜３のうちのどのテーブルから順に検索するかを示す検索順序が決定される。すなわち、検索順序決定部１３は、計数値が大きいテーブルほど、検索対象データを大きく絞ることが出来るため、検索順序を先に設定する。逆に、計数値が小さいテーブルほど、検索対象データをあまり絞ることが出来ないため、検索順序を後に設定する。ただし、上述したように、対応するテーブル項目によっては、データ分布特性を考慮して、計数値を補正するようにすることも考えられる。この場合、検索順序決定部１３は、さらに、テーブル毎の計数値に所定の重み付け係数（補正計数）を乗算し、この乗算値（重み付け値）に基づいて、複数のテーブルの検索順序を決定するようにする。
図４の例は、テーブル１の重み付け係数を基準値１として、テーブル２のデータ分布特性を考慮して、テーブル１より低い値０．８とし、テーブル３のデータ分布特性を考慮して、テーブル１より高い値１．２とした場合を示す。
この場合、各テーブル毎の計数値と重み付け係数との乗算値は、図４に示すように、２、０、１．２となり、大きい順にテーブル１、テーブル３、テーブル２となる。すなわち、この順序で検索順序が決定される（ステップＳ３）。
【００２１】
検索順序決定部１３が決定した検索順序は、検索部１４によって読み込まれ、この検索順序で選択条件と合致するデータが検索される。すなわち、検索部１４は、まず重み付け値が最も大きいテーブル１と対応する入力フィールド１、２に入力された選択条件（受注日、得意先）と合致するデータを検索し、検索結果として主キーである受注伝票番号を返す（ステップ４）。
次に、検索部１４は、重み付け値が次に大きいテーブル３と対応する入力フィールド４に入力された選択条件（受注品目及びテーブル１の検索結果である受注伝票番号）と合致するデータを検索し、検索結果として主キーである受注伝票番号を返す（ステップ５）。
そして、検索部１４は、テーブル３の検索結果の受注伝票番号を使用して、テーブルＴ２を検索し、合致するデータを抽出する（ステップＳ６）。
検索部１４の検索結果は出力部１５によって所定の表示形式（例えば、主キーである請求伝票番号と請求先のみ等）で出力される。
【００２２】
以上説明したように、本実施形態のデータ検索装置１によれば、選択条件入力、実行後にテーブル毎に選択条件が入力された項目数をカウントして、必要に応じて重み付けをする。そして、値が多いテーブルほど、データを絞り込めると判断し、重み付け値の多い順に動的にテーブル検索のルーチンを呼び出して、検索処理を実行する。これにより、受注伝票に関連するデータ（受注情報、得意先情報、出荷先情報、請求日付情報など）を複雑な検索条件（受注日、請求日付、得意先名、出荷先名など）で検索し、出力する。
したがって、互いに共通のテーブル項目を持つ複数のテーブルを複雑かつ多量の選択条件で高速に検索することができる効果が得られる。
【００２３】
上述のデータ検索装置１は、内部に、コンピュータシステムを有している。
そして、上述したデータ検索処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。
すなわち、データ検索装置１における、各処理手段、処理部は、ＣＰＵ等の中央演算処理装置がＲＯＭやＲＡＭ等の主記憶装置に上記プログラムを読み出して、情報の加工・演算処理を実行することにより、実現されるものである。
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【図面の簡単な説明】
【００２４】
【図１】データ検索装置１の構成図。
【図２】データ検索処理のフローチャート。
【図３】テーブルＴ１〜Ｔ３の構成図。
【図４】選択条件のカウント結果を示すテーブル。
【符号の説明】
【００２５】
１…データ検索装置
１０…入力部
１１…計数部
１２…テーブル記憶部
１３…検索順序決定部
１４…検索部
１５…出力部
【図１】
2008108272.tif 000003
【図２】
2008108272.tif 000004
【図３】
2008108272.tif 000005
【図４】
2008108272.tif 000006