(57)【特許請求の範囲】
【請求項１】
クライアント装置であって、
ネットワークを介してデータベース・サーバ装置と通信する通信部と、
前記データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する第１記憶部と、
前記第１記憶部が記憶するレコードのセットの複製を記憶する第２記憶部と、
前記第１記憶部から前記第２記憶部への前記レコードのセットの複製を実行し、前記第１及び前記第２記憶部を管理する管理部と、
ユーザからのデータの検索要求に応答して、前記第２記憶部に対し検索を行う検索実行部とを含み、
前記検索実行部は、要求されたデータが前記第２記憶部にないことに応答して、前記通信部を介して前記データベース・サーバ装置に対して前記データを要求し、前記データベース・サーバ装置から返された前記要求されたデータを含むレコードを前記第２記憶部にのみ格納し、
前記管理部は、前記通信部を介して前記データベース・サーバ装置から受信した、前記データベースに含まれるレコードのセットの一部を更新するための複数のクライアント装置に対して共通な更新データを用いて、前記第１記憶部が記憶する前記レコードのセットを更新する、
前記クライアント装置。
【請求項２】
前記第１記憶部は、不揮発性のメモリであり、前記第２記憶部は揮発性のメモリである、請求項１記載のクライアント装置。
【請求項３】
前記管理部は、前記第２記憶部への電力供給が断たれた後該電力供給が再開されたことに応答して、前記第１記憶部から前記第２記憶部への前記レコードのセットの複製を実行する、請求項２に記載のクライアント装置。
【請求項４】
前記管理部は、前記データベース・サーバ装置から返された前記要求されたデータを含むレコードを追加する空き容量が前記第２記憶部にない場合に、前記第２記憶部から検索要求の少ないレコードを削除する、請求項１に記載のクライアント装置。
【請求項５】
前記クライアント装置は、組み込み機器である、請求項１に記載のクライアント装置。
【請求項６】
前記管理部による前記第１記憶部が記憶する前記レコードのセットの更新は、１以上のレコードの追加、１以上のレコードの削除、及び１以上のレコードの変更のうちの少なくとも１つを含む、請求項１に記載のクライアント装置。
【請求項７】
データベース・サーバ装置と、前記データベース・サーバ装置にネットワークを介して接続する複数のクライアント装置を含むシステムであって、
前記各クライアント装置は、
前記ネットワークを介して前記データベース・サーバ装置と通信する通信部と、
前記データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する第１記憶部と、
前記第１記憶部が記憶するレコードのセットの複製を記憶する第２記憶部と、
前記第１記憶部が記憶する前記レコードのセットを更新し、前記第１記憶部から前記第２記憶部への前記レコードのセットの複製を実行する、前記第１及び前記第２記憶部を管理する管理部と、
前記クライアント装置のユーザからのデータの検索要求に応答して、前記第２記憶部に対して検索を行い、前記データがない場合に前記データベース・サーバ装置に検索要求を送信し、前記データベース・サーバ装置から返された前記データを含むレコードを前記第２記憶部にのみ格納する検索実行部とを含み、
前記データベース・サーバ装置は、
前記データベースと、
前記各クライアント装置からの、前記第２記憶部にないデータの検索要求に応答して、前記データベースに対し検索を行うデータベース管理部と、
レコードごとに前記検索の回数を記録する検索情報記録部と、
前記各クライアント装置の前記第１記憶部に共通に記憶される前記レコードの順位表を格納する順位表格納部と、
前記検索の回数と前記順位表とに基づいて、前記各クライアント装置の前記第１記憶部に共通に記憶される前記レコードのセットを更新するための前記各クライアントに共通な更新データを作成する更新データ作成部と、
を含むシステム。
【請求項８】
前記更新データは、前記クライアント装置の前記第１記憶部に格納される前記レコードのセットに追加する１以上のレコードと、前記レコードのセットから削除する１以上のレコードに関する情報とを含む、請求項７に記載のシステム。
【請求項９】
前記各クライアント装置の前記第１記憶部に共通に記憶される前記レコードの前記順位表は、前記レコードの新しさについての順位表である、請求項７に記載のシステム。
【請求項１０】
ネットワークを介してデータベース・サーバ装置と通信可能なクライアント装置において実行される、データベースの管理方法であって、
前記データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を第１記憶部に格納するステップと、
前記第１記憶部が記憶するレコードのセットを、第２記憶部に複製するステップと、
前記クライアント装置のユーザからのデータの検索要求に応答して、前記第２記憶部に対し検索を行うステップと、
要求されるデータが前記第２記憶部にないことに応答して、記データベース・サーバ装置の前記データベースに対して前記データを要求し、前記データベース・サーバ装置から返された前記データを含むレコードを前記第２記憶部にのみ格納するステップと、
前記データベース・サーバ装置から、前記データベースに含まれるレコードのセットの一部を更新するための複数のクライアント装置に対して共通な更新データを受信することに応答して、前記第１記憶部が記憶する前記レコードのセットを更新するステップと
を含むデータベースの管理方法。
【請求項１１】
前記第１記憶部は、不揮発性のメモリであり、前記第２記憶部は揮発性のメモリであり、前記複製するステップは、前記第２記憶部への電力供給が断たれた後該電力供給が再開されたことに応答して行われる、請求項１０に記載のデータベースの管理方法。
【請求項１２】
データベース・サーバ装置と、前記データベース・サーバ装置にネットワークを介して接続する複数のクライアント装置を含むシステムにおいて実行される、データベースの管理方法であって、前記各クライアント装置は、前記データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する第１記憶部と、前記第１記憶部が記憶するレコードのセットの複製を記憶する第２記憶部とを有し、
前記各クライアント装置において、
ユーザからのデータの検索要求に応答して、前記第２記憶部に対し検索を行うステップと、
要求されるデータが前記第２記憶部にないことに応答して、前記データベース・サーバ装置の前記データベースに対して前記データを要求し、  前記データベースから返された前記データを含むレコードを前記第２記憶部にのみ格納するステップと、
前記第１記憶部が記憶する前記レコードのセットを更新するステップと
を含み、
前記データベース・サーバ装置において、
前記各クライアント装置からの、前記第２記憶部にないデータの要求に応答して、前記データベースに対し検索を行うステップと、
レコードごとに前記検索の回数を記録するステップと、
前記各クライアント装置の前記第１記憶部に共通に記憶される前記レコードのセットの順位表と前記検索の回数とを参照して、前記各クライアント装置の前記第１記憶部に共通に記憶される前記レコードのセットを更新するための前記各クライアントに共通な更新データを作成するステップと、
を含む、データベースを管理する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータベースの管理方法に関し、特に携帯情報端末や組み込み機器等の記憶容量が限られた装置においてデータベースを管理する技術に関する。
【背景技術】
【０００２】
携帯情報端末、ハンドヘルド・パーソナル・コンピュータ、携帯電話、組み込み機器といった記憶容量の限られた装置において、扱われるデータの量やデータの種類が増え、データベースを利用する必要性が増してきている。近年そのような記憶容量の限られた装置に用いられるデータベースが各社から提供されている。これら提供されるデータベースは、少ないメモリでも動作するよう工夫され、例えばＩＢＭ社のＤＢ２（商標）ＥｖｅｒｙＰｌａｃｅ（商標）製品等の一部のデータベース製品では、外部のデータベース・サーバと連携し、データを更新することも可能である（非特許文献１参照。）。
【０００３】
しかしながら、各社から提供されている組み込み機器用のデータベースを利用したとしても、組み込み機器のような記憶容量の限られた装置に搭載できるデータの量には限度がある。搭載できないほどの大量のデータがある場合の対処法の１つとして、データを組み込み機器には一切搭載せずに、必要に応じて外部のデータベース・サーバに通信回線を介してアクセスする方法が考えられる。しかしこの場合、データが必要になる度にデータを要求するのでレスポンスが遅いといった問題や、通信ができない場所ではデータにアクセスできないといった問題がある。
【非特許文献１】ＤＢ２  Ｅｖｅｒｙｐｌａｃｅ  Ｖ９．１、[online]、[平成１９年１２月１日検索]、インターネット、＜ＵＲＬ：http://www-06.ibm.com/jp/software/data/db2/everyplace/＞
【特許文献１】特表２００５−５３５９４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記問題に対し、データベース・サーバが保持する全レコードから、組み込み機器のもつ記憶容量に納まる一部のレコードのセットを取り出して組み込み機器にもたせ、組み込み機器とデータベース・サーバとの間で同期をとることが考えられる（特許文献１参照。）。しかしこの方法では、一部のレコードのセットに含まれないデータが必要になった場合、まず、データベース・サーバ側にある、一部のレコードのセットからなるデータベースの内容を変更し、その後組み込み機器とデータベースとの間で再度同期をとるという面倒な作業が必要になってしまう。
【０００５】
そこで本発明は、組み込み機器側のデータベースにおける検索のヒット率をあげることによって、組み込み機器からデータベース・サーバへアクセスする回数を減らすことを目的とする。より具体的には、組み込み機器が有するデータベースに格納するレコードのセットの一部として、検索対象となる可能性の高いデータを持たせること、また、組み込み機器が有するデータベースを定期的に更新することを目的とする。更に本発明は、そのような組み込み機器が有するデータベースの更新をより簡単なものとし、更新に際するデータベース・サーバ及び機器の負担を最小限にとどめることを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成する本発明は、次のような、データベース・サーバ装置にネットワークを介して接続可能なクライアント装置によって実現される。このクライアント装置は、ネットワークを介してデータベース・サーバ装置と通信する通信部と、データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する第１記憶部と、第１記憶部が記憶するレコードのセットの複製を記憶する第２記憶部と、第１記憶部から第２記憶部へのレコードのセットの複製を実行し、第１及び第２記憶部を管理する管理部と、クライアント装置のユーザからのデータの検索要求に応答して、第２記憶部に対し検索を行う検索実行部とを備える。
【０００７】
ここで、好ましくは、クライアント装置は、ハンドヘルド・パーソナル・コンピュータ、携帯電話、組み込み機器といった記憶容量の限られた装置である。また、上記検索実行部は、要求されたデータが第２記憶部にないことに応答して、通信部を介してデータベース・サーバ装置に対してデータを要求し、データベース・サーバ装置から返された要求されたデータを含むレコードを第２記憶部に格納する。また、上記管理部は、通信部を介してデータベース・サーバ装置から受信した、上記データベースに含まれるレコードのセットの一部を更新する更新データを用いて、第１記憶部のレコードのセットを更新する。
【０００８】
好ましくは、第１記憶部は、不揮発性のメモリであり、第２記憶部は揮発性のメモリである。好ましくはまた、上記管理部は、第２記憶部への電力供給が断たれた後該電力供給が再開されたことに応答して、第１記憶部から第２記憶部へのレコードのセットの複製を実行する。ここで第２記憶部への電力供給が断たれる場合として、例えばクライアント装置においてバッテリが切れる場合があげられる。好ましくは、第１記憶部のレコードのセットの更新は、１以上の新しいレコードのセットの追加と、１以上の既存のレコードのセットの削除と、１以上の既存のレコードの変更のうちの少なくとも１つを含む。
【０００９】
好ましくは、上記管理部は、データベース・サーバ装置から返された要求されたデータを含むレコードを追加する空き容量が第２記憶部にない場合に、第２記憶部から検索要求の少ないレコードを削除する。
【００１０】
また、上記の目的を達成する本発明は、データベース・サーバ装置と、該データベース・サーバ装置にネットワークを介して接続する複数のクライアント装置を含むシステムによって実現される。
各クライアント装置は、ネットワークを介してデータベース・サーバ装置と通信する通信部と、データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する第１記憶部と、第１記憶部が記憶するレコードのセットの複製を記憶する第２記憶部と、第１記憶部が記憶するレコードのセットを更新し、第１記憶部から第２記憶部へのレコードのセットの複製を実行する、第１及び第２記憶部を管理する管理部と、クライアント装置のユーザからのデータの検索要求に応答して、第２記憶部に対して検索を行い、上記データがない場合にデータベース・サーバ装置に検索要求を送信し、データベース・サーバ装置から返された上記データを含むレコードを第２記憶部に格納する検索実行部とを含む。
データベース・サーバ装置は、データベースを有し、各クライアント装置からの、第２記憶部にないデータの要求に応答して、上記データベースに対し検索を行うデータベース管理部と、レコードごとに検索の回数を記録する検索情報記録部と、各クライアント装置の第１記憶部に共通に記憶されるレコードの順位表を格納する順位表格納部と、検索の回数と順位表とに基づいて、各クライアント装置の第１記憶部に共通に記憶されるレコードのセットを更新する更新データを作成する更新データ作成部とを含む。
【００１１】
好ましくは、更新データは、第１記憶部に新たに追加する１以上のレコードのセットと第１記憶部から削除する１以上の既存のレコードに関する情報とを含む。更に、更新データは、第１記憶部に記憶される１以上の既存のレコードの変更に関する情報を含んでもよい。
【００１２】
好ましくは、第１記憶部に格納されるレコードの順位表は、レコードの新しさについての順位表である。
【００１３】
以上、データベースを管理するクライアント装置、またシステムとして本発明を説明したが、本発明は、そのようなクライアント装置又はシステムにおいて実行される、データベースを管理する方法として実現することもできる。
【発明の効果】
【００１４】
本発明によれば、クライアント装置は、第１記憶部と第２記憶部とを備え、データベース・サーバ装置から返された検索結果を第２記憶部に格納するため、第１記憶部に格納されるレコードのセットを前回の更新後の内容のままとすることを可能とする。その結果、データベースの更新は、データベース・サーバ装置がその内容を把握する第１記憶部に対して行うことが可能となり、更新に際するデータベース・サーバ装置及びクライアント装置の負担が少なくなる。
【００１５】
また、全てのクライアント装置について、第１記憶部に格納するレコードのセットを同一のものとすることが可能となるため、データベース・サーバ装置は、全てのクライアント装置に共通の更新データを作成することができ、データベースの更新に際するデータベース・サーバ装置の負担が少なくなる。
【００１６】
また、本発明に係るデータベース・サーバ装置は、各クライアント装置によるレコードごとの検索回数に基づいて更新データを作成するため、各クライアント装置において、第１記憶部、従ってその複製を格納する第２記憶部の検索のヒット率を上げることが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決部に必須であるとは限らない。
【００１８】
図１は、本発明の一実施形態に係るデータベースを管理するシステム１０の全体の構成の一例を示す図である。システム１０は、インターネットやLAN（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワーク２００に接続し、複数のクライアント装置１００からの検索要求に応えるデータベース・サーバ装置３００と、ネットワーク２００に接続し、データベース・サーバ装置３００に検索を要求するクライアント装置１００とを含む。
【００１９】
本発明に係るクライアント装置１００は、データベース・サーバ装置３００のデータベースに含まれるレコードのセットの一部を格納するデータベースを有し、通常は、それ自体のデータベースに対して検索を行う。クライアント装置１００のデータベースにないデータについて検索要求がなされると、クライアント装置１００は、例えばＴＣＰ(Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）やＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）など任意の好適なプロトコルを利用してデータベース・サーバ装置３００へ接続し、データを要求する。データベース・サーバ装置３００側の通信アプリケーションのデータベースへのアクセスは、ＯＤＢＣ（Ｏｐｅｎ  ＤａｔａＢａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ）やＪＤＢＣ（Ｊａｖａ（登録商標）ＤａｔａＢａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ）等の標準インタフェースを介して行ってよい。
【００２０】
データベース・サーバ装置３００は、クライアント装置１００から、データの検索要求を受け取ると、該検索要求の履歴を記録し、クライアント装置１００からの検索要求の回数をレコードごとカウントする。履歴の記録が一定量になると又は定期的に、データベース・サーバ装置３００は、検索要求の回数に基づいて、クライアント装置１００のデータベースを更新するための更新データを作成する。一方、データベース・サーバ装置３００から検索結果として要求したデータを含むレコードを返されたクライアント装置１００は、受信したレコードをそれ自体のデータベースに格納し、同一のデータに対する再度の検索要求に備える。
【００２１】
一般に、データベースの内容を更新するには、元のデータベースにどのようなレコードが含まれているか知る必要がある。これは追加しようとするレコードが既にデータベースに含まれていたり、或いは、変更や削除しようとするレコードが既にデータベースから削除されていたりすると、その更新処理に対しエラーが返されるからである。そのため、各クライアント装置１００がそれ自体のデータベースを自由に変更できるとすると、更新データを作成するデータベース・サーバ装置３００は、各クライアント装置１００について、そのデータベースの更新処理をモニターし、該クライアント装置１００に固有の更新データを作成する必要がある。
【００２２】
一方、データベース・サーバ装置３００が各クライアント装置１００に共通の更新データを作成するとなると、クライアント装置１００は前回の更新から今回の更新までの間にデータベースに対して行った更新をすべて記録し、データベースの更新前に、データベースを前回の更新直後の状態に戻す必要があり、更新に多くの時間を要してしまう。
【００２３】
そこで本発明に係るクライアント装置１００は、データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する不揮発性の第１記憶部（以下、マスターＤＢという）と、第１記憶部が記憶するレコードのセットの複製を記憶する揮発性の第２記憶部（以下、コピーＤＢという）の２つのデータベースを備える。通常、クライアント装置１００は、コピーＤＢに対してデータの検索を行い、また、データベース・サーバ装置３００から返された検索結果は、コピーＤＢに格納する。その結果、マスターＤＢの内容は各クライアント装置１００間で共通となり、データベース・サーバ装置３００は、各クライアント装置１００に共通の更新データを作成することが可能となる。なお、コピーＤＢに対して検索を行うことにより、高速な検索処理をも実現できる。
【００２４】
クライアント装置１００は、データベース・サーバ装置３００から更新データを受信すると、該更新データを用いてマスターＤＢを更新する。クライアント装置１００はまた、コピーＤＢへの電力供給が断たれた場合、コピーＤＢへの電力供給が再開されたことに応答して、マスターＤＢからコピーＤＢへレコードのセットを複製する。更新データは、データベース・サーバ装置３００におけるデータの検索回数に基づいて作成されるため、コピーＤＢに対するクライアント装置１００のデータ検索のヒット率が上がる。
【００２５】
図２は、本発明の実施の形態によるデータベース・サーバ装置３００を実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。情報処理装置は、バス２に接続されたＣＰＵ（中央処理装置）１とメインメモリ４を含んでいる。ハードディスク装置１３、３０、およびＣＤ−ＲＯＭ装置２６、２９、フレキシブル・ディスク装置２０、ＭＯ装置２８、ＤＶＤ装置３１のようなリムーバブル・ストレージ（記録メディアを交換可能な外部記憶システム）がフレキシブル・ディスクコントローラ１９、ＩＤＥコントローラ２５、ＳＣＳＩコントローラ２７などを経由してバス２へ接続されている。
【００２６】
フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置１３、３０、ＲＯＭ１４には、オペレーティング・システムと協働してＣＰＵ等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。
【００２７】
即ち、上記説明した数々の記憶装置には、データベースの機能を実現するＤＢＭＳ（ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）と、クライアント装置１００のデータベースを更新する更新データを作成するための更新データ作成プログラムを格納できる。これら複数のコンピュータ・プログラムはメインメモリ４にロードされることによって実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
【００２８】
また、ハードディスク装置１３、３０等の記憶装置には、複数のクライアント装置１００間で共有される各種データが格納される。本発明の実施形態では、データベース・サーバ装置３００はリレーショナル・データベースとして機能するものとし、ハードディスク装置１３、３０等の記憶装置には各種データがテーブル形式で格納される。
【００２９】
情報処理装置は、キーボード／マウス・コントローラ５を経由して、キーボード６やマウス７のような入力デバイスからの入力を受ける。情報処理装置は、オーディオコントローラ２１を経由して、マイク２４からの入力を受け、またスピーカー２３から音声を出力する。情報処理装置は、視覚データをユーザに提示するための表示装置１１に、グラフィックスコントローラ１０を経由して接続される。情報処理装置は、ネットワーク・アダプタ１８（イーサネット（登録商標）・カードやトークンリング・カード）等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
【００３０】
本発明の実施の形態によるクライアント装置１００を実現するのに好適な情報処理装置のハードウェア構成もまた、基本的には、図２を参照して説明したデータベース・サーバ装置３００のハードウェア構成と同じである。即ち、クライアント装置１００は、演算を行い、プログラムとデータの流れを制御するＣＰＵ１と、プログラムやデータを記憶し、ＣＰＵ１から返された処理結果を記憶するメインメモリ４と、キーボード６等の、外部からの様々な入力を受け付ける入力装置と、表示装置１１等の、情報処理装置による処理状況や処理結果を出力する出力装置と、他のコンピュータ等と通信する通信装置とを備える。
【００３１】
しかしながら、一般に組み込み機器等のクライアント装置１００は、データベース・サーバ装置３００のように十分な記憶装置を備えておらず、ハードディスク装置１３、３０等の記憶装置をもたないクライアント装置１００は、オペレーティング・システム、及びオペレーティング・システムと協働してＣＰＵ等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを、一例としてＲＯＭ１４やＦｌａｓｈメモリ３に記録する。
【００３２】
即ち、クライアント装置１００のＲＯＭ１４やＦｌａｓｈメモリ３には、本発明を実施するデータベース管理プログラムや、クライアント装置１００に様々な機能を提供する各種アプリケーション・プログラムを格納できる。これら複数のコンピュータ・プログラムはメインメモリ４にロードされることによって実行される。また、本実施形態に係るクライアント装置１００は、マスターＤＢとしてＦｌａｓｈメモリ３を使用し、コピーＤＢとしてメインメモリ４の一部を使用する。但し、かかる構成はあくまでも本発明を説明するための例示であり、ハードディスク装置を備えるクライアント装置１００において、該ハードディスク装置をマスターＤＢとして使用することを妨げるものではない。
【００３３】
図３は、本発明の一実施形態に係るクライアント装置１００の機能構成の一例を示す。クライアント装置１００は、通信部１１０、アプリケーション実行部１２０、データベース管理部１３０、検索実行部１４０、マスターＤＢ１５０、及びコピーＤＢ１６０を含む。
【００３４】
通信部１１０は、ネットワーク２００を介してデータベース・サーバ装置３００と通信する。
【００３５】
マスターＤＢ１５０は、後述するデータベース・サーバ装置３００のデータベースに含まれるレコードのセットの一部を記憶する。マスターＤＢ１５０は、不揮発性の記憶装置により実現され、上述したように本発明の実施例では、マスターＤＢ１５０としてＦｌａｓｈメモリ３を使用する。なお、マスターＤＢ１５０に格納されるレコードのセットは、各クライアント装置１００で共通である。
【００３６】
コピーＤＢ１６０は、マスターＤＢ１５０が記憶するレコードのセットの複製を記憶する。コピーＤＢ１６０は、揮発性の記憶装置により実現され、上述したように本発明の実施例では、コピーＤＢ１６０としてメインメモリ４の一部が使用される。
【００３７】
データベース管理部１３０は、マスターＤＢ１５０からコピーＤＢ１６０へのレコードのセットの複製を実行し、マスターＤＢ１５０とコピーＤＢ１６０を管理する。なお、データベース管理部１３０は、コピーＤＢ１６０への電力供給が断たれた後再開されたことに応答して、マスターＤＢ１５０からコピーＤＢ１６０へのレコードのセットの複製を実行する。データベース管理部１３０はまた、後述するデータベース・サーバ装置３００から通信部１１０を介して更新データを受信すると、該更新データを用いて、マスターＤＢ１５０に格納されるレコードのセットを更新する。マスターＤＢ１５０に格納されるレコードのセットの更新の詳細は、図５及び図６を参照して後述する。
【００３８】
アプリケーション実行部１２０は、入力装置を介してユーザにより指定されたアプリケーション（機能）を実行する。アプリケーション実行部１２０により実行されるアプリケーションは、コピーＤＢ１６０に格納されるデータを利用するものであってよい。そのようなアプリケーションは、一例として、ＯＤＢＣ（Ｏｐｅｎ  ＤａｔａＢａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ）やＪＤＢＣ（Ｊａｖａ（登録商標）ＤａｔａＢａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ）等の標準インタフェースを介してデータをアクセスしてよい。
【００３９】
検索実行部１４０は、クライアント装置１００のユーザからの検索要求に応答して、コピーＤＢ１６０に対し検索処理を実行する。ユーザからの検索要求は、アプリケーション実行部１２０により実行されるアプリケーションを介してなされてよく、検索結果は、一例として表示装置１１等の出力装置を介してユーザに返される。
【００４０】
検索実行部１４０はまた、要求されたデータがコピーＤＢ１６０にないことに応答して、通信部１１０を介してデータベース・サーバ装置３００に接続し、データベース・サーバ装置３００にデータの検索を要求する。そして、検索実行部１４０は、通信部１１０を介して、データベース・サーバ装置３００から要求したデータを含むレコードを受信すると、該レコードを、一例として表示装置１１等の出力装置を介してユーザに返す。また、データベース管理部１３０は、検索実行部１４０がデータベース・サーバ装置３００からレコードを受信したことに応答して、コピーＤＢ１６０に空き容量があること確認する。
【００４１】
コピーＤＢ１６０に空き容量がなく、返されたレコードを格納できない場合、データベース管理部１３０は、一例として検索要求の少ない、言い換えるとアクセス回数の少ないレコードをコピーＤＢ１６０から削除する。その後、検索実行部１４０は、データベース・サーバ装置３００から受信したレコードをコピーＤＢ１６０に格納する。
【００４２】
図４は、本発明の一実施形態に係るデータベース・サーバ装置３００の機能構成の一例を示す。データベース・サーバ装置３００は、通信部３１０、データベース管理部３２０、ソース・データベース３４０、検索情報管理部３５０、更新データ作成部３６０、検索情報格納部３７０、及び順位表格納部３８０を含む。
【００４３】
通信部３１０は、ネットワーク２００を介して複数のクライアント装置１００と通信する。
【００４４】
ソース・データベース（以下、ソースＤＢという）３４０は、複数のクライアント装置１００間で共有される各種データを格納する。一例として、ソースＤＢ３４０に格納されるデータは、カラオケ曲のような、クライアント装置１００にとって読出し専用となるデータであってよい。上述したように、本発明の実施形態では、データベース・サーバ装置３００はリレーショナル・データベースとして機能し、ソースＤＢ３４０は、各種データをテーブル形式で格納する。
【００４５】
順位表格納部３８０は、各クライアント装置１００のマスターＤＢ１５０に格納される、ソースＤＢから抜き出した一部のレコードの順位表を格納する。該順位表は一例として、レコードの新しさについての順位表であってよい。
【００４６】
図５（ａ）は、順位表格納部３８０が格納する順位表の一例を示す。図５（ａ）に示す順位表は、ソースＤＢから取り出したテーブルＡの一部のレコードを、作成日の新しい順に並べたものである。各クライアント装置１００のマスターＤＢ１５０には、当初、テーブルＡのレコードのうち順位Ｍまでのレコードのセットが格納されるものとする。なお、順位表格納部３８０は、各クライアント装置１００のマスターＤＢ１５０に格納するすべてのテーブルについて、順位表を格納する。
【００４７】
データベース管理部３２０は、ソースＤＢを管理する。本発明の実施形態では、データベース管理部３２０は、ＲＤＢＭＳ（Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）によって実現され、例えば、ＩＢＭ社のＤＢ２（登録商標）データベース管理システム、マイクロソフト・コーポレーションのＭｉｃｒｏｓｏｆｔ（登録商標）ＳＱＬサーバ・システム、オラクル・コーポレーションのＯｒａｃｌｅ（登録商標）データベース管理システム、またはサイベース・インクのデータベース管理システム等使用できる。
【００４８】
データベース管理部３２０は、各クライアント装置１００からの、コピーＤＢ１６０にないデータの検索要求に応答して、ソースＤＢ３４０に対し検索を行う。検索結果は、通信部３１０を介してクライアント装置１００へ返される。
【００４９】
検索情報格納部３７０は、レコードに関連付けてその検索回数に関する情報を格納する。検索情報記録部３５０は、データベース管理部３２０による検索処理に応答して、検索情報格納部３７０から検索対象のレコードの検索回数を読み出し、これを更新する。
【００５０】
図５（ｂ）は、検索情報格納部３７０が格納する、テーブルＡについてのレコードごとの検索情報の一例を示す。ここで、検索回数は、すべてのクライアント装置１００からの検索要求回数の合計である。検索情報格納部３７０は、各クライアント装置１００のコピーＤＢ１６０に含まれるすべてのテーブルについて、図５（ｂ）に示すような検索情報を格納する。
【００５１】
更新データ作成部３６０は、検索情報格納部３７０に格納されるレコードごとの検索情報と順位表格納部３８０に格納されるレコードの順位表とに基づいて、各クライアント装置１００のマスターＤＢ１５０に共通に格納されるレコードのセットを更新する更新データを作成する。
【００５２】
更新データ作成部３６０が作成する更新データは、各クライアント装置１００のマスターＤＢ１５０に追加する１以上のレコードと、マスターＤＢ１５０に格納されるレコードのセットから削除する１以上のレコードに関する情報と、マスターＤＢ１５０に格納されるレコードのセットのうちの任意の１以上のレコードについての変更情報とのうちの少なくとも１つを含んでよい。
【００５３】
更新データ作成部３６０による更新データの作成は、例えば一日一回などのように定期的に行ってもよい。あるいは、更新データ作成部３６０は、検索回数が所定の回数Ｆを超えるレコードの数が一定数Ｃに達することに応答して、更新データを作成してもよい。ここでは、後者の場合について、図５及び図６を参照して、更新データ作成部３６０が作成する更新データについて説明する。図５（ｂ）に示すように、所定の回数（Ｆ＝４０）を超えるレコードが一定数Ｃに達したとする。
【００５４】
更新データ作成部３６０は、検索回数が所定の回数Ｆを超えるＣ個のレコードを、データベース管理部３２０に問い合わせてソースＤＢ３４０から読み出す。次に更新データ作成部３６０は、順位表格納部３８０から該当するテーブルの順位表を読み出し、最下位から順にＣ個のレコードのＩＤを取得する。そして、更新データ作成部３６０は、ソースＤＢ３４０から取り出したＣ個のレコードを順位表に追加し、元のレコードの順位をそれぞれＣ個繰り下げる。このとき、最下位からＣ個のレコードは順位表から削除される。また、検索回数が所定の回数Ｆを超えるＣ個のレコードも、索情報格納部３７０に格納されるレコードごとの検索情報から削除される。最後に、更新データ作成部３６０は、ソースＤＢ３４０から読み出したレコードのセットを追加レコードとして、また、順位表格納部３８０から読み出したレコードのＩＤを削除するレコードとして、更新データを作成する。また、更新データ作成部３６０は、キーボード６等の入力装置を介して、データベース・サーバ装置３００の管理者から指示に基づき更新データを作成してもよい。
【００５５】
図６は、更新データ作成部３６０が作成する更新データの一例を示す。本実施例では、更新データはＸＭＬ文書として作成し、変更の内容は、「ｄｂ」タブで囲まれた部分に記載する。変更の具体的方法は、要素の属性を利用して指定し、「ｄｂＮａｍｅ」属性により変更対象のテーブルを、「ａｃｔｉｏｎ」属性により変更方法を、「ｐａｒａｍ」によりレコードを指定する。なお、本実施例では、変更方法の指定はＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）言語を利用する。クライアント装置１００のデータベース管理部１３０は、更新データのＸＭＬ文書を受信すると、これを解析部１３５へ渡し、出力として、マスターＤＢ１５０に対する操作命令とデータとを受け取る。なお、解析部１３５はＸＭＬパーサにより実現してよい。
【００５６】
次に図７乃至図１０のフローチャートを参照して、本実施形態に係るシステム１０のデータベースを管理する方法を説明する。図７は、システム１０において実行されるデータベースへの問合せ処理の流れの一例を示す。処理はステップ７００で開始し、ユーザからアプリケーション実行部１２０を介して検索要求を受け取ると、検索実行部１４０は、コピーＤＢ１６０に対して検索を実行する（ステップ７０５）。コピーＤＢ１６０に検索対象のデータがない場合（ステップ７１０：ＮＯ）、検索実行部１４０は通信部１１０を介してデータベース・サーバ装置３００に検索要求を送信する（ステップ７１５）。
【００５７】
データベース・サーバ装置３００において検索要求が受信されると（ステップ７２０）、データベース管理部３２０はソースＤＢ３４０に対して検索を実行する（ステップ７２５）。検索対象のデータが見つかると、データベース管理部３２０は、通信部３１０を介して検索結果をクライアント装置１００へ送信する（ステップ７３０）。検索情報記録部３５０は、データベース管理部３２０による検索処理に応答して、検索情報格納部３７０に格納される検索情報を、検索対象のレコードについて更新する（ステップ７３５）。
【００５８】
クライアント装置１００において検索結果が受信されると（ステップ７４０）、検索実行部１４０は、データベース・サーバ装置３００から受信した検索結果のレコードをコピーＤＢ１６０に格納する（ステップ７４５）。ステップ７４５から、またはステップ７１０において、コピーＤＢ１６０に検索対象のデータがあった場合、処理はステップ７５０へ進み、検索実行部１４０は検索結果をアプリケーションに返してユーザに提供する（ステップ７５０）。そして処理は終了する。
【００５９】
図８は、データベース・サーバ装置３００において実行される更新データ作成処理の流れの一例を示す。なお、図８に示す処理は、更新データ作成部３６０により一定の間隔で定期的に実行される処理である。処理はステップ８００で開始し、更新データ作成部３６０は、更新情報格納部３７０から検索情報を読出し、検索回数が所定の回数Ｆを超えるレコードが一定数Ｃに達しているか否か判断する。一定数Ｃに達していない場合（ステップ８００：ＮＯ）処理は終了する。一方、一定数Ｃに達している場合（ステップ８００：ＹＥＳ）、更新データ作成部３６０は、検索回数が所定の回数Ｆを超えるＣ個のレコードを、データベース管理部３２０に問い合わせてソースＤＢ３４０から読み出す（ステップ８０５）。また、更新データ作成部３６０は、順位表格納部３８０から該当するテーブルの順位表を読み出し、最下位から順にＣ個のレコードのＩＤを取得する（ステップ８１０）。
【００６０】
その後処理はステップ８１５へ進み、更新データ作成部３６０は、ソースＤＢ３４０から取り出したＣ個のレコードを順位表に追加し、元のレコードの順位をそれぞれＣ個繰り下げて順位表を更新する。また、更新データ作成部３６０は、ソースＤＢ３４０から取り出したＣ個のレコードを、更新情報格納部３７０に格納される検索情報から削除する。そして、更新データ作成部３６０は、ソースＤＢ３４０から読み出したレコードのセットを追加レコードとして、また、順位表格納部３８０から読み出したレコードのＩＤを削除するレコードとして、更新データを作成する（ステップ８２０）。最後に更新データ作成部３６０は、通信部３１０を介して作成した更新データを、各クライアント装置１００にそれぞれ送信し（ステップ８２５）、処理を終了する。
【００６１】
図９及び図１０は、クライアント装置１００において実行されるデータベース更新処理の流れの一例を示す。図９において処理はステップ８５０で開始し、データベース管理部１３０は、通信部１１０を介してデータベース・サーバ装置３００から更新データを受信する。更新データがＸＭＬ文書として作成されている場合、データベース管理部１３０は、更新データを解析部１３５へ渡し、解析部１３５は、ＸＭＬ文書を解析する（ステップ８５５）。ＸＭＬ文書を解析した解析部１３５は、データベース管理部１３０へＳＱＬ文を発行する（ステップ８６０）。データベース管理部１３０は、発行されたＳＱＬ文に従ってマスターＤＢ１５０を更新し（ステップ８６５）、処理を終了する。
【００６２】
図１０に示す処理は、データベース管理部１３０により、電源投入時において実行される処理である。処理はステップ９００で開始し、データベース管理部１３０はバッテリ切れ等により、前回の電源投入後にコピーＤＢ１６０への電力供給が絶たれたか否かを判断する。電力供給が継続してあった場合、処理は終了する。一方、電力供給が絶たれ、コピーＤＢ１６０の内容が消えていた場合（ステップ９００：ＹＥＳ）、データベース管理部１３０は、マスターＤＢ１５０の内容を、コピーＤＢ１６０に複製し（ステップ９０５）、そして処理を終了する。
【００６３】
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。従って、そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態に係るデータベースを管理するシステム１０の全体の構成の一例を示す図である。
【図２】本発明の実施形態に係るコンピュータ・システムのハードウェア構成の一例を示す図である。
【図３】本発明の一実施形態に係るクライアント装置１００の機能構成の一例を示す図である。
【図４】本発明の一実施形態に係るデータベース・サーバ装置３００の機能構成の一例を示す図である。
【図５】（ａ）は、マスターＤＢ１５０に格納するレコードの順位表の一例を示す図である。（ｂ）は、データベース・サーバ装置３００におけるレコードごとの検索回数を記録する検索情報の一例を示す図である。
【図６】データベース・サーバ装置３００により作成される更新データの一例を示す図である。
【図７】システム１０における検索処理の流れの一例を示すフローチャートを示す。
【図８】データベース・サーバ装置３００における更新データ作成処理の流れの一例を示すフローチャートを示す。
【図９】クライアント装置１００におけるデータベース更新処理の流れの一例を示すフローチャートを示す。
【図１０】クライアント装置１００におけるデータベース更新処理の流れの一例を示すフローチャートを示す。
【図１】
0005090149.tif 000002
【図２】
0005090149.tif 000003
【図３】
0005090149.tif 000004
【図４】
0005090149.tif 000005
【図５】
0005090149.tif 000006
【図６】
0005090149.tif 000007
【図７】
0005090149.tif 000008
【図８】
0005090149.tif 000009
【図９】
0005090149.tif 000010
【図１０】
0005090149.tif 000011