(57)【特許請求の範囲】
【請求項１】
１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムであって、
前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、
インデックス編集手段と、
前記インデックスを用いて前記テーブルのレコードのフィールドの値を算定するデータ処理手段とを有し、
前記インデックスは、
前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、
前記レコード番号と、当該レコード番号のレコードの対応するフィールドの値が登録されている値リストのエントリの順位との対応を規定する対応リストとを含み、
前記インデックス編集手段は、各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストについて、当該値リストを含むインデックス中に単位変換後値リストを作成すると共に、当該値リストの各エントリについて、当該エントリに登録されている値を前記所定の単位で表した値に変換して、当該エントリの順位と同順位の前記単位変換後値リストのエントリに登録し、
前記データ処理手段は、
各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストが存在しないフィールドの値として、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の値リストのエントリに登録されている値を算定し、
各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストが存在するフィールドの値として、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の単位変換後値リストのエントリに登録されている値を算定することを特徴とする情報処理システム。
【請求項２】
１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムであって、
前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、
インデックス編集手段と、
前記インデックスを用いて前記テーブルのレコードのフィールドの値を算定するデータ処理手段とを有し、
前記インデックスは、
前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、
前記レコード番号と、当該レコード番号のレコードの対応するフィールドの値が登録されている値リストのエントリの順位との対応を規定する対応リストとを含み、
前記インデックス編集手段は、各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストの各エントリについて、当該エントリに登録されている値を前記所定の単位で表した値で、当該エントリの値を更新し、
前記データ処理手段は、各レコード番号に対応するレコードのフィールドの値として、当該フィールドに対応するインデックスの対応リストが規定する当該レコード番号に対応する順位の値リストのエントリに登録されている値を算定することを特徴とする情報処理システム。
【請求項３】
１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムであって、
前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、
インデックス編集手段と、
前記インデックスを用いて、特定の値を特定のフィールドの値とするレコードのレコード番号を算定するデータ処理手段とを有し、
前記インデックスは、
前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、
前記値リストのエントリの順位と、当該順位の前記値リストのエントリに登録されている値を対応するフィールドに持つレコード番号との対応を規定する対応情報とを含み、
前記インデックス編集手段は、各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストについて、当該値リストを含むインデックス中に単位変換後値リストを作成すると共に、当該値リストの各エントリについて、当該エントリに登録されている値を前記所定の単位で表した値に変換して、当該エントリの順位と同順位の前記単位変換後値リストのエントリに登録し、
前記データ処理手段は、
特定の値を、対応するインデックスに前記単位変換後値リストが存在しない特定のフィールドの値とするレコードのレコード番号として、当該値が登録されている前記値リストのエントリの順位に対応するレコード番号として当該インデックスの対応情報が規定しているレコード番号を算定し、
特定の値を、対応するインデックスに前記単位変換後値リストが存在する特定のフィールドの値とするレコードのレコード番号として、当該値が登録されている前記単位変換後値リストのエントリの順位に対応するレコード番号として当該インデックスの対応情報が規定しているレコード番号を算定することを特徴とする情報処理システム。
【請求項４】
１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムであって、
前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、
インデックス編集手段と、
前記インデックスを用いて、特定の値を特定のフィールドの値とするレコードのレコード番号を算定するデータ処理手段とを有し、
前記インデックスは、
前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、
前記値リストのエントリの順位と、当該順位の前記値リストのエントリに登録されている値を対応するフィールドに持つレコード番号との対応を規定する対応情報とを含み、
前記インデックス編集手段は、各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストの各エントリについて、当該エントリに登録されている値を前記所定の単位で表した値に変換した値で、当該エントリの値を更新し、
前記データ処理手段は、特定の値を特定のフィールドの値とするレコードのレコード番号として、当該値が登録されている前記値リストのエントリの順位に対応するレコード番号として当該特定のフィールドに対応するインデックスの対応情報が規定しているレコード番号を算定することを特徴とする情報処理システム。
【請求項５】
１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムであって、
前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、
インデックス編集手段と、
前記インデックスを用いて前記テーブルのレコードのフィールドの値を算定するデータ処理手段とを有し、
前記インデックスは、
前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、
前記レコード番号と、当該レコード番号のレコードの対応するフィールドの値が登録されている値リストのエントリの順位との対応を規定する対応リストとを含み、
前記インデックス編集手段は、
各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストについて、当該値リストを含むインデックス中に単位変換後値リストと変換フラグリストを作成し、
前記データ処理手段は、
各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在しないフィールドの値として、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の値リストのエントリに登録されている値を算定し、
各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在し、かつ、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリに変換済が登録されていないフィールドの値として、当該対応リストが規定する当該レコード番号に対応する順位の前記値リストのエントリに登録されている値を前記所定の単位で表した値に変換した値として算定すると共に、当該値リストのエントリの順位と同順位の前記単位変換後値リストのエントリへの当該変換した値の登録と、当該対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリへの変換済の登録を行い、
各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在し、かつ、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリに変換済が登録されているフィールドの値として、当該対応リストが規定する当該レコード番号に対応する順位の単位変換後値リストのエントリに登録されている値を算定することを特徴とする情報処理システム。
【請求項６】
１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムであって、
前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、
インデックス編集手段と、
前記インデックスを用いて前記テーブルのレコードのフィールドの値を算定するデータ処理手段とを有し、
前記インデックスは、
前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、
前記レコード番号と、当該レコード番号のレコードの対応するフィールドの値が登録されている値リストのエントリの順位との対応を規定する対応リストとを含み、
前記インデックス編集手段は、
各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストについて、当該値リストを含むインデックス中に単位変換後値リストと変換フラグリストを作成し、
前記データ処理手段は、
各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在しないフィールドの値として、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の値リストのエントリに登録されている値を算定し、
各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在し、かつ、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリに変換済が登録されていないフィールドの値として、当該対応リストが規定する当該レコード番号に対応する順位の前記値リストのエントリに登録されている値を前記所定の単位で表した値に変換した値を算定すると共に、当該変換した値で当該値リストのエントリの値を更新し、当該対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリへの変換済の登録を行い、
各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在し、かつ、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリに変換済が登録されているフィールドの値として、当該対応リストが規定する当該レコード番号に対応する順位の値リストのエントリに登録されている値を算定することを特徴とする情報処理システム。
【請求項７】
コンピュータによって読み取られ実行されるコンピュータプログラムであって、
当該コンピュータプログラムは前記コンピュータを、請求項１、２、３、４、５または６記載の情報処理システムとして機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースのデータの単位変換の技術に関するものである。
【背景技術】
【０００２】
データベースのデータを表示する技術としては、Ｂ−Ｔｒｅｅやハッシュなどのインデックスを設け、インデックスを用いて、データベースのデータを検索して表示する技術が知られている（例えば、特許文献１、２）。
【０００３】
また、データベースのデータの単位変換の技術としては、アプリケーションからデータベースのデータを要求されたときに、要求されたデータの単位をデータ要求元のアプリケーションが使用する単位に変換する単位変換処理を行った上で、データをデータ要求元のアプリケーションに提供する技術が知られている（例えば、特許文献３）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７-２５７３５号公報
【特許文献２】特開平６-３３５１６５号公報
【特許文献３】国際公開ＷＯ２００７／０８３３７１号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したデータベースのデータを提供する際に単位変換処理を行う技術のように、データベースのデータを利用するときに、当該利用するデータの単位変換を行う技術によれば、利用するデータの個々について、データの利用の度に単位変換処理を行う必要が生じるため、単位変換のための処理の負荷が大きく、また、これにより、データの効率的な利用が妨げられる。たとえば、多数のデータを利用する場合には、多数のデータの個々について単位変換処理を行うこととなるため、データの単位変換の完了までに長時間を要し迅速にデータを利用することができなくなる。
【０００６】
そこで、本発明は、より効率的にデータを利用できるように、データベースのデータの単位変換を行うことを課題とする。
【課題を解決するための手段】
【０００７】
前記課題達成のために、本発明は、１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムに、前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、インデックス編集手段と、前記インデックスを用いて前記テーブルのレコードのフィールドの値を算定するデータ処理手段とを備えたものである。ただし、前記インデックスは、前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、前記レコード番号と、当該レコード番号のレコードの対応するフィールドの値が登録されている値リストのエントリの順位との対応を規定する対応リストとを含んでいる。また、前記インデックス編集手段は、各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストについて、当該値リストを含むインデックス中に単位変換後値リストを作成すると共に、当該値リストの各エントリについて、当該エントリに登録されている値を前記所定の単位で表した値に変換して、当該エントリの順位と同順位の前記単位変換後値リストのエントリに登録する。そして、前記データ処理手段は、各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストが存在しないフィールドの値として、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の値リストのエントリに登録されている値を算定し、各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストが存在するフィールドの値として、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の単位変換後値リストのエントリに登録されている値を算定する。
【０００８】
また、前記課題達成のために、本発明は、１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムに、前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、インデックス編集手段と、前記インデックスを用いて前記テーブルのレコードのフィールドの値を算定するデータ処理手段とを備えたものである。ここで、前記インデックスは、前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、前記レコード番号と、当該レコード番号のレコードの対応するフィールドの値が登録されている値リストのエントリの順位との対応を規定する対応リストとを含む。また、前記インデックス編集手段は、各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストの各エントリについて、当該エントリに登録されている値を前記所定の単位で表した値に変換した値で、当該エントリの値を更新する。そして、前記データ処理手段は、各レコード番号に対応するレコードのフィールドの値として、当該フィールドに対応するインデックスの対応リストが規定する当該レコード番号に対応する順位の値リストのエントリに登録されている値を算定する。
【０００９】
また、前記課題達成のために、本発明は、１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムに、前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、インデックス編集手段と、前記インデックスを用いて、特定の値を特定のフィールドの値とするレコードのレコード番号を算定するデータ処理手段とを備えたものである。ここで、前記インデックスは、前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、前記値リストのエントリの順位と、当該順位の前記値リストのエントリに登録されている値を対応するフィールドに持つレコード番号との対応を規定する対応情報とを含む。また、前記インデックス編集手段は、各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストについて、当該値リストを含むインデックス中に単位変換後値リストを作成すると共に、当該値リストの各エントリについて、当該エントリに登録されている値を前記所定の単位で表した値に変換して、当該エントリの順位と同順位の前記単位変換後値リストのエントリに登録する。そして、前記データ処理手段は、特定の値を、対応するインデックスに前記単位変換後値リストが存在しない特定のフィールドの値とするレコードのレコード番号として、当該値が登録されている前記値リストのエントリの順位に対応するレコード番号として当該インデックスの対応情報が規定しているレコード番号を算定し、特定の値を、対応するインデックスに前記単位変換後値リストが存在する特定のフィールドの値とするレコードのレコード番号として、当該値が登録されている前記単位変換後値リストのエントリの順位に対応するレコード番号として当該インデックスの対応情報が規定しているレコード番号を算定する。
【００１０】
また、本発明は、前記課題達成のために、１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムに、前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、インデックス編集手段と、前記インデックスを用いて、特定の値を特定のフィールドの値とするレコードのレコード番号を算定するデータ処理手段とを備えたものである。ここで、前記インデックスは、前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、前記値リストのエントリの順位と、当該順位の前記値リストのエントリに登録されている値を対応するフィールドに持つレコード番号との対応を規定する対応情報とを含んでいる。また、前記インデックス編集手段は、各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストの各エントリについて、当該エントリに登録されている値を前記所定の単位で表した値に変換した値で、当該エントリの値を更新する。そして、前記データ処理手段は、特定の値を特定のフィールドの値とするレコードのレコード番号として、当該値が登録されている前記値リストのエントリの順位に対応するレコード番号として当該特定のフィールドに対応するインデックスの対応情報が規定しているレコード番号を算定する。
【００１１】
また、さらに、本発明は、前記課題達成のために、１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムに、前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、インデックス編集手段と、前記インデックスを用いて前記テーブルのレコードのフィールドの値を算定するデータ処理手段とを設けたものである。ここで、前記インデックスは、前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、前記レコード番号と、当該レコード番号のレコードの対応するフィールドの値が登録されている値リストのエントリの順位との対応を規定する対応リストとを含む。また、前記インデックス編集手段は、各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストについて、当該値リストを含むインデックス中に単位変換後値リストと変換フラグリストを作成する。そして、前記データ処理手段は、各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在しないフィールドの値として、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の値リストのエントリに登録されている値を算定し、各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在し、かつ、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリに変換済が登録されていないフィールドの値として、当該対応リストが規定する当該レコード番号に対応する順位の前記値リストのエントリに登録されている値を前記所定の単位で表した値に変換した値として算定すると共に、当該値リストのエントリの順位と同順位の前記単位変換後値リストのエントリへの当該変換した値の登録と、当該対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリへの変換済の登録を行い、各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在し、かつ、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリに変換済が登録されているフィールドの値として、当該対応リストが規定する当該レコード番号に対応する順位の単位変換後値リストのエントリに登録されている値を算定する。
【００１２】
また、前記課題達成のために、本発明は、１または複数のフィールドよりなる、各々レコード番号が付与されたレコードを複数含むテーブルを処理する情報処理システムに、前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、インデックス編集手段と、前記インデックスを用いて前記テーブルのレコードのフィールドの値を算定するデータ処理手段とを備えたものである。ここで、前記インデックスは、前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、前記レコード番号と、当該レコード番号のレコードの対応するフィールドの値が登録されている値リストのエントリの順位との対応を規定する対応リストとを含む。また、前記インデックス編集手段は、各インデックスの所定の単位と異なる単位で表された値が登録されている各値リストについて、当該値リストを含むインデックス中に単位変換後値リストと変換フラグリストを作成する。そして、前記データ処理手段は、各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在しないフィールドの値として、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の値リストのエントリに登録されている値を算定し、各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在し、かつ、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリに変換済が登録されていないフィールドの値として、当該対応リストが規定する当該レコード番号に対応する順位の前記値リストのエントリに登録されている値を前記所定の単位で表した値に変換した値を算定すると共に、当該変換した値で当該値リストのエントリの値を更新し、当該対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリへの変換済の登録を行い、各レコード番号に対応するレコードの、対応するインデックスに前記単位変換後値リストと変換フラグリストが存在し、かつ、当該インデックスの対応リストが規定する当該レコード番号に対応する順位の前記変換フラグリストのエントリに変換済が登録されているフィールドの値として、当該対応リストが規定する当該レコード番号に対応する順位の値リストのエントリに登録されている値を算定する。
【００１３】
以上のような情報処理システムによれば、一旦、値リストの各エントリに登録されている値を単位変換し、単位変換した値を単位変換後値リストのエントリに登録、または、単位変換した値で値リストのエントリを更新すれば、その後は、当該単位変換した値について、当該値をフィールドが関わる処理の度に繰り返し単位変換を行う必要はない。また、規模が大きなテーブルについては、フィールドの値として用いられている値の数に一致する値リストのエントリ数は、テーブルのレコード数に比べ大幅に少なくなることが期待できるので、テーブルの全てのレコードのフィールドの値を単位変換する場合に比べ、値リストの各エントリに登録されている値の単位変換は高速に完了することができることが期待できる。
【００１４】
よって、本発明によれば、効率的にテーブルのデータを利用できるようにデータベースのデータの単位変換を行うことができる。
【発明の効果】
【００１５】
以上のように、本発明によれば、より効率的にデータを利用できるように、データベースのデータの単位変換を行うができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１実施形態に係る情報処理システムの構成を示すブロック図である。
【図２】本発明の第１実施形態に係るテーブルデータセットを示す図である。
【図３】本発明の第１実施形態に係る単位変換処理を示すフローチャートである。
【図４】本発明の第１実施形態に係る単位変換処理の処理例を示す図である。
【図５】本発明の第１実施形態に係るユニオン処理の処理例を示す図である。
【図６】本発明の第２実施形態で単位変換に用いるインデックスを示す図である。
【図７】本発明の第２実施形態に係るフィールド値取得処理を示すフローチャートである。
【図８】本発明の第２実施形態に係るフィールド値取得処理の処理例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明に係る情報処理システムの実施形態について説明する。
まず、第１の実施形態について説明する。
図１に、本第１実施形態に係る情報処理システムの構成を示す。
図示するように、情報処理システムは、クライアント装置１と、クライアント装置１がインターネットなどのネットワーク２を介してアクセス可能なネットワークストレージ３やデータサーバ４を含んでいる。
【００１８】
また、クライアント装置１は、入力装置１１と、表示装置１２と、記憶装置１３と、プロセッサ１４とを備えている。そして、プロセッサ１４には、データ取得部１４１と、データ処理部１４２と、インデックス変換部１４３とが設けられている。
【００１９】
ここで、プロセッサ１４は、たとえば、ＣＰＵと、メモリと、各種周辺デバイスとを備えた汎用のコンピュータであり、データ取得部１４１とデータ処理部１４２とインデックス変換部１４３とは、コンピュータが所定のプログラムを実行することにより実現される、コンピュータの機能として実装される。
【００２０】
次に、ネットワークストレージ３やデータサーバ４には、RDB（Relational Database）のテーブルと、当該テーブルのインデックスのセットであるインデックスセットとが格納される。ここで、便宜上、このテーブルと当該テーブルのインデックスセットとをまとめてテーブルデータセットと呼ぶこととして、各ストレージ４にはテーブルデータセットが一つまたは複数格納されている。
【００２１】
次に、図２に、ネットワークストレージ３やデータサーバ４に格納されるテーブルデータセットを示す。
図２ａは、テーブルＡのテーブルデータセットを、図２ｂは、テーブルＢのテーブルデータセットを表したものである。
図示するように、テーブルＡ２００のテーブルデータセットに含まれるテーブルＡ２００は、複数のフィールド（図２ａでは、「性別」と「サイズ」）を持つレコードを行とする表であり、各レコードにはテーブルＡ２００中の当該レコードの行の（図２ａでは、0から5の）順番を示すレコード番号が付与されている。なお、レコード番号は０から始まる。
【００２２】
また、図２ａに示すように、テーブルＡ２００のテーブルデータセットに含まれるインデックスセット２１０は、テーブルＡ２００のレコードのフィールド毎に設けられたインデックスより構成される。図２ａでは、テーブルＡ２００のレコードのフィールドは、「性別」と「サイズ」であるので、「性別」のインデックス２１１と、「サイズ」のインデックス２１２がインデックスセットに含まれる。
【００２３】
図２ｂに示すように、テーブルＢ２５０についても同様であり、テーブルＢテーブルデータセットには、テーブルＢ２５０と、テーブルＢ２５０のインデックスセット２６０が含まれ、テーブルＢ２５０のインデックスセット２６０には「性別」のインデックス２６１と、「サイズ」のインデックス２６２が含まれる。
【００２４】
そして、各インデックスは、VNo、VL、ETRS、SOSのリストよりなる。
VLは、対応するテーブルの対応するフィールドの値として用いられている値を所定の基準でソートして各エントリに登録したリストである。
すなわち、たとえば、図２ａに示すテーブルＡ２００のテーブルデータセットのインデックスセット２１０の「性別」のインデックス２１１であれば、テーブルＡ２００の「性別」のフィールドに登録されているのはFとMのみであるので、VLは、Fを登録したエントリとMを登録したエントリよりなるリストとなる。
【００２５】
次に、VNoは、対応するテーブルのレコード数と同数のエントリよりなるリストであり、VNoのn番目のエントリには、対応するテーブルのレコード番号nのレコードの対応するフィールドの値が登録されているVLのエントリのVL中の順位を示す値が登録される。なお、VNo、VL、ETRS、SOSのエントリの順位は０から始まる。
【００２６】
すなわち、たとえば、図２ａに示すテーブルＡ２００のテーブルデータセットのインデックスセット２１０の「性別」のインデックス２１１であれば、テーブルＡ２００のレコード番号１のレコードの「性別」のフィールドの値はFであり、Fが登録されているVLのエントリの順位は0であるので、VNoの順位１のエントリには0が登録される。また、同様に、テーブルＡ２００のレコード番号３のレコードの「性別」のフィールドの値はMであり、Mが登録されているVLのエントリの順位は1であるので、VNoの順位３のエントリには1が登録される。
【００２７】
次に、SOSは、対応するテーブルのレコード数と同数のエントリよりなるリストであり、SOSの各エントリには、テーブルの各レコードのレコード番号が、対応するフィールドの値が登録されているVLのエントリの順位を最優先のキー、レコード番号をその次に優先されるキーとしてソートされた状態で登録されている。すなわち、VLのより順位が上位にエントリに登録されている値を対応するフィールドに持つレコードのレコード番号は、SOSのより上位のエントリに登録される。また、同じ値を対応するフィールドに持つレコード同士においては、レコード番号がより小さいレコードのレコード番号が、SOSのより上位のエントリに登録される。
【００２８】
すなわち、たとえば、図２ａに示すテーブルＡ２００のテーブルデータセットのインデックスセット２１０の「性別」のインデックス２１１であれば、VLにF、Mの順に「性別」のフィールドの値が登録されているので、テーブルＡ２００の「性別」のフィールドの値としてFを持つレコードのレコード番号1,4,5は、「性別」のフィールドの値としてMを持つレコードのレコード番号0,2,3よりも上位のSOSのエントリに登録される。また、「性別」のフィールドの値としてFを持つレコードのレコード番号1,4,5は、レコード番号に従って当該順序でSOSの先頭のエントリから順次各エントリに登録され、また、「性別」のフィールドの値としてMを持つレコードのレコード番号0,2,3は、レコード番号に従って当該順序で、SOSの「性別」のフィールドの値としてFを持つレコードのレコード番号1,4,5のエントリより後のエントリに順次登録される。
【００２９】
次に、ETRSは、VLのエントリと同数のエントリを備え、各エントリは、当該エントリのETRS 中の順位と等しいVL中の順位のVLのエントリに登録されている値を対応するフィールドの値として持つ対応するテーブルのレコードのレコード番号が登録されているSOSのエントリの内の順位が最も下位のSOS中のエントリのSOS中の順位の次の順位が登録される。
【００３０】
すなわち、たとえば、図２ａに示すテーブルＡ２００のテーブルデータセットのインデックスセット２１０の「性別」のインデックス２１１であれば、ETRSの２番目のエントリには、VLの２番目のエントリに登録されているMを「性別」のフィールドに持つテーブルＡ２００のレコードのレコード番号0,2,3が登録されているSOSのエントリの内の最も下位のSOS中のエントリの順位は5であるので、6が登録される。
【００３１】
したがって、VNoのn番目のエントリの値は、対応するテーブルのレコード番号nのレコードの対応するフィールドの値が登録されているVLのエントリのVL中の順位を表すと共に、ETRSのエントリの順位も表すものとなる。VNoのn番目のエントリの値が表すETRSのエントリの順位は、対応するテーブルのレコード番号nのレコードの対応するフィールドの値を、対応するフィールドの値として持つレコードのレコード番号が登録されているSOSのエントリの最も下位の順位の次の順位が登録されているETRSのエントリの順位である。
【００３２】
ここで、このようなインデックスによれば、VNoのエントリ数より、対応するテーブルのレコード数を求めることができる。また、VNoとVLより、各レコード番号のレコードの対応するフィールドの値を求めることができる。また、VLとETRSとSOSより、値より、その値を対応するフィールドの値として持つ対応するテーブルのレコードのレコード数やレコード番号を求めることができる。
【００３３】
すなわち、たとえば、図２ａに示すようにレコード番号２が与えられたならば、VNoの順位２のエントリに登録されている１を参照エントリ順位として取得し、VLの参照エントリ順位１のエントリに登録されている値Mを、与えられたレコード番号２のレコードのフィールド「性別」の値として取得できる。
【００３４】
また、値Mが与えられたならば、値Mが登録されているVLのエントリの順位１と同順位１のETRSのエントリに登録されている値６より一つ小さい順位５を終了順位とし、当該エントリの一つ前のエントリに登録されている値３を開始順位として取得し、SOSの開始順位３から終了順位5の間の各エントリに登録されているレコード番号0,2,3を、与えられた値Mが対応するフィールド「性別」に登録されているレコードのレコード番号として取得できる。なお、与えられた値が登録されているVLのエントリ及び当該エントリと同順位のETRSのエントリの順位が0であるときには、開始順位は0とする。
【００３５】
さて、図１に戻り、クライアント装置１のプロセッサ１４のデータ取得部１４１は、ユーザから表示等の処理の要求されたテーブルなどの、クライアント装置１において処理するテーブルのテーブルデータセットのインデックスセットをネットワークストレージ３やデータサーバ４から取得し、記憶装置１３に格納する。
【００３６】
一方、プロセッサ１４のインデックス変換部１４３は、データ処理部１４２が記憶装置１３に格納した各インデックスセットの各インデックスについて単位変換処理を行う。
図３に、この単位変換処理の手順を示す。
図示するように、プロセッサ１４のインデックス変換部１４３は単位変換処理において、まず、インデックスのVLに登録されている値の単位が、クライアント装置１が使用する単位系であるローカル単位系の単位であるかどうかを調べる（ステップ３０２）。すなわち、たとえば、クライアント装置１において長さの単位としてインチを用いている場合には、インデックスのVLに登録されている値の単位がインチであれば、インデックスのVLに登録されている値の単位が、クライアント装置１が使用する単位系であるローカル単位系の単位であると判定し、インデックスのVLに登録されている値の単位がセンチメートルであれば、インデックスのVLに登録されている値の単位が、クライアント装置１が使用する単位系であるローカル単位系の単位でないと判定する。なお、インデックスのVLに登録されている値の単位が、クライアント装置１が使用する単位系であるローカル単位系の単位と異なる例としては、温度を表す値の単位として一方が摂氏を他方が華氏を用いている場合、重さを表す値の単位として一方がパウンドを他方がキログラムを用いている場合、容積を表す値の単位として一方がパイントを他方がリットルを用いている場合などがある。
【００３７】
なお、ローカル単位系の単位としてどのような単位をもちいているかの情報については予めインデックス変換部１４３に設定しておく。
また、インデックスのVLに登録されている値の単位の識別は、ネットワークストレージ３やデータサーバ４に、テーブルの各フィールドのデータ型や単位を記述したメタ情報をインデックスセットに含めて格納するようにし、単位変換処理において、インデックスセットに含まれるメタ情報より、インデックスに対応するフィールドの単位をインデックスのVLに登録されている値の単位として識別するようにしてもよいし、テーブルの各フィールドの単位の情報をユーザが単位処理部に対して設定するようにし、インデックスに対応するフィールドの単位の情報より、単位変換処理において、インデックスのVLに登録されている値の単位を識別するようにしてもよい。
【００３８】
そして、インデックスのVLに登録されている値の単位が、クライアント装置１が使用する単位系であるローカル単位系の単位であれば（ステップ３０２）、このインデックスについての単位変換処理は終了する。
【００３９】
一方、インデックスのVLに登録されている値の単位が、クライアント装置１が使用する単位系であるローカル単位系の単位でなければ（ステップ３０２）、インデックスのVLのエントリ数と同数のエントリを持つ VLCをインデックス中に作成する（ステップ３０４、３０６）。
【００４０】
そして、VLの各エントリについて（ステップ３０８、３１４、３１６）、当該VLのエントリの値を単位変換し（ステップ３１０）、当該VLのエントリと同じ順位のVLCに登録する（ステップ３１２）処理を行う。すなわち、VLのエントリの値の単位がセンチメートルであれば、VLのエントリの各エントリの値を2.54で除算してインチの値に単位変換し、VLCの同順位のエントリに格納する。
【００４１】
そして、VLの全てのエントリについて当該エントリの値の単位変換と当該VLのエントリと同じ順位のVLCへの単位変換した値の登録が終了したならば（ステップ３１４）、このインデックスについての単位変換処理は終了する。
【００４２】
以上、プロセッサ１４のインデックス変換部１４３が行う単位変換処理について説明した。
このような単位変換処理によれば、たとえば、すなわち、図２ｂに示すように、テーブルＢ２５０がフィールド「サイズ」にセンチメートルの単位で表されたサイズが登録されたものであり、図４ａに示すように、テーブルＢ２５０のフィールド「サイズ」に対応するインデックス２６２のVLのエントリにセンチメートルの単位で表された値が登録されている場合、クライアント装置１が使用する長さの単位がインチであるときには、図４ａに示すインデックス２６２は、図４ｂに示すように、VLの各エントリの値をインチの単位で表した値に変換したものと等価なリストであるVLCを含むインデックス２６２に変換される。
【００４３】
さて、図１に戻り、クライアント装置１のプロセッサ１４のデータ処理部１４２は、記憶装置１３に格納された各インデックスからテーブルを復元して表示する処理や、レコード番号や値をキーとするレコードの検索処理や、複数のテーブルのJOINやUNIONなどの結合処理や、その他の各種データ処理を、記憶装置１３に格納された各インデックスを用いて行う。
【００４４】
ただし、データ処理部１４２は、VLCが格納されているインデックスについては、VLに代えてVLCを用いて、すなわち、VLCをVLと見なして用いて以上の各処理を行う。
ここで、図５に、UNIONを例にとりデータ処理部１４２の処理例を示す。
図５は、テーブルＡ２００とテーブルＢ２５０とを、テーブルＡ２００、テーブルＢ２５０の順序で連結（UNION）したテーブルであるユニオンテーブル５００を作成する場合について示したものである。
【００４５】
図示するように、この場合、テーブルＡ２００のレコード数は６、テーブルＢ２５０のレコード数は８であるので、ユニオンテーブル５００のレコードは、レコード番号０からレコード番号１３までの１４のレコードとなる。また、ユニオンテーブル５００のレコード番号０から５までのレコードがテーブルＡ２００のレコード番号０から５までのレコードに対応し、ユニオンテーブル５００のレコード番号６から１３までのレコードがテーブルＢ２５０のレコード番号０から７までのレコードに対応する。
【００４６】
そして、データ処理部１４２は、ユニオンテーブル５００の各レコードの各フィールドの値を、当該フィールドのレコードに対応するレコードがテーブルＡ２００のレコードであれば、テーブルＡ２００のインデックスセットの当該フィールドに対応するインデックス２１１、２１２を用いて算定し、当該フィールドのレコードに対応するレコードがテーブルＢ２５０のレコードであれば、テーブルＢ２５０のインデックスセットの当該フィールドに対応するインデックス２６１、２６２を用いて算定する。
【００４７】
ここで、フィールドの値の算定は、当該算定に用いるインデックスにVLCが含まれていない場合にはインデックスのVNoとVLを用いて行い、当該算定に用いるインデックスにVLCが含まれている場合にはインデックスのVNoとVLCを用いて行う。
【００４８】
すなわち、たとえば、ユニオンテーブル５００のレコード番号0のレコードのフィールド「サイズ」の値は、次のように算定する。
すなわち、ユニオンテーブル５００のレコード番号0のレコードに対応するレコードはテーブルＡ２００のレコード番号0のレコードであり、テーブルＡ２００のフィールド「サイズ」に対応するインデックス２１２にはVLCが含まれていないので、インデックス２１２のレコード番号0と同数の順位0のVNoのエントリに登録されている0を参照エントリ順位として取得し、VLの参照エントリ順位0のエントリに登録されている値１０を、ユニオンテーブル５００のレコード番号0のレコードのフィールド「サイズ」の値として算定する。
【００４９】
同様に、ユニオンテーブル５００のレコード番号4のレコードに対応するレコードはテーブルＡ２００のレコード番号4のレコードであり、テーブルＡ２００のフィールド「サイズ」に対応するインデックス２１２にはVLCが含まれていないので、インデックス２１２のレコード番号4と同じ順位4のVNoのエントリに登録されている２を参照エントリ順位として取得し、VLの参照エントリ順位２のエントリに登録されている値１２を、ユニオンテーブル５００のレコード番号4のレコードのフィールド「サイズ」の値として算定する。
【００５０】
一方、ユニオンテーブル５００のレコード番号6のレコードに対応するレコードはテーブルＢ２５０のレコード番号0のレコードであり、テーブルＢ２５０のフィールド「サイズ」に対応するインデックス２６２にはVLCが含まれているので、インデックス２６２のレコード番号0と同じ順位0のVNoのエントリに登録されている2を参照エントリ順位として取得し、VLCの参照エントリ順位2のエントリに登録されている値１２を、ユニオンテーブル５００のレコード番号6のレコードのフィールド「サイズ」の値として算定する。
【００５１】
同様に、ユニオンテーブル５００のレコード番号9のレコードに対応するレコードはテーブルＢ２５０のレコード番号3のレコードであり、テーブルＢ２５０のフィールド「サイズ」に対応するインデックス２６２にはVLCが含まれているので、インデックス２６２のレコード番号3と同じ順位3のVNoのエントリに登録されている4を参照エントリ順位として取得し、VLCの参照エントリ順位4のエントリに登録されている値１５を、ユニオンテーブル５００のレコード番号9のレコードのフィールド「サイズ」の値として算定する。
【００５２】
ここで、データ処理部１４２は、以上のようなUNIONの他にもさまざまな処理をVLCを含むインデックスを用いて行うことができる。
たとえば、データ処理部１４２は、特定のフィールドに特定の値を持つレコードのレコード番号の算定をVLに代えてVLCを用いて行うことができる。すなわち、この場合には、特定のフィールに対応するインデックスが、VLCを含むインデックスであれば、まず、当該インデックスの特定の値が登録されているVLCのエントリの順位と同順位のETRSのエントリに登録されている値より一つ小さい順位を終了順位として、当該エントリの一つ前のエントリに登録されている値を開始順位として取得する。そして、SOSの開始順位から終了順位の間の各エントリに登録されているレコード番号を、特定のフィールドに特定の値を持つレコードのレコード番号として取得する。なお、与えられた値が登録されているVLのエントリ及び当該エントリと同順位のETRSのエントリの順位が0であるときには、開始順位は0とする。
【００５３】
以上、本発明の第１実施形態について説明した。
ここで、以上の実施形態では、単位変換処理において、VLCを作成してインデックスに含め、データ処理部１４２において、VLCが格納されていないインデックスについてはVLを用いて各処理を行い、VLCが格納されているインデックスについては、VLに代えてVLCを用いて、すなわち、VLCをVLと見なして用いて各処理を行うようにしたが、これは、単位変換処理において、作成したVLCをインデックスに含める代わりに、作成したVLCを新たなVLとして、新たなVLでインデックス中のVLを置換するようにしてもよい。このようにすることにより、VLCが格納されているインデックスは無くなり、データ処理部１４２は、各インデックスを同様に取り扱って各種処理を行うことができるようになる。すなわち、この場合には、上述したUNIONにおける各レコード番号のフィールドの値の算定や、特定のフィールドに特定の値を持つレコードのレコード番号の算定などを、VLを用いて、VLの各エントリの値が単位変換の対象とならなかった他のインデックスと同様に行うことができる。
【００５４】
以下、本発明の第２の実施形態について説明する。
本第２実施形態は、以上の第１実施形態において、VLに登録されている値の単位がローカル単位系の単位ではないインデックスについて、インデックス変換部１４３においてデータ処理部１４２による処理に先立ちVLの各エントリの値の単位変換とVLCのエントリへの登録を行っていたところを、VLのエントリの値を利用するとときに、当該利用するVLのエントリの値についてのみ、当該値の単位変換とVLCのエントリへの登録を行うようにしたものである。
【００５５】
すなわち、本第２実施形態では、インデックス変換部１４３は、データ処理部１４２が記憶装置１３に格納したインデックスのうち、インデックスのVLに登録されている値の単位がローカル単位系の単位と異なる図６ａに示すようなインデックスについて、図６ｂに示すように、当該インデックス中に、インデックスのVLのエントリ数と同数のエントリを持つCFと、インデックスのVLのエントリ数と同数のエントリを持つ VLCを作成する。また、CFの各エントリに0を登録する。ここで、この段階では、インデックスのVLCの各エントリへの値の登録は行わない。
【００５６】
一方、データ処理部１４２は、記憶装置１３に格納された各インデックスからテーブルを復元して表示する処理や、レコード番号や値をキーとするレコードの検索処理や、複数のテーブルのJOINやUNIONなどの結合処理や、その他の各種データ処理などの処理中において、当該処理に必要となるフィールドの値の取得を、図７に示すフィールド値取得処理によって行う。
【００５７】
すなわち、図示するように、データ処理部１４２はフィールド値取得処理において、フィールドの値を取得するレコードのレコード番号をjとする（ステップ７０２）。そして、フィールドの値を取得するテーブルのインデックスセットの値を取得するフィールドに対応するインデックスを対象インデックスとして、対象インデックスのVNoの順位ｊのエントリの値をkとして取得する（ステップ７０４）。
【００５８】
そして、対象インデックスがVLCとCFを含むインデックスであるかどうかを調べ（ステップ７０６）、対象インデックスがVLCとCFを含むインデックスでなければ、VLのk番目のエントリの値を目的とするフィールドの値として取得し（ステップ７１６）、フィールド値取得処理を終了する。
【００５９】
一方、対象インデックスがVLCとCFを含むインデックスであれば（ステップ７０６）、対象インデックスのCFの順位kのエントリの値が１であるかどうかを調べる（ステップ７０８）。
【００６０】
次に、対象インデックスのCFの順位kのエントリの値が１でなければ（ステップ７０８）、VLのk番目のエントリの値をローカル単位系の単位に単位変換し、VLCのk番目のエントリに登録し（ステップ７１０）、CFの順位kのエントリの値を１に設定する（ステップ７１２）。
【００６１】
そして、VLCのk番目のエントリの値を目的とするフィールドの値として取得し（ステップ７１４）、フィールド値取得処理を終了する。
一方、ステップ７０６で、対象インデックスのCFの順位kのエントリの値が１であると判定された場合には、そのまま、VLCのk番目のエントリの値を目的とするフィールドの値として取得し（ステップ７１４）、フィールド値取得処理を終了する。
【００６２】
以上、データ処理部１４２が行うフィールド値取得処理について説明した。
ここで、図８に、フィールド値取得処理の処理例を示す。
図８は、テーブルＢ２５０のフィールド「サイズ」の値を取得する場合のフィールド値取得処理を示したものである。
いま、テーブルＢ２５０のフィールド「サイズ」のインデックスが図８ａ１に示す状態にある場合、テーブルＢ２５０のレコード番号５のレコードのフィールド「サイズ」の値の取得は次のように行われる。
【００６３】
すなわち、この場合には、VNoのレコード番号５と同じ順位５のエントリの値1を取得し、さらに、取得した値１と同じ順位１のCFのエントリの値を取得する。順位１のCFのエントリの値は初期値のままの0であり、VLの順位１のエントリの値が、まだ単位変換されていないことを表しているので、次に、VLの順位１のエントリのセンチメートルで表された値27.94をインチに変換し、インチに変換した値１１をVLCの順位１のエントリに登録し、当該VLCの順位１のエントリに登録した値１１をテーブルＢ２５０のレコード番号５のレコードのフィールド「サイズ」の値として取得する。
【００６４】
また、VLのエントリ１の値を単位変換してVLCの同順位のエントリに登録したので、図８ａ２に示すように、CFの順位１のエントリの値を１に設定し、VLの順位１のエントリの値が単位変換済みであることを表すようにする。
【００６５】
次に、テーブルＢ２５０のフィールド「サイズ」のインデックスが図８ｂに示す状態にある場合、テーブルＢ２５０のレコード番号3のレコードのフィールド「サイズ」の値の取得は次のように行われる。
【００６６】
すなわち、この場合には、VNoのレコード番号3と同じ順位３のエントリの値４を取得し、さらに、取得した値４と同じ順位４のCFのエントリの値を取得する。順位４のCFのエントリの値は１であり、VLの順位４のエントリの値は、単位変換済みであることを表しているので、次に、VLCの順位４のエントリに登録されている値１５を、テーブルＢ２５０のレコード番号３のレコードのフィールド「サイズ」の値として取得する。
【００６７】
以上、本発明の第２実施形態について説明した。
ところで、以上の第２実施形態は、インデックスにVLCを設けずに、VLの各エントリに登録されている値を単位変換した値で、VL自身のエントリを更新するようにしてもよい。
すなわち、この場合には、フィールド値取得処理のステップ７１０において、VLのk番目のエントリの値をローカル単位系の単位に単位変換したならば、単位変換した値でVLのk番目のエントリの値を更新するようにする。また、ステップ７１４において、VLのk番目のエントリの値を目的とするフィールドの値として取得するようにする。
【００６８】
以上、本発明の実施形態について説明した。
以上のように、本実施形態によれば、一旦、VLの各エントリに登録されている値を単位変換し、単位変換した値をVLCのエントリに登録、または、単位変換した値でVLのエントリを更新すれば、その後は、当該単位変換した値について、当該値をフィールドに持つレコードの処理の度に繰り返し単位変換を行う必要はない。また、規模が大きなテーブルについては、フィールドの値として用いられている値の数に一致するVLのエントリ数は、テーブルのレコード数に比べ大幅に少なくなることが期待できるので、テーブルの全てのレコードのフィールドの値を単位変換する場合に比べ、VLの各エントリに登録されている値の単位変換は高速に完了することができることが期待できる。
【００６９】
よって、効率的にデータを利用できるようにデータベースのデータの単位変換を行うことができる。
【符号の説明】
【００７０】
１…クライアント装置、２…ネットワーク、２…入力装置、３…ネットワークストレージ、３…表示装置、４…データサーバ、４…ストレージ、１３…記憶装置、１４…プロセッサ、１４１…データ取得部、１４２…データ処理部、１４３…インデックス変換部、２００…テーブルＡ、２５０…テーブルＢ、５００…ユニオンテーブル。
【図１】
0006550308.tif 000002
【図２】
0006550308.tif 000003
【図３】
0006550308.tif 000004
【図４】
0006550308.tif 000005
【図５】
0006550308.tif 000006
【図６】
0006550308.tif 000007
【図７】
0006550308.tif 000008
【図８】
0006550308.tif 000009