JP5090149B2 - データベースを管理する方法、装置及びシステム - Google Patents

データベースを管理する方法、装置及びシステム Download PDF

Info

Publication number
JP5090149B2
JP5090149B2 JP2007321621A JP2007321621A JP5090149B2 JP 5090149 B2 JP5090149 B2 JP 5090149B2 JP 2007321621 A JP2007321621 A JP 2007321621A JP 2007321621 A JP2007321621 A JP 2007321621A JP 5090149 B2 JP5090149 B2 JP 5090149B2
Authority
JP
Japan
Prior art keywords
storage unit
database
records
database server
data
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.)
Expired - Fee Related
Application number
JP2007321621A
Other languages
English (en)
Other versions
JP2009146090A (ja
Inventor
光司 ▲高▼野
佐和 ▲高▼野
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2007321621A priority Critical patent/JP5090149B2/ja
Priority to US12/325,517 priority patent/US8874509B2/en
Publication of JP2009146090A publication Critical patent/JP2009146090A/ja
Application granted granted Critical
Publication of JP5090149B2 publication Critical patent/JP5090149B2/ja
Expired - Fee Related 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はデータベースの管理方法に関し、特に携帯情報端末や組み込み機器等の記憶容量が限られた装置においてデータベースを管理する技術に関する。
携帯情報端末、ハンドヘルド・パーソナル・コンピュータ、携帯電話、組み込み機器といった記憶容量の限られた装置において、扱われるデータの量やデータの種類が増え、データベースを利用する必要性が増してきている。近年そのような記憶容量の限られた装置に用いられるデータベースが各社から提供されている。これら提供されるデータベースは、少ないメモリでも動作するよう工夫され、例えばIBM社のDB2(商標)EveryPlace(商標)製品等の一部のデータベース製品では、外部のデータベース・サーバと連携し、データを更新することも可能である(非特許文献1参照。)。
しかしながら、各社から提供されている組み込み機器用のデータベースを利用したとしても、組み込み機器のような記憶容量の限られた装置に搭載できるデータの量には限度がある。搭載できないほどの大量のデータがある場合の対処法の1つとして、データを組み込み機器には一切搭載せずに、必要に応じて外部のデータベース・サーバに通信回線を介してアクセスする方法が考えられる。しかしこの場合、データが必要になる度にデータを要求するのでレスポンスが遅いといった問題や、通信ができない場所ではデータにアクセスできないといった問題がある。
DB2 Everyplace V9.1、[online]、[平成19年12月1日検索]、インターネット、<URL:http://www-06.ibm.com/jp/software/data/db2/everyplace/> 特表2005−535947号公報
上記問題に対し、データベース・サーバが保持する全レコードから、組み込み機器のもつ記憶容量に納まる一部のレコードのセットを取り出して組み込み機器にもたせ、組み込み機器とデータベース・サーバとの間で同期をとることが考えられる(特許文献1参照。)。しかしこの方法では、一部のレコードのセットに含まれないデータが必要になった場合、まず、データベース・サーバ側にある、一部のレコードのセットからなるデータベースの内容を変更し、その後組み込み機器とデータベースとの間で再度同期をとるという面倒な作業が必要になってしまう。
そこで本発明は、組み込み機器側のデータベースにおける検索のヒット率をあげることによって、組み込み機器からデータベース・サーバへアクセスする回数を減らすことを目的とする。より具体的には、組み込み機器が有するデータベースに格納するレコードのセットの一部として、検索対象となる可能性の高いデータを持たせること、また、組み込み機器が有するデータベースを定期的に更新することを目的とする。更に本発明は、そのような組み込み機器が有するデータベースの更新をより簡単なものとし、更新に際するデータベース・サーバ及び機器の負担を最小限にとどめることを目的とする。
上記の目的を達成する本発明は、次のような、データベース・サーバ装置にネットワークを介して接続可能なクライアント装置によって実現される。このクライアント装置は、ネットワークを介してデータベース・サーバ装置と通信する通信部と、データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する第1記憶部と、第1記憶部が記憶するレコードのセットの複製を記憶する第2記憶部と、第1記憶部から第2記憶部へのレコードのセットの複製を実行し、第1及び第2記憶部を管理する管理部と、クライアント装置のユーザからのデータの検索要求に応答して、第2記憶部に対し検索を行う検索実行部とを備える。
ここで、好ましくは、クライアント装置は、ハンドヘルド・パーソナル・コンピュータ、携帯電話、組み込み機器といった記憶容量の限られた装置である。また、上記検索実行部は、要求されたデータが第2記憶部にないことに応答して、通信部を介してデータベース・サーバ装置に対してデータを要求し、データベース・サーバ装置から返された要求されたデータを含むレコードを第2記憶部に格納する。また、上記管理部は、通信部を介してデータベース・サーバ装置から受信した、上記データベースに含まれるレコードのセットの一部を更新する更新データを用いて、第1記憶部のレコードのセットを更新する。
好ましくは、第1記憶部は、不揮発性のメモリであり、第2記憶部は揮発性のメモリである。好ましくはまた、上記管理部は、第2記憶部への電力供給が断たれた後該電力供給が再開されたことに応答して、第1記憶部から第2記憶部へのレコードのセットの複製を実行する。ここで第2記憶部への電力供給が断たれる場合として、例えばクライアント装置においてバッテリが切れる場合があげられる。好ましくは、第1記憶部のレコードのセットの更新は、1以上の新しいレコードのセットの追加と、1以上の既存のレコードのセットの削除と、1以上の既存のレコードの変更のうちの少なくとも1つを含む。
好ましくは、上記管理部は、データベース・サーバ装置から返された要求されたデータを含むレコードを追加する空き容量が第2記憶部にない場合に、第2記憶部から検索要求の少ないレコードを削除する。
また、上記の目的を達成する本発明は、データベース・サーバ装置と、該データベース・サーバ装置にネットワークを介して接続する複数のクライアント装置を含むシステムによって実現される。
各クライアント装置は、ネットワークを介してデータベース・サーバ装置と通信する通信部と、データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する第1記憶部と、第1記憶部が記憶するレコードのセットの複製を記憶する第2記憶部と、第1記憶部が記憶するレコードのセットを更新し、第1記憶部から第2記憶部へのレコードのセットの複製を実行する、第1及び第2記憶部を管理する管理部と、クライアント装置のユーザからのデータの検索要求に応答して、第2記憶部に対して検索を行い、上記データがない場合にデータベース・サーバ装置に検索要求を送信し、データベース・サーバ装置から返された上記データを含むレコードを第2記憶部に格納する検索実行部とを含む。
データベース・サーバ装置は、データベースを有し、各クライアント装置からの、第2記憶部にないデータの要求に応答して、上記データベースに対し検索を行うデータベース管理部と、レコードごとに検索の回数を記録する検索情報記録部と、各クライアント装置の第1記憶部に共通に記憶されるレコードの順位表を格納する順位表格納部と、検索の回数と順位表とに基づいて、各クライアント装置の第1記憶部に共通に記憶されるレコードのセットを更新する更新データを作成する更新データ作成部とを含む。
好ましくは、更新データは、第1記憶部に新たに追加する1以上のレコードのセットと第1記憶部から削除する1以上の既存のレコードに関する情報とを含む。更に、更新データは、第1記憶部に記憶される1以上の既存のレコードの変更に関する情報を含んでもよい。
好ましくは、第1記憶部に格納されるレコードの順位表は、レコードの新しさについての順位表である。
以上、データベースを管理するクライアント装置、またシステムとして本発明を説明したが、本発明は、そのようなクライアント装置又はシステムにおいて実行される、データベースを管理する方法として実現することもできる。
本発明によれば、クライアント装置は、第1記憶部と第2記憶部とを備え、データベース・サーバ装置から返された検索結果を第2記憶部に格納するため、第1記憶部に格納されるレコードのセットを前回の更新後の内容のままとすることを可能とする。その結果、データベースの更新は、データベース・サーバ装置がその内容を把握する第1記憶部に対して行うことが可能となり、更新に際するデータベース・サーバ装置及びクライアント装置の負担が少なくなる。
また、全てのクライアント装置について、第1記憶部に格納するレコードのセットを同一のものとすることが可能となるため、データベース・サーバ装置は、全てのクライアント装置に共通の更新データを作成することができ、データベースの更新に際するデータベース・サーバ装置の負担が少なくなる。
また、本発明に係るデータベース・サーバ装置は、各クライアント装置によるレコードごとの検索回数に基づいて更新データを作成するため、各クライアント装置において、第1記憶部、従ってその複製を格納する第2記憶部の検索のヒット率を上げることが可能となる。
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決部に必須であるとは限らない。
図1は、本発明の一実施形態に係るデータベースを管理するシステム10の全体の構成の一例を示す図である。システム10は、インターネットやLAN(Local Area Network)等のネットワーク200に接続し、複数のクライアント装置100からの検索要求に応えるデータベース・サーバ装置300と、ネットワーク200に接続し、データベース・サーバ装置300に検索を要求するクライアント装置100とを含む。
本発明に係るクライアント装置100は、データベース・サーバ装置300のデータベースに含まれるレコードのセットの一部を格納するデータベースを有し、通常は、それ自体のデータベースに対して検索を行う。クライアント装置100のデータベースにないデータについて検索要求がなされると、クライアント装置100は、例えばTCP(Transmission Control Protocol)やHTTP(HyperText Transfer Protocol)など任意の好適なプロトコルを利用してデータベース・サーバ装置300へ接続し、データを要求する。データベース・サーバ装置300側の通信アプリケーションのデータベースへのアクセスは、ODBC(Open DataBase Connectivity)やJDBC(Java(登録商標)DataBase Connectivity)等の標準インタフェースを介して行ってよい。
データベース・サーバ装置300は、クライアント装置100から、データの検索要求を受け取ると、該検索要求の履歴を記録し、クライアント装置100からの検索要求の回数をレコードごとカウントする。履歴の記録が一定量になると又は定期的に、データベース・サーバ装置300は、検索要求の回数に基づいて、クライアント装置100のデータベースを更新するための更新データを作成する。一方、データベース・サーバ装置300から検索結果として要求したデータを含むレコードを返されたクライアント装置100は、受信したレコードをそれ自体のデータベースに格納し、同一のデータに対する再度の検索要求に備える。
一般に、データベースの内容を更新するには、元のデータベースにどのようなレコードが含まれているか知る必要がある。これは追加しようとするレコードが既にデータベースに含まれていたり、或いは、変更や削除しようとするレコードが既にデータベースから削除されていたりすると、その更新処理に対しエラーが返されるからである。そのため、各クライアント装置100がそれ自体のデータベースを自由に変更できるとすると、更新データを作成するデータベース・サーバ装置300は、各クライアント装置100について、そのデータベースの更新処理をモニターし、該クライアント装置100に固有の更新データを作成する必要がある。
一方、データベース・サーバ装置300が各クライアント装置100に共通の更新データを作成するとなると、クライアント装置100は前回の更新から今回の更新までの間にデータベースに対して行った更新をすべて記録し、データベースの更新前に、データベースを前回の更新直後の状態に戻す必要があり、更新に多くの時間を要してしまう。
そこで本発明に係るクライアント装置100は、データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する不揮発性の第1記憶部(以下、マスターDBという)と、第1記憶部が記憶するレコードのセットの複製を記憶する揮発性の第2記憶部(以下、コピーDBという)の2つのデータベースを備える。通常、クライアント装置100は、コピーDBに対してデータの検索を行い、また、データベース・サーバ装置300から返された検索結果は、コピーDBに格納する。その結果、マスターDBの内容は各クライアント装置100間で共通となり、データベース・サーバ装置300は、各クライアント装置100に共通の更新データを作成することが可能となる。なお、コピーDBに対して検索を行うことにより、高速な検索処理をも実現できる。
クライアント装置100は、データベース・サーバ装置300から更新データを受信すると、該更新データを用いてマスターDBを更新する。クライアント装置100はまた、コピーDBへの電力供給が断たれた場合、コピーDBへの電力供給が再開されたことに応答して、マスターDBからコピーDBへレコードのセットを複製する。更新データは、データベース・サーバ装置300におけるデータの検索回数に基づいて作成されるため、コピーDBに対するクライアント装置100のデータ検索のヒット率が上がる。
図2は、本発明の実施の形態によるデータベース・サーバ装置300を実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。情報処理装置は、バス2に接続されたCPU(中央処理装置)1とメインメモリ4を含んでいる。ハードディスク装置13、30、およびCD−ROM装置26、29、フレキシブル・ディスク装置20、MO装置28、DVD装置31のようなリムーバブル・ストレージ(記録メディアを交換可能な外部記憶システム)がフレキシブル・ディスクコントローラ19、IDEコントローラ25、SCSIコントローラ27などを経由してバス2へ接続されている。
フレキシブル・ディスク、MO、CD−ROM、DVD−ROMのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置13、30、ROM14には、オペレーティング・システムと協働してCPU等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。
即ち、上記説明した数々の記憶装置には、データベースの機能を実現するDBMS(DataBase Management System)と、クライアント装置100のデータベースを更新する更新データを作成するための更新データ作成プログラムを格納できる。これら複数のコンピュータ・プログラムはメインメモリ4にロードされることによって実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
また、ハードディスク装置13、30等の記憶装置には、複数のクライアント装置100間で共有される各種データが格納される。本発明の実施形態では、データベース・サーバ装置300はリレーショナル・データベースとして機能するものとし、ハードディスク装置13、30等の記憶装置には各種データがテーブル形式で格納される。
情報処理装置は、キーボード/マウス・コントローラ5を経由して、キーボード6やマウス7のような入力デバイスからの入力を受ける。情報処理装置は、オーディオコントローラ21を経由して、マイク24からの入力を受け、またスピーカー23から音声を出力する。情報処理装置は、視覚データをユーザに提示するための表示装置11に、グラフィックスコントローラ10を経由して接続される。情報処理装置は、ネットワーク・アダプタ18(イーサネット(登録商標)・カードやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
本発明の実施の形態によるクライアント装置100を実現するのに好適な情報処理装置のハードウェア構成もまた、基本的には、図2を参照して説明したデータベース・サーバ装置300のハードウェア構成と同じである。即ち、クライアント装置100は、演算を行い、プログラムとデータの流れを制御するCPU1と、プログラムやデータを記憶し、CPU1から返された処理結果を記憶するメインメモリ4と、キーボード6等の、外部からの様々な入力を受け付ける入力装置と、表示装置11等の、情報処理装置による処理状況や処理結果を出力する出力装置と、他のコンピュータ等と通信する通信装置とを備える。
しかしながら、一般に組み込み機器等のクライアント装置100は、データベース・サーバ装置300のように十分な記憶装置を備えておらず、ハードディスク装置13、30等の記憶装置をもたないクライアント装置100は、オペレーティング・システム、及びオペレーティング・システムと協働してCPU等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを、一例としてROM14やFlashメモリ3に記録する。
即ち、クライアント装置100のROM14やFlashメモリ3には、本発明を実施するデータベース管理プログラムや、クライアント装置100に様々な機能を提供する各種アプリケーション・プログラムを格納できる。これら複数のコンピュータ・プログラムはメインメモリ4にロードされることによって実行される。また、本実施形態に係るクライアント装置100は、マスターDBとしてFlashメモリ3を使用し、コピーDBとしてメインメモリ4の一部を使用する。但し、かかる構成はあくまでも本発明を説明するための例示であり、ハードディスク装置を備えるクライアント装置100において、該ハードディスク装置をマスターDBとして使用することを妨げるものではない。
図3は、本発明の一実施形態に係るクライアント装置100の機能構成の一例を示す。クライアント装置100は、通信部110、アプリケーション実行部120、データベース管理部130、検索実行部140、マスターDB150、及びコピーDB160を含む。
通信部110は、ネットワーク200を介してデータベース・サーバ装置300と通信する。
マスターDB150は、後述するデータベース・サーバ装置300のデータベースに含まれるレコードのセットの一部を記憶する。マスターDB150は、不揮発性の記憶装置により実現され、上述したように本発明の実施例では、マスターDB150としてFlashメモリ3を使用する。なお、マスターDB150に格納されるレコードのセットは、各クライアント装置100で共通である。
コピーDB160は、マスターDB150が記憶するレコードのセットの複製を記憶する。コピーDB160は、揮発性の記憶装置により実現され、上述したように本発明の実施例では、コピーDB160としてメインメモリ4の一部が使用される。
データベース管理部130は、マスターDB150からコピーDB160へのレコードのセットの複製を実行し、マスターDB150とコピーDB160を管理する。なお、データベース管理部130は、コピーDB160への電力供給が断たれた後再開されたことに応答して、マスターDB150からコピーDB160へのレコードのセットの複製を実行する。データベース管理部130はまた、後述するデータベース・サーバ装置300から通信部110を介して更新データを受信すると、該更新データを用いて、マスターDB150に格納されるレコードのセットを更新する。マスターDB150に格納されるレコードのセットの更新の詳細は、図5及び図6を参照して後述する。
アプリケーション実行部120は、入力装置を介してユーザにより指定されたアプリケーション(機能)を実行する。アプリケーション実行部120により実行されるアプリケーションは、コピーDB160に格納されるデータを利用するものであってよい。そのようなアプリケーションは、一例として、ODBC(Open DataBase Connectivity)やJDBC(Java(登録商標)DataBase Connectivity)等の標準インタフェースを介してデータをアクセスしてよい。
検索実行部140は、クライアント装置100のユーザからの検索要求に応答して、コピーDB160に対し検索処理を実行する。ユーザからの検索要求は、アプリケーション実行部120により実行されるアプリケーションを介してなされてよく、検索結果は、一例として表示装置11等の出力装置を介してユーザに返される。
検索実行部140はまた、要求されたデータがコピーDB160にないことに応答して、通信部110を介してデータベース・サーバ装置300に接続し、データベース・サーバ装置300にデータの検索を要求する。そして、検索実行部140は、通信部110を介して、データベース・サーバ装置300から要求したデータを含むレコードを受信すると、該レコードを、一例として表示装置11等の出力装置を介してユーザに返す。また、データベース管理部130は、検索実行部140がデータベース・サーバ装置300からレコードを受信したことに応答して、コピーDB160に空き容量があること確認する。
コピーDB160に空き容量がなく、返されたレコードを格納できない場合、データベース管理部130は、一例として検索要求の少ない、言い換えるとアクセス回数の少ないレコードをコピーDB160から削除する。その後、検索実行部140は、データベース・サーバ装置300から受信したレコードをコピーDB160に格納する。
図4は、本発明の一実施形態に係るデータベース・サーバ装置300の機能構成の一例を示す。データベース・サーバ装置300は、通信部310、データベース管理部320、ソース・データベース340、検索情報管理部350、更新データ作成部360、検索情報格納部370、及び順位表格納部380を含む。
通信部310は、ネットワーク200を介して複数のクライアント装置100と通信する。
ソース・データベース(以下、ソースDBという)340は、複数のクライアント装置100間で共有される各種データを格納する。一例として、ソースDB340に格納されるデータは、カラオケ曲のような、クライアント装置100にとって読出し専用となるデータであってよい。上述したように、本発明の実施形態では、データベース・サーバ装置300はリレーショナル・データベースとして機能し、ソースDB340は、各種データをテーブル形式で格納する。
順位表格納部380は、各クライアント装置100のマスターDB150に格納される、ソースDBから抜き出した一部のレコードの順位表を格納する。該順位表は一例として、レコードの新しさについての順位表であってよい。
図5(a)は、順位表格納部380が格納する順位表の一例を示す。図5(a)に示す順位表は、ソースDBから取り出したテーブルAの一部のレコードを、作成日の新しい順に並べたものである。各クライアント装置100のマスターDB150には、当初、テーブルAのレコードのうち順位Mまでのレコードのセットが格納されるものとする。なお、順位表格納部380は、各クライアント装置100のマスターDB150に格納するすべてのテーブルについて、順位表を格納する。
データベース管理部320は、ソースDBを管理する。本発明の実施形態では、データベース管理部320は、RDBMS(Relational DataBase Management System)によって実現され、例えば、IBM社のDB2(登録商標)データベース管理システム、マイクロソフト・コーポレーションのMicrosoft(登録商標)SQLサーバ・システム、オラクル・コーポレーションのOracle(登録商標)データベース管理システム、またはサイベース・インクのデータベース管理システム等使用できる。
データベース管理部320は、各クライアント装置100からの、コピーDB160にないデータの検索要求に応答して、ソースDB340に対し検索を行う。検索結果は、通信部310を介してクライアント装置100へ返される。
検索情報格納部370は、レコードに関連付けてその検索回数に関する情報を格納する。検索情報記録部350は、データベース管理部320による検索処理に応答して、検索情報格納部370から検索対象のレコードの検索回数を読み出し、これを更新する。
図5(b)は、検索情報格納部370が格納する、テーブルAについてのレコードごとの検索情報の一例を示す。ここで、検索回数は、すべてのクライアント装置100からの検索要求回数の合計である。検索情報格納部370は、各クライアント装置100のコピーDB160に含まれるすべてのテーブルについて、図5(b)に示すような検索情報を格納する。
更新データ作成部360は、検索情報格納部370に格納されるレコードごとの検索情報と順位表格納部380に格納されるレコードの順位表とに基づいて、各クライアント装置100のマスターDB150に共通に格納されるレコードのセットを更新する更新データを作成する。
更新データ作成部360が作成する更新データは、各クライアント装置100のマスターDB150に追加する1以上のレコードと、マスターDB150に格納されるレコードのセットから削除する1以上のレコードに関する情報と、マスターDB150に格納されるレコードのセットのうちの任意の1以上のレコードについての変更情報とのうちの少なくとも1つを含んでよい。
更新データ作成部360による更新データの作成は、例えば一日一回などのように定期的に行ってもよい。あるいは、更新データ作成部360は、検索回数が所定の回数Fを超えるレコードの数が一定数Cに達することに応答して、更新データを作成してもよい。ここでは、後者の場合について、図5及び図6を参照して、更新データ作成部360が作成する更新データについて説明する。図5(b)に示すように、所定の回数(F=40)を超えるレコードが一定数Cに達したとする。
更新データ作成部360は、検索回数が所定の回数Fを超えるC個のレコードを、データベース管理部320に問い合わせてソースDB340から読み出す。次に更新データ作成部360は、順位表格納部380から該当するテーブルの順位表を読み出し、最下位から順にC個のレコードのIDを取得する。そして、更新データ作成部360は、ソースDB340から取り出したC個のレコードを順位表に追加し、元のレコードの順位をそれぞれC個繰り下げる。このとき、最下位からC個のレコードは順位表から削除される。また、検索回数が所定の回数Fを超えるC個のレコードも、索情報格納部370に格納されるレコードごとの検索情報から削除される。最後に、更新データ作成部360は、ソースDB340から読み出したレコードのセットを追加レコードとして、また、順位表格納部380から読み出したレコードのIDを削除するレコードとして、更新データを作成する。また、更新データ作成部360は、キーボード6等の入力装置を介して、データベース・サーバ装置300の管理者から指示に基づき更新データを作成してもよい。
図6は、更新データ作成部360が作成する更新データの一例を示す。本実施例では、更新データはXML文書として作成し、変更の内容は、「db」タブで囲まれた部分に記載する。変更の具体的方法は、要素の属性を利用して指定し、「dbName」属性により変更対象のテーブルを、「action」属性により変更方法を、「param」によりレコードを指定する。なお、本実施例では、変更方法の指定はSQL(Structured Query Language)言語を利用する。クライアント装置100のデータベース管理部130は、更新データのXML文書を受信すると、これを解析部135へ渡し、出力として、マスターDB150に対する操作命令とデータとを受け取る。なお、解析部135はXMLパーサにより実現してよい。
次に図7乃至図10のフローチャートを参照して、本実施形態に係るシステム10のデータベースを管理する方法を説明する。図7は、システム10において実行されるデータベースへの問合せ処理の流れの一例を示す。処理はステップ700で開始し、ユーザからアプリケーション実行部120を介して検索要求を受け取ると、検索実行部140は、コピーDB160に対して検索を実行する(ステップ705)。コピーDB160に検索対象のデータがない場合(ステップ710:NO)、検索実行部140は通信部110を介してデータベース・サーバ装置300に検索要求を送信する(ステップ715)。
データベース・サーバ装置300において検索要求が受信されると(ステップ720)、データベース管理部320はソースDB340に対して検索を実行する(ステップ725)。検索対象のデータが見つかると、データベース管理部320は、通信部310を介して検索結果をクライアント装置100へ送信する(ステップ730)。検索情報記録部350は、データベース管理部320による検索処理に応答して、検索情報格納部370に格納される検索情報を、検索対象のレコードについて更新する(ステップ735)。
クライアント装置100において検索結果が受信されると(ステップ740)、検索実行部140は、データベース・サーバ装置300から受信した検索結果のレコードをコピーDB160に格納する(ステップ745)。ステップ745から、またはステップ710において、コピーDB160に検索対象のデータがあった場合、処理はステップ750へ進み、検索実行部140は検索結果をアプリケーションに返してユーザに提供する(ステップ750)。そして処理は終了する。
図8は、データベース・サーバ装置300において実行される更新データ作成処理の流れの一例を示す。なお、図8に示す処理は、更新データ作成部360により一定の間隔で定期的に実行される処理である。処理はステップ800で開始し、更新データ作成部360は、更新情報格納部370から検索情報を読出し、検索回数が所定の回数Fを超えるレコードが一定数Cに達しているか否か判断する。一定数Cに達していない場合(ステップ800:NO)処理は終了する。一方、一定数Cに達している場合(ステップ800:YES)、更新データ作成部360は、検索回数が所定の回数Fを超えるC個のレコードを、データベース管理部320に問い合わせてソースDB340から読み出す(ステップ805)。また、更新データ作成部360は、順位表格納部380から該当するテーブルの順位表を読み出し、最下位から順にC個のレコードのIDを取得する(ステップ810)。
その後処理はステップ815へ進み、更新データ作成部360は、ソースDB340から取り出したC個のレコードを順位表に追加し、元のレコードの順位をそれぞれC個繰り下げて順位表を更新する。また、更新データ作成部360は、ソースDB340から取り出したC個のレコードを、更新情報格納部370に格納される検索情報から削除する。そして、更新データ作成部360は、ソースDB340から読み出したレコードのセットを追加レコードとして、また、順位表格納部380から読み出したレコードのIDを削除するレコードとして、更新データを作成する(ステップ820)。最後に更新データ作成部360は、通信部310を介して作成した更新データを、各クライアント装置100にそれぞれ送信し(ステップ825)、処理を終了する。
図9及び図10は、クライアント装置100において実行されるデータベース更新処理の流れの一例を示す。図9において処理はステップ850で開始し、データベース管理部130は、通信部110を介してデータベース・サーバ装置300から更新データを受信する。更新データがXML文書として作成されている場合、データベース管理部130は、更新データを解析部135へ渡し、解析部135は、XML文書を解析する(ステップ855)。XML文書を解析した解析部135は、データベース管理部130へSQL文を発行する(ステップ860)。データベース管理部130は、発行されたSQL文に従ってマスターDB150を更新し(ステップ865)、処理を終了する。
図10に示す処理は、データベース管理部130により、電源投入時において実行される処理である。処理はステップ900で開始し、データベース管理部130はバッテリ切れ等により、前回の電源投入後にコピーDB160への電力供給が絶たれたか否かを判断する。電力供給が継続してあった場合、処理は終了する。一方、電力供給が絶たれ、コピーDB160の内容が消えていた場合(ステップ900:YES)、データベース管理部130は、マスターDB150の内容を、コピーDB160に複製し(ステップ905)、そして処理を終了する。
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。従って、そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。
本発明の一実施形態に係るデータベースを管理するシステム10の全体の構成の一例を示す図である。 本発明の実施形態に係るコンピュータ・システムのハードウェア構成の一例を示す図である。 本発明の一実施形態に係るクライアント装置100の機能構成の一例を示す図である。 本発明の一実施形態に係るデータベース・サーバ装置300の機能構成の一例を示す図である。 (a)は、マスターDB150に格納するレコードの順位表の一例を示す図である。(b)は、データベース・サーバ装置300におけるレコードごとの検索回数を記録する検索情報の一例を示す図である。 データベース・サーバ装置300により作成される更新データの一例を示す図である。 システム10における検索処理の流れの一例を示すフローチャートを示す。 データベース・サーバ装置300における更新データ作成処理の流れの一例を示すフローチャートを示す。 クライアント装置100におけるデータベース更新処理の流れの一例を示すフローチャートを示す。 クライアント装置100におけるデータベース更新処理の流れの一例を示すフローチャートを示す。

Claims (12)

  1. クライアント装置であって、
    ネットワークを介してデータベース・サーバ装置と通信する通信部と、
    前記データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する第1記憶部と、
    前記第1記憶部が記憶するレコードのセットの複製を記憶する第2記憶部と、
    前記第1記憶部から前記第2記憶部への前記レコードのセットの複製を実行し、前記第1及び前記第2記憶部を管理する管理部と、
    ユーザからのデータの検索要求に応答して、前記第2記憶部に対し検索を行う検索実行部とを含み、
    前記検索実行部は、要求されたデータが前記第2記憶部にないことに応答して、前記通信部を介して前記データベース・サーバ装置に対して前記データを要求し、前記データベース・サーバ装置から返された前記要求されたデータを含むレコードを前記第2記憶部にのみ格納し、
    前記管理部は、前記通信部を介して前記データベース・サーバ装置から受信した、前記データベースに含まれるレコードのセットの一部を更新するための複数のクライアント装置に対して共通な更新データを用いて、前記第1記憶部が記憶する前記レコードのセットを更新する、
    前記クライアント装置。
  2. 前記第1記憶部は、不揮発性のメモリであり、前記第2記憶部は揮発性のメモリである、請求項1記載のクライアント装置。
  3. 前記管理部は、前記第2記憶部への電力供給が断たれた後該電力供給が再開されたことに応答して、前記第1記憶部から前記第2記憶部への前記レコードのセットの複製を実行する、請求項2に記載のクライアント装置。
  4. 前記管理部は、前記データベース・サーバ装置から返された前記要求されたデータを含むレコードを追加する空き容量が前記第2記憶部にない場合に、前記第2記憶部から検索要求の少ないレコードを削除する、請求項1に記載のクライアント装置。
  5. 前記クライアント装置は、組み込み機器である、請求項1に記載のクライアント装置。
  6. 前記管理部による前記第1記憶部が記憶する前記レコードのセットの更新は、1以上のレコードの追加、1以上のレコードの削除、及び1以上のレコードの変更のうちの少なくとも1つを含む、請求項1に記載のクライアント装置。
  7. データベース・サーバ装置と、前記データベース・サーバ装置にネットワークを介して接続する複数のクライアント装置を含むシステムであって、
    前記各クライアント装置は、
    前記ネットワークを介して前記データベース・サーバ装置と通信する通信部と、
    前記データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する第1記憶部と、
    前記第1記憶部が記憶するレコードのセットの複製を記憶する第2記憶部と、
    前記第1記憶部が記憶する前記レコードのセットを更新し、前記第1記憶部から前記第2記憶部への前記レコードのセットの複製を実行する、前記第1及び前記第2記憶部を管理する管理部と、
    前記クライアント装置のユーザからのデータの検索要求に応答して、前記第2記憶部に対して検索を行い、前記データがない場合に前記データベース・サーバ装置に検索要求を送信し、前記データベース・サーバ装置から返された前記データを含むレコードを前記第2記憶部にのみ格納する検索実行部とを含み、
    前記データベース・サーバ装置は、
    前記データベースと、
    前記各クライアント装置からの、前記第2記憶部にないデータの検索要求に応答して、前記データベースに対し検索を行うデータベース管理部と、
    レコードごとに前記検索の回数を記録する検索情報記録部と、
    前記各クライアント装置の前記第1記憶部に共通に記憶される前記レコードの順位表を格納する順位表格納部と、
    前記検索の回数と前記順位表とに基づいて、前記各クライアント装置の前記第1記憶部に共通に記憶される前記レコードのセットを更新するための前記各クライアントに共通な更新データを作成する更新データ作成部と、
    を含むシステム。
  8. 前記更新データは、前記クライアント装置の前記第1記憶部に格納される前記レコードのセットに追加する1以上のレコードと、前記レコードのセットから削除する1以上のレコードに関する情報とを含む、請求項7に記載のシステム。
  9. 前記各クライアント装置の前記第1記憶部に共通に記憶される前記レコードの前記順位表は、前記レコードの新しさについての順位表である、請求項7に記載のシステム。
  10. ネットワークを介してデータベース・サーバ装置と通信可能なクライアント装置において実行される、データベースの管理方法であって、
    前記データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を第1記憶部に格納するステップと、
    前記第1記憶部が記憶するレコードのセットを、第2記憶部に複製するステップと、
    前記クライアント装置のユーザからのデータの検索要求に応答して、前記第2記憶部に対し検索を行うステップと、
    要求されるデータが前記第2記憶部にないことに応答して、記データベース・サーバ装置の前記データベースに対して前記データを要求し、前記データベース・サーバ装置から返された前記データを含むレコードを前記第2記憶部にのみ格納するステップと、
    前記データベース・サーバ装置から、前記データベースに含まれるレコードのセットの一部を更新するための複数のクライアント装置に対して共通な更新データを受信することに応答して、前記第1記憶部が記憶する前記レコードのセットを更新するステップと
    を含むデータベースの管理方法。
  11. 前記第1記憶部は、不揮発性のメモリであり、前記第2記憶部は揮発性のメモリであり、前記複製するステップは、前記第2記憶部への電力供給が断たれた後該電力供給が再開されたことに応答して行われる、請求項10に記載のデータベースの管理方法。
  12. データベース・サーバ装置と、前記データベース・サーバ装置にネットワークを介して接続する複数のクライアント装置を含むシステムにおいて実行される、データベースの管理方法であって、前記各クライアント装置は、前記データベース・サーバ装置のデータベースに含まれるレコードのセットの一部を記憶する第1記憶部と、前記第1記憶部が記憶するレコードのセットの複製を記憶する第2記憶部とを有し、
    前記各クライアント装置において、
    ユーザからのデータの検索要求に応答して、前記第2記憶部に対し検索を行うステップと、
    要求されるデータが前記第2記憶部にないことに応答して、前記データベース・サーバ装置の前記データベースに対して前記データを要求し、 前記データベースから返された前記データを含むレコードを前記第2記憶部にのみ格納するステップと、
    前記第1記憶部が記憶する前記レコードのセットを更新するステップと
    を含み、
    前記データベース・サーバ装置において、
    前記各クライアント装置からの、前記第2記憶部にないデータの要求に応答して、前記データベースに対し検索を行うステップと、
    レコードごとに前記検索の回数を記録するステップと、
    前記各クライアント装置の前記第1記憶部に共通に記憶される前記レコードのセットの順位表と前記検索の回数とを参照して、前記各クライアント装置の前記第1記憶部に共通に記憶される前記レコードのセットを更新するための前記各クライアントに共通な更新データを作成するステップと、
    を含む、データベースを管理する方法。
JP2007321621A 2007-12-13 2007-12-13 データベースを管理する方法、装置及びシステム Expired - Fee Related JP5090149B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007321621A JP5090149B2 (ja) 2007-12-13 2007-12-13 データベースを管理する方法、装置及びシステム
US12/325,517 US8874509B2 (en) 2007-12-13 2008-12-01 Database management method, apparatus and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007321621A JP5090149B2 (ja) 2007-12-13 2007-12-13 データベースを管理する方法、装置及びシステム

Publications (2)

Publication Number Publication Date
JP2009146090A JP2009146090A (ja) 2009-07-02
JP5090149B2 true JP5090149B2 (ja) 2012-12-05

Family

ID=40754670

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007321621A Expired - Fee Related JP5090149B2 (ja) 2007-12-13 2007-12-13 データベースを管理する方法、装置及びシステム

Country Status (2)

Country Link
US (1) US8874509B2 (ja)
JP (1) JP5090149B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8767019B2 (en) 2010-08-31 2014-07-01 Sovanta Ag Computer-implemented method for specifying a processing operation
US8972467B2 (en) 2010-08-31 2015-03-03 Sovanta Ag Method for selecting a data set from a plurality of data sets by means of an input device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63132351A (ja) * 1986-11-25 1988-06-04 Nippon Telegr & Teleph Corp <Ntt> メモリデ−タベ−ス処理装置
AU7704696A (en) * 1995-12-01 1997-06-27 British Telecommunications Public Limited Company Database access
KR970076238A (ko) * 1996-05-23 1997-12-12 포만 제프리 엘 클라이언트 데이타 화일의 다수의 복사본을 생성하고 관리하는 서버, 방법 및 그 프로그램 제품
US7054955B2 (en) * 2001-06-27 2006-05-30 Microsoft Corporation System and method for recovering from a failed synchronization session
US7149813B2 (en) * 2001-08-14 2006-12-12 Microsoft Corporation Method and system for synchronizing mobile devices
AU2003214262A1 (en) 2002-05-31 2003-12-19 International Business Machines Corporation System and method for accessing different types of back end data stores
US20040230648A1 (en) * 2003-05-15 2004-11-18 Teh Jin Teik System and method to provide maximum access to remotely hosted content in an environment with limited storage capacity
JP4086723B2 (ja) * 2003-06-25 2008-05-14 日本電気株式会社 インデックスファイル処理方式,方法,およびプログラム
JP4111881B2 (ja) * 2003-06-30 2008-07-02 エスアーペー アーゲー データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム
JP2005038030A (ja) * 2003-07-15 2005-02-10 Toshiba Solutions Corp 携帯端末、同期制御プログラム
US7756825B2 (en) * 2003-07-31 2010-07-13 Microsoft Corporation Synchronization peer participant model
US7877628B2 (en) * 2006-06-08 2011-01-25 International Business Machines Corporation Mirroring data between primary and secondary sites

Also Published As

Publication number Publication date
JP2009146090A (ja) 2009-07-02
US8874509B2 (en) 2014-10-28
US20090157773A1 (en) 2009-06-18

Similar Documents

Publication Publication Date Title
US10417203B2 (en) Compacting data history files
US8555018B1 (en) Techniques for storing data
US9639542B2 (en) Dynamic mapping of extensible datasets to relational database schemas
US11797483B2 (en) Data pruning based on metadata
US9424002B2 (en) Meta-application framework
US10606865B2 (en) Database scale-out
JP2019519025A (ja) 分散システムにおける範囲の分割および移動
WO2019017997A1 (en) DISTRIBUTED GRAPHICAL DATA BASE WRITINGS
JP2005251167A (ja) 管理サーバにより更新されるオンデバイスアプリケーションカタログ
JP2012123790A (ja) 仮想パーティションを用いたデータベース再分配
US20070100911A1 (en) Apparatus and method for materialized query table journaling in a computer database system
WO2018097846A1 (en) Edge store designs for graph databases
US20090187581A1 (en) Consolidation and association of structured and unstructured data on a computer file system
US20170270149A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
US11327962B1 (en) Real-time analytical database system for querying data of transactional systems
JP5090149B2 (ja) データベースを管理する方法、装置及びシステム
US8200673B2 (en) System and method for on-demand indexing
US8352520B2 (en) Configurable offline data store
JP7068210B2 (ja) データベース管理システム、端末装置及び方法
KR102214697B1 (ko) 데이터베이스 관리 시스템에서 데이터 저장을 위한 공간 관리를 제공하는 컴퓨터 프로그램
JP4825504B2 (ja) データ登録・検索システムおよびデータ登録・検索方法
Schneller et al. MySQL admin cookbook
CN101446946A (zh) 内容引擎异步升级框架
JP2009301534A (ja) ファイル検索システム
US20230342377A1 (en) Selective table replication to enable stream replication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120808

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: 20120828

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: 20120912

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

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees