"複数のスレーブノードを統括管理するマスターノードを備え、キー値を前記複数のスレーブノードに分散格納し、この分散格納されたキー値を用いて、前記マスターノードからの指令に基づくデータ操作を前記複数のスレーブノードが並列に実行する分散型データベースシステムであって、登録要求に係るキー値およびそのデータ型の情報を受け付ける登録要求受付部と、前記登録要求受付部で受け付けた登録要求に係るキー値に対し、前記分散型データベースの全体において前記登録要求に係るキー値が有するデータ型の範囲内で一意の値をとるキー値識別子以下、NIDというを割り当てるNID割当部と、前記登録要求に係るキー値と、前記NID割当部で割り当てられたNIDとの対応関係に係る分散共有NID以下、DSNというのデータを生成するDSN生成部と、前記DSN生成部で生成された前記DSNのデータの格納先となる一のスレーブノードを、前記複数のスレーブノードのなかから、前記登録要求に係るキー値に基づいて決定するDSN格納ノード決定部と、を備えたことを特徴とする分散型データベースシステム。請求項1に記載の分散型データベースシステムであって、前記登録要求に係るキー値と、前記NID割当部で割り当てられたNIDとの対応関係に係る分散圧縮復元インデックス以下、D-CRXというのデータを生成するD-CRX生成部と、前記D-CRX生成部で生成された前記D-CRXのデータの格納先となる一のスレーブノードを、前記複数のスレーブノードのなかから、前記NIDの関数に基づいて決定するD-CRX格納ノード決定部と、前記分散型データベースを構成するテーブル内のカラム毎に一意の値をとる分散行識別子以下、RIDというと、前記NID割当部で割り当てられたNIDとの対応関係に係る分散圧縮結果セットキャッシュ以下、D-CRSというのデータを生成するD-CRS生成部と、前記D-CRS生成部で生成された前記D-CRSのデータの格納先となる一のスレーブノードを、前記複数のスレーブノードのなかから、前記RIDの関数に基づいて決定するD-CRS格納ノード決定部と、を更に備えたことを特徴とする分散型データベースシステム。請求項2に記載の分散型データベースシステムであって、前記登録要求に係るキー値に対して割り当てられたNIDと前記RIDの集合との対応関係に係る分散行識別インデックス以下、D-RIXというのデータを生成するD-RIX生成部と、前記D-RIX生成部で生成された前記D-RIXの格納先となる一のスレーブノードを、前記複数のスレーブノードのなかから、前記NIDの関数に基づいて決定するD-RIX格納ノード決定部と、を更に備えたことを特徴とする分散型データベースシステム。請求項1~3のいずれか一項に記載の分散型データベースシステムであって、前記登録要求受付部、前記NID割当部、前記DSN生成部および前記DSN格納ノード決定部は前記マスターノードに備えられ、前記マスターノードは、前記DSN格納ノード決定部で決定された一のスレーブノード宛に前記DSNのデータおよび前記登録要求に係るキー値が有するデータ型の情報を送って前記DSNのデータの登録要求を発行するDSN登録要求発行部を更に備え、前記複数のスレーブノードの各々は、前記DSN登録要求発行部による前記DSNのデータの登録要求に応じて、前記DSNのデータを、前記登録要求に係るキー値が有するデータ型毎に分けてDSN格納部に格納させる登録管理を行うDSN登録管理部と、前記登録要求に係るキー値が前記DSN格納部に既に存在するか否かを判定する既存判定部とを備え、前記DSN登録管理部は、前記既存判定部により前記登録要求に係るキー値が前記DSN格納部に既に登録済みと判定された場合、前記登録要求に係るキー値に対して既に割り当てられているNIDが属する前記DSNの登録内容をそのまま維持する一方、前記既存判定部により前記登録要求に係るキー値が前記DSN格納部に未だ存在しないと判定された場合、前記登録要求に係るキー値と今回割り当てられたNIDとの対応関係に係る前記DSNのデータを前記DSN格納部に格納させる登録管理を行う、ことを特徴とする分散型データベースシステム。請求項1~3のいずれか一項に記載の分散型データベースシステムであって、前記DSN生成部および前記DSN格納ノード決定部は前記複数のスレーブノードに備えられていることを特徴とする分散型データベースシステム。請求項2に記載の分散型データベースシステムであって、前記DSN生成部、前記DSN格納ノード決定部、前記D-CRX生成部、前記D-CRX格納ノード決定部、前記D-CRS生成部および前記D-CRS格納ノード決定部は前記マスターノードに備えられ、前記マスターノードは、前記DSN格納ノード決定部で決定された一のスレーブノード宛に前記DSNのデータおよび前記登録要求に係るキー値が有するデータ型の情報を送って前記DSNのデータの登録要求を発行するDSN登録要求発行部と、前記D-CRX格納ノード決定部で決定された一のスレーブノード宛に前記D-CRXのデータおよび前記登録要求に係るキー値が属するカラムの情報を送って前記D-CRXのデータの登録要求を発行するD-CRX登録要求発行部と、前記D-CRS格納ノード決定部で決定された一のスレーブノード宛に前記D-CRSのデータおよび前記カラムの情報を送って前記D-CRSのデータの登録要求を発行するD-CRS登録要求発行部とを更に備え、前記複数のスレーブノードの各々は、前記DSN登録要求発行部による前記DSNのデータの登録要求に応じて、前記DSNのデータを、前記登録要求に係るキー値が有するデータ型毎に分けてDSN格納部に格納させる登録管理を行うDSN登録管理部と、前記D-CRX登録要求発行部による前記D-CRXのデータの登録要求に応じて、前記D-CRXのデータを、前記登録要求に係るキー値が属するカラム毎に分けてD-CRX格納部に格納させる登録管理を行うD-CRX登録管理部と、前記D-CRS登録要求発行部による前記D-CRSのデータの登録要求に応じて、前記D-CRSのデータを、前記カラム毎に分けてD-CRS格納部に格納させる登録管理を行うD-CRS登録管理部と、前記マスターノードからの指令に基づくデータ操作を、前記DSN格納部、前記D-CRX格納部および前記D-CRS格納部に格納された情報を用いて並列に実行するデータ操作実行部とを更に備え、前記マスターノードは、前記複数のスレーブノードのデータ操作実行部で並列に実行された処理結果を統合する処理結果統合部を更に備えた、ことを特徴とする分散型データベースシステム。請求項2に記載の分散型データベースシステムであって、前記DSN生成部、前記DSN格納ノード決定部、前記D-CRX生成部、前記D-CRX格納ノード決定部、前記D-CRS生成部および前記D-CRS格納ノード決定部は前記複数のスレーブノードに備えられていることを特徴とする分散型データベースシステム。請求項3に記載の分散型データベースシステムであって、前記DSN生成部、前記DSN格納ノード決定部、前記D-CRX生成部、前記D-CRX格納ノード決定部、前記D-CRS生成部、前記D-CRS格納ノード決定部、前記D-RIX生成部および前記D-RIX格納ノード決定部は前記マスターノードに備えられ、前記マスターノードは、前記DSN格納ノード決定部で決定された一のスレーブノード宛に前記DSNのデータおよび前記登録要求に係るキー値が有するデータ型の情報を送って前記DSNのデータの登録要求を発行するDSN登録要求発行部と、前記D-CRX格納ノード決定部で決定された一のスレーブノード宛に前記D-CRXのデータおよび前記登録要求に係るキー値が属するカラムの情報を送って前記D-CRXのデータの登録要求を発行するD-CRX登録要求発行部と、前記D-CRS格納ノード決定部で決定された一のスレーブノード宛に前記D-CRSのデータおよび前記カラムの情報を送って前記D-CRSのデータの登録要求を発行するD-CRS登録要求発行部と、前記D-RIX格納ノード決定部で決定された一のスレーブノード宛に前記D-RIXのデータおよび前記カラムの情報を送って前記D-RIXのデータの登録要求を発行するD-RIX登録要求発行部とを更に備え、前記複数のスレーブノードの各々は、前記DSN登録要求発行部による前記DSNのデータの登録要求に応じて、前記DSNのデータを、前記登録要求に係るキー値が有するデータ型毎に分けてDSN格納部に格納させる登録管理を行うDSN登録管理部と、前記D-CRX登録要求発行部による前記D-CRXのデータの登録要求に応じて、前記D-CRXのデータを、前記登録要求に係るキー値が属するカラム毎に分けてD-CRX格納部に格納させる登録管理を行うD-CRX登録管理部と、前記D-CRS登録要求発行部による前記D-CRSのデータの登録要求に応じて、前記D-CRSのデータを、前記カラム毎に分けてD-CRS格納部に格納させる登録管理を行うD-CRS登録管理部と、前記D-RIX登録要求発行部による前記D-RIXのデータの登録要求に応じて、前記D-RIXのデータを、前記カラム毎に分けてD-RIX格納部に格納させる登録管理を行うD-RIX登録管理部と、前記マスターノードからの指令に基づくデータ操作を、前記DSN格納部、前記D-CRX格納部、前記D-CRS格納部および前記D-RIX格納部に格納された情報を用いて並列に実行するデータ操作実行部とを更に備え、前記マスターノードは、前記複数のスレーブノードのデータ操作実行部で並列に実行された処理結果を統合する処理結果統合部を更に備えた、ことを特徴とする分散型データベースシステム。請求項3に記載の分散型データベースシステムであって、前記DSN生成部、前記DSN格納ノード決定部、前記D-CRX生成部、前記D-CRX格納ノード決定部、前記D-CRS生成部、前記D-CRS格納ノード決定部、前記D-RIX生成部および前記D-RIX格納ノード決定部は前記複数のスレーブノードに備えられていることを特徴とする分散型データベースシステム。請求項1~9のいずれか一項に記載の分散型データベースシステムであって、前記NID割当部は、前記登録要求に係るキー値に対し、自然数かつ順序数の値をとるNIDを割り当てる、ことを特徴とする分散型データベースシステム。請求項1に記載の分散型データベースシステムであって、前記DSN格納ノード決定部は、前記登録要求に係るキー値を分散キーとして用いたコンシステントハッシュ法により前記DSNのデータの格納先となる一のスレーブノードを決定する、ことを特徴とする分散型データベースシステム。請求項2に記載の分散型データベースシステムであって、前記D-CRX格納ノード決定部は、前記NIDの関数を分散キーとして用いたコンシステントハッシュ法により前記D-CRXのデータの格納先となる一のスレーブノードを決定し、前記D-CRS格納ノード決定部は、前記RIDの関数を分散キーとして用いたコンシステントハッシュ法により前記D-CRSのデータの格納先となる一のスレーブノードを決定する、ことを特徴とする分散型データベースシステム。請求項3に記載の分散型データベースシステムであって、前記D-RIX格納ノード決定部は、前記NIDの関数を分散キーとして用いたコンシステントハッシュ法により前記D-RIXのデータの格納先となる一のスレーブノードを決定する、ことを特徴とする分散型データベースシステム。複数のスレーブノードを統括管理するマスターノードを備え、キー値を前記複数のスレーブノードに分散格納し、この分散格納されたキー値を用いて、前記マスターノードからの指令に基づくデータ操作を前記複数のスレーブノードが並列に実行する分散型データベースシステムのデータ構造であって、登録要求に係るキー値と、前記分散型データベースの全体において前記登録要求に係るキー値が有するデータ型の範囲内で一意の値をとるキー値識別子NIDとの対応関係に係る分散共有NIDDSNを、前記登録要求に係るキー値が有するデータ型毎に分けて示した情報と、前記登録要求に係るキー値と前記NIDとの対応関係に係る分散圧縮復元インデックスD-CRXを、前記登録要求に係るキー値が属するカラム毎に分けて示した情報と、前記分散型データベースを構成するテーブル内のカラム毎に一意の値をとる分散行識別子RIDと前記NIDとの対応関係に係る分散圧縮結果セットキャッシュD-CRSを、前記カラム毎に分けて示した情報とを、キー値を特定するためのキー値に関する情報として有する、ことを特徴とする分散型データベースのデータ構造。請求項14記載の分散型データベースのデータ構造であって、前記NIDと前記RIDの集合との対応関係に係る分散行識別インデックスD-RIXを、前記登録要求に係るキー値が属するカラム毎に分けて示した情報を、前記キー値に関する情報としてさらに有する、ことを特徴とする分散型データベースのデータ構造。しかしながら、水平垂直分散を組み合わせてキー値を複数のノードに分散格納する特許文献1に係る分散型データベース装置では、同一の値を有するキー値か否かを考慮することなしに、それぞれのキー値は複数のノード間にわたって無作為に分散格納される。こうした無作為な分散格納下においてデータ操作を実行した場合、複数のノードに分散格納された同一の値を有するキー値を相互に参照するために複数のノード間で生じる通信に係る時間遅延がボトルネックとなって、システム全体としての処理能力を効率的に向上させることは難しい。本発明は、上述した課題を解決するためになされたものであり、分散型データシステム全体としての処理能力を効率的に向上させることができるようにすることを目的とする。上述した課題を解決するために、本発明では、実値であるキー値と、分散型データベースの全体においてキー値が有するデータ型の範囲内で一意の値をとるキー値識別子NIDとの対応関係に係る分散共有NIDDSNのデータを、複数のスレーブノードの各々に分散格納する。DSNのデータを複数のスレーブノードの各々に分散格納するに際しては、格納先となる一のスレーブノードを、複数のスレーブノードのなかから、登録要求に係るキー値に基づいて決定する。上記のように構成した本発明によれば、複数のスレーブノードの各々は、マスターノードからの指令に基づく結合演算などのデータ操作を並列に実行する際、実値であるキー値に代えて、自ノードに分散格納されたDSNを参照して得られるキー値識別子NIDを用いるように動作する。ここで、キー値識別子NIDは、分散型データベースの全体においてキー値が有するデータ型の範囲内で一意の値をとる。つまり、同一のキー値であれば同一のキー値識別子NIDの値をとる。一方、キー値に関する情報としての分散共有NIDDSNのデータの格納先は、そのキー値に基づいて決定される。そうすると、同一のキー値に関する情報は、同一のスレーブノードに集約されることになる。要するに、本発明では、同一のキー値に関する情報は同一のスレーブノードに集約するように作為的に分散格納される。このため、複数のスレーブノード間にまたがって同一の値を有するキー値が無作為に分散格納される従来例とは対照的に、例えばあるスレーブノードが結合演算などのデータ操作を実行した場合に、同一の値を有するキー値を相互に参照するためのスレーブノード間の通信はまったく生じず、システム全体としての処理のオーバーヘッドが抑制される。従って、本発明によれば、分散型データベースシステム全体としての処理能力を効率的に向上させることができる。以下、本発明の実施形態に係る分散型データベースシステムについて、図面を参照して詳細に説明する。本発明の実施形態に係る分散型データベースシステムの概要まず、本発明の実施形態に係る分散型データベースシステムの概要について説明する。図1は、本発明の実施形態に係る分散型データベースシステムの概要を示す構成図である。本実施形態に係る分散型リレーショナルデータベース以下では、原則として、リレーショナルデータベースをRDBと省略し、データベースをDBと省略する。のシステム11は、ひとつのマスターノード13と、第1~第3のスレーブノード15,17,19との間を、第1通信網21を介して接続して構成されている。マスターノード13は、複数のスレーブノード15,17,19を統括管理する。なお、ノード13,15,17,19とは、情報処理機能を有するコンピューターである。分散型RDBシステム11外の構成要素として、マスターノード13には、第2通信網23を介して、複数のクライアント端末25a,25b,25cが接続されている。マスターノード13は、複数のクライアント端末25a,25b,25cのうちいずれか一つより発行されたキー値登録要求、または、表結合操作などのデータ操作要求を受付けると、その要求に従う処理を第1~第3のスレーブノード15,17,19と連携して実行し、得られた処理結果を応答として要求のあったクライアント端末に返す。マスターノード13は、マスターデータを記憶するマスターデータ記憶部13aを有する。マスターデータは、DBメタデータおよびDB管理データを含んで構成される。DBメタデータは、複数のスレーブノード15,17,19がどこに何台設置されているのかに関する物理構成表や、テーブル属性の構成表などを含む。DB管理データは、後述する最新共有NIDなどの共有管理データを含む。ここで、本発明の主要な特徴として、マスターノード13は、本来の管理対象であるキー値を含む、キー値を特定するためのキー値に関する情報を、第1~第3のスレーブノード15,17,19に分散格納するための管理を行うのみで、キー値またはキー値に関する情報を、マスターノード13それ自体またはマスターデータ記憶部13aのいずれも保持していない。第1~第3のスレーブノード15,17,19の各々は、第1~第3のローカルデータを記憶する第1~第3のローカルデータ記憶部15a,17a,19aをそれぞれ有する。なお、第1~第3のスレーブノード15,17,19および第1~第3のローカルデータ記憶部15a,17a,19aの構成は横並びに等しい。そこで、説明の重複を避けるため、以下では、第1のスレーブノード15、第1のローカルデータおよび第1のローカルデータ記憶部15aについて代表的に説明することで、その他の第2,第3のスレーブノード17,19、第2,第3のローカルデータおよび第2,第3のローカルデータ記憶部17a,19aについての説明に代えることとする。第1~第3のローカルデータ記憶部15a,17a,19aのそれぞれは、DSN格納部、D-CRX格納部、D-CRS格納部およびD-RIX格納部に相当する。第1のローカルデータは、4種類のインデックスデータを含んで構成される。すなわち、第1の分散共有NID以下、DSNという、第1の分散圧縮復元インデックス以下、D-CRXという、第1の分散圧縮結果セットキャッシュ以下、D-CRSというおよび第1の分散行識別インデックス以下、D-RIXというがそれである。これらについて、詳しくは後述する。複数のスレーブノードにおける売上管理表のトランザクションの一例本発明の実施形態に係る分散型RDBシステム11で生成される、複数のスレーブノード15,17,19における売上管理表のトランザクションの一例について説明する。図2A,図2Bは、複数のスレーブノード15,17,19における売上管理表のトランザクションの一例を示すテーブルである。図2A,図2Bに示すような、タプル行とカラム列を二次元に配置したテーブルデータが入力されると、分散型RDBシステム11は、分散リレーショナルデータモデルの4種類のインデックスデータを作成する。図2A,図2Bに示す入力行番号は、入力行を一意に識別するための標識であり、1番から昇順に連番で割り振られるものとする。この入力行番号は、マスターノード13により付される標識であり、実際の入力データには付与されていない。図2A,図2Bに示すテーブルの第1行目にはカラムの項目名が、同テーブルの第2行目にはデータ型の種別例えば、文字列型か、数値型か、日付型か等がそれぞれ記入してある。図2A,図2Bに示すテーブルでは、それぞれのタプルに入力行番号として1~15が割り振られている。なお、図2A,図2Bに示すテーブルでは、特許請求の範囲に記載の分散型データベースを構成するテーブル内のカラム毎に一意の値をとる分散行識別子以下、RIDというは、入力行番号と等しい値になっている。図2A,図2Bに示すテーブルにおいて、それぞれのタプルの下段の欄には、各タプルの属性値が記入してある。ただし、各タプルの属性値は、説明の便宜上記入したものであり、実際の入力データには含まれていない。この属性値としては、例えば、キー値を入力としてDSNのデータを参照することにより払い出されたキー値識別子以下、NIDという、コンシステントハッシュ法によって決定されたDSNのデータの格納先ノード番号以下、DSN-CNNという、同じくコンシステントハッシュ法によって決定されたD-CRXのデータの格納先ノード番号以下、D-CRX-CNNという、および、D-CRX-CNNの決定に使用したD-CRXのブロック番号以下、D-CRX-BNというがある。D-CRX-BNを決定する際には、ブロック化係数以下、D-CRX-BFというを使用する。なお、NID、DSN、DSN-CNN、D-CRX-CNN、D-CRX-BNおよびD-CRX-BFについて、詳しくは後述する。図2A,図2Bに示すテーブルにおいて、D-CRX-BNの決定に用いるD-CRX-BFの値を7とし、格納先ノードの数は、第1~第3のスレーブノード15,17,19の数に対応して3分散とした。第1~第3のスレーブノード15,17,19には、それぞれにCNNの識別子としてa~cを付した。つまり、第1のスレーブノード15がCNN=aの格納先ノードに相当し、第2のスレーブノード17がCNN=bの格納先ノードに相当し、第3のスレーブノード19がCNN=cの格納先ノードに相当するものとして、以降の説明を進める。なお、以下の説明において、中括弧{}により要素を囲んだ記号{i,j,k}は、i,j,kを要素とする集合を示す。管理対象となる値の集合以下、値集合というの元をキー値と呼ぶ。NIDとは、キー値を一意に識別するための標識である。このNIDは、分散型データベースの全体において登録要求に係るキー値が有するデータ型の範囲内で一意の値をとるように、それぞれのキー値に対して割り当てられる。要するに、同一の値を有するキー値には、同一のNIDが割り当てられる。このことを、図2A,図2Bに示すテーブルにおいて検証してみる。図2Aのうち入力行番号が1であるタプルでは、カラムの地域名として記入されたキー値である北海道東北に対し、NIDとして2が割り当てられている。また、図2Aのうち入力行番号が5であるタプルでは、カラムの地域名として記入されたキー値である北海道東北に対し、入力行番号が1であるタプルの例と同様に、NIDとして2が割り当てられている。なお、図2A,図2Bに示すテーブルにおいて、後に同じ値が現れるキー値と、先に同じ値が現れるキー値と、これらに相当しないキー値とを一見して識別できるように、上記の前二者の記入枠に対し、相互に異なる網掛け修飾を付与してある。NIDは、自然数の値をとるのが好ましい。キー値に代えてNIDを用いて表結合操作などのデータ操作を行う際に、その演算に係る処理負荷を低く抑え、演算処理の高速化を図れるからである。その理由の詳細については後述する。また、NIDは、順序数の値をとるのが好ましい。最新共有NIDの値をインクリメントするといったきわめて簡素な手順で、登録要求に係るキー値に対してユニークなNIDの払い出しを行うことができるからである。なお、図2A,図2Bに示すテーブルでは、NID=0は無効値、NID=1はNULL値、NID=2以上が有効値と定義してある。キー値に関する情報DSN、D-CRX、D-CRS、D-RIXを複数のスレーブノード15,17,19に分散するための分散方式としては、例えば公知のコンシステントハッシュ法を採用することができる。ただし、スレーブノード格納先ノードの増減が生じた際に、キー値に関する情報を充分に小さいコストで再分散可能な方式であれば、コンシステントハッシュ法に限定されない。DSNの一例次に、本発明の実施形態に係る分散型RDBシステム11で生成されるDSNの一例について説明する。図3Aは、DSNの一例を示すインデックスデータである。DSNとは、キー値を分散キーとして用いたコンシステントハッシュ法によって、NIDを複数のスレーブノード15,17,19に分散格納したインデックスであり、キー値を入力として対応するNIDを得る際に参照される。詳しく述べると、DSNは、登録要求に係るキー値と、そのキー値に割り当てられたNIDとの対応関係に係るインデックスである。このDSNは、登録要求に係るキー値が有するデータ型毎に分けて格納される。DSNのインデックスによれば、キー値を入力として対応するNIDを得ることができる。DSNは、図3Aに示すように、次の規則に従って生成される。1分散型データベース全体の範囲内において、同一のデータ型の同一のキー値の集合に対して共通のNIDを与える。2キー値を分散キーとして用いたコンシステントハッシュ法によって、キー値とNIDの対を複数のスレーブノード15,17,19DSN-CNNの値がa~cに分散格納する。3DSNの管理単位は、分散型データベースである。D-CRXの一例次に、本発明の実施形態に係る分散型RDBシステム11で生成されるD-CRXの一例について説明する。図3Bは、地域名、価格、および受注日の3つのカラムを抜粋した場合のD-CRXの一例を示す。D-CRXとは、NIDの関数NIDそれ自体を含むを分散キーとして用いたコンシスタントハッシュ法によって、複数のスレーブノード15,17,19にNIDを分散格納したインデックスであり、キー値の検索時に対応するNIDを調べる際、または、NIDをキー値へ逆変換する際に用いられる。詳しく述べると、D-CRXは、登録要求に係るキー値と、そのキー値に割り当てられたNIDとの1対1の対応関係に係るインデックスである。このD-CRXは、登録要求に係るキー値が属するカラム毎に分けて格納される。D-CRXのインデックスによれば、NIDを入力として対応するキー値を得ること、および、キー値を入力として対応するNIDを得ることができる。DNSとD-CRXとの相違点は、DNSではキー値をNIDに一方向に変換するのに対し、D-CRXではキー値とNIDとを双方向に変換する点である。また、D-CRXのインデックスによれば、キー値の値範囲始値と終値を入力として対応するNID集合を得ることができる値範囲検索。この値範囲検索については後述する。D-CRXは、図3Bに示すように、次の規則に従って生成される。1分散型データベース内における同一テーブルの同一カラムを管理単位として、キー値とNIDとの1対1の対応関係を与える。2ブロック番号D-CRX-BNは、NIDをブロック化係数D-CRX-BFで割った商である。上記式より、D-CRX-BNはNIDの関数であるといえる。3D-CRX-BFは定数であり、任意の正の整数本例では7の値をとる。このため、D-CRX-BNは正の整数の値をとる。4D-CRX-BNNIDの関数を分散キーとするコンシステントハッシュ法によって、NIDとキー値との対1対1対応を複数のスレーブノード15,17,19格納先ノード;D-CRX-CNNの値がa~cに分散格納する。5D-CRXの管理単位は、カラムである。D-CRSの一例次に、本発明の実施形態に係る分散型RDBシステム11で生成されるD-CRSの一例について説明する。図3Cは、地域名、価格、および受注日の3つのカラムを抜粋した場合のD-CRSの一例を示す。D-CRSとは、RIDの関数RIDそれ自体を含むを分散キーとして用いたコンシスタントハッシュ法によって、複数のスレーブノード15,17,19にNIDを分散格納したインデックスであり、検索結果としてのRID集合を作成する際、または、結合結果としてのタプルを作成する際に用いられる。詳しく述べると、D-CRSは、分散型データベースを構成するテーブル内のカラム毎に一意の値をとるRIDとNIDとの対応関係に係るインデックスである。このD-CRSは、登録要求に係るキー値が属するカラム毎に分けて格納される。D-CRSでは、RIDとNIDとの対応関係が1対1で記述されており、同一のカラム内においてNIDの重複した出現を許すデータ構造となっている。D-CRSによれば、RIDを入力として対応するNIDを得ることができる。また、NID集合{NID}と表記するを入力として対応するRID集合{RID}と表記するを得ることができる。つまり、検索対象となるNIDと、カラムに属する全てのNIDとを逐一照合してゆくフルスキャンを、NID集合の元の数だけ繰り返し行うことにより、NID集合に対応するRID集合を得ることができる。D-CRSは、図3Cに示すように、次の規則に従って生成される。1分散型データベース内における同一のカラム単位にRIDに対応するNIDを格納する。これを列単位NID配列と呼ぶ。2ブロック番号D-CRS-BNは、RIDをブロック化係数D-CRSBFで割った商である。上記式より、D-CRS-BNはRIDの関数であるといえる。3D-CRS-BFは定数であり、任意の正の整数本例では7の値をとる。このため、D-CRS-BNは正の整数の値をとる。4D-CRS-BNRIDの関数を分散キーとするコンシステントハッシュ法によって、列単位NID配列を複数のスレーブノード15,17,19D-CRSのデータの格納先ノード;D-CRS-CNNの値がa~cに分散格納する。5D-CRSの管理単位は、カラムである。D-RIXの一例次に、本発明の実施形態に係る分散型RDBシステム11で生成されるRIXの一例について説明する。図3Dは、地域名、価格、および受注日の3つのカラムを抜粋した場合のD-RIXの一例を示す。D-RIXとは、NIDの関数NIDそれ自体を含むを分散キーとして用いたコンシスタントハッシュ法によって、複数のスレーブノード15,17,19にNIDを分散格納したインデックスであり、表結合操作でのキー値の検索時に対応するRIDを調べる際に用いられる。詳しく述べると、D-RIXは、NIDとRID集合との1対Nの対応関係に係るインデックスである。このD-RIXは、登録要求に係るキー値が属するカラム毎に分けて格納される。D-CRSとD-RIXとの相違点は、D-CRSでは同一のカラム内においてNIDの重複した出現が起こり得るのに対し、D-RIXでは同一のカラム内においてNIDの重複した出現が起こり得ない点である。この相違点は、D-CRSではRIDを分散キーとして用いるのに対し、D-RIXではNIDを分散キーとして用いることに由来して生じている。D-RIXのインデックスによれば、NIDを入力として対応するRID集合を得ること、およびNID集合を入力として対応するRID集合を得ることができる。また、D-RIXを用いて表結合操作などのデータ操作を行うことにより、複数のスレーブノード15,17,19格納先ノード;DSN-CNNの値がa~c間でのデータの移動を抑止すること、並びに、表結合操作での検索時のフルスキャンを抑止することができる。その理由については後述する。D-RIXは、図3Dに示すように、次の規則に従って生成される。1分散型データベース内における同一テーブルの同一カラムを管理単位として、NIDとRID集合の対応関係を与える。2ブロック番号D-RIX-BNは、NIDをブロック化係数D-RIXBFで割った商である。上記式より、D-RIX-BNはNIDの関数であるといえる。3D-RIX-BFは定数であり、任意の正の整数本例では7の値をとる。このため、D-RIX-BNは正の整数の値をとる。4D-RIX-BNNIDの関数を分散キーとするコンシステントハッシュ法によって、NIDとRID集合の対1対N対応を複数のスレーブノード15,17,19格納先ノード;DSN-CNNの値がa~cに分散格納する。5D-RIXの管理単位は、カラムである。マスターノードと第1のスレーブノードの内部構成次に、本実施形態に係る分散型RDBシステム11において重要な役割を果たすマスターノード13と第1のスレーブノード15の内部構成について説明する。図4は、マスターノード13と第1のスレーブノード15の内部構成を示す機能ブロック図である。はじめに、マスターノード13の内部構成について説明する。マスターノード13は、マスター受付部31、NID割当部33、インデックス生成部35、ノード決定部37、要求発行部41と処理結果統合部43とを有する分散統括管理部39、および、更新管理部45を備えて構成される。登録要求受付部に相当するマスター受付部31は、登録要求に係るキー値およびそのデータ型の情報を受け付ける。キー値登録要求は、実際には、複数のカラム毎にそれぞれのキー値およびそのデータ型の情報が関連付られたタプル単位でマスター受付部31に入力されるのが一般的である。ただし、キー値登録要求は、複数のタプルの組からなるテーブルデータの形態で入力される場合もある。いずれの場合でも、タプル単位の入力データを受け付けたマスター受付部31は、タプルに含まれる複数のカラムのうちいずれか一つのカラムに関連付けられたキー値以下、処理対象キー値と呼ぶ場合がある。およびそのデータ型の情報を最小単位として逐次処理を進める。このため、本実施形態では、最小単位である一組の処理対象キー値およびそのデータ型の情報をマスター受付部31が受け付けたものとして説明を進めるものとする。タプル単位の入力データを受け付けたマスター受付部31は、そのタプルに属する全てのキー値に対し、テーブル内のカラム毎に一意の値をとる共通のRIDを付与する。RIDとしては、NIDと同様に、自然数かつ順序数の値を採るのが好ましい。RIDの最新値をインクリメントするといったきわめて簡素な手順で、テーブル内のカラム毎にユニークなRIDの付与を行うことができるからである。マスター受付部31は、複数のクライアント端末25a,25b,25cのうちいずれか一つより発行されたキー値登録要求そのデータ型の情報を含む、または、表結合操作などのデータ操作要求を受付ける。また、マスター受付部31は、いずれかのスレーブノードから送信されてくる後述の既存確認結果を受付ける。マスター受付部31は、キー値登録要求が生じた場合、その要求をNID割当部33へ渡す一方、データ操作要求が生じた場合、その要求をノード決定部37へ渡す。NID割当部33は、キー値登録要求が生じた場合、マスターデータ記憶部13aに記憶されたDB管理データのうち最新共有NIDを参照して、登録要求に係るキー値に対してユニークなNIDを割当てる。また、NID割当部33は、マスター受付部31が既存確認結果登録要求に係るキー値がその格納先ノードに既に存在するか否かを示す情報を受け付けた場合、その既存確認結果に基づいて、最新共有NIDを更新すべか否かに係る最新共有NID更新制御信号を生成し、これを更新管理部45に送る。インデックス生成部35は、NID割当部33により登録要求に係るキー値に対してNIDが割り当てられた場合、登録要求に係るキー値、そのキー値が有するデータ型、そのキー値に割り当てられたNID、およびマスターノード13により付与されたRIDに基づいて、DSN、D-CRX、D-CRS、および、D-RIXのデータをそれぞれ生成する。ここで、DSNのデータとは、DSNの構成要素となる少なくとも最小単位のデータひとつのキー値とひとつのNIDとの対データを意味する。同様に、D-CRXのデータとは、D-CRXの構成要素となる少なくとも最小単位のデータひとつのキー値とひとつのNIDとの対データを意味し、D-CRSのデータとは、D-CRSの構成要素となる少なくとも最小単位のデータひとつのRIDとひとつのNIDとの対データを意味し、D-RIXのデータとは、D-RIXの構成要素となる少なくとも最小単位のデータひとつのNIDと一群のRID集合との対データを意味する。こうして生成された4種類のインデックスデータは、例えば、次述するノード決定の際や、表結合操作等のデータ操作要求が生じた際などに参照される。インデックス生成部35は、DSN生成部、D-CRX生成部、D-CRS生成部およびD-RIX生成部に相当する。ノード決定部37は、キー値登録要求が生じた場合、インデックス生成部35で生成されたDSN、D-CRX、D-CRSおよびD-RIXのデータの分散格納先となるスレーブノードを、キー値、NIDの関数またはRIDの関数のうちいずれか一つを分散キーとするコンシステントハッシュ法によって決定する。ノード決定部37は、DSN格納ノード決定部、D-CRX格納ノード決定部、D-CRS格納ノード決定部およびD-RIX格納ノード決定部に相当する。ノード決定部37は、表結合操作などのデータ操作要求が生じた場合、マスターノード13の支配下にある第1~第3のスレーブノード15,17,19の全てを、データ操作要求を分散処理するノードとして決定する。これを受けて第1~第3のスレーブノード15,17,19では、与えられたデータ操作要求を並列に実行する。第1~第3のスレーブノード15,17,19がデータ操作要求を分散処理する手順について、詳しくは後述する。分散統括管理部39に属する要求発行部41は、キー値登録要求が生じた場合、マスターノード13の支配下にある第1~第3のスレーブノード15,17,19のうち、ノード決定部37で決定されたスレーブノードに対し、DSN、D-CRX、D-CRSおよびD-RIXのデータをそれぞれ送ってデータ登録要求を発行する。また、要求発行部41は、データ操作要求が生じた場合、第1~第3のスレーブノード15,17,19のうち、ノード決定部37で決定されたノードに対し、処理要求を発行する。要求発行部41は、DSN登録要求発行部、D-CRX登録要求発行部、D-CRS登録要求発行部およびD-RIX登録要求発行部に相当する。分散統括管理部39に属する処理結果統合部43は、第1~第3のスレーブノード15,17,19のそれぞれで分散処理されたデータ操作結果を受けて、これらの処理結果を統合する。更新管理部45は、NID割当部33から送信されてきた最新共有NID更新制御信号に従って、DB管理データのうち最新共有NIDの更新を制御する。具体的には、更新管理部45は、登録要求に係るキー値がその格納先ノードのDSN格納部に未だ存在しない旨の既存確認結果を受けた場合に、最新共有NIDを次共有NIDに更新するように制御を行う。次に、第1のスレーブノード15の内部構成について説明する。第1のスレーブノード15は、第1の受付部51、既存判定部53、登録管理部55、第1の分散処理部57および第1の応答部59を備えて構成される。第1の受付部51は、マスターノード13の要求発行部41から送られてきたDSN、D-CRX、D-CRSおよびD-RIXのデータ以下、インデックスデータというの登録要求、または、表結合操作などのデータ操作要求を受付ける。第1の受付部51は、インデックスデータの登録要求が生じた場合、その要求を既存判定部53へ渡す一方、データ操作要求が生じた場合、その要求を第1の分散処理部57へ渡す。既存判定部53は、インデックスデータの登録要求が生じた場合、第1のローカルデータ記憶部15aの第1のDSNを参照して、登録要求に係るDSNのデータに含まれる処理対象キー値と同じ値のデータが第1のDSNに既に存在するか否かを確認し、その既存確認結果を第1の応答部59に送る。また、既存判定部53は、既存確認結果に基づいて、登録要求に係るDSNのデータに含まれる処理対象キー値と、そのキー値に対してユニークなNIDとの組み合わせに係るDSNのデータの登録指令を登録管理部55に送る。登録管理部55は、既存判定部53から送られてきた登録指令に従って、登録要求に係るDSNのデータを第1のローカルデータ記憶部15aDSN格納部に相当に追加格納させる登録管理を行う。また、登録管理部55は、マスターノード13から送られてきた登録指令に従って、登録要求に係るD-CRX、D-CRSおよびD-RIXのデータを第1のローカルデータ記憶部15aD-CRX格納部、D-CRS格納部およびD-RIX格納部に相当に格納させる登録管理を行う。これにより、登録要求に係る全てのインデックスデータの登録が完了する。登録管理部55は、DSN登録管理部、D-CRX登録管理部、D-CRS登録管理部およびD-RIX登録管理部に相当する。データ操作実行部に相当する第1の分散処理部57は、自ノードに関連するデータ操作要求が生じた場合、第1のローカルデータ記憶部15aに格納された第1のDSN、第1のD-CRX、第1のD-CRS、第1のD-RIXを適宜参照して、要求に係る分散処理を他ノードに対し並列に実行する。第1の分散処理部57は、得られた分散処理結果を第1の応答部59へ渡す。第1の応答部59は、既存判定部53から送られてきた既存確認結果を、マスターノード13のマスター受付部31へ応答する。マスターノード13では、前述したように、マスター受付部31は、受け付けた既存確認結果をNID割当部33に渡す。NID割当部33は、その既存確認結果に基づいて最新共有NID更新制御信号を生成し、これを更新管理部45に送る。更新管理部45は、NID割当部33から送信されてきた最新共有NID更新制御信号に従って、DB管理データのうち最新共有NIDの更新を制御する。また、第1の応答部59は、第1の分散処理部57から送られてきた分散処理結果を、マスターノード13の処理結果統合部43へ応答する。キー値登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作次に、キー値登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作について説明する。まず、DSNのデータの登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作について、図5Aを参照して説明する。図5Aは、キー値登録要求に基づくDSNのデータの登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作を示すフロー図である。なお、キー値登録要求は、前述したとおり、タプル単位でマスター受付部31に入力されるのが一般的であるが、タプル単位の入力データを受け付けたマスター受付部31は、タプルに含まれる複数のカラムのうちいずれか一つのカラムに関連付けられたキー値およびそのデータ型の情報を単位として処理を進めるものとする。ステップS11において、マスターノード13のマスター受付部31は、複数のクライアント端末25a,25b,25cのうちいずれか一つより発行されたキー値登録要求を受付けて、その要求をNID割当部33へ渡す。ステップS12において、キー値登録要求を受け付けたNID割当部33は、マスターデータ記憶部13aに記憶されたDB管理データのうち最新共有NIDを参照して、登録要求に係るキー値に対してふさわしい次共有NID例えば、次共有NIDは最新共有NIDの値を1だけインクリメントした値であるを割当てる。NID割当部33で登録要求に係るキー値に対して割り当てられた次共有NIDの情報はインデックス生成部35へと送られる。ステップS13において、マスターノード13のインデックス生成部35は、登録要求に係るキー値と、そのキー値が有するデータ型と、そのキー値に対してNID割当部33で割り当てられた次共有NIDとに基づいて、DSNのデータを生成する。ステップS14において、マスターノード13のノード決定部37は、インデックス生成部35で生成されたDSNのデータの分散格納先となるスレーブノードを、キー値を分散キーとするコンシステントハッシュ法によって決定し、その決定内容を分散統括管理部39へ送る。ここでは、CNN=xただし、xはa~cのいずれかの値をもつノードが、DSNの分散格納先となるスレーブノードとして決定されたとする。また、CNN=xの値をもつノードは、第1のスレーブノード15であるとして以降の説明を進める。ステップS15において、マスターノード13の分散統括管理部39に属する要求発行部41は、マスターノード13の支配下にある第1~第3のスレーブノード15,17,19のうち、ノード決定部37で決定されたCNN=xの値をもつ第1のスレーブノード15に対し、ステップS13で生成したDSNのデータを送ってデータ登録要求を発行する。ここで、マスターノード13での処理の流れの説明が途中であるが、マスターノード13と第1のスレーブノード15との間の協調動作を円滑に説明する便宜上、以下では、CNN=xの値をもつ第1のスレーブノード15での処理内容について説明する。ステップS21において、CNN=xの値をもつ第1のスレーブノード15の第1の受付部51は、マスターノード13の要求発行部41から送られてきたDSNのデータ登録要求を受付けて、その要求を既存判定部53に渡す。ステップS22において、CNN=xの値をもつ第1のスレーブノード15の既存判定部53は、第1のローカルデータ記憶部15aの第1のDSNを参照して、登録要求に係るDSNのデータに含まれる処理対象キー値と同じ値のデータが第1のDSNに既に存在するか否かを確認し、この既存確認結果に基づいて、ステップS23において、登録要求に係る処理対象キー値が既に登録済みか否かに係る既存判定を行う。そして、既存判定部53は、既存判定結果に基づいて、登録要求に係る処理対象キー値と、そのキー値に対してユニークなNIDとの組み合わせに係るDSNのデータの登録指令を登録管理部55に対して行う。ステップS23の既存判定の結果、登録要求に係る処理対象キー値が既に登録済みであると判定された場合、ステップS24において、登録管理部55は、既存判定部53から送られてきた登録指令に従わずに、登録要求に係る処理対象キー値と登録済みのNIDとの対応関係に係るDSNのデータをそのまま維持する。これにより、同一のキー値に対するユニークなNIDの割り当てを担保する。この場合、登録管理部55は、DSNのデータの登録要求をキャンセルする。登録要求に係る処理対象キー値と登録済みのNIDとの対応関係に係るDSNのデータは既に登録済みであり、DSNのデータを追加登録する必要もないからである。一方、ステップS23の既存判定の結果、登録要求に係る処理対象キー値が未登録の値であると判定された場合、ステップS25において、登録管理部55は、既存判定部53から送られてきた登録指令に従って、登録要求に係る処理対象キー値にふさわしいものとして次共有NIDが割り当てられたDSNのデータを第1のローカルデータ記憶部15aに追加格納する。ここで、次共有NIDが割り当てられたDSNのデータを追加格納するとは、既に蓄積されているDSNのデータを書き換えることなく、次共有NIDが割り当てられたDSNのデータを追加するように格納することをいう。ステップS26において、第1のスレーブノード15の第1の応答部59は、ステップS24またはS25の処理後に、登録要求に係る処理対象キー値に対して現実に割り当てられたNIDを、既存確認結果と共にマスターノード13のマスター受付部31へ返し、一連の処理の流れを終了させる。ここで、マスターノード13での処理の流れの説明に戻る。ステップS16において、マスターノード13のマスター受付部31は、第1のスレーブノード15から送信されてきた既存確認結果、および登録要求に係る処理対象キー値に対して現実に割り当てられたNIDを受付けて、その結果をNID割当部33へ渡す。ステップS17において、NID割当部33は、登録要求に係る処理対象キー値が既に登録済みか否かに係る既存判定を行う。ステップS17の既存判定の結果、登録要求に係る処理対象キー値が既に登録済みであると判定された場合、ステップS18において、登録要求に係る処理対象キー値がその格納先である第1のスレーブノード15に既に存在する旨の既存確認結果を受けたNID割当部33は、最新共有NIDの更新を禁止する制御信号を生成し、これを更新管理部45に送る。更新管理部45は、NID割当部33から送信されてきた最新共有NID更新制御信号に従って、最新共有NIDの更新を禁止する。これにより、ステップS12で登録要求に係る処理対象キー値に対して割り当てられた次共有NIDはキャンセルされ、最新共有NIDの値は更新されることなくそのまま維持される。一方、ステップS17の既存判定の結果、登録要求に係るキー値が未登録の値であると判定された場合、ステップS19において、登録要求に係る処理対象キー値がその格納先である第1のスレーブノード15にまだ存在しない旨の既存確認結果を受けたNID割当部33は、最新共有NIDを更新させる制御信号を生成し、これを更新管理部45に送る。更新管理部45は、NID割当部33から送信されてきた最新共有NID更新制御信号に従って、最新共有NIDの値を、ステップS12で登録要求に係るキー値に対して割り当てられた次共有NIDの値に更新する。この更新後に、NID割当部33は、処理の流れを図5BのステップS31へと進ませる。次に、DSNのデータ登録が完了した後に、D-CRX/D-RIXのデータ登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作について、図5Bを参照して説明する。図5Bは、キー値登録要求に基づくD-CRX/D-RIXのデータ登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作を示すフロー図である。ステップS31において、マスターノード13のNID割当部33は、登録要求に係る処理対象キー値に対して現実に割り当てられたNIDを参照して、そのNIDの関数であるブロック番号D-CRX-BNおよびD-RIX-BNを演算する。具体的には、D-CRX-BNは、NIDをD-CRX-BFで割った商と、D-RIX-BNは、NIDをD-RIXBFで割った商をそれぞれ演算により求める。ステップS32において、マスターノード13のインデックス生成部35は、登録要求に係る処理対象キー値と、そのキー値に対して現実に割り当てられたNIDと、登録要求に係る処理対象キー値が属するカラム名とに基づいて、D-CRXのデータを生成する。ステップS33において、マスターノード13のインデックス生成部35は、登録要求に係る処理対象キー値に対して現実に割り当てられたNIDと、そのNIDに対応するRID集合と、登録要求に係る処理対象キー値が属するカラム名とに基づいて、D-RIXのデータを生成する。ステップS34において、マスターノード13のノード決定部37は、インデックス生成部35で生成されたD-CRXおよびD-RIXのデータの分散格納先となるスレーブノードを、ステップS31で求めたNIDの関数であるブロック番号D-CRX-BNおよびD-RIX-BNを分散キーとするコンシステントハッシュ法によって決定し、その決定内容を分散統括管理部39へ送る。ここでは、CNN=yただし、yはa~cのいずれかの値をもつノードが、D-CRXおよびD-RIXのデータの分散格納先となるスレーブノードとして決定されたとする。また、CNN=yの値をもつノードは、第1のスレーブノード15であるとして以降の説明を進める。ステップS35において、マスターノード13の分散統括管理部39に属する要求発行部41は、マスターノード13の支配下にある第1~第3のスレーブノード15,17,19のうち、ノード決定部37で決定されたCNN=yの値をもつ第1のスレーブノード15に対し、ステップS32で生成したD-CRXのデータ、および、ステップS33で生成したD-RIXのデータを送ってデータ登録要求を発行する。このデータ登録要求の発行後に、マスターノード13の分散統括管理部39は、処理の流れを図5CのステップS51へと進ませる。ここで、マスターノード13での処理の流れの説明が途中であるが、マスターノード13と第1のスレーブノード15との間の協調動作を円滑に説明する便宜上、以下では、CNN=yの値をもつ第1のスレーブノード15での処理内容について説明する。ステップS41において、CNN=yの値をもつ第1のスレーブノード15の第1の受付部51は、マスターノード13の要求発行部41から送られてきたD-CRXおよびD-RIXのデータの登録要求を受付けて、その要求を既存判定部53を介して登録管理部55に渡す。ステップS42~S43において、CNN=yの値をもつ第1のスレーブノード15の登録管理部55は、マスターノード13の要求発行部41から送られてきた登録要求に応じて、D-CRXおよびD-RIXのデータをカラム毎に分けて第1のローカルデータ記憶部15aにそれぞれ格納させる。ステップS42~S43においてD-CRXおよびD-RIXのデータの格納後に、第1のスレーブノード15の登録管理部55は、一連の処理の流れを終了させる。次に、D-CRXおよびD-RIXのデータ登録が完了した後に、D-CRSのデータ登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作について、図5Cを参照して説明する。図5Cは、キー値登録要求に基づくD-CRSのデータ登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作を示すフロー図である。ステップS51において、マスターノード13のNID割当部33は、登録要求に係る処理対象キー値に対して現実に割り当てられたNIDに対応するRIDを参照して、そのRIDの関数であるブロック番号D-CRS-BNを演算する。具体的には、D-CRS-BNは、RIDをD-CRS-BFで割った商を演算により求める。ステップS52において、マスターノード13のインデックス生成部35は、登録要求に係る処理対象キー値に対して現実に割り当てられたNIDと、登録要求に係る処理対象キー値が属するRIDと、登録要求に係る処理対象キー値が属するカラム名とに基づいて、D-CRSのデータを生成する。ステップS53において、マスターノード13のノード決定部37は、インデックス生成部35で生成されたD-CRSのデータの分散格納先となるスレーブノードを、ステップS51で求めたRIDの関数であるブロック番号D-CRS-BNを分散キーとするコンシステントハッシュ法によって決定し、その決定内容を分散統括管理部39へ送る。ここでは、CNN=zただし、zはa~cのいずれかの値をもつノードが、D-CRSの分散格納先となるスレーブノードとして決定されたとする。また、CNN=zの値をもつノードは、第1のスレーブノード15であるとして以降の説明を進める。ステップS54において、マスターノード13の分散統括管理部39に属する要求発行部41は、マスターノード13の支配下にある第1~第3のスレーブノード15,17,19のうち、ノード決定部37で決定されたCNN=zの値をもつ第1のスレーブノード15に対し、ステップS52で生成したD-CRSのデータを送ってデータ登録要求を発行する。このデータ登録要求の発行後に、マスターノード13の分散統括管理部39は、一連の処理の流れを終了させる。次に、ステップS61において、CNN=zの値をもつ第1のスレーブノード15の第1の受付部51は、マスターノード13の要求発行部41から送られてきたD-CRSのデータの登録要求を受付けて、その要求を既存判定部53を介して登録管理部55に渡す。ステップS62において、CNN=zの値をもつ第1のスレーブノード15の登録管理部55は、マスターノード13の要求発行部41から送られてきた登録要求に応じて、D-CRSのデータをカラム毎に分けて第1のローカルデータ記憶部15aに格納させる。ステップS62のD-CRSのデータの格納後に、第1のスレーブノード15の登録管理部55は、一連の処理の流れを終了させる。上述のようにして登録された4種類のインデックスデータは、膨大な量のデータからなる分散型RDBを対象として、第1~第3のスレーブノード15,17,19が表結合操作などの処理を並列に分散して実行する際に、その威力を発揮する。特に、本実施形態に係る分散型RDBシステム11は、例えばWWWWorldWideWeb経由で分散型RDBサービスを提供するに際し、急激な需要増大への柔軟な対応を狙ってシステム内のノードの台数を増設し、増設後の複数の各ノードに分散格納されたデータに対して表結合操作などのデータ操作を実行した場合であっても、増設前後でのシステム全体としての処理能力を線形に向上させ得る線形スケールアウト性を実現することができる。以下では、4種類のインデックスデータを導入することによって、どのようにしてシステム全体としての処理能力を効率的に向上させ、また、線形スケールアウト性を実現することができるのかについて、分散クエリー処理を例示して説明する。図6は、分散クエリー処理の流れを示す工程図である。図6に示す分散クエリー処理は、ステップS71の分散検索処理と、ステップS72の分散表結合処理と、ステップS73の集計用としての分散結果タプル作成処理となどから構成される。ステップS71の分散検索処理と、ステップS72の分散表結合処理と、ステップS73の集計用としての分散結果タプル作成処理とは、第1~第3のスレーブノード15,17,19で並列に実行可能である。上流側フェーズの結果を用いて処理を実行するステップS72の工程では、上流側工程ステップS71の処理が全てのノードで完了するまでその処理を実行することができない。ここで、分散クエリー処理の流れを説明するに先立って、説明に用いることばの意味を定義しておく。検索式は、検索項と、論理演算子と、演算の優先順位を制御する括弧とからなる。これらの任意の組合せによって検索式が構成される。検索項は、左辺項と、比較演算子と、右辺項とからなる。左辺項は、列名もしくはリテラル実値からなる。右辺項は、列名もしくはリテラル実値からなる。比較演算子は、等しい=、等しくない≠、大なり>、大なりイコール≧、小なり<、小なりイコール≦からなる。論理演算子は、AND、OR|、NOT¬からなる。ANDは積演算、ORは和演算、NOTは否定演算を行う。括弧は、開き括弧および閉じ括弧からなる。検索では、全スレーブノードにおいてキー値それ自体を検索キーとするD-CRXの検索を行った後、この検索により抽出されたNID集合を検索キーとするD-CRSの検索を行い、検索結果としてのRID集合を取得する。範囲検索例えば、数値型のデータを対象として、始値と終値による指定範囲に属するキー値を抽出する検索では、全スレーブノードにおいてキー値の指定範囲を与えてD-CRXの検索を行った後、この検索により抽出されたNID集合を検索キーとするD-CRSの検索を行い、検索結果としてのRID集合を取得する。部分一致検索例えば、文字列型のデータを対象として、指定文字列を少なくとも一部に有するキー値を抽出する検索では、全スレーブノードにおいてキー値の指定文字列を与えてD-CRXの検索を行った後、この検索により抽出されたNID集合を検索キーとするD-CRSの検索を行い、検索結果としてのRID集合を取得する。表結合とは、外部表と内部表との表結合操作を意味する。外部表は、表結合の基準となる表である。内部表は、外部表に対する表結合の相手となる表である。外部表と内部表は、結合カラムの値によって結合される。結合カラムとは、外部表と内部表とに共通して存在するカラムであって、そのカラムを介して外部表と内部表との結合を行わせる役割をもつカラムである。外部表の結合カラムを外部表外部キーカラム、内部表の結合カラムを内部表主キーカラムと呼ぶ。表結合操作を繰り返すことによって、複数の表を結合することができる。次に、図6に示すステップS71の分散検索処理の内容について、図2A,図2Bを参照しながら、具体例をあげて説明する。単一項での完全一致検索の実施例1として、地域名が関東であるキー値をRID集合として抽出する例を挙げる。この実施例1では、まず、マスターノード13からの検索要求を受けた第1~第3のスレーブノード15,17,19の分散処理部は、検索式から検索項を抽出し、検索項集合{地域名=関東}を求める。そして、カラム名が地域名のD-CRXCNN=a~cを対象として、検索項集合の元{地域名=関東}を用いて第1~第3のスレーブノード15,17,19の分散処理部で一斉に検索を実行する。この検索により、元{地域名=関東}からNID集合={6}を得る。ここで、D-CRXCNN=a~cを対象とする一斉検索では、フルスキャン照合を要することなく、検索条件に合致したキー値がヒットした時点において検索をやめることができる。D-CRXは、あるカラム内でのキー値の重複を許さないデータ構造を採用しているからである。従って、D-CRXのデータ構造によれば、検索時間の短縮化に寄与することができる以下、同様。次に、第1~第3のスレーブノード15,17,19の分散処理部は、カラム名が地域名のD-CRSCNN=a~cを対象として、元単位にNID集合={6}でフルスキャン照合することにより、そのNID集合の値に合致したRID集合を求める。この処理を第1~第3のスレーブノード15,17,19の分散処理部で一斉に行うことにより、RID集合={2,3,7,9}を取得する。RID集合={2,3,7,9}が求める答えとなる。ここで、D-CRSを対象とするNID集合の値検索は、フルスキャン照合を要するにも関わらず、比較的短時間で完遂することができる。これは、前段のD-CRXを用いた検索により、実値であるキー値をNID例えば自然数に代替し、代替したNIDの値を用いてフルスキャン照合を行っているからである。第1~第3のスレーブノード15,17,19の分散処理部では、NIDは固定幅のバイナリー整数値で表現されるため、実値であるキー値に比べて検索や参照において格段に効率が良い。従って、D-CRXおよびD-CRSの組み合わせに係るデータ検索によれば、検索時間の短縮化に寄与することができる以下、同様。複数項単一項の組み合わせでの完全一致検索としては、例えば、地域名が関東であるキー値、または、地域名が関西であるキー値をRID集合として抽出する実施例2を挙げる。この実施例2では、各単一項での検索条件をそれぞれ用いて、実施例1の手順により単一項での完全一致検索を各々実行し、得られたRID集合同士の論理和OR演算を行うことにより、目的とするRID集合を得ることができる。単一項での範囲検索の実施例3として、価格が500000以上かつ800000以下であるRID集合を抽出する例を挙げる。この実施例3では、まず、マスターノード13からの検索要求を受けた第1~第3のスレーブノード15,17,19の分散処理部は、検索式から検索項を抽出し、検索項集合{[価格≧500000,価格≦800000]}を求める。そして、カラム名が価格のD-CRXCNN=a~cを対象として、検索項集合の元{[価格≧500000,価格≦800000]}を用いて第1~第3のスレーブノード15,17,19の分散処理部で一斉に検索を実行する。この検索により、第1の元{[価格≧500000]}からNID集合={5,8,11,14,22,30}を得る。第2の元{[価格≦800000]}からNID集合={2,8,11,17,22,30}を得る。次に、第1~第3のスレーブノード15,17,19の分散処理部は、第1および第2の元毎のNID集合を検索式に当てはめてNID集合同士の論理積AND演算を求め、検索結果としてのNID集合={8,11,22,30}を求める。そして、カラム名が価格のD-CRSCNN=a~cを対象として、元単位にNID集合={8,11,22,30}でフルスキャン照合することにより、そのNID集合の値に合致したRID集合を求める。単一項での部分一致検索の実施例4として、地域名=LIKE関SQL表記法に従うと、LIKEは曖昧検索指示のキーワード、はワイルドカード記号を表わす。この例の場合、地域名が関の文字列を含むキー値を検索する。の検索条件に合致するキー値をRID集合として抽出する例を挙げる。この実施例4では、まず、マスターノード13からの検索要求を受けた第1~第3のスレーブノード15,17,19の分散処理部は、検索式から検索項を抽出し、検索項集合{地域名=LIKE関}を求める。そして、カラム名が地域名のD-CRXCNN=a~cを対象として、検索項集合の元{地域名=LIKE関}を用いて第1~第3のスレーブノード15,17,19の分散処理部で一斉に検索を実行する。この検索により、元{地域名=LIKE関}からNID集合={6,33}を得る。次に、第1~第3のスレーブノード15,17,19の分散処理部は、カラム名が地域名のD-CRSCNN=a~cを対象として、元単位にNID集合={6,33}でフルスキャン照合することにより、そのNID集合の値に合致したRID集合を求める。この処理を第1~第3のスレーブノード15,17,19の分散処理部で一斉に行うことにより、RID集合={2,3,7,9,12,15}を取得する。このRID集合={2,3,7,9,12,15}が求める答えとなる。複数項単一項の組み合わせでの部分一致検索としては、例えば、地域名が関の文字列を含むキー値、または、地域名が東の文字列を含むキー値をRID集合として抽出する実施例5を挙げる。この実施例5では、各単一項での検索条件をそれぞれ用いて、実施例4の手順により単一項での部分一致検索を各々実行し、得られたRID集合同士の論理和OR演算を行うことにより、検索結果としてのRID集合を得ることができる。次に、図6に示すステップS72の分散表結合処理の手順について、図2A,図2B、図7および図8を参照しながら、具体例をあげて説明する。図7は、複数のスレーブノード15,17,19に分散格納される地域別顧客数の内部表を示す図である。図8は、図7に示す内部表のD-RIXの一例を示す図である。実施例6では、第1~第3のスレーブノード15,17,19の分散処理部において、結合カラムのD-RIXを参照して外部表と内部表との結合結果を求める。実施例6において、複数のスレーブノード15,17,19に分散格納された売上管理表トランザクションを示す図2A,図2Bは、外部表として位置づけられる。複数のスレーブノード15,17,19に分散格納された地域別顧客数を示す図7は、内部表として位置づけられる。実施例6において、結合カラムは地域名である。この実施例6では、まず、マスターノード13からの表結合操作要求を受けた第1~第3のスレーブノード15,17,19の分散処理部は、外部表のD-RIX以下、OTFK-D-RIXと省略するから、外部表外部キーカラムのNID以下、OTFK-NIDと省略する集合をそれぞれ取得する。具体的には、例えば第1のスレーブノードCNN=a15では、図3Dに示す地域名のカラムからOTFK-NID集合{2,6,25}を取得する。次に、第1~第3のスレーブノード15,17,19の分散処理部は、OTFK-NID集合の元NIDを検索条件として用いて、内部表主キーカラムのD-RIX以下、ITPK-D-RIXと省略するをそれぞれ検索する。具体的には、例えば第1のスレーブノードCNN=a15では、OTFK-NID集合の元{2,6,25}を検索条件として用いて、図8に示す地域名のカラムから、OTFK-NID集合の元{2,6,25}に合致する内部表主キーカラムのNID以下、ITPK-NIDと省略する集合を検索する。この検索により、ITPK-NID集合{2,6,25}が得られる。ITPK-NID集合の検索が成功した場合、第1~第3のスレーブノード15,17,19の分散処理部は、OTFK-D-RIXの目標カラム外部表外部キーカラムから、OTFK-NID集合に対応する外部表RID以下OTRIDと省略する集合をそれぞれ取得する。具体的には、例えば第1のスレーブノードCNN=a15では、図3Dに示す地域名のカラムから、OTFK-NID集合{2,6,25}に対応するOTRID集合{1,2,3,5,7,8,9,10,14}を取得する。次に、第1~第3のスレーブノード15,17,19の分散処理部は、ITPK-D-RIXの目標カラム内部表主キーカラムから、ITPK-NID集合に対応する内部表RID以下ITRIDと省略する集合をそれぞれ取得する。具体的には、例えば第1のスレーブノードCNN=a15では、図8に示す地域名のカラムから、ITPK-NID集合{2,6,25}に対応するITRID集合{1,2,7}を取得する。そして、第1~第3のスレーブノード15,17,19の分散処理部は、外部表RIDに対応する内部表RIDの対照表以下、REF-OTRID-ITRIDと省略するをそれぞれ作成する。REF-OTRID-ITRIDは、相互に共通のOTFK-NIDおよびITPK-NIDを間にはさんで、外部表RIDとこれに対応する内部表RIDとを結びつける役割を果たす。これにより、図9に示すようなRID対照表が得られる。結合条件が複数ある場合には、第1~第3のスレーブノード15,17,19の分散処理部は、複数の結合条件のそれぞれ毎に、実施例6の手順に従ってREF-OTRID-ITRIDをそれぞれ作成し、得られたREF-OTRID-ITRID同士に論理演算を施すことにより、結合結果としてのREF-OTRID-ITRIDRID対照表を、複数のスレーブノード15,17,19のそれぞれ毎に得ることができる。実施例6に係る結合結果としてのRID対照表は、複数のスレーブノード15,17,19のそれぞれ毎に分散格納されたREF-OTRID-ITRIDによって表現される。この結合結果としてのRID対照表のデータ構造は、RDBにおけるデータの格納効率および処理効率に多大な影響を与える。巨大になりがちな結合表を実値ベースで作成することなしに、結合表と同等の機能を果たすことができるからである。第1~第3のスレーブノード15,17,19の分散処理部では、外部表を基準としてREF-OTRID-ITRIDを順に辿ることによって、外部表における目標カラム外部表外部キーカラムのRIDをポインタとして用いて、内部表における目標カラム内部表主キーカラムのRIDを効率的に参照することができる。目標カラム外部表外部キーカラムまたは内部表主キーカラムに属する実表外部表または内部表のRIDが得られれば、そのRIDをポインタとしてD-CRSを参照することにより、対応するNIDを取得することができる。NIDが得られれば、そのNIDをポインタとしてD-CRXを参照することにより、対応するキー値を取得することができる。検索結果のデータ構造は、外部表のRID集合として表現される。これに対し、結合結果のデータ構造は、外部表を基準としたREF-OTRID-ITRIDRID対照表の連鎖として表現される。これらの共通点は、両者共に外部表のRID集合を持つことである。従って、検索結果と結合結果とのそれぞれの外部表のRID集合同士で論理演算を行わせることにより、検索結果と結合結果との組み合わせに係る論理演算を効率的に実現することができる。実施例6によれば、表結合操作のための複雑な演算を、簡素な集合演算に置き換えることができる。そのため、演算処理時間の大幅の短縮を実現することができる。また、実施例6によれば、表結合操作を行う際に、外部表の結合カラムと、内部表の結合カラムとの間でのキー値の突き合わせを不要とすることができる。これは、DSNの採用によって同一のキー値に対して同一のNIDを割り当てることが担保されていること、並びに、共通のNIDを間にはさんで外部表RIDとこれに対応する内部表RIDとを結びつけるRID対照表が存在すること等に基づく。また、実施例6では、同一のキー値に関する情報NIDは同一のスレーブノードに集約するように作為的に分散格納される。このため、複数のスレーブノード間にまたがって同一の値を有するキー値が無作為に分散格納される従来例とは対照的に、例えばあるスレーブノードが結合演算などのデータ操作を実行した場合に、同一の値を有するキー値を相互に参照するためのスレーブノード間の通信はまったく生じない。従って、実施例6によれば、システム全体としての処理のオーバーヘッドを抑制することができるため、分散型RDBシステム11全体としての処理能力を効率的に向上させることができる。要するに、実施例6によれば、例えばWWWWorldWideWeb経由で分散型RDBサービスを提供するに際し、急激な需要増大への柔軟な対応を狙ってシステム内のスレーブノードの台数を増設し、増設後の複数の各スレーブノードに分散格納されたデータに対して表結合操作などのデータ操作を実行した場合であっても、増設前後でのシステム全体としての処理能力を線形に向上させ得る線形スケールアウト性を実現することができる。次に、図6に示すステップS73の集計用としての分散結果タプル作成処理の概要について、表結合操作がない場合とある場合とに分けて説明する。ステップS73の処理は、第1~第3のスレーブノード15,17,19のそれぞれにおいて並列に実行される。表結合操作がない場合の集計用としての分散結果タプル作成処理において、第1~第3のスレーブノード15,17,19の分散処理部は、それぞれの検索結果としてのRID集合から、そのRID集合の元となるRIDをそれぞれ取得する。次に、第1~第3のスレーブノード15,17,19の分散処理部は、取得したRIDに基づいて、取得したRIDに対応するNIDのデータをどのノードが保持しているのかを特定する。具体的には、第1~第3のスレーブノード15,17,19の分散処理部が以下の計算を行うことにより、データの格納先ノード番号D-CRS-CNNを特定する。すなわち、分散処理部は、RIDに基づいて、D-CRSのブロック番号D-CRS-BNを決定する。そして、当該決定したD-CRS-BNを用いてコンシステントハッシュ法によるハッシュ演算を行うことにより、D-CRS-CNNを決定する。ここで、自ノード以外のノードが、取得したRIDに対応するNIDのデータを保持している場合、自ノードは、そのデータを自ノード以外のノードから取得する。次いで、自ノードは、取得したRIDをポインタとして用いて、タプルを構成する目標カラムのD-CRSを参照してNIDを取得する。次に、第1~第3のスレーブノード15,17,19の分散処理部は、取得したNIDに基づいて、取得したNIDに対応するキー値のデータをどのノードが保持しているのかを特定する。具体的には、第1~第3のスレーブノード15,17,19の分散処理部が以下の計算を行うことにより、データの格納先ノード番号D-CRX-CNNを特定する。すなわち、分散処理部は、NIDに基づいて、D-CRXのブロック番号D-CRX-BNを決定する。さらに、当該決定したD-CRX-BNを用いてコンシステントハッシュ法によるハッシュ演算を行うことにより、D-CRX-CNNを決定する。ここで、自ノード以外のノードが、取得したNIDに対応するキー値のデータを保持している場合、自ノードは、そのデータを自ノード以外のノードから取得する。次いで、自ノードは、取得したNIDをポインタとして用いて、タプルを構成する目標カラムのD-CRXを参照して実値であるキー値を取得する。次に、表結合操作がある場合の集計用としての分散結果タプル作成処理において、第1~第3のスレーブノード15,17,19の分散処理部は、それぞれの検索結果としてのRID集合から、外部表のRIDをそれぞれ取得する。次に、第1~第3のスレーブノード15,17,19の分散処理部は、取得した外部表のRIDに基づいて、取得した外部表のRIDに対応するNIDのデータをどのノードが保持しているのかを特定する。具体的には、第1~第3のスレーブノード15,17,19の分散処理部が以下の計算を行うことにより、データの格納先ノード番号D-CRS-CNNを特定する。すなわち、分散処理部は、外部表のRIDに基づいて、D-CRSのブロック番号D-CRS-BNを決定する。そして、当該決定したD-CRS-BNを用いてコンシステントハッシュ法によるハッシュ演算を行うことにより、D-CRS-CNNを決定する。ここで、自ノード以外のノードが、取得した外部表のRIDに対応するNIDのデータを保持している場合、自ノードは、そのデータを自ノード以外のノードから取得する。次いで、自ノードは、取得した外部表のRIDをポインタとして用い、REF-OTRID-ITRIDの連鎖を参照して、タプルを構成する目標カラムのREF-OTRID-ITRIDから目標となる内部表のRIDを取得する。次に、第1~第3のスレーブノード15,17,19の分散処理部は、取得した内部表のRIDに基づいて、取得した内部表のRIDに対応するNIDのデータをどのノードが保持しているのかを特定する。具体的には、第1~第3のスレーブノード15,17,19の分散処理部が以下の計算を行うことにより、データの格納先ノード番号D-CRS-CNNを特定する。すなわち、分散処理部は、内部表のRIDに基づいて、D-CRSのブロック番号D-CRS-BNを決定する。そして、当該決定したD-CRS-BNを用いてコンシステントハッシュ法によるハッシュ演算を行うことにより、D-CRS-CNNを決定する。ここで、自ノード以外のノードが、取得した内部表のRIDに対応するNIDのデータを保持している場合、自ノードは、そのデータを自ノード以外のノードから取得する。次いで、自ノードは、取得した内部表のRIDをポインタとして用いて、タプルを構成する目標カラムのD-CRSを参照してNIDを取得する。次に、第1~第3のスレーブノード15,17,19の分散処理部は、取得したNIDに基づいて、取得したNIDに対応するキー値のデータをどのノードが保持しているのかを特定する。具体的には、第1~第3のスレーブノード15,17,19の分散処理部が以下の計算を行うことにより、データの格納先ノード番号D-CRX-CNNを特定する。すなわち、分散処理部は、NIDに基づいて、D-CRXのブロック番号D-CRX-BNを決定する。さらに、当該決定したD-CRX-BNを用いてコンシステントハッシュ法によるハッシュ演算を行うことにより、D-CRX-CNNを決定する。ここで、自ノード以外のノードが、取得したNIDに対応するキー値のデータを保持している場合、自ノードは、そのデータを自ノード以外のノードから取得する。次いで、自ノードは、取得したNIDをポインタとして用いて、タプルを構成する目標カラムのD-CRXを参照して実値であるキー値を取得する。なお、本実施形態では、第1~第3のスレーブノード15,17,19の分散処理部が自身でコンシステントハッシュ法によるハッシュ演算を行うことにより、D-CRX-CNNやD-CRS-CNNを決定する例について説明したが、本発明はこれに限定されない。例えば、D-CRX-CNNやD-CRS-CNNをマスターノード13がマスターデータ13aとして保持し、第1~第3のスレーブノード15,17,19の分散処理部がマスターノード13に問い合わせるようにしてもよい。ただし、マスターノード13に問い合わせるよりも、各スレーブノードが自身で演算する方が効率的で好ましい。以上説明したように、マスターノード13のインデックス生成部35は、第1~第3のスレーブノード15,17,19に分散して格納させるためのインデックスデータDSN、D-CRX、D-CRS、D-RIXをそれぞれ作成した後、作成したインデックスデータを、ノード決定部37による決定ノードに一括送信し、それぞれの決定ノード上でインデックスデータを一括処理する。コンシステントハッシュ法によりインデックスデータの格納先ノードを決定するに際しては、DSNではキー値、D-CRXおよびD-RIXではNIDの関数、D-CRSではRIDの関数を分散キーとしてそれぞれ用いる。これにより、例えばあるスレーブノードが結合演算などのデータ操作を実行した場合に、同一の値を有するキー値を相互に参照するためのスレーブノード間の通信はまったく生じないため、インデックスデータの処理の効率化を実現することができる。また、DSNによってNIDとキー値とは1対1で対応するように規制されるため、意味のある値としてキー値が必要になる以前の処理では、キー値に代えてNID自然数かつ順序数の値をとるを用いるのが好ましい。これにより、全ての演算を数値演算に還元することができる。計算機内においてNIDは固定幅のバイナリー整数値で表現されるため、実値であるキー値に比べて検索や参照の場面で効率が良い。従って、演算処理時間の短縮化に貢献することができる。以上説明した実施形態は、本発明の具現化の例を示したものである。従って、これらによって本発明の技術的範囲が限定的に解釈されることがあってはならない。本発明はその要旨またはその主要な特徴から逸脱することなく、様々な形態で実施することができるからである。例えば、本実施形態において、複数のスレーブノードとして第1~第3のスレーブノード15,17,19を例示して説明したが、本発明はこの例に限定されない。スレーブノードの数は、処理対象となるデータ量の増減にあわせて、適宜の数に調整すればよい。また、本実施形態において、マスターノードとしてひとつのマスターノード13を例示して説明したが、本発明はこの例に限定されない。負荷分散や耐障害性の向上を図る目的で、マスターノードの複製を設けてもよい。複製を設けてもよいのは、スレーブノードについても同様である。また、本実施形態において、D-RIXのインデックスデータを、DSN、D-CRX、D-CRSと横並びで説明したが、本発明において、D-RIXは必須のデータ構造でない。D-RIXは、表結合操作時における処理の効率化を実現することができるものの、これがなくてもD-CRSを参照したフルスキャン照合によって、その機能を代替することができるからである。また、上記実施形態では、インデックス生成部35、ノード決定部37および更新管理部45をマスターノード13に設ける例について説明したが、本発明はこれに限定されない。例えば、これらの各機能構成をスレーブノード15,17,19に設けてもよい。大量のデータを登録する際は、複数のスレーブノード15,17,19でインデックス生成部35、ノード決定部37および更新管理部45に関する処理を並列に実行することにより、処理の効率を上げることができる。"