"複数台のコンピュータシステムを用いて構成した分散データベースにデータを格納するデータ格納システムであって、前記分散データベースの構成単位となる互いに記憶容量が等しい複数の仮想サーバと、前記仮想サーバの中からデータを格納する仮想サーバを決定する選別手段とを備え、前記仮想サーバは、データを格納する記憶領域を互いに等しい単位サイズである複数のテーブルに分割したデータ格納部を備え、前記選別手段は、前記分散データベースに格納するデータを、前記仮想サーバに分散させ、かつ前記テーブルに分散させて格納することを特徴とするデータ格納システム。前記データ格納部は、データを種類ごとに記憶する複数の種類別記憶部を備えることを特徴とする請求項1記載のデータ格納システム。前記分散データベースは、前記データ記憶部へのデータの格納、前記データ記憶部からのデータの提供、前記データ記憶部のデータの削除とを行う管理機能部を備えることを特徴とする請求項1又は2記載のデータ格納システム。前記データには、当該データが属する集合を識別するデータIDが付加されており、前記選別手段は、データIDに対して、前記仮想サーバの個数および前記テーブルの個数に応じた関係を適用することにより、同じデータIDを持つデータが同じテーブルに格納されるように、データを分散させて格納することを特徴とする請求項1~3のいずれか1項に記載のデータ格納システム。上述した分散データベースには、ハードウェア資源の異なるコンピュータシステムが混在していることがある。データベースシステムでは、ハードウェア資源のうち、とくにCPUCentralProcessingUnitの性能と記憶装置の記憶容量との相違がスループットに大きく影響する。そのため、分散データベースシステムを構成しているコンピュータシステムにおけるハードウェア資源のばらつきに起因して、データを格納する際の書込時間やデータを提供する際の応答時間にばらつきが生じることがある。また、分散データベースシステムを構成している複数のコンピュータシステムにデータを格納する際に、単一のコンピュータシステムにアクセスが集中する場合があり、この場合には該当するコンピュータシステムがボトルネックになる。すなわち、分散データベースシステムの全体としてのスループットが低下することになる。本発明は、分散データベースシステムを構成している複数のコンピュータシステムにハードウェア資源のばらつきがあってもボトルネックの発生が抑制されるようにし、結果的に、ハードウェア資源の劣るコンピュータシステムが混在していてもスループットの低下が生じにくい分散データベースを構築することを可能にしたデータ格納システムを提供することを目的とする。本発明に係るデータ格納システムは、複数台のコンピュータシステムを用いて構成した分散データベースにデータを格納するデータ格納システムであって、分散データベースの構成単位となる互いに記憶容量が等しい複数の仮想サーバと、仮想サーバの中からデータを格納する仮想サーバを決定する選別手段とを備え、仮想サーバは、データを格納する記憶領域を互いに等しい単位サイズである複数のテーブルに分割したデータ格納部を備え、選別手段は、分散データベースに格納するデータを、仮想サーバに分散させ、かつテーブルに分散させて格納することを特徴とする。このデータ格納システムにおいて、データ格納部は、データを種類ごとに記憶する複数の種類別記憶部を備えることが好ましい。このデータ格納システムにおいて、分散データベースは、データ記憶部へのデータの格納、データ記憶部からのデータの提供、データ記憶部のデータの削除とを行う管理機能部を備えることが好ましい。このデータ格納システムにおいて、データには、当該データが属する集合を識別するデータIDが付加されており、選別手段は、データIDに対して、仮想サーバの個数およびテーブルの個数に応じた関係を適用することにより、同じデータIDを持つデータが同じテーブルに格納されるように、データを分散させて格納することが好ましい。本発明の構成によれば、分散データベースシステムを構成している複数のコンピュータシステムにハードウェア資源のばらつきがあってもボトルネックの発生が抑制され、結果的に、ハードウェア資源の劣るコンピュータシステムが混在していてもスループットの低下が生じにくい分散データベースを構築することが可能になる。以下に説明する実施形態は、データベースシステムが、電気、ガス、水道などの需要家に設置されたメータの検針値を電気通信回線を通して収集した検針データを格納し、格納されたデータを提供する遠隔検針システムに用いられる場合を想定する。遠隔検針システムでは、一定時間たとえば、10分ごとに得られる検針データを格納することが要求され、また、検針データを需要家ごとに仕分けて管理する必要がある。そのため、本実施形態は、一定時間毎に収集される検針データがレコードとして格納される多数個のテーブルをデータベースシステムが備え、1つの需要家に対応するレコードは、1つのテーブルにまとめて格納されるようにしている。各テーブルの記憶領域は互いに等しい単位サイズにしてある。また、1つのテーブルには複数の需要家のレコードが登録される。すなわち、各需要家の検針データがテーブルに仕分けられる。なお、以下に説明する実施形態は、データベースシステムの用途を遠隔検針システムに限定する趣旨ではなく、1つのテーブルに同種のレコードが多数個格納され、かつレコードの仕分けが必要な用途であれば、同様の技術を採用可能である。このようなデータを扱う用途には、たとえば、多数の観測点について気象条件の観測データを格納する用途、多数の設備について動作状態の監視データを格納する用途、防災や防犯のために多箇所の監視データを格納する用途などがある。これらの用途では、いずれもデータを定期的ないし不定期的にサンプリングして格納する必要がある。これらの用途は一例であってデータの定点観測を行う用途では、本実施形態において説明する技術でデータを格納することにより後述する効果が期待できる。いま、データベースシステムに、多数個たとえば、2500個のテーブルが設けられ、各テーブルに、多数個たとえば、100万個のレコードが格納される場合を想定する。この数値例では、10分毎に検針データを収集し、1個の検針データを1レコードに対応付けている場合であって、100万の需要家に対応するとすれば、1つの需要家に対して2500レコードの検針データを格納することが可能である。つまり、約17日間の検針データが格納される。テーブルの容量の上限を2GBとすると、1レコードについて2kBを使用することが可能である。したがって、データベースシステムの全体で、検針データの格納に必要な容量は5TB25億レコードになる。上述のように、比較的短い時間間隔で大量のデータが発生する場合、1つのコンピュータシステムで対応しようとすると、データの収集や提供のための入出力がボトルネックになる上に、排他制御が行われる頻度が高くなる。そのため、入出力の速度や内部の処理能力が高い高性能のコンピュータシステムが必要になるという問題が生じる。この種の問題に対処する技術としては、分散データベースが知られている。すなわち、分散データベースは、複数のコンピュータシステムでそれぞれ構築されているデータベースを、1つのデータベースとみなしてアクセスするデータベース管理システムを備える。分散データベースを用いると、複数のコンピュータシステムにデータが分散して格納されるから、1つのコンピュータシステムで構築されたデータベースにおけるボトルネックを回避することが可能になる。しかしながら、分散データベースを構築している物理的実体としてのコンピュータシステム以下では、実体システムというが複数存在している場合に、ハードウェア資源が異なる実体システムが混在することがある。データベースシステムでは、ハードウェア資源のうち、とくにCPUCentralProcessingUnitの性能と記憶装置の記憶容量との相違はスループットに大きく影響する。そのため、分散データベースシステムを構成している実体システムのハードウェア資源のばらつきに起因して、データを格納する際の書込時間やデータを提供する際の応答時間にばらつきが生じる。また、分散データベースシステムを構成している複数の実体システムにデータを格納する際に、単一の実体システムにアクセスが集中する場合があり、この場合には該当する実体システムがボトルネックになる。すなわち、分散データベースシステムの全体としてのスループットが低下することになる。本実施形態は、分散データベースシステムを構成している複数の実体システムにハードウェア資源のばらつきがあってもボトルネックの発生が抑制されるように、以下の構成を採用している。すなわち、以下の構成を採用することによって、ハードウェア資源の劣る実体システムが混在していてもスループットの低下が生じにくい分散データベースの提供が可能になる。本実施形態は、図2に示すように、複数台図示例は3台の実体システム21,22,23を備え、少なくとも1つの実体システム21と他の実体システム22,23とが電気通信回線NT1を通して通信する構成を用いて説明する。電気通信回線NT1はインターネットのような広域網である公衆網を想定しているが、専用網や構内網であってもよい。各実体システム21,22,23は、ハードディスク装置のような大容量の記憶装置と、プログラムを実行するCPUと、電気通信回線NT1を通して他装置と通信するための通信インターフェイス装置を備える。図1に示すように、実体システム21,22,23は、一体となってサーバ20として機能し、電気通信回線NT1に接続された利用者端末31をクライアントとしたクライアントサーバシステムを構築する。このクライアントサーバシステムは、プレゼンテーション層とアプリケーション層とデータ層とからなる3層アーキテクチャを有し、プレゼンテーション層は利用者端末31により実現されている。サーバ20はデータ層に対応し、図示例において、アプリケーション層に相当するサーバ32はサーバ20とは別に設けられている。サーバ32は、利用者端末31から要求された処理に対応した依頼をサーバ20に対して行い、サーバ20の応答を利用者端末31に返す機能を備える。また、後述するように、サーバ20は、複数台の仮想的なサーバ以下、仮想サーバという10に分割されており、サーバ32は、複数台の仮想サーバ10を統合して1台のサーバ20として動作させる機能を備える。この機能はサーバ32に設けられるAPIApplicationProgramInterfaceにより実現される。すなわち、サーバ32のAPIは、利用者端末31からの要求に対応する仮想サーバ10を選択する機能を実現するための関数ないし命令を備える。また、サーバ32のAPIは、複数台の実体システム21,22,23を1台のサーバ20として扱う機能も備える。言い換えると、サーバ20は複数台の実体システム21,22,23により構成された分散データベースであって、仮想サーバ10は、このサーバ20の構成単位になる。本実施形態において、各仮想サーバ10は互いに記憶容量を等しくしてある。本実施形態は遠隔検針システムを想定しているから、検針データを収集してサーバ20に格納させるための収集サーバ33も電気通信回線NT1に接続される。収集サーバ33には、複数の仮想サーバ10の中から検針データを格納する仮想サーバ10を決定する選別機能部選別手段331を実現するためのAPIが設けられる。選別機能部331の動作については後述する。仮想サーバ10は、それぞれデータを格納するデータ格納部101と、データベース管理システムの機能を付与する管理機能部102とを備える。管理機能部102は、実体システム21,22,23に設けたAPIにより実現されている。管理機能部102は、データ格納部101へのデータの格納、記憶装置から読み出したデータの提供、記憶装置に格納されているデータの削除などのデータの操作を行う機能のほか、トランザクション管理を行う機能などを備える。管理機能部102におけるこの種の機能は一般的なデータベース管理システムが備えている機能と同様である。ただし、管理機能部102は、トランザクション管理を行うインターフェイス層1021、データベース制御を行う上位層1022、データベース操作を行う下位層1023を備えた3層で構成されている。上述したようにサーバ20は、複数台たとえば、100台の仮想サーバ10に分割されているから、データ格納部101も分割される。また、仮想サーバ10ごとに管理機能部102を備えている。ここでは、説明を簡単にするために、データ格納部101と管理機能部102とが一対一に対応していると仮定する。言い換えると、仮想サーバ10ごとに、データ格納部101と管理機能部102とが1つずつ設けられていることになる。また、本実施形態では、仮想サーバ10において、データ格納部101の記憶容量が互いに等しく設定される。したがって、仮想サーバ10を構成する実体システム21,22,23の記憶装置の記憶容量にかかわらず、各仮想サーバ10のデータ格納部101の記憶容量は等しくなる。実体システム21,22,23では、一般的な傾向としては、処理能力が高いほど記憶装置の記憶容量が大きくなっている。このことから、仮想サーバ10においてデータ格納部101の記憶容量を等しくしたことにより、実体システム21,22,23の処理能力にかかわらず仮想サーバ10のスループットはほぼ等しくなると考えられる。1つの仮想サーバ10のデータ格納部101は、図3に示すように、記憶領域が互いに等しい単位サイズに分割され、各単位サイズの記憶領域がそれぞれテーブル1011を形成している。したがって、データ格納部101は、複数個図示例では、100個のテーブル1011を備える。図示例では、テーブル1011ごとに識別用の4桁の番号が割り当ててある。図示例では、テーブル1011を識別する番号は0001~2500になっている。テーブル1011を識別する番号の下二桁は、仮想サーバ10を識別する番号に相当し、01...9900が用いられている。なお、00は100番に対応する。また、需要家には個別に識別情報以下、データIDというが設定され、図示例は100万の需要家が存在している場合を想定している。すなわち、テーブル1011に登録されるレコードには100万種類のデータIDが付与される。ここに、同じデータIDのレコードは、同じテーブル1011に格納される。また、データIDは数値で設定されるか、適宜に数値に変換され、1番から順に1000000番まで付与される。ここでは、データが検針データであるから、データIDは需要家に対応しているが、一般化すれば、データIDは、データが属する集合を識別するために付与されていると言える。上述のような仮想サーバ10を構築するには、仮想サーバ10の個数、1つの仮想サーバ10の記憶容量、1つのテーブル1011の記憶容量などを定める必要がある。以下では、仮想サーバ10を適正に構築する手順を説明する。まず、データベースシステムの規模を定めるために、想定される需要家の数、すなわち、想定されるデータIDの最大数が必要である。また、仮想サーバ10は、実体システム21,22,23により構成されているから、1つの仮想サーバ10が複数の実体システム21,22,23に跨って構成されることは好ましくない。そのため、仮想サーバ10を構築するにあたっては、実体システム21,22,23ごとの記憶容量を知る必要がある。仮想サーバ10におけるデータ格納部101の記憶容量は、実体システム21,22,23が備えている記憶装置のうちの最小の記憶容量が上限になる。したがって、実体システム21,22,23における記憶装置について想定される記憶容量の最小値を求め、この最小値を用いて仮想サーバ10におけるデータ格納部101の記憶容量が定められる。さらに、1つのテーブル1011に格納するデータ量レコード数およびテーブル1011の記憶容量は設計値であって、需要家から取得して格納するデータ量に応じて適宜に定められることになる。1つのテーブル1011に格納されるデータ量の上限値は、仮想サーバ10におけるデータ格納部101の記憶容量として定めた値になる。ただし、実際には、データ格納部101の記憶容量よりも十分に小さくすることが好ましい。以上のように、仮想サーバ10を用いた分散データベースを構築するには、設計条件とhして以下の情報が必要である。すなわち、想定されるデータIDの最大数、データIDごとに格納するレコード数、実体システムの記憶容量、仮想サーバ10の記憶容量、テーブル1011の記憶容量、テーブル1011に格納するレコードの最大数が必要である。これらのパラメータが得られると、仮想サーバ10の個数、テーブル1011の総数の最大値、1つの仮想サーバ10におけるテーブル1011の個数が求められる。また、実体システム21,22,23に対する仮想サーバ10の対応付けが可能になる。いま、1つの仮想サーバ10の記憶容量をQ、テーブル1011の記憶容量をqとすると、1つの仮想サーバ10におけるテーブル1011の個数はQ/qになる。さらに、想定されるデータIDの最大数をN、1つのデータIDに関して格納するレコード数をm、1つのテーブル1011に格納するレコード数をnとすれば、必要なテーブル1011の個数はN×m/nになる。このことから、仮想サーバ10の個数は、N×m/n/Q/q=Nmq/nQになる。図3に示す構成例は、想定される需要家データIDの最大数Nを100万、テーブル1011の記憶容量qを2GB、テーブル1011に格納するレコード数nを100万としている。さらに、1つの需要家に関して格納するレコード数mは2500個にしている。図3に示す構成例では、複数台の実体システムにおける記憶容量の最小値を50GBとしている。そのため、仮想サーバ10の記憶容量Qも50GBとしている。なお、図2の構成例では3台の実体システム21,22,23を用いているが、図3の構成例は、さらに多くの実体システムを用いることになる。これらの数値を上述した関係式に当てはめると、1つの仮想サーバ10に設けるテーブル1011の個数は、50GB/2GB=25個になる。また、データベースシステムを構成する仮想サーバ10の個数は、1000000個×2500レコード×2GB/1000000×50GB=100個になる。ここで、データベースシステムを構成する実体システムとして、記憶容量が100GBの実体システムと、記憶容量が50GBの実体システムとを用いている場合を想定する。仮想サーバ10の記憶容量が50GBであるとすれば、1個の仮想サーバ10のみを構成する実体システムと、2個の仮想サーバ10を構成する実体システムとが混在することになる。上述した構成例において、データベースシステムが、100GBの実体システムを40台用い、50GBの実体システムを20台用いて構成されていると仮定する。このように仮定すると、100個の仮想サーバ10のうち、20個が50GBの実体システムに割り当てられ、80個が100GBの実体システムに割り当てられる。この構成では、仮想サーバ10の識別に用いる番号は、複数個の仮想サーバ10を含む実体システムで構成された仮想サーバ10の間に、1個の仮想サーバ10のみを含む実体システムで構成された仮想サーバ10が並ぶように割り当てることが好ましい。たとえば、複数の仮想サーバ10を含む実体システムを用いた仮想サーバ10を識別する番号に01~40、61~9900を用い、単体の仮想サーバ10を含む実体システムを用いた仮想サーバ10を識別する番号に41~60を用いる。ここに、複数の仮想サーバ10を含む実体システムにおいて、仮想サーバ10を識別する番号は必ずしも連続していなくてもよいが、以下の説明では連続していると仮定して説明する。ところで、上述の構成を備えるデータベースシステムを用いて検針データを格納する際に、検針データを格納するテーブル1011を決定する必要がある。すなわち、収集サーバ33の選別機能部331は、以下に説明する手順で、検針データを格納するための仮想サーバ10を求め、その仮想サーバ10に対応する実体システムを決定し、さらに、検針データを格納するテーブル1011を決定する。検針データを格納する仮想サーバ10は、数値で表されているデータIDを用いることにより簡単に決定することができる。すなわち、データIDをXとし、仮想サーバ10の個数をKとすると、当該需要家に対応する検針データを格納する仮想サーバ10を識別する番号は、XをKで除した剰余で求められるつまり、XmodK。ただし、剰余が0になる場合は、00の仮想サーバ10に割り当てられる。たとえば、データID=50であれば、50mod100=50であるから、該当する検針データは50番の仮想サーバ10に格納される。また、たとえば、データID=36935であれば、36935mod100=35であるから、該当する検針データは35番の仮想サーバ10に格納される。仮想サーバ10の番号は、収集サーバ33の選別機能部331において、ルックアップテーブルなどによって、実体システムとの対応付けがなされているから、どの実体システムにアクセスするかが決められる。次に、仮想サーバ10の中のどのテーブル1011に検針データを格納するかを決定する必要がある。上述した構成では、検針データを格納するテーブル1011の決定も容易であって、テーブル1011の総数をLとすると、データIDがXであるとき、XをLで除した剰余がテーブル1011の番号になるつまり、XmodL。ただし、剰余が0になる場合は、2500番のテーブル1011が割り当てられる。たとえば、データID=50であれば、50mod2500=50であるから、該当する検針データは0050番のテーブル1011に格納される。また、たとえば、データID=36935であれば、36935mod2500=1935であるから、該当する検針データは1935番の仮想サーバ10に格納される。上述したように、検針データを格納する仮想サーバ10を定めることにより、検針データを格納する実体システムが求められるから、該当する実体システムの範囲で、仮想サーバ10およびテーブル1011に相当する記憶領域を抽出することができる。すなわち、検針データを適正なテーブル1011に格納することができる。このような手順で検針データを格納するテーブル1011を選択すると、データIDが連続した数値であるときには、図3に矢印で示しているように、各需要家の検針データが異なる仮想サーバ10に順に格納される。すなわち、1番の需要家の検針データは1番の仮想サーバ10に設けた0001番のテーブルに格納され、2番の需要家の検針データは2番の仮想サーバ10に設けた0002番のテーブルに格納される。同様にして、101番の需要家の検針データは1番の仮想サーバ10に設けた0101番のテーブル1011に格納され、2500番の需要家の検針データは100番の仮想サーバ10の2500番のテーブル1011に格納される。ここに、2501番の需要家の検針データは、1番の仮想サーバ10における0001番のテーブル1011に格納される。要するに、データIDを2500で除した剰余が1である検針データは、0001番のテーブル1011に格納される。このようにして、100万の需要家に対して、1つのテーブル1011には400の需要家の検針データが格納される。上述の動作により、あたかも複数台のハードディスクを用いてストライピングを行う場合のように、各需要家の検針データが異なる仮想サーバ10に振り分けて格納される。すなわち、アクセスが単一の仮想サーバ10に集中しなくなり、検針データの格納が高速化される。また、1つの仮想サーバ10の処理能力が比較的低い場合でもボトルネックが生じにくい分散データベースを構築することが可能になる。すなわち、本実施形態では、仮想サーバ10の記憶容量を等しくし、各仮想サーバ10の処理能力を平準化したことにより、検針データを格納する際の処理速度も平準化されることになる。上述した構成例では、需要家の検針データを扱うデータベースの例について説明したが、1つの計測点において複数種類のデータを取得して格納する用途もある。たとえば、需要家における電気の検針データだけではなく、ガスの検針データと水道の検針データとを併せて格納することが可能であり、また、需要家における防犯や防災に関連する情報を格納することなども可能である。つまり、データベースの用途は遠隔検針の用途に限定されず、数値データのほか、テキストデータ、音声データ、画像データなどの複数種類のデータを格納する場合もある。このように、種類の異なるデータを収集する場合は、データの種類が識別可能となるように、データが得られた場所などに関するデータIDだけではなくデータの種別名がデータに付加される。ところで、この種のデータは、データの種類によって情報量が異なるから、複数種類のデータが混在している場合にデータを一括して扱うと、一括されたデータに含まれているデータの種類に応じて情報量に大きなばらつきが生じる。そのため、複数種類のデータが混在した状態で、この種のデータを一括して一つのテーブル1011に格納すると、仮想サーバ10のアクセス時間に大きなばらつきが生じる。そこで、図4に示すように、仮想サーバ10のデータ格納部101に、データの種類ごとに振り分けてデータを格納する複数個図示例では3個の種類別記憶部1012,1013,1014を設けることが望ましい。この場合、仮想サーバ10には、データの種類を振り分けるための分類機能部103が設けられる。分類機能部103は、管理機能部102と同様にAPIを用いて構成される。すなわち、収集サーバ33から仮想サーバ10に転送されたデータは、仮想サーバ10の分類機能部103においてデータの種類ごとに振り分けられ、それぞれの種類別記憶部1012,1013,1014に格納される。このように、異なる種類のデータを種類別記憶部1012,1013,1014に振り分けて格納されるので、データIDごとに情報量が異なっていても、種類別記憶部1012,1013,1014に格納されるデータについては、情報量データ量のばらつきが抑制される。すなわち、データIDごとに、種類別記憶部1012,1013,1014に格納するデータが対応付けられる場合と、データが対応付けられない場合があるが、データIDに格納するデータが対応付けられている場合、当該データの情報量のばらつきは少ない。したがって、各種類別記憶部1012,1013,1014にデータを格納する処理の負荷は、種類別記憶部1012,1013,1014ごとに、それぞれ平準化されることになる。なお、図4の構成例では、1つの仮想サーバ10に複数の種類別記憶部1012,1013,1014を設けているが、種類別記憶部1012,1013,1014ごとに異なる仮想サーバ10に分散させたり、種類別記憶部1012,1013,1014の一部を異なる仮想サーバ10に分散させてもよい。ところで、データIDが増加し、予想したデータIDの最大数を上回るときには、データベースシステムの拡張が必要になる。上述の例では、データIDの最大数を100万としているが、さらに大規模にデータを収集しようとすれば、データIDの最大数を増加させることが必要になる。このような場合、上述した構成を1単位とし、必要なだけ単位数を増加させればよい。たとえば、1単位ごとにグループ名を付与し、グループ名として0から順に与えられる数値を用いる。上述した構成例では、100万個のデータIDについて、合計で25億レコードを格納することができるから、1グループ増加させると、200万個のデータIDについて、合計で50億レコードを格納することが可能になる。つまり、データIDが1~1000000の範囲のデータはグループ0に格納し、データIDが1000001~2000000の範囲のデータはグループ1に格納すればよい。この例において、グループ名は、データIDを1000000で除した商になる。上述のように1つのグループを単位として、グループ単位でデータベースを拡張することにより、収集サーバ33の選別機能部331は、グループを識別する手順を付加するだけで、他の手順を変更することなくデータを振り分けることが可能になる。なお、収集サーバ33の前段に、グループを分けるサーバを別に設けてもよい。すなわち、グループの仕分けを行う機能を専用に設け、収集サーバ33も含めてグループを追加することによって、データベースシステムの拡張を図ってもよい。データベースシステムを拡張が必要になるか否かは、データIDの総数によるから、収集サーバ33あるいはサーバ32において、データIDの総数を取得する機能を設けておけばよい通常は、キーボードなどの入力装置が操作されることにより取得する。収集サーバ33あるいはサーバ32では、取得したデータIDの総数からデータの格納に必要なグループ数を算出し、算出したグループ数が現状のグループ数よりも多ければ、データベースの拡張を利用者端末31に指示するようにすればよい。ところで、一般的には、データベースを拡張した場合、新規に設けられた実体システムにデータが格納されるから、新規の実体システムにアクセスが集中すると考えられる。しかしながら、本実施形態では、データIDを用いて複数の仮想サーバ10にデータを分散させて格納しているので、データベースを拡張した場合であっても、新規に設けられた実体システムにアクセスが集中することがない。つまり、実体システムへのアクセスが集中することがなく、仮想サーバ10へのアクセスが平準化され、結果的に仮想サーバ10の記憶容量やアクセスによる負荷が平準化できるのである。なお、上述の例においてデータを格納する際に、仮想サーバ10およびテーブル1011を決定し、該当する実体システムにデータを引き渡す技術について説明したが、データを抽出する際にも同様の手順を用いる。たとえば、特定のデータIDに関するデータが必要であれば、データIDを与えて仮想サーバ10およびテーブル1011を決定し、該当する実体システムのテーブル1011からデータを抽出すればよい。上述した構成例では、格納するデータの収集および格納されたデータの使用にあたり電気通信回線を用い、複数台の実体システムの間で電気通信回線を通して通信することにより実体システムを連携させているが、電気通信回線を用いて通信することは必須ではない。つまり、データの収集あるいは使用を実体システムに付設した入力装置や出力装置によって行うことが可能であり、また、複数の実体システムを空間的に近接させて配置するとともに連携可能となるように適宜のインターフェイス装置を介して接続してもよい。なお、管理機能部102を構成するAPIに、上述したデータベースシステムに関する種々のパラメータを受け付ける機能を持たせてもよい。この場合、管理機能部102にパラメータを設定することによって、管理機能部102が、仮想サーバ10におけるデータ格納部101の記憶容量、テーブル1011の総数、テーブル1011の記憶容量などを定めるようにしてもよい。また、上述の例ではデータを格納する仮想サーバ10およびテーブル1011を決めるために、選別機能部331において、データIDの除算を行っているが、乱数などの他の関係を用いて分散させてもよい。"