(57)【要約】【課題】あらゆるクエリに対して動的なデータの取得を短時間に行うことができるデータベース取得方法及びシステムの提供。【解決手段】複数のクエリ結果を格納するための複数の仮想テーブルからなる仮想テーブル群１０９と、該仮想テーブル群１０９に格納したクエリを管理するための仮想テーブル管理情報表１０８とを設け、仮想テーブル作成条件部１１０がリクエストされたクエリの実行時間が所定の実行時間を超えたとき、処理制御部１０４が所定の実行時間を超えたクエリ及びクエリ結果を仮想テーブル群１０９及び仮想テーブル管理情報表１０８に格納することにより、あらゆるクエリに対して動的なデータの取得を短時間に行うもの。【選択図】  図１
2004272747.tif 000002
【特許請求の範囲】
【請求項１】
データを格納した複数の実テーブルから成る実テーブル群に対してクエリをリクエストすることによりデータベースから当該クエリの実行結果であるクエリ結果を取得するデータ取得方法において、前記複数のクエリ結果を格納するための複数の仮想テーブルからなる仮想テーブル群と、該仮想テーブル群に格納したクエリを管理するための仮想テーブル管理情報表とを設け、リクエストされたクエリの実行時間が所定の実行時間を超えたとき、該所定の実行時間を超えたクエリ及びクエリ結果を仮想テーブル群及び仮想テーブル管理情報表に格納することを特徴とするデータ取得方法。
【請求項２】
請求項１に記載のデータ取得方法において、前記実テーブルが更新された場合、更新データに対して前記仮想テーブル管理情報表の各クエリを実行し、一致するクエリがあれば該クエリ結果が格納されている仮想テーブルを更新することを特徴とするデータ取得方法。
【請求項３】
データを格納した複数の実テーブルから成る実テーブル群に対してクエリをリクエストすることによりデータベースから当該クエリの実行結果であるクエリ結果を取得するデータ取得システムにおいて、前記複数のクエリ結果を格納するための複数の仮想テーブルからなる仮想テーブル群と、該仮想テーブル群に格納したクエリを管理するための仮想テーブル管理情報表と、前記仮想テーブル群及び仮想テーブル管理情報表にクエリ及びクエリ結果を格納するか否かをクエリ実行時間によって判定する条件部とを設け、該条件部がリクエストされたクエリの実行時間が所定の実行時間を超えたとき、該所定の実行時間を超えたクエリ及びクエリ結果を仮想テーブル群及び仮想テーブル管理情報表に格納することを特徴とするデータ取得システム。
【請求項４】
請求項３に記載のデータ取得システムにおいて、前記実テーブルが更新された場合、更新データに対して前記仮想テーブル管理情報表の各クエリを実行し、一致するクエリがあれば該クエリ結果が格納されている仮想テーブルを更新することを特徴とするデータ取得システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、クエリと呼ばれる照会文を用いてコンピュータのデータベースからデータを取り出すためのデータ取得方法及びデータ取得システムに係り、特に、あらゆるクエリに対して動的なデータの取得を短時間に行うことができるデータベースのデータ取得方法及び取得システムに関する。
【０００２】
【従来の技術】
一般にコンピュータシスステムにおけるデータベースは、そのデータベースから任意のデータを検索して呼び出すためのクエリが用いられている。このクエリは、どの項目から、どんなデータを、どんな条件で検索するか、という内容をコンピュータに理解できる形式で記述したものであって、「問い合わせ」や「照会文」と呼ばれることもあり、最近では検索結果の表示フォーマットも含めてクエリ（クエリー）と称されている。
【０００３】
さて一般のデータベースシステムでは、データベースの検索を高速化するため、例えばキャッシュメモリを追加し、該キャッシュメモリにデータが更新されたクエリ及び実行結果（検索したデータ）とを前記キャッシュメモリに格納しておき、これ以降に同一のクエリによる検索が指示された場合、キャッシュメモリに格納した当該クエリに対応した実行結果をシステムに返送することが行われている。
【０００４】
この従来技術によるデータベースシステムは、キャッシュメモリを用いてデータの読み出し速度を向上することができるものの、限られたクエリ及び実行結果のみをキャッシュメモリに格納する様に設定されていた。例えばデータベースシステムが商品を販売会社が顧客にオンライン販売するシステムの場合、顧客データに対するクエリ及び実行結果はキャッシュメモリに格納するものの、データが頻繁に更新されることが少ない固定的なデータ、例えば販売会社の会社住所／部署等の固定的なデータの場合に対しては前記キャシュメモリにクエリ及び実行結果を格納しない様に設定されていた。
【０００５】
尚、前述のキャッシュメモリを備えるデータベースシステムが記載された文献としては、例えば特開平１０−２８９１３号公報、特開２０００−２０５２７号公報が挙げられる。
【０００６】
【発明が解決しようとする課題】
前述の従来技術によるデータベースシステムは、クエリの種類によってキャッシュメモリにキャッシュデータを格納しない場合があるため、キャッシュメモリを有効に使用しているとは言い難く、システム全体としての処理時間が冗長になる可能性があった。
【０００７】
更に従来技術によるデータベースシステムは、クエリがアクセスするデータ量によって処理時間の長短があるにもかからず、クエリの種類のみによってキャッシュメモリを制御していたため、キャッシュメモリに短時間で処理できるクエリを格納し、長時間の処理を必要とするクエリをキャッシュメモリに格納しない場合があり、応答に多大な処理時間を費やす可能性があると言う不具合があった。
【０００８】
本発明の目的は、前述の従来技術による不具合を除去することであり、あらゆるクエリに対して動的なデータの取得を短時間に行うことができるデータベースのデータ取得方法及び取得システムを提供することである。
【０００９】
【課題を解決するための手段】
前記目的を達成するために本発明は、データを格納した複数の実テーブルから成る実テーブル群に対してクエリをリクエストすることによりデータベースから当該クエリの実行結果であるクエリ結果を取得するデータ取得方法において、前記複数のクエリ結果を格納するための複数の仮想テーブルからなる仮想テーブル群と、該仮想テーブル群に格納したクエリを管理するための仮想テーブル管理情報表とを設け、リクエストされたクエリの実行時間が所定の実行時間を超えたとき、該所定の実行時間を超えたクエリ及びクエリ結果を仮想テーブル群及び仮想テーブル管理情報表に格納することを第１の特徴とする。
【００１０】
また本発明は前記データ取得方法において、前記実テーブルが更新された場合、更新データに対して前記仮想テーブル管理情報表の各クエリを実行し、一致するクエリがあれば該クエリ結果が格納されている仮想テーブルを更新することを第２の特徴とする。
【００１１】
更に本発明は、データを格納した複数の実テーブルから成る実テーブル群に対してクエリをリクエストすることによりデータベースから当該クエリの実行結果であるクエリ結果を取得するデータ取得システムにおいて、前記複数のクエリ結果を格納するための複数の仮想テーブルからなる仮想テーブル群と、該仮想テーブル群に格納したクエリを管理するための仮想テーブル管理情報表と、前記仮想テーブル群及び仮想テーブル管理情報表にクエリ及びクエリ結果を格納するか否かをクエリ実行時間によって判定する条件部とを設け、該条件部がリクエストされたクエリの実行時間が所定の実行時間を超えたとき、該所定の実行時間を超えたクエリ及びクエリ結果を仮想テーブル群及び仮想テーブル管理情報表に格納することを第３の特徴とする。
【００１２】
また本発明は、前記データ取得システムにおいて、前記実テーブルが更新された場合、更新データに対して前記仮想テーブル管理情報表の各クエリを実行し、一致するクエリがあれば該クエリ結果が格納されている仮想テーブルを更新することを第４の特徴とする。
【００１３】
【発明の実施の形態】
以下、本発明の一実施形態によるデータベースのデータ取得方法及び取得システムを図面を参照して詳細に説明する。
【００１４】
図１は、本実施形態によるデータベースのデータ取得方法を実現するデータベース取得システムの全体構成を示す図、図２は本システムの処理手順を説明するための図、図３は本実施形態による仮想テーブルの更新手順を説明するための図、図４は本実施形態による仮想テーブル管理表を説明するための図、図５は仮想テーブル作成条件を説明するための図である。
【００１５】
本実施形態によるデータ取得方法を実現するデータベース取得システムは、図１に示す如く、クライアント１０１からインターネット等の公衆通信回線網１０２を介してリクエストを受信するデータベースサーバ１０３を備え、該データベースサーバ１０３は、後述する実データ他を格納するデータベース部１０６と、クライアント１０１からのリクエストを解析して所定の処理を制御する処理制御部１０４と、該処理制御部１０４の制御によってデータベース部１０６へのリクエストを実行する実行部１０５と、後述する仮想テーブルの作成条件を制御する仮想テーブル作成条件部１１０とから構成される。
【００１６】
前記データベース部１０６は、各種データを格納する複数の実テーブル１０７ａ〜１０７ｎから成る実テーブル群１０７と、クエリに対応した仮想テーブル名（フアイル名）を格納する仮想テーブル管理情報表１０８と、前記実テーブル１０７ａ〜１０７ｎに対応したクエリ及び実行結果を格納する複数の仮想テーブル１０９ａ〜１０９ｎから成る仮想テーブル群１０９とを備える。
【００１７】
前記実テーブル群１０７は、例えば顧客住所録の場合、都道府県別の顧客住所／氏名他の情報を実テーブル１０７ａ〜１０７ｎ毎に格納するものであり、仮想テーブル群１０９は、前述の処理制御部１０４からの指示に応じてクエリに対応した実行結果、例えば東京に在する顧客データを仮想テーブル１０９ａ〜１０９ｎ毎に格納するものである。
【００１８】
前記仮想テーブル管理情報表１０８は、前記仮想テーブル群１０９に格納した仮想テーブル１０９ａ〜１０９ｎ等のテーブル名と、該テーブル名に対応するクエリを格納するものであって、例えば図４に示す如く、仮想テーブル１０９ａに対応するクエリが、データベースの全データを取得する照会文「Ｓｅｌｅｃｔ  ＊ｆｒｏｍ  Ｕｓｅｒ＿Ｍａｓｔｅｒ」であること、仮想テーブル１０９ｂに対応するクエリが、データベースの全データから東京を住所とする顧客を取得する照会文「Ｓｅｌｅｃｔ  ＊ｆｒｏｍ  Ｕｓｅｒ＿Ｍａｓｔｅｒ  ｗｈｅｒｅ  ＵＭ＿Ｓｔａｔｅ＝Ｔｏｋｙｏ」であること、仮想テーブル１０９ｃに対応するクエリが、データベースから注文データを取得する照会文「Ｓｅｌｅｃｔ  ＊ｆｒｏｍ  Ｏｒｄｅｒ＿Ｍａｓｔｅｒ」）であること、仮想テーブル１０９ｄに対応するクエリが、注文者住所が東京の注文データを取得する照会文「Ｓｅｌｅｃｔ  ＊ｆｒｏｍ  Ｏｅｄｅｒ＿Ｍａｓｔｅｒ  ｗｈｅｒｅ  ＯＭ＿ＵＭ＿Ｓｔａｔｅ＝Ｔｏｋｙｏ」であることを格納している。
【００１９】
また前記仮想テーブル作成条件部１１０は、前記仮想テーブルを作成するクエリを判定する条件を格納し、本実施形態の場合は図５に示すごとく、クエリ実行時間が０．２４ｍｓより大きいクエリのときに前記仮想テーブルを生成することを表している。
【００２０】
さて、この様に構成されたデータベース取得システムは、図１及び図２に示す如く、クライアント１０１からのリクエストを処理制御部１０４で受け取って当該クエリを実行し（図２のステップ２０１〜２０２）、このクエリが前記仮想テーブル管理情報表１０８に既に格納されているクエリか否かの判定（ステップ２０３）を行う。この判定の結果、クエリが前記仮想テーブル管理情報表１０８に既に格納されている場合、即ち該当のクエリに対応する実行結果が仮想テーブル群１０９に存在する場合、本システムは仮想テーブル群１０９の内から該当のクエリに対応するテーブル名に対応した仮想テーブルから、該当のクエリ結果（例えば実行結果である住所が東京の顧客データ等）を取得（ステップ２０４）する。前記ステップ２０３においてリクエストされたクエリが仮想テーブル管理情報表１０８に格納されていない場合、即ち該当のクエリに対応する実行結果が仮想テーブル群１０９に存在しない場合、本システムは実テーブル群１０７に対してリクエストされたクエリに基づいた検索を実行し、そのクエリ結果を取得（ステップ２０５）する。
【００２１】
次いで本システムは、前記ステップ２０５におけるクエリ開始からクエリ結果取得までの実行時間を測定しながらクエリを実行し（ステップ２０６）、この実行時間が仮想テーブル作成条件部１１０に格納された所定の実行時間の条件を満たす、即ち、当該クエリ及びクエリ結果を仮想テーブル群１０９に格納するか否かの判定を行い（ステップ２０７）、所定の実行時間の条件を満たす場合（実行時間が長い場合）は仮想テーブルを新たに作成し（ステップ２０８）、所定の実行時間の条件を満たさない場合（実行時間が短い場合）は仮想テーブルを作成せずに実行部１０５からクエリ結果をクライアント１０１に対して応答する様に動作する（ステップ２０９）。
【００２２】
従って本実施形態によるデータベース取得システムは、クエリ実行時間が所定の実行時間に比して長い場合に仮想テーブル群１０９にクエリ結果を格納すると共に、この格納したことを仮想テーブル管理情報表１０８に登録しておくことにより、クエリ実行時間が比較的長いクエリに対するクエリ結果を高速な仮想テーブル群１０９から取得するため、システム全体としてのクエリ実行時間を短縮することができる。
【００２３】
また本実施形態によるデータベース取得システムは、前記実テーブル群１０７に格納した実データが更新された場合、図３に示す如く、この更新（ステップ３０１）によって更新データに対して仮想テーブル管理情報表１０８に登録したクエリを実行し、合致するクエリが存在するかどうかを判定し（ステップ３０２）、合致する場合に、仮想テーブル管理情報表１０８の該当する仮想テーブルに上記更新データを追加するように制御する。また、実テーブル群１０７の実データが削除された場合も上記と同様の考え方により、該当する仮想テーブルからデータを削除するように制御する。
【００２４】
従って、本実施形態によれば実データを更新した際にも、当該更新が仮想テーブル群１０９にも反映されるため、前記同様にクエリ実行時間が比較的長いクエリに対するクエリ結果を高速な仮想テーブル群１０９から取得してシステム全体としてのクエリ実行時間を短縮することができる。
【００２５】
尚、前記実施形態においてはクエリ実行時間を基準として比較的実行時間が長時間なものを仮想テーブル群及び仮想テーブル管理情報表に格納する例を接したが、例えばクエリに対応したデータ量を測定し、所定のデータと比してデータ量が多いものを仮想テーブル群及び仮想テーブル管理情報表に格納するように構成しても良い。
【００２６】
【発明の効果】
以上説明したように本発明によるデータ取得方法及びシステムは、複数のクエリ結果を格納するための複数の仮想テーブルからなる仮想テーブル群と、該仮想テーブル群に格納したクエリを管理するための仮想テーブル管理情報表とを設け、リクエストされたクエリの実行時間が所定の実行時間を超えたとき、該所定の実行時間を超えたクエリ及びクエリ結果を仮想テーブル群及び仮想テーブル管理情報表に格納することにより、あらゆるクエリに対して動的なデータの取得を短時間に行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施形態によるデータベースのデータ取得方法を実現するデータベース取得システムの全体構成を示す図。
【図２】本実施形態によるシステムの処理手順を説明するための図
【図３】本実施形態による仮想テーブルの更新手順を説明するための図。
【図４】本実施形態による仮想テーブル管理表を説明するための図。
【図５】
本実施形態による仮想テーブル作成条件を説明するための図。
【符号の説明】
１０１：クライアント、１０２：公衆通信回線網、１０３：データベースサーバ、１０４：処理実行部、１０５：実行部、１０６：データベース部、１０７：実テーブル群、１０８仮想テーブル管理表：、１０９：仮想テーブル群、１１０：仮想テーブル作成条件部。
【図１】
2004272747.tif 000003
【図２】
2004272747.tif 000004
【図３】
2004272747.tif 000005
【図４】
2004272747.tif 000006
【図５】
2004272747.tif 000007