(57)【要約】【課題】クライアントサーバ型のデータベースシステムにおいて、検索処理の速度を向上させる。【解決手段】データベースシステムが、順序付けされた複数の項目名を含む検索文を生成するための表示部４を有するクライアント装置１と、複数の項目からなるレコードが複数配列されて構成されてなるテーブルを記憶するデータベース８を有するサーバ装置２とを備え、サーバ装置２が、テーブルの各レコードが持つ複数の項目の間の優先順位を記憶する項目優先順位記憶部９と、クライアント装置１より送信された検索文に含まれる複数の項目名の順序を、この優先順位に基づいて組替える検索項目組替え処理部１０と、組替えられた複数の項目名を持つ検索文に基づいてクライアント装置１に送信されるレコードをデータベース８から検索する検索部１１とを備える。【選択図】図１
2008299797.tif 000002
【特許請求の範囲】
【請求項１】
順序付けされた複数の項目名を含む検索文を生成するための表示部を有するクライアント装置と、
複数の項目からなるレコードが複数配列されて構成されてなるテーブルを記憶するデータベースから、この検索文の条件に合致するレコードを検索し、検索したレコードを前記クライアント装置へ送信するサーバ装置と、を備え、
このサーバ装置が、
前記データベースに記憶されたテーブルの各レコードが持つ複数の項目の間の優先順位を記憶する項目優先順位記憶部と、
前記クライアント装置より送信された検索文に含まれる複数の項目名の順序を、この優先順位に基づいて組替える検索項目組替え処理部と、
この検索項目組替え処理部において組替えられた複数の項目名を持つ検索文に基づいて前記クライアント装置に送信されるレコードを前記データベースから検索する検索部と、
を備えたことを特徴とするデータベースシステム。
【請求項２】
順序付けされた複数の項目名を含む検索文を生成するための表示部を有するクライアント装置が、検索文を生成するステップと、
複数の項目からなるレコードが複数配列されて構成されてなるテーブルを記憶するデータベースを有するサーバ装置が、このクライアント装置より送信された検索文に含まれる複数の項目名の順序を、記憶手段に記憶されたこのデータベースに記憶されたテーブルの各レコードが持つ複数の項目の間の優先順位に基づいて組替えるステップと、
前記サーバ装置が、組替えた複数の項目名を持つ検索文の条件に合致するレコードを、前記データベースから検索するステップと、
前記サーバ装置が、検索したレコードを前記クライアント装置へ送信するステップと、
を備えたことを特徴とするデータベース検索方法。
【請求項３】
複数の項目からなるレコードが複数配列されて構成されてなるテーブルを記憶するデータベースにアクセス可能にする手順と、
このテーブルの各レコードが持つ複数の項目の間の優先順位を記憶手段に記憶する手順と、
順序付けされた複数の項目名を含む検索文を受信する手順と、
この検索文に含まれる複数の項目名の順序を、この優先順位に基づいて組替える手順と、
組替えた複数の項目名を持つ検索文の条件に合致するレコードを、前記データベースから検索する手順と、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばサーバクライアント型のデータベースシステムにおいて、ユーザがクライアント装置に検索条件を設定してサーバ装置のデータベースを検索する際の検索処理速度を向上させる技術に用いて好適な、データベースシステム、データベースシステムにおけるデータベース検索方法及びデータベースシステムに用いられるコンピュータプログラムに関する。
【背景技術】
【０００２】
サーバ装置には、データベースと、このデータベースに対して問い合わせを行うソフトウェアであるデータベース管理システムとが実装されている。クライアント装置のアプリケーションがデータベース管理システムに対して検索文を発行すると、データベース管理システムは、検索文をチェックして、チェックがＯＫである場合、この検索文を実行し、データベースを検索して、検索結果をクライアント装置のアプリケーションに返す。データベースには、複数の項目としてのフィールドからなるレコードが複数配列されて記憶されている。
【０００３】
従来、検索条件を設定可能な汎用画面を用いて、ユーザはどのようなテーブルに対しても任意に検索条件を組み立てて、検索を行っている。この画面では、ユーザは検索条件の項目の入力を次の（１）〜（４）のような方法で行い、ユーザが入力した項目の順に条件を繋いで検索文を作成し、データベースの検索を実行している。
【０００４】
（１）ユーザは検索条件の項目を選択する。例えばＳＥＬＥＣＴ（項目名１、項目名２…）ＦＲＯＭ（テーブル名）；のようにＳＱＬ文が記述されることによって、１又は複数の項目が選択される。
【０００５】
（２）ユーザはその項目に対する大小関係などの条件を設定する。ＳＱＬ文に、ＷＨＥＲＥ（項目名＞＝３）などの条件が追加される。
【０００６】
（３）ユーザは別の条件を付加するかどうかを選択する。画面上での検索結果の表示順を指定する場合には、ＳＱＬ文に、ＯＲＤＥＲ  ＢＹ（項目名）などの条件が追加される。
【０００７】
（４）ユーザはこれらの（１）〜（３）を繰り返す。
【０００８】
リレーショナルデータベースシステムでは、記憶装置に、レコードが記憶されているほかに複数のテーブル間の親子関係（あるいは参照関係）を表す情報が記憶されている。２つのテーブルの間の親子関係は、参照元のテーブルに、参照先のテーブルを識別するキーが記憶されることによって設定される。ユーザは、画面の対話ウィンドウに表示される複数のテーブルの一覧を見ることによりテーブル構成を知る。クライアント装置が、テーブル名を指定したとおりに、データベース管理システムは、検索処理を行い、より速く検索処理を終わらせるための策を講じることはない。複数のテーブルを検索する場合も同様である。
【０００９】
データベース管理システムは、検索要求に対して、レコードを効率的に検索するためのインデックスを用いて検索することが可能である。すなわち、データベース管理システムは、検索時におけるテーブルの組み合わせ方を知らないが、インデックスの使用などの検索の仕組みを知っている。また、データベース管理システムは、各テーブルの行数といったテーブルの特徴をも知っている。
【００１０】
ところで、検索文の構成要素を組替えることによって検索処理の速度は変動する。項目名の組み方によっては、検索処理時に快適な検索性能が得られないことがある。快適な検索性能を得るための検索文をコーディングするためにはユーザには高いスキルが求められる。ユーザは、例えばＯｒａｃｌｅ（登録商標）などのデータベース管理システムの検索の仕組みの特徴や、データベース管理システムが作成したデータベースのテーブルの特徴などを考慮せずに検索を行っている。そのため、検索のために無駄な時間を費やすなど、検索処理が非効率的である場合もある。
【００１１】
データベースの検索を簡単にする技術に関しては、一データ項目内のデータを意味ある単位で分類しまとめた二次索引を作成するデータベースの検索処理方式（特許文献１参照）が知られている。テーブルのリンク関係を一括して管理し、リレーショナルデータベースのテーブル構造を把握していなくてもＲＤＢから必要な情報を容易に得られるようにするリレーショナルデータベース管理装置（特許文献２参照）や、関係型データベースの複数の表をマッチングするための条件を設定するプログラムをユーザが作成しなくても検索が可能なデータベース検索システム（特許文献３参照）も提案されている。
【特許文献１】特開平４−２７３３７８号公報
【特許文献２】特開平１１−３２５７号公報
【特許文献３】特開２０００−３５９６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、ユーザはデータベースのテーブル構成およびテーブルの特徴を認識し、かつどのように検索文を組み立てれば効率良く検索を行えるかを考えながら検索条件を設定しなければならず、ユーザがこれらのテーブル構成やテーブルの特徴を考慮しないで項目名を画面上で組み合わせた場合には検索処理は最短の時間で終わらない。例えば画面上の複数のプルダウンメニューから選択された項目名を、クライアント装置がサーバ装置へ送信した場合、データベース管理システムがテーブル間の親子関係や各テーブルの行数に応じて、検索性能を十分発揮させた状態で検索を行うとは限らない。
【００１３】
従って、快適な検索速度で検索を行うためには、ユーザは常にデータベースのテーブル構成およびテーブルの特徴を認識していなければならないため、大規模なデータベースシステムでは、最短の時間で検索を終わらせることは到底不可能である。
【００１４】
本発明は、上記の課題に鑑み、クライアントサーバ型のデータベースシステムにおいて、検索処理の速度を向上させることを目的とする。
【課題を解決するための手段】
【００１５】
本発明の一態様によれば、順序付けされた複数の項目名を含む検索文を生成するための表示部を有するクライアント装置と、複数の項目からなるレコードが複数配列されて構成されてなるテーブルを記憶するデータベースから、この検索文の条件に合致するレコードを検索し、検索したレコードを前記クライアント装置へ送信するサーバ装置と、を備え、このサーバ装置が、前記データベースに記憶されたテーブルの各レコードが持つ複数の項目の間の優先順位を記憶する項目優先順位記憶部と、前記クライアント装置より送信された検索文に含まれる複数の項目名の順序を、この優先順位に基づいて組替える検索項目組替え処理部と、この検索項目組替え処理部において組替えられた複数の項目名を持つ検索文に基づいて前記クライアント装置に送信されるレコードを前記データベースから検索する検索部と、を備えたことを特徴とするデータベースシステムが提供される。
【００１６】
また、本発明の別の一態様によれば、順序付けされた複数の項目名を含む検索文を生成するための表示部を有するクライアント装置が、検索文を生成するステップと、複数の項目からなるレコードが複数配列されて構成されてなるテーブルを記憶するデータベースを有するサーバ装置が、このクライアント装置より送信された検索文に含まれる複数の項目名の順序を、記憶手段に記憶されたこのデータベースに記憶されたテーブルの各レコードが持つ複数の項目の間の優先順位に基づいて組替えるステップと、前記サーバ装置が、組替えた複数の項目名を持つ検索文の条件に合致するレコードを、前記データベースから検索するステップと、前記サーバ装置が、検索したレコードを前記クライアント装置へ送信するステップと、を備えたことを特徴とするデータベース検索方法が提供される。
【００１７】
また、本発明の別の一態様によれば、複数の項目からなるレコードが複数配列されて構成されてなるテーブルを記憶するデータベースにアクセス可能にする手順と、このテーブルの各レコードが持つ複数の項目の間の優先順位を記憶手段に記憶する手順と、順序付けされた複数の項目名を含む検索文を受信する手順と、この検索文に含まれる複数の項目名の順序を、この優先順位に基づいて組替える手順と、組替えた複数の項目名を持つ検索文の条件に合致するレコードを、前記データベースから検索する手順と、をコンピュータに実行させるためのコンピュータプログラムが提供される。
【発明の効果】
【００１８】
本発明によれば、従来と同様の画面操作により、ユーザにテーブル構成およびテーブルの特徴を意識させること無く、最適な検索文の作成および最適な検索時間で検索を行うことが可能となる。また、検索文に含まれる項目の順序が検索に非効率な場合に生じる検索時間の無駄を削除することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態に係るデータベースシステム、データベース検索方法及びコンピュータプログラムについて、図面を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００２０】
図１は本発明の一実施形態に係るデータベースシステムの構成図である。このデータベースシステムは、クライアントサーバ型のデータベース検索システムであって、データの検索指令を行うクライアント装置１と、データベースを管理するサーバ装置２とを備えており、これらのクライアント装置１とサーバ装置２とが、ネットワーク３によって接続されている。
【００２１】
クライアント装置１は、パソコンであり、順序付けされた複数の項目を含む検索文を生成するための表示部４と、この表示部４に表示されるデータを生成する表示処理部５と、ユーザによって入力された検索文に対応する検索要求を生成する入力処理部６と、この検索要求をサーバ装置２へ送信するとともにサーバ装置２からの検索結果を受信する送受信部７とを備えている。ユーザの入力操作によって、検索文には、サーバ装置２に記憶されたレコードが持つ複数のフィールドを参照するための複数の項目名が含められる。入力処理部６によって、これらの項目名は順序付けされる。表示部４には、例えばディスプレイあるいはディスプレイに表示される対話ウィンドウが用いられる。表示処理部５や送受信部７の機能はＣＰＵ（中央演算装置）、ＬＳＩ、ＲＯＭ及びＲＡＭによって実現される。入力処理部６の機能はキーボードやマウス等の入力手段と、この入力手段によって入力されたデータを処理するプログラムとにより実現される。
【００２２】
サーバ装置２はサーバコンピュータであって、リレーショナルデータベースであるデータベース８を有する。サーバ装置２は、このデータベース８からクライアント装置１より送信された検索文の条件に合致するレコードを検索し、検索したレコードをクライアント装置１へ送信する。このサーバ装置２は、データベース８に記憶されたテーブルの各レコードが持つ複数の項目の間の優先順位を記憶する項目優先順位記憶部としてのテーブル情報記憶部９と、クライアント装置１より送信された検索文に含まれる複数の項目名の順序を、この優先順位に基づいて組替える検索項目組替え処理部としての検索文組替え処理部１０と、この検索文組替え処理部１０において組替えられた複数の項目名を持つ検索文に基づいてクライアント装置１に送信されるデータをデータベース８から検索する検索部としての検索処理部１１と、クライアント装置１からの検索要求を受信するとともに検索結果をクライアント装置１へ送信する送受信部１２とを備えている。テーブル情報記憶部９は記憶手段でもある。データベース８には大容量の記憶装置が用いられる。検索処理部１１の機能はデータベース管理システムにより実現される。
【００２３】
図２はデータベース８に記憶されたテーブルの一例を示す図である。このデータベース８には、６つのレコード１〜６が配列されて構成されているテーブルＡが記憶されており、これらのレコード１〜６はそれぞれ少なくとも項目１〜４を有する。つまり、データベース８は複数の項目からなるレコードが複数、例えば６個配列されて構成されてなるテーブルＡを記憶している。尚、項目３は一意キーとして指定されている。また、データベース８には、テーブルＡとは別のテーブルＢ及びＣがそれぞれ例えば図３（ａ）及び図３（ｂ）に示すように記憶されている。本実施形態に係るサーバ装置２では、テーブル情報記憶部９がこれらのテーブルＡ〜Ｃの項目の間の優先順位を記憶する。
【００２４】
図４はテーブル情報記憶部９に記憶されたテーブル情報の一例を示す図である。テーブル情報記憶部９は、テーブル情報として、テーブルＡ〜Ｃの各項目の間の優先順位を記憶している。例えばテーブルＡについては、項目３、項目２、項目４、項目１の順に優先順位が書き込まれる。検索処理部１１によるデータベース８に対する問い合わせの際に、項目１〜４のうちのいずれかの項目を先頭にすると最短な検索を行えるかを、このテーブル情報は示しているとも言える。同様に、テーブルＢについては、項目２、項目１の順に優先順位が設定されており、また、テーブルＣについては、項目１、項目３、項目５、項目４、項目２、項目６の順に優先順位が設定されている。
【００２５】
本実施形態に係るサーバ装置２では、次の（１）、（２）が用いられる。
【００２６】
（１）データベース８のテーブル構成及びテーブルの特徴を持っておく。
【００２７】
管理者は、データベース８のテーブル構成およびテーブルの特徴を考慮したテーブル情報を作成し、予め、該当するテーブルを検索する際の検索条件として、検索を最短で行う検索文を作成するために設定する項目の順番を記憶装置に書き込んでおく。
【００２８】
（２）検索処理の実行時に検索文の組替えを行う。
【００２９】
サーバ装置２は、検索を実行する前に、テーブル情報を参照し、ユーザが入力した検索条件の項目の順番を組替えて、最適な検索文を自動生成する。
【００３０】
これにより、従来と同様の画面操作により、ユーザが常にデータベース８のテーブル構成およびテーブルの特徴を意識することなく、無駄の無い検索時間内に検索を実行できる。
【００３１】
また、図５は本発明の一実施形態に係るデータベース検索方法を説明するためのフローチャートである。クライアント装置１は検索文を生成する（ステップＡ１）。サーバ装置２がこのクライアント装置１より送信された検索文に含まれる複数の項目名の順序を、テーブル情報記憶部９に記憶された複数の項目の間の優先順位に基づいて組替えし（ステップＡ２）、サーバ装置２が、組替えられた複数の項目名を持つ検索文の条件に合致するレコードを、データベース８から検索し（ステップＡ３）、検索したレコードをクライアント装置１へ送信する（ステップＡ４）。快適な検索性能をシステムが発揮可能なＳＱＬ文をコーディングするためにはユーザには高いスキルが求められるが、本発明のこの実施形態に係るデータベース検索方法によれば、サーバ装置２が検索文を自動的に組み替えるため、ユーザのスキルや、ユーザがテーブルの仕組みを知っているか又は知っていないかにかかわらず、検索処理の速度を向上させることができる。
【００３２】
このような構成の本実施形態に係るデータベースシステムにおける処理フローの一例を説明する。
【００３３】
［１］データの入力操作
クライアント装置１においては、入力処理部６が検索条件の入力操作を行う。具体的には、表示部４は複数種類のプルダウンメニューを表示する。テーブル名を選択するためのプルダウンメニューと、項目名を選択するためのプルダウンメニューと、ＷＨＥＲＥ句やＯＲＤＥＲ  ＢＹ句等を追加するためのプルダウンメニューとを表示部４は表示する。ユーザはこれらのプルダウンメニューから、所望のテーブル名、項目名及び追加の条件を選択して確定させると、入力処理部６は検索文であるＳＱＬ文の組み立て処理を行う。組み立てられた検索条件のデータは、送受信部７からサーバ装置２の送受信部１２に対して送信される。ここでは、入力処理部６が、検索条件として次の設定を行ったものとする。
【００３４】
検索対象テーブル：テーブルＡ
検索条件：項目１=“ＡＢＣ”＆項目３＝“d”
［２］データの検索条件の組替え
サーバ装置２において、検索処理部１１が検索要求を受信すると、検索処理部１１は検索条件のデータを検索文組替え処理部１０に入力する。
【００３５】
図６は検索文組替え処理部１０の処理内容を説明するためのフローチャートである。検索文組替え処理部１０は、テーブル情報記憶部９のテーブル情報を参照して、テーブルＡの検索条件の項目１〜４の間の優先順位を読み込む（ステップＢ１）。検索文組替え処理部１０は、クライアント装置１からの検索文に含まれる項目１、３と、テーブル情報とを比較し（ステップＢ２）、これらの項目１、３とテーブル情報との間に差異があるかどうかを判定する（ステップＢ３）。ステップＢ３において、差異があると検索文組替え処理部１０が判定した場合にはＹＥＳルートを通り、ステップＢ４において、検索文組替え処理部１０は、検索処理部１１からの検索条件と、テーブル情報記憶部９により読み込まれた優先順位とを基に、検索条件の組替えを実行し、組替えた結果データを検索処理部１１に入力する。図２の例を基にした組替え例を以下に示す。項目３、項目１の順に組替えられた結果が示されている。
【００３６】
項目優先順位の読み込み：優先順位は項目３、項目２、項目４、項目１の順
検索条件の組替え結果：項目３＝“ｄ”＆項目１＝“ＡＢＣ”
［３］データの検索結果の表示
サーバ装置２の検索処理部１１は組替えられた検索文を利用して、データベース８を検索し、送受信部１２は検索結果をクライアント装置１へ送信する。クライアント装置１の送受信部７はサーバ装置２からの検索結果を表示処理部５に渡す。表示処理部５は、受け取った検索結果を表示する。なお、ステップＢ３において、差異がないと検索文組替え処理部１０が判定した場合にはＮＯルートを通り、項目の組替えを行ない旨を検索処理部１１に通知して、検索処理部１１はクライアント装置１からの検索文に基づいてデータベース８の検索を行う。
【００３７】
このように、本実施形態に係るデータベースシステム及びデータベース検索方法は、検索条件の組替えを自動的に行うことができるため、以下の（１）〜（３）のような利点がある。
【００３８】
（１）優先順位の高い項目から検索条件として検索の実行時に使われることにより、検索時間の無駄が無くなる。
【００３９】
（２）ユーザはテーブル構成およびテーブルの特徴を意識する必要がないため、操作性が向上する。
【００４０】
（３）検索時間の無駄がなくなるため、ＣＰＵの負荷が軽減する。
【００４１】
以上のことより、本発明のこの実施形態に係るデータベースシステム及びデータベース検索方法によれば、無駄な検索時間を削減でき、操作性が向上することになり、ユーザフレンドリーな検索処理を行える。
【００４２】
このようにして、ユーザに設定された検索条件と同意の条件となるよう、検索条件の順序を組替えることにより、最短の検索時間で検索が実行できるようになる。
【００４３】
上記実施形態では、サーバクライアント型について説明したが、本発明はコンピュータ単体において実現することもできる。この場合には、上記のデータベース８、テーブル情報記憶部９、検索文組替え処理部１０及び検索処理部１１の各機能をプログラムによって実現する。このプログラムをＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、フラッシュメモリ又はフロッピー（登録商標）ディスクなどの記録媒体に記録しておき、これらの記録媒体に記録されたプログラムを汎用コンピュータにインストールすることによっても、サーバクライアント型のデータベースシステムで得られた効果と同じ効果を得ることができる。
【００４４】
本発明の一実施形態に係るコンピュータプログラムは、データベース８にアクセス可能にする手順と、データベース８に記憶されたテーブルＡ〜Ｃの各レコードが持つ複数の項目の間の優先順位を記憶する手順と、順序付けされた複数の項目名を含む検索文を受信する手順と、この検索文に含まれる複数の項目名の順序を、この優先順位に基づいて組替える手順と、組替えた複数の項目名を持つ検索文の条件に合致するレコードを、データベース８から検索する手順とを有する。このプログラムをコンピュータに実行させることにより上記の実施形態で得られた効果と同様の効果を奏することもできる。
【００４５】
尚、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。上記の実施形態においてはクライアント装置１は１台であったが、本発明のデータベースシステムは、複数のクライアント装置１をネットワーク３を介して接続して構成されてもよい。上記の実施形態のテーブルＡ〜Ｃのレコードの内容、レコードの数及び項目の数は種々変更可能である。
【００４６】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態に係るデータベースシステムの構成図である。
【図２】データベースに記憶されたテーブルの一例を示す図である。
【図３】（ａ）及び（ｂ）はそれぞれデータベースに記憶された他のテーブルの例を示す図である。
【図４】テーブル情報記憶部に記憶されたテーブル情報の一例を示す図である。
【図５】本発明の一実施形態に係るデータベース検索方法を説明するためのフローチャートである。
【図６】サーバ装置の検索文組替え処理部の処理内容を説明するためのフローチャートである。
【符号の説明】
【００４８】
１…クライアント装置、２…サーバ装置、３…ネットワーク、４…表示部、５…表示処理部、６…入力処理部、７，１２…送受信部、８…データベース、９…テーブル情報記憶部（項目優先順位記憶部、記憶手段）、１０…検索文組替え処理部（検索項目組替え処理部）、１１…検索処理部（検索部）。
【図１】
2008299797.tif 000003
【図２】
2008299797.tif 000004
【図３】
2008299797.tif 000005
【図４】
2008299797.tif 000006
【図５】
2008299797.tif 000007
【図６】
2008299797.tif 000008