(57)【要約】【課題】複数のテーブルのデータを、圧縮して各テーブルの統合的な利用が容易な形態で保存する。【解決手段】インデックスセット（ａ２、ｂ２）のインデックスのVLのｎ番目のエントリには、テーブル（ａ１、ｂ１）のｎ番目のレコードの値が登録されているVLのエントリの順位が登録されている。テーブルＢのインデックスセット（ｂ２）を統合インデックス（ａ３）に統合する場合、インデックスのVLに含まれる値のうちの、統合インデックス（ａ３）のVLに含まれない値を、統合インデックスのVLに追加登録する（ｂ３）。また、統合インデックスのVNoに、インデックスのVNoのエントリVNoE(i)に格納されている値kを順位とする当該インデックスのVLのエントリVLE(k)に登録されている値jが登録されている、統合インデックスのVLのエントリの順位を示す値を追加登録する（ｂ３）。【選択図】図１
2018045441.tif 000002
【特許請求の範囲】
【請求項１】
１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを配列したテーブルを表すインデックスデータを、統合データに統合するデータ統合方法であって、
前記インデックスデータは、前記各フィールドの各々に対応して設けられたインデックスを含み、
前記各インデックスは、
当該インデックスが含まれるインデックスデータが表す前記テーブルのレコードの当該インデックスに対応するフィールドの値として用いられている値を各エントリに登録した値リストと、
各エントリに、当該インデックスが含まれるインデックスデータが表す前記テーブルの、当該エントリの順位と同じ値のレコード番号のレコードの、当該インデックスに対応するフィールドの値が登録されている、当該インデックスの前記値リストのエントリの順位を登録した対応値リストとを含み、
前記統合データは、前記各フィールドの各々に対応して設けられた統合値リストと、前記各フィールドの各々に対応して設けられた対応統合値リストとを含み、
当該データ統合方法は、
各フィールドについて、統合データに統合するインデックスデータの当該フィールドに対応するインデックスの値リストに含まれる値のうちの、当該フィールドに対応する前記統合値リストに登録されていない値を当該統合値リストに追加登録するステップと、
各フィールドについて、統合データに統合するインデックスデータの当該フィールドに対応するインデックスの対応値リストの各エントリについて求めた対応統合値を、当該エントリの当該対応値リスト中の順位に従った順番で並べた配列を、前記統合データの当該フィールドに対応する対応統合値リストに追加登録、もしくは、当該配列を当該フィールドに対応する新たな対応統合値リストとして前記統合データに追加するステップとを有し、
前記対応値リストのエントリについて求めた前記対応統合値は、当該対応値リストのエントリに登録されている順位と同じ順位の、当該対応値リストが属するインデックスの前記値リストに登録されている値と同じ値が登録される、当該対応値リストが属する前記インデックスに対応するフィールドに対応する前記統合値リストのエントリの順位に等しいことを特徴とするデータ統合方法。
【請求項２】
１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを配列したテーブルを、統合データに統合するデータ統合方法であって、
前記統合データは、前記各フィールドの各々に対応して設けられた対応統合値リストと、前記各フィールドの各々に対応して設けられた統合値リストとを有し、
当該データ統合方法は、
統合データに統合するテーブルの各フィールドについて、当該テーブルの各レコードの当該フィールドの値として用いられている値のうちの、当該フィールドに対応する前記統合値リストに登録されていない値を当該統合値リストに追加登録するステップと、
統合データに統合するテーブルの各フィールドについて、当該テーブルの各レコードの当該フィールドの値と同じ値が登録される、当該フィールドに対応する前記統合値リストのエントリの順位を、前記テーブルにおけるレコードの順番に従った順番で並べた配列を、前記統合データの当該フィールドに対応する対応統合値リストに追加登録、もしくは、当該配列を当該フィールドに対応する新たな対応統合値リストとして前記統合データに追加するステップとを有することを特徴とするデータ統合方法。
【請求項３】
１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを配列したテーブルを表すインデックスデータを、統合データに統合するデータ統合装置であって、
前記インデックスデータは、前記各フィールドの各々に対応して設けられたインデックスを含み、
前記各インデックスは、
当該インデックスが含まれるインデックスデータが表す前記テーブルのレコードの当該インデックスに対応するフィールドの値として用いられている値を各エントリに登録した値リストと、
各エントリに、当該インデックスが含まれるインデックスデータが表す前記テーブルの、当該エントリの順位と同じ値のレコード番号のレコードの、当該インデックスに対応するフィールドの値が登録されている、当該インデックスの前記値リストのエントリの順位を登録した対応値リストとを含み、
前記統合データは、前記各フィールドの各々に対応して設けられた統合値リストと、前記各フィールドの各々に対応して設けられた対応統合値リストとを含み、
当該データ統合装置は、
各フィールドについて、統合データに統合するインデックスデータの当該フィールドに対応するインデックスの値リストに含まれる値のうちの、当該フィールドに対応する前記統合値リストに登録されていない値を当該統合値リストに追加登録する値統合手段と、
各フィールドについて、統合データに統合するインデックスデータの当該フィールドに対応するインデックスの対応値リストの各エントリについて求めた対応統合値を、当該エントリの当該対応値リスト中の順位に従った順番で並べた配列を、前記統合データの当該フィールドに対応する対応統合値リストに追加登録、もしくは、当該配列を当該フィールドに対応する新たな対応統合値リストとして前記統合データに追加する対応値登録手段とを有し、
前記対応値リストのエントリについて求めた前記対応統合値は、当該対応値リストのエントリに登録されている順位と同じ順位の、当該対応値リストが属するインデックスの前記値リストに登録されている値と同じ値が登録される、当該対応値リストが属する前記インデックスに対応するフィールドに対応する前記統合値リストのエントリの順位に等しいことを特徴とするデータ統合装置。
【請求項４】
１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを配列したテーブルを、統合データに統合するデータ統合装置であって、
前記統合データは、前記各フィールドの各々に対応して設けられた対応統合値リストと、前記各フィールドの各々に対応して設けられた統合値リストとを有し、
当該データ統合装置は、
統合データに統合するテーブルの各フィールドについて、当該テーブルの各レコードの当該フィールドの値として用いられている値のうちの、当該フィールドに対応する前記統合値リストに登録されていない値を当該統合値リストに追加登録する値統合手段と、
統合データに統合するテーブルの各フィールドについて、当該テーブルの各レコードの当該フィールドの値と同じ値が登録される、当該フィールドに対応する前記統合値リストのエントリの順位を、前記テーブルにおけるレコードの順番に従った順番で並べた配列を、前記統合データの当該フィールドに対応する対応統合値リストに追加登録、もしくは、当該配列を当該フィールドに対応する新たな対応統合値リストとして前記統合データに追加する対応値登録手段とを有することを特徴とするデータ統合装置。
【請求項５】
請求項３または４記載のデータ統合装置と、前記統合データを保存したストレージとを備えたデータ処理システムであって、
前記統合データが、各レコード番号の各フィールドに、当該フィールドに対応する前記対応統合値リストの当該レコード番号と同じ値の順位のエントリに登録されている順位と同じ順位の、当該フィールドに対応する前記統合値リストのエントリに登録されている値を有するレコードを含むテーブルを表しているものとして、前記ストレージに保存された前記統合データが表すテーブルを操作するテーブル操作手段を有することを特徴とするデータ処理システム。
【請求項６】
コンピュータによって読み取られ実行されるコンピュータプログラムであって、
前記コンピュータを請求項３または４記載のデータ統合装置として機能させることを特徴とするコンピュータプログラム。
【請求項７】
コンピュータによって読み取られ実行されるコンピュータプログラムであって、
前記コンピュータを、請求項５記載のデータ処理システムとして機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主としてデータベースのデータを統合する技術に関するものである。
【背景技術】
【０００２】
データベースのデータ構造としては、図８ａ１に示すようなRDB（Relational Database）のテーブルを表す、図８ａ２に示すようなインデックスセットのデータ構造が知られている（たとえば、特許文献１）。
ここで、図８ａ１のテーブル（テーブルＡ）は、複数のフィールド（図では、「性別」と「タイプ」）を持つレコードを行とする表であり、各レコードにはテーブル中の当該レコードの順番を示すレコード番号が付与されている。なお、レコード番号は０から始まる。
また、図８ａ２に示すインデックスセット（テーブルＡインデックスセット）は、図８ａ１のテーブルのレコードのフィールド毎に設けられたインデックスより構成される。図８ａ１のテーブルでは、テーブルのレコードのフィールドは、「性別」と「タイプ」であるので、「性別」のインデックスと、「タイプ」のインデックスが図８ａ２のインデックスセットに含まれる。
【０００３】
そして、図８ａ２に示すように各インデックスは、VNo、VLとを含む。
VLは、対応するテーブルの対応するフィールドの値として用いられている値を所定の基準（たとえば、値の昇順）でソートして各エントリに登録したリストである。
すなわち、たとえば、図８ａ１に示すテーブルのテーブルデータセットのインデックスセットの「性別」のインデックスであれば、テーブルの「性別」のフィールドに登録されているのはFとMのみであるので、VLは、Fを登録したエントリとMを登録したエントリよりなるリストとなる。
【０００４】
次に、VNoは、対応するテーブルのレコード数と同数のエントリよりなるリストであり、VNoの順位ｎのエントリには、対応するテーブルのレコード番号nのレコードの対応するフィールドの値が登録されているVLのエントリのVL中の順位を示す値が登録される。なお、VNo、VLの順位は０から始まる。
【０００５】
すなわち、たとえば、図８ａ１に示すテーブルのテーブルデータセットのインデックスセットの「性別」のインデックスであれば、テーブルのレコード番号２のレコードの「性別」のフィールドの値はFであり、Fが登録されているVLのエントリの順位は0であるので、VNoの順位２のエントリには1が登録される。
【０００６】
ここで、このようなインデックスによれば、VNoのエントリ数より、対応するテーブルのレコード数を速やかに求めることができ、VNoとVLより、各レコード番号のレコードの対応するフィールドの値を速やかに求めることができる。
すなわち、たとえば、「性別」のインデックスの、レコード番号２に対応するVNoの順位０のエントリからVLの順位０が求まり、このVLの順位０のエントリにはFが登録されているので、レコード番号２の「性別」のフィールドの値はFとして求まる。
よって、このようなレコードのフィールド毎に設けられたインデックスより構成されるインデックスセットによってテーブルを完全に表現することができると共に、当該インデックスセットを用いてテーブルを速やかに利用できるようになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００-３３９３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
さて、テーブルを各々が表す複数のインデックスセットを保存する場合がある。たとえば、期間毎にテーブルを作成し、作成した各期間のテーブルをログとして保存センターに蓄積していく場合や、地域毎にテーブルを作成し、作成された各地域のテーブルを収集して保存する場合などがある。
【０００９】
しかし、このときにテーブルのインデックスセットを、そのまま保存すると以下のような問題が生じる。
すなわち、保存するインデックスセットの増加に伴い、保存するインデックスセットのデータ量の和に比例して保存に必要となるストレージのデータ容量も増加してしまう。
また、保存するインデックスセットの増加に伴い、保存した複数のインデックスセットが表す複数のテーブルを統合的に利用することが容易でなくなる。
すなわち、図８ａ１に示すテーブルＡのインデックスセットである図８ａ２に示すテーブルＡインデックスセットと、図８ｂ１に示すテーブルＢのインデックスセットである図８ｂ２に示すテーブルＢインデックスセットと、図８ｃ１に示すテーブルＣのインデックスセットである図８ｃ２に示すテーブルＣインデックスセットととの３つのインデックスセットをそのまま保存した場合、テーブルＡ、Ｂ、Ｃを統合的に利用することが容易でなくなる。
【００１０】
たとえば、テーブルＡ、Ｂ、Ｃのフィールドタイプ「性別」がFであるレコード数の総数を求めるためには、テーブルＡインデックスセットを用いてテーブルＡ中のフィールドタイプ「性別」がFであるレコード数を求め、テーブルＢインデックスセットを用いてテーブルＢ中のフィールドタイプ「性別」がFであるレコード数を求め、テーブルＣインデックスセットを用いてテーブルＣ中のフィールドタイプ「性別」がFであるレコード数を求め、各テーブルＡ、Ｂ、Ｃについて求めたレコード数の総和を算出するという比較的に煩雑で負荷の大きい処理を行う必要が生じる。なお、このような処理の負荷は、保存されているインデックスセットの数の増加に伴い、逐次的に増大していくこととなる。
【００１１】
一方で、複数のインデックスセットを保存する代わりに、各インデックスセットが表すテーブルをまとめた一つのテーブルを表す一つのインデックスセットである統合インデックスセットを保存するようにすれば上述のような問題は生じないが、このようにする場合には、統合インデックスセットにまとめるべきインデックスセットが新たに発生する度に、統合インデックスセットの全体を新たに発生したインデックスセットに応じて編集し書き換える処理を行う必要が生じる。そして、この処理の負荷が、保存している統合インデックスセットの規模が大きくなると過剰な負荷となってしまうという問題が生じることとなる。
【００１２】
そこで、本発明は、比較的簡易な処理によって、複数のテーブルのデータを、データ量を削減しつつ、各テーブルの統合的な利用が容易な形態で保存することを課題とする。
【課題を解決するための手段】
【００１３】
前記課題達成のために、本発明は、１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを配列したテーブルを表すインデックスデータを、統合データに統合するデータ統合方法を提供する。ここで、前記インデックスデータは、前記各フィールドの各々に対応して設けられたインデックスを含んでいる。また、前記各インデックスは、当該インデックスが含まれるインデックスデータが表す前記テーブルのレコードの当該インデックスに対応するフィールドの値として用いられている値を各エントリに登録した値リストと、各エントリに、当該インデックスが含まれるインデックスデータが表す前記テーブルの、当該エントリの順位と同じ値のレコード番号のレコードの、当該インデックスに対応するフィールドの値が登録されている、当該インデックスの前記値リストのエントリの順位を登録した対応値リストとを含んでいる。また、前記統合データは、前記各フィールドの各々に対応して設けられた統合値リストと、前記各フィールドの各々に対応して設けられた対応統合値リストとを含んでいる。
【００１４】
そして、当該データ統合方法は、各フィールドについて、統合データに統合するインデックスデータの当該フィールドに対応するインデックスの値リストに含まれる値のうちの、当該フィールドに対応する前記統合値リストに登録されていない値を当該統合値リストに追加登録するステップと、各フィールドについて、統合データに統合するインデックスデータの当該フィールドに対応するインデックスの対応値リストの各エントリについて求めた対応統合値を、当該エントリの当該対応値リスト中の順位に従った順番で並べた配列を、前記統合データの当該フィールドに対応する対応統合値リストに追加登録、もしくは、当該配列を当該フィールドに対応する新たな対応統合値リストとして前記統合データに追加するステップとを有する。ただし、前記対応値リストのエントリについて求めた前記対応統合値は、当該対応値リストのエントリに登録されている順位と同じ順位の、当該対応値リストが属するインデックスの前記値リストに登録されている値と同じ値が登録される、当該対応値リストが属する前記インデックスに対応するフィールドに対応する前記統合値リストのエントリの順位に等しいものである。
【００１５】
また、本発明は、前記課題達成のために、このようなデータ統合方法を実行するデータ統合装置も提供する。
このようなデータ統合方法やデータ統合装置によれば、統合データに統合する各インデックスデータ間で、同じフィールドのインデックスの値リストのエントリに登録される値に重複が存在する場合でも、統合データの各統合インデックスの統合値リストの各エントリに登録される各値は、当該統合値リスト内においてユニークな値となる。したがって、各インデックスデータをそのまま保存する場合に比べ、保存に必要となるストレージのデータ容量を削減することができる。
【００１６】
また、このような各データ統合方法やデータ統合装置によれば、統合データの既存の部分には一切変更を加えない比較的簡易な処理によって、新たなインデックスデータを統合データに統合することができるようになる。
また、統合データは、統合データに統合された各インデックスセットに対応するテーブルをつなげたテーブルを表すこととなるので、統合データを用いることにより、容易に当該各インデックスデータに対応するテーブルの統合的な操作や利用が行えるようになる。
また、本発明は、前記課題達成のために、１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを配列したテーブルを、統合データに統合するデータ統合方法を提供する。ここで、前記統合データは、前記各フィールドの各々に対応して設けられた対応統合値リストと、前記各フィールドの各々に対応して設けられた統合値リストとを備えている。そして、当該データ統合方法は、統合データに統合するテーブルの各フィールドについて、当該テーブルの各レコードの当該フィールドの値として用いられている値のうちの、当該フィールドに対応する前記統合値リストに登録されていない値を当該統合値リストに追加登録するステップと、統合データに統合するテーブルの各フィールドについて、当該テーブルの各レコードの当該フィールドの値と同じ値が登録される、当該フィールドに対応する前記統合値リストのエントリの順位を、前記テーブルにおけるレコードの順番に従った順番で並べた配列を、前記統合データの当該フィールドに対応する対応統合値リストに追加登録、もしくは、当該配列を当該フィールドに対応する新たな対応統合値リストとして前記統合データに追加するステップとを有している。
【００１７】
また、本発明は、前記課題達成のために、このようなデータ統合方法を実行するデータ統合装置も提供する。
このようなデータ統合方法やデータ統合装置によれば、統合データに統合する各テーブル間やレコード間で、同じフィールドに登録される値に重複が存在する場合でも、統合データの各統合インデックスの統合値リストの各エントリに登録される各値は、当該統合値リスト内においてユニークな値となる。したがって、各テーブルをそのまま保存する場合に比べ、保存に必要となるストレージのデータ容量を削減することができる。
【００１８】
また、このようなデータ統合方法やデータ統合装置によれば、統合データの既存の部分には一切変更を加えない比較的簡易な処理によって、新たなテーブルを統合データに統合することができるようになる。
また、統合データは、統合データに統合された各テーブルをつなげたテーブルを表すこととなるので、統合データを用いることにより、容易に当該各テーブルの統合的な操作や利用が行えるようになる。
さて、本発明は、併せて、以上のデータ統合装置と、前記統合データを保存したストレージとを備えたデータ処理システムであって、前記統合データが、各レコード番号の各フィールドに、当該フィールドに対応する前記対応統合値リストの当該レコード番号と同じ値の順位のエントリに登録されている順位と同じ順位の、当該フィールドに対応する前記統合値リストのエントリに登録されている値を有するレコードを含むテーブルを表しているものとして、前記ストレージに保存された前記統合データが表すテーブルを操作するテーブル操作手段を備えたデータ処理システムも提供する。
【００１９】
また、本発明は、コンピュータを以上のデータ統合装置やデータ処理システムとして機能させるコンピュータプログラムも提供する。
【発明の効果】
【００２０】
以上のように、本発明によれば、比較的簡易な処理によって、複数のテーブルのデータを、データ量を削減しつつ、各テーブルの統合的な利用が容易な形態で保存することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態に係るデータ処理システムの構成を示すブロック図である。
【図２】本発明の実施形態に係るデータ統合処理の概要を示す図である。
【図３】本発明の実施形態に係るデータ統合処理の概要を示す図である。
【図４】本発明の実施形態に係る統合インデックスの生成例を示す図である。
【図５】本発明の実施形態に係る統合インデックスの生成例を示す図である。
【図６】本発明の実施形態に係る統合インデックスの保存例を示す図である。
【図７】本発明の実施形態に係る統合インデックスの他の生成例を示す図である。
【図８】従来のテーブルのデータ構造を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態について説明する。
図１に、本実施形態に係るデータ処理装置の構成を示す。
図示するように、データ処理装置は、ストレージ１とプロセッサ２と入力装置３と表示装置４等を備えている。また、プロセッサ２はデータ統合部１１と、ＲＤＢＭＳ１２（リレーショナルデータベースマネジメントシステム１２）とを備えている。なお、データ統合部１１、ＲＤＢＭＳ１２は、プロセッサ２が所定のコンピュータプログラムを実行することにより実現される機能部である。
【００２３】
このような構成において、新たに保存すべきインデックスセットがストレージ１に格納されると、プロセッサ２のデータ統合部１１は、格納されたインデックスセットを、ストレージ１に格納している統合インデックスセットに統合する。
なお、ストレージ１に格納される新たに保存すべきインデックスセットは、先に図８を用いて説明した先にVNo、VLとを含んだインデックスよりなるインデックスセットであり、当該インデックスセットは、図８ａ２のインデックスセットが図８ａ１のテーブルを表しているのと同様に、一つのテーブルを表している。
【００２４】
一方、ＲＤＢＭＳ１２は、統合インデックスセットを用いて、それまで保存されたインデックスセットが表す各テーブルに対する統合的な操作を行う。
次に、データ統合部１１が行う、インデックスセットの統合インデックスセットへの統合動作の概要について説明する。
いま、保存すべき最初のインデックスセットとして、図２ａ１に示すテーブルＡを表すインデックスセットである図２ａ２のテーブルＡインデックスセットが格納された場合、データ統合部１１は、図２ａ２のテーブルＡインデックスセットを、図２ａ３に示すように、そのまま統合インデックスセットとする。
【００２５】
したがって、統合インデックスセットは、インデックスセットと同様に、フィールド毎のインデックスを備え、各インデックスはVNo、VLを含むものとなり、統合インデックスセットは、テーブルを表すものとなる。
さて、ここで、以下では、インデックスセットのインデックスを単に「インデックス」と表記し、統合インデックスのインデックスを「統合インデックス」と表記することにより両者を区別する。また、以下では、インデックスセットによって表されるテーブルを単に「テーブル」と表記し、統合インデックスセットによって表されるテーブルを「統合テーブル」と表記することにより、両者を区別する。
【００２６】
さて、以上のようにして最初に生成された、図２ａ３の統合インデックスセットは、図２ａ４のような、テーブルＡと同じ内容を持つ統合テーブルを表すものとなる。
次に、図２ａ３の統合インデックスセットが保存されている状態で、次に保存すべきインデックスセットとして、図２ｂ１に示すテーブルＢを表すインデックスセットである図２ｂ２のテーブルＢインデックスセットが格納された場合、データ統合部１１は、テーブルＢインデックスセットの各インデックスについて以下の処理を行う。
【００２７】
すなわち、テーブルＢインデックスセットの各フィールドに対応するインデックスについて、インデックスのVLに含まれる値のうちの、当該フィールドに対応する統合インデックスのVLに含まれない値を、図２ｂ３に示すように、当該フィールドに対応する統合インデックスのVLに追加登録する。
【００２８】
そして、インデックスのVNoのエントリ数が等しいリストであるT_VNoを作成し、T_VNoの各エントリに、当該T_VNoのエントリT_VNoE(i)と順位が等しい、当該インデックスのVNoのエントリVNoE(i)に格納されている値kを順位とする当該インデックスのVLのエントリVLE(k)に登録されている値jが登録されている、当該フィールドの統合インデックスのVLのエントリの順位を示す値を登録する。そしてT_VNoの各エントリを、図２ｂ３に示すように、当該フィールドの統合インデックスのVNoに追加登録する。
【００２９】
ただし、T_VNoE(i)はT_VNoのi番目のエントリを、VNoE(i) はVNoのi番目のエントリを、VLE(k)は、VLのｋ番目のエントリを表している。
具体的には、たとえば、フィールド「タイプ」のインデックスであれば、インデックスのVNoのエントリ数は４であるので、４つのエントリを備えた T_VNoを作成する。
そして、たとえば、T_VNoの順位０のエントリについては、当該インデックスのVNoの順位０のエントリに登録されている値は１であり、当該インデックスのVLの順位１のエントリに登録されている値はＢであり、Ｂはフィールド「タイプ」の統合インデックスのVLの順位３のエントリに登録されているので、T_VNoの順位０のエントリには３を登録する。
【００３０】
同様に、たとえば、T_VNoの順位２のエントリについては、当該インデックスのVNoの順位２のエントリに登録されている値は０であり、当該インデックスのVLの順位０のエントリに登録されている値はＡであり、Ａはフィールド「タイプ」の統合インデックスのVLの順位０のエントリに登録されているので、T_VNoの順位２のエントリには０を登録する。
【００３１】
そして、同様にしてT_VNoの各エントリに値を登録したならば、T_VNoの各エントリを、フィールド「タイプ」の統合インデックスのVNoに追加する。
さて、このようにして作成された図２ｂ３に示す統合インデックスセットが表す統合テーブルは、図２ｂ４に示すように、テーブルＡとテーブルＢを当該順序で連結したものとなる。
次に、以上のようにして、テーブルＢインデックスセットを統合インデックスセットに統合し、図３ａ２に示す統合テーブルを表す、図３ａ１の統合インデックスセットが保存されている状態で、次に保存すべきインデックスセットとして、図３ｂ１に示すテーブルＣを表すインデックスセットである図３ｂ２のテーブルＣインデックスセットが格納された場合、データ統合部１１は、以上の同様に、テーブルＣインデックスセットの各インデックスについて以下の処理を行う。
【００３２】
すなわち、テーブルＣインデックスセットの各フィールドに対応するインデックスについて、インデックスのVLに含まれる値のうちの、当該フィールドの統合インデックスのVLに含まれない値を、図３ｂ３に示すように、当該フィールドの統合インデックスのVLに追加登録する。
【００３３】
そして、インデックスのVNoのエントリ数が等しいリストであるT_VNoを作成し、T_VNoの各エントリに、当該T_VNoのエントリT_VNoE(i)と順位が等しい、当該インデックスのVNoのエントリVNoE(i)に格納されている値kを順位とする当該インデックスのVLのエントリVLE(k)に登録されている値jが登録されている、当該フィールドの統合インデックスのVLのエントリの順位を示す値を登録する。そしてT_VNoの各エントリを、図３ｂ３に示すように、当該フィールドの統合インデックスのVNoに追加登録する。
【００３４】
結果、このようにして作成された図３ｂ３に示す統合インデックスセットが表す統合テーブルは、図３ｂ４に示すように、テーブルＡとテーブルＢとテーブルＣを当該順序で連結したものとなる。
以下、次に保存すべきインデックスセットが発生するたびに、同様の処理を行って、当該インデックスセットを統合インデックスセットに統合していく。
【００３５】
なお、統合インデックスセットには、統合インデックスのVNoのエントリのどの範囲が、どのインデックス、または、どのテーブルを表すインデックスから作成されたものであるのか示すデータを対応データとして含めておくようにしてもよくこのようにすることにより、テーブルやインデックス単位での統合インデックスセットの多様な利用が容易に行えるようになる。
【００３６】
ここで、以上のように、本実施形態では、新たなインデックスセットを統合インデックスセットに統合する際に、統合インデックスセットの既に登録されている部分には一切の変更が加えられず、新たなインデックスセットの内容に応じた内容が統合インデックスセットに追加的に登録されていくことにより、インデックスセットの統合インデックスセットへの統合が実現されている。
【００３７】
また、統合インデックスセットに統合する各インデックスセット間で、同じフィールドのインデックスのVLのエントリに登録される値に重複が存在する場合でも、統合インデックスセットの各統合インデックスのVLの各エントリに登録される各値は、統合インデックスのVL内においてユニークな値となる。したがって、各インデックスセットをそのまま保存する場合に比べ、保存に必要となるストレージ１のデータ容量を削減することができる。
【００３８】
さて、次に、以上のようにインデックスセットを統合インデックスセットに統合していく際の詳細な手順について説明する。
上述のようにインデックスセットの統合インデックスセットへの統合は、各フィールドのインデックスについて、当該インデックスの内容に応じて統合インデックスを編集することにより実現される。
そして、このインデックスの内容に応じて統合インデックスの編集は、たとえば、以下に示す手順によって実現することができる。
ここでは、図４ａに示すインデックスの内容に応じて、同図に示す統合インデックスを編集する場合を例にとり説明する。
この場合、まず、登録値調査処理を行う。
この登録値調査処理では、まず、ポインタＰを０に、カレントナンバＣＮを統合インデックスのVLの末尾のエントリの次の順位である３に設定する。そして、インデックスのVLとエントリ数が等しいT_VLと、追加値リストadVLを作成する。
そして、インデックスのVLのポインタＰが示す順位０のエントリに登録されている値Ａを取得し、取得した値Ａが統合インデックスのVLに格納されているかどうかを調べる。ここでは、統合インデックスのVLに格納されているので、値Ａが格納されている統合インデックスのVLのエントリの順位０を取得し、取得した順位をT_VLの、ポインタＰが示す順位０のエントリに登録する。
【００３９】
そして、ポインタＰの値が、インデックスのVLの末尾のエントリの順位と一致しているかどうかを調べ、ここでは一致していないのでポインタＰの値を一つ進め１とする。
次に、ポインタＰの値を一つ進めたならば、図４ｂに示すように、インデックスのVLのポインタＰが示す順位１のエントリに登録されている値Ｂを取得し、取得した値Ｂが統合インデックスのVLに格納されているかどうかを調べる。ここでは、値Ｂは、統合インデックスのVLに格納されていないので、取得した値Ｂを追加値リストadVLに追加登録する。また、カレントナンバＣＮの値３を、T_VLの、ポインタＰが示す順位１のエントリに登録すると共に、カレントナンバＣＮの値を一つ進め４とする。なお、カレントナンバＣＮの値は、カレントナンバＣＮの値をT_VLのエントリに登録したときに、一つ進める。
【００４０】
そして、そして、ポインタＰの値が、インデックスのVLの末尾のエントリの順位と一致しているかどうかを調べ、ここでは一致していないのでポインタＰを一つ進め２とする。
次に、ポインタＰの値を一つ進めたならば、図４ｃに示すように、インデックスのVLのポインタＰが示す順位２のエントリに登録されている値Ｆを取得し、取得した値Ｆが統合インデックスのVLに格納されているかどうかを調べる。ここでは、値Ｆは、統合インデックスのVLに格納されていないので、取得した値Ｆを追加値リストadVLに追加登録する。また、カレントナンバＣＮの値４を、T_VLの、ポインタＰが示す順位２のエントリに登録する。
【００４１】
そして、ポインタＰの値が、インデックスのVLの末尾のエントリと一致しているかどうかを調べ、ここでは一致しているので、登録値調査処理を終了する。
そして、登録値調査処理を終了したならば、次に、T_VNo作成処理を行う。
T_VNo作成処理では、図５ａに示すように、インデックスのVNoとエントリ数が同じT_VNoを作成する。
そして、インデックスのVNoの各エントリについて、当該順位 iのエントリに格納されている値Ｘを取得する。そして、取得した値Ｘと同じ順位Ｘの T_VLのエントリに登録されている値Ｙを、順位 iのT_VNoのエントリに登録する。すなわち、たとえば、インデックスのVNoの順位１のエントリについては、インデックスのVNoの順位１のエントリに登録されている値は１であるので、順位１のT_VLのエントリに登録されている値３を取得する。そして、取得した値３をT_VNoの順位１のエントリに登録する。
【００４２】
そして、このようにして、T_VNoの各エントリに値を登録したならば、T_VNo作成処理を終了する。
そして、次に、図５ｂに示すように、登録値調査処理で作成した追加値リストadVLの各エントリを、統合インデックスの VLに追加し、T_VNo作成処理で作成したT_VNoの各エントリを統合インデックスのVNoに追加する。
以上、データ統合部１１が行う、インデックスセットの統合インデックスセットへの統合動作について説明した。
ところで、以上ように作成した統合インデックスセットは、図６に示すように、異なるインデックスセットから作成した統合インデックスセットの各統合インデックスのVNoの部分毎に、別個のデータ構造体として作成、保存するようにしてもよい。すなわち、たとえば、テーブルＡインデックスセットから最初に作成した統合インデックスセットの各統合インデックスのVNoの部分６０１と、テーブルＢインデックスセットを統合インデックスセットに統合する際に作成し、統合インデックスセットに追加した各統合インデックスのVNoの部分６０２と、テーブルＣインデックスセットを統合インデックスセットに統合する際に作成し、統合インデックスセットに追加した各統合インデックスのVNoの部分６０３とを、それぞれ別個のファイル、または、別個のファイル群などの、別個のデータ構造体としてストレージ１に保存するようにしてもよい。また、この場合には、各データ構造体の作成元となったインデックス、または、各データ構造体の作成元となったインデックスが表すテーブルと、データ構造体の対応を示すデータを対応データとして統合インデックスセットに含めておくようにしてもよく、このようにすることにより、テーブルやインデックス単位での統合インデックスセットの多様な利用が容易に行えるようになる。
【００４３】
このようにしても、各VNo部分６０１、６０２、６０３の各フィールドに対応する部分を連結したものが、当該フィールドに対応する統合インデックスのVNoを形成することとなるので、論理的に統合インデックステーブルを表していることに変わりはない。
以下、プロセッサ２のＲＤＢＭＳ１２が行う、統合インデックスセットを用いた、それまで保存されたインデックスセットが表す各テーブルに対する統合的な操作について説明する。
いま、図３ｂ３に示す統合インデックスセットがストレージ１に格納されているものとして、ＲＤＢＭＳ１２は、特定のフィールドに特定の値を持つレコードを求める操作を行う場合には次の処理を行う。
すなわち、まず、統合インデックスセットの当該特定のフィールドの統合インデックスのVLの、当該特定の値が登録されているエントリの順位を求める。そして、求めた順位が登録されている当該統合インデックスのVNoの各エントリの順位を求める。そして、もとめた各順位をレコード番号とするレコードを求めるレコードのレコード番号として抽出する。
【００４４】
そして、次に、抽出した各レコード番号について、以下の処理を行って当該レコード番号のレコードの各フィールドの値を求める。
すなわち、統合インデックスの各フィールドの統合インデックスについて、当該統合インデックスのVNoの、当該レコード番号と等しい順位のエントリに登録されている値を求め、求めた値と等しい順位の当該統合インデックスのVLに登録されている値を、当該レコード番号のレコードの当該統合インデックスに対応するフィールドの値として算定する。
【００４５】
また、ＲＤＢＭＳ１２は、特定のフィールドに特定の範囲内の値を持つレコードを求める操作を行う場合には、当該特定の範囲内の各値について、当該値の各々を特定の値として、以上の特定のフィールドに特定の値を持つレコードを求める操作を行う処理を行う。
また、ＲＤＢＭＳ１２は、特定のフィールドに特定の値を持つレコードの数を求める操作を行う場合には次の処理を行う。
すなわち、この場合には、統合インデックスセットの当該特定のフィールドの統合インデックスのVLの、当該特定の値が登録されているエントリの順位を求める。そして、求めた順位が登録されている当該統合インデックスのVNoのエントリの数を、当該特定のフィールドに特定の値を持つレコードの数として算定する。
【００４６】
また、ＲＤＢＭＳ１２は、統合インデックスセットが表す統合テーブルのレコードを、特定のフィールドの値でソートする操作を行う場合には、以下の処理を行う。
すなわち、統合インデックスセットの当該特定のフィールドの統合インデックスのVLのエントリの順位を、当該エントリに登録されている値の順序（たとえば、値が小さい順）に従って配列する。そして、配列した各値の配列順に、当該値が登録されているVNoのエントリの順位を求め、求めたVNoのエントリの順位を当該順位を求めた順番に従って配列していく。そして、この結果得られた順位の配列を、ソートしたレコード番号の配列として算定する。そして、そして各レコード番号の各レコードの各フィールドの値を上述のように求めて、ソートしたレコード番号の順に配列してソート後のテーブルを作成する。
【００４７】
なお、以上のような操作は、上述した対応データを統合インデックスセットに含めた場合には、特定のテーブル/インデックスに対応するVNoの範囲のみを対象として行うこともできる。
以上のように、本実施形態に係る統合インデックスセットによれば、ＲＤＢＭＳ１２によって、統合インデックスセットに統合した各インデックスセットが表す各テーブルに対する統合的な操作を、統合インデックスセットに対する直接の操作によって速やかに行うことができる。
【００４８】
以上、本発明の実施形態について説明した。
なお、以上の実施形態において、フィールド構成が異なるインデックスセットがストレージ１に格納される場合には、値がブランクのインデックスを追加したり、インデックスの順序を入れ替えることにより、格納されたインデックスセットを、共通のフィールド構成のインデックスセットに変換した上で統合インデックスセットに統合するようにすればよい。
【００４９】
なお、以上の実施形態では、プロセッサ２のデータ統合部１１は、新たに保存すべきインデックスセットがストレージ１に格納されたときに、格納されたインデックスセットを、ストレージ１に格納している統合インデックスセットに統合するものとして説明したが、本実施形態は、プロセッサ２のデータ統合部１１において、新たに保存すべきテーブルがストレージ１に格納されたときに、格納されたテーブルから先に図８を用いて説明したようにインデックスセットを作成し、作成したインデックスセットを、ストレージ１に格納している統合インデックスセットに統合するものとしてもよい。
【００５０】
なお、この場合において、フィールド構成が異なるテーブルがストレージ１に格納される場合には、テーブルに値がブランクのフィールドを追加したり、テーブルのフィールドの順序を入れ替えることにより、格納されたテーブルを、共通のフィールド構成のテーブルに変換した上でインデックスセットを作成するようにすればよい。
【００５１】
また、このように、テーブルから統合インデックスセットを作成する場合には、プロセッサ２のデータ統合部１１において、以下のように統合テーブルを作成するようにしてもよい。
すなわち、図７ａ１に示す様に、統合インデックスセットに統合する最初のテーブルＡがストレージ１に格納されたならば、各フィールド（フィールド「性別」とフィールド「タイプ」）についてのVNOとVLを先に図８を用いて説明したように作成し、図７ａ２に示すように各フィールドについて作成したVNoを当該フィールドの部分インデックスとし、各フィールドについて作成した部分インデックスを含めたテーブルＡ部分インデックスセットを統合インデックスセットに格納する。また、各フィールドについて作成したVLを含めた統合VLを統合インデックスセットに格納する。
【００５２】
そして、次に、図７ａ２に示す統合インデックスセットがストレージ１に格納されている状態で図７ｂ１に示すテーブルＢがストレージ１に格納されたならば、テーブルＢのフィールドについて、各レコードの当該フィールドに用いられている値（ユニーク値）のうちの、統合インデックスセットの統合VLの当該フィールドのVLに登録されていない値を、図７ｂ２に示すように統合VLの当該フィールドのVLに追加登録する。
【００５３】
すなわち、たとえば、フィールド「タイプ」については、テーブルＢの各レコードのフィールド「タイプ」の値のうち、ＢとＦが図７ａ２に示す統合インデックスセットの統合VLのフィールド「タイプ」のVLに登録されていないので、、図７ｂ２に示すようにＢとＦを統合VLのフィールド「タイプ」のVLに追加する。
【００５４】
次に、テーブルＢの各フィールドについて、VNoを以下のように作成する。
すなわち、テーブルＢの各フィールドについて、テーブルＢのレコード数と同数のエントリよりなるVNoを作成し、VNoの順位ｎのエントリに、対応するテーブルのレコード番号nのレコードの当該フィールドの値が登録されている、統合インデックスセットの統合VLの当該フィールドのVLのエントリのVL中の順位を示す値を登録する。
【００５５】
すなわち、たとえば、フィールド「タイプ」については、テーブルＢのレコード数が４であるので、４つのエントリを持つフィールド「タイプ」のVNoを作成し、作成したフィールド「タイプ」のVNoの順位iのエントリに、テーブルＢのレコード番号iのレコードのフィールド「タイプ」の値が登録されている、統合VLのフィールド「タイプ」のVL（VL（タイプ））のエントリのVL中の順位を示す値を登録する。たとえば、フィールド「タイプ」のVNoの順位２のエントリには、テーブルＢのレコード番号２のレコードのフィールド「タイプ」の値がＡであり、統合VLのフィールド「タイプ」のVL（VL（タイプ））の順位０のエントリにＡが登録されているので０が登録される。またィールド「タイプ」のVNoの順位３のエントリには、テーブルＢのレコード番号３のレコードのフィールド「タイプ」の値がＦであり、統合VLのフィールド「タイプ」のVL（VL（タイプ））の順位４のエントリにＦが登録されているので４が登録される。
【００５６】
そして、以上のようにして、各フィールドについて作成したVNoを当該フィールドの部分インデックスとし、各フィールドについて作成した部分インデックスを含めたテーブルＢ部分インデックスセットを統合インデックスセットに格納する。
以降、テーブルＢがストレージ１に格納される度に、テーブルＢの場合と同様の処理を行い、格納されたテーブルを統合インデックスセットに統合していく。
なお、この場合には統合インデックスセットには、各部分インデックスセットが、どのテーブルから作成されたものであるのか示すデータを、上述した対応データとして含めておくようにしてもよく、このようにすることにより、テーブル単位での統合インデックスセットの多様な利用が容易に行えるようになる。
【００５７】
さて、図７ｂ１の統合インデックスセットの各テーブルの各インデックスセットの各フィールドの部分インデックスのVNoは、これを連結して統合部分インデックスとして統合セットに保存するようにしてもよい。なお、この場合には統合インデックスセットには、統合部分インデックスのVNoのエントリのどの範囲が、どのテーブルから作成されたものであるのか示すデータを上述した対応データとして含めておくようにしてもよく、このようにすることにより、テーブル単位での統合インデックスセットの多様な利用が容易に行えるようになる。
【００５８】
ここで、このように部分インデックスのVNoを連結して統合部分インデックスとして保存した場合の各フィールドのVNoは、図７ａ１のテーブルＡと図７ｂ１のテーブルＢと同じ２つのテーブル（図２ａ１のテーブルＡと図２ｂ２のテーブルＢ）のインデックスセットを図２に示したように統合した図２ｂ３に示す統合インデックスセットの各フィールドのインデックスのVNoと等しくなる。また、統合VLの各フィールドのVLも、図２ｂ３に示す統合インデックスセットの各フィールドのVLと等しくなる。
【００５９】
すなわち、部分インデックスのVNoを連結して統合部分インデックスとして保存した場合の統合インデックスセットのデータ構造体としての構成は、図２ｂ３に示す統合インデックスセットのデータ構造体としての構成と等しくなる。
また、逆に、上述のように異なるインデックスセットから作成した統合インデックスセットの各統合インデックスのVNoの部分毎に、別個のデータ構造体として図６に示すように作成、保存した場合の図２ｂ３に示す統合インデックスセットのデータ構造体としての構成は、図７ｂ２の統合インデックスセットのデータ構造体としての構成と等しくなる。
【００６０】
よって、図７に示したテーブルを統合インデックスセットに統合する処理によれば、インデックスセットを介さずに、テーブルを統合インデックスセットに統合することができる。また、上述のようにインデックスセットを統合して作成した統合インデックスセットと、同様に利用することができる。
【００６１】
また、図７に示したテーブルを統合インデックスセットに統合する処理においても、新たなテーブルを統合インデックスセットに統合する際に、統合インデックスセットの既に登録されている部分には一切の変更が加えられず、新たなテーブルの内容に応じた内容が統合インデックスセットに追加的に登録されていくことにより、テーブルの統合インデックスセットへの統合が実現される。
【００６２】
なお、図７に示した場合においても、フィールド構成が異なるテーブルがストレージ１に格納される場合には、テーブルに値がブランクのフィールドを追加したり、テーブルのフィールドの順序を入れ替えることにより、格納されたテーブルを、共通のフィールド構成のテーブルに変換した上で処理するようにする。
【符号の説明】
【００６３】
１…ストレージ、２…プロセッサ、３…入力装置、４…表示装置、１１…データ統合部、１２…ＲＤＢＭＳ。
【図１】
2018045441.tif 000003
【図２】
2018045441.tif 000004
【図３】
2018045441.tif 000005
【図４】
2018045441.tif 000006
【図５】
2018045441.tif 000007
【図６】
2018045441.tif 000008
【図７】
2018045441.tif 000009
【図８】
2018045441.tif 000010