(57)【要約】【課題】同じ値が登録されているレコードの行を順次提示するロウジャンプ処理を、連続的に高速に実行する。【解決手段】インデックスのSOSの各エントリに、テーブルのレコード番号をレコードに登録されている値順に登録し、ETRSには、レコードに登録されている各値について、当該値が登録されているレコードのレコード番号が登録されているSOSのエントリの範囲を示す値を登録する。ユーザによって選択されたレコードの値が登録されているレコード番号の列を対象レコード番号列として、ETRS 、SOSを参照して求め（ａ）、以降、順方向ジャンプ操作の発生の度に、提示するレコードのレコード番号列を対象レコード番号列中で一つずつ進めていく（ｂ-ｅ）。【選択図】図５
2017045364.tif 000002
【特許請求の範囲】
【請求項１】
１または複数のフィールドよりなるレコードを行とするテーブルを表示する情報処理システムであって、
前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、
前記テーブルの表示上でユーザによって指定された特定のレコードの特定のフィールドの値と同じ値を当該特定のフィールドに持つレコードを、ユーザのジャンプ操作に応答して、順次前記テーブルの表示上で提示するロウジャンプ処理部とを有し、
前記各フィールドに対応するインデックスは、
前記テーブル中での各レコードの順番を表すレコード番号を、レコードの対応するフィールドの値を最優先のキー、レコード番号を前記値の次に優先されるキーとしソートした順番で登録したソート済レコード番号リストと、
前記テーブルのレコードの対応するフィールドの値として用いられている値の各々について、当該値を対応するフィールドに持つレコードのレコード番号が登録されている、前記ソート済レコード番号リスト中の順位の範囲を示す範囲情報とを含み、
前記ロウジャンプ処理部は、
前記ユーザによって指定された特定のフィールドに対応するインデックスの前記範囲情報を参照して、前記ユーザによって指定された特定のレコードの特定のフィールドの値を対応するフィールドの値として持つレコードのレコード番号が登録されている、前記特定のフィールドに対応するインデックスの前記ソート済レコード番号リスト中の順位の範囲を求めて、求めた前記ソート済レコード番号リスト中の順位の範囲中のレコード番号列を対象レコード番号列に設定すると共に、当該対象レコード番号列中の前記ユーザによって指定された特定のレコードのレコード番号の順位を対象順位に設定する対象レコード番号列設定手段と、
ユーザのジャンプ操作が発生する度に、前記対象レコード番号列中で対象順位を一つ増加もしくは減少すると共に、前記対象レコード番号列の前記対象順位に登録されているレコード番号のレコードを前記テーブルの表示上で提示する提示レコード更新手段とを有することを特徴とする情報処理システム。
【請求項２】
１または複数のフィールドよりなるレコードを行とするテーブルを複数連結したテーブルであるユニオンテーブルを表示する情報処理システムであって、
前記テーブルの各々に対応して設けられたインデックスセットを記憶する記憶手段と、
前記テーブルの表示上でユーザによって指定された特定のレコードの特定のフィールドの値と同じ値を当該特定のフィールドに持つレコードを、ユーザのジャンプ操作に応答して、順次前記ユニオンテーブルの表示上で提示するロウジャンプ処理部とを有し、
前記インデックスセットは、対応するテーブルの各フィールドの各々に対応して設けられたインデックスを含み、
前記各フィールドに対応する前記インデックスは、
当該インデックスが含まれるインデックスセットに対応するテーブル中での各レコードの順番を表すレコード番号を、レコードの対応するフィールドの値を最優先のキー、レコード番号を前記値の次に優先されるキーとしソートした順番で登録したソート済レコード番号リストと、
当該インデックスが含まれるインデックスセットに対応するテーブルのレコードの対応するフィールドの値として用いられている値の各々について、当該値が登録されているレコードのレコード番号が登録されている前記ソート済レコード番号リスト中の順位の範囲を示す範囲情報とを含み、
前記ロウジャンプ処理部は、
表示しているユニオンテーブルに含まれる各テーブルに対応する各インデックスセットの前記ユーザによって指定された特定のフィールドに対応するインデックスの各々について、前記範囲情報を参照して、前記ユーザによって指定された特定のレコードの特定のフィールドの値を持つレコードのレコード番号が登録されている、前記ソート済レコード番号リスト中の順位の範囲を求め、求めた前記ソート済レコード番号リスト中の順位の範囲中のレコード番号列を部分対象レコード番号列に設定すると共に、前記インデックスの各々について設定した部分対象レコード番号列を、当該インデックスが含まれるインデックスセットに対応するテーブルの前記ユニオンテーブル中の順番と同順に連結して対象レコード番号列に設定すると共に、当該対象レコード番号列中の、前記ユーザによって指定された特定のレコードに対応するレコード番号の順位を対象順位に設定する対象レコード番号列設定手段と、
ユーザのジャンプ操作が発生する度に、前記対象レコード番号列中で対象順位を一つ増加もしくは減少すると共に、当該レコード番号を含む部分対象レコード番号列を求めたインデックスが含まれるインデックスセットに対応するテーブルの、前記対象レコード番号列の前記対象順位に登録されているレコード番号のレコードを前記ユニオンテーブルの表示上で提示する提示レコード更新手段とを有することを特徴とする情報処理システム。
【請求項３】
１または複数のフィールドよりなるレコードを行とするテーブルを表示する情報処理システムであって、
前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、
前記テーブルの表示上でユーザによって指定された特定のレコードの複数の特定のフィールドの値と同じ値を当該複数の特定のフィールドに持つレコードを、ユーザのジャンプ操作に応答して、順次前記テーブルの表示上で提示するロウジャンプ処理部とを有し、
前記各フィールドに対応するインデックスは、
前記テーブル中での各レコードの順番を表すレコード番号を、レコードの対応するフィールドの値を最優先のキー、レコード番号を前記値の次に優先されるキーとしソートした順番で登録したソート済レコード番号リストと、
前記テーブルのレコードの対応するフィールドの値として用いられている値の各々について、当該値を対応するフィールドに持つレコードのレコード番号が登録されている、前記ソート済レコード番号リスト中の順位の範囲を示す範囲情報とを含み、
前記ロウジャンプ処理部は、
前記ユーザによって指定された複数の特定のフィールドに対応するインデックスの各々について、前記範囲情報を参照して、前記ユーザによって指定された特定のレコードの特定のフィールドの値を対応するフィールドの値として持つレコードのレコード番号が登録されている、前記ソート済レコード番号リスト中の順位の範囲を求め、求めた前記ソート済レコード番号リスト中の順位の範囲中のレコード番号列を仮対象レコード番号列として、前記インデックスの各々について設定した仮対象レコード番号列の全てに含まれるレコード番号をレコード番号順に順位づけした列を対象レコード番号列に設定すると共に、当該対象レコード番号列中の前記ユーザによって指定された特定のレコードのレコード番号の順位を対象順位に設定する対象レコード番号列設定手段と、
ユーザのジャンプ操作が発生する度に、前記対象レコード番号列中で対象順位を一つ増加もしくは減少すると共に、前記対象レコード番号列の前記対象順位に登録されているレコード番号のレコードを前記テーブルの表示上で提示する提示レコード更新手段とを有することを特徴とする情報処理システム。
【請求項４】
請求項１、２または３記載の情報処理システムであって、
前記範囲情報は、前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、前記値リストの各エントリに対応するエントリを有するポインタリストを有し、
前記ポインタリストの各エントリには、当該エントリに対応する前記値リストのエントリに登録されている値が登録されているレコードのレコード番号が登録されている前記ソート済レコード番号リスト中の範囲の末尾の順位を算定可能な値が登録されていることを特徴とする情報処理システム。
【請求項５】
コンピュータによって読み取られ実行されるコンピュータプログラムであって、
当該コンピュータプログラムは前記コンピュータを、請求項１、２、３または４記載の情報処理システムとして機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テーブル形式のデータを表示する技術に関するものである。
【背景技術】
【０００２】
データを表示する技術としては、Ｂ−Ｔｒｅｅやハッシュなどのインデックスを設け、インデックスを用いて、データベースのデータを検索して表示する技術が知られている（例えば、特許文献１、２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７-２５７３５号公報
【特許文献２】特開平６-３３５１６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
レコードを行とするテーブルを表示している状態で、ユーザのジャンプ操作に応じて、選択状態にある行のレコードと同じ値が登録されているレコードの行のうちの、当該選択状態にある行に前方または後方に直近のレコードの行に選択状態とする行を切り替えると共に、選択状態の行を強調表示するロウジャンプ処理を行う場合、ユーザのジャンプ操作の発生の度に、上述したＢ−Ｔｒｅｅやハッシュなどのインデックスを用いて、選択状態にある行のレコードと同じ値が登録されているレコードを検索し、検索したレコードのうちから選択状態にある行に前方または後方に直近の行のレコードを算定し、表示中のテーブル中の算定したレコードの行を選択状態に設定する処理を繰り返すこととなるため、連続的なロウジャンプ処理を高速に行うことが困難である。
【０００５】
そこで、本発明は、レコードを行とするテーブルを格納したデータベースからテーブルを読み出して表示している状態で、ユーザのジャンプ操作に応じて、同じ値が登録されているレコードの行を順次提示するロウジャンプ処理を、連続的に高速に実行することを課題とする。
【課題を解決するための手段】
【０００６】
前記課題達成のために、本発明は、１または複数のフィールドよりなるレコードを行とするテーブルを表示する情報処理システムに、前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、前記テーブルの表示上でユーザによって指定された特定のレコードの特定のフィールドの値と同じ値を当該特定のフィールドに持つレコードを、ユーザのジャンプ操作に応答して、順次前記テーブルの表示上で提示するロウジャンプ処理部とを設けたものである。ここで、前記各フィールドに対応するインデックスは、
前記テーブル中での各レコードの順番を表すレコード番号を、レコードの対応するフィールドの値を最優先のキー、レコード番号を前記値の次に優先されるキーとしソートした順番で登録したソート済レコード番号リストと、前記テーブルのレコードの対応するフィールドの値として用いられている値の各々について、当該値を対応するフィールドに持つレコードのレコード番号が登録されている、前記ソート済レコード番号リスト中の順位の範囲を示す範囲情報とを含んでいる。また、前記ロウジャンプ処理部は、前記ユーザによって指定された特定のフィールドに対応するインデックスの前記範囲情報を参照して、前記ユーザによって指定された特定のレコードの特定のフィールドの値を対応するフィールドの値として持つレコードのレコード番号が登録されている、前記特定のフィールドに対応するインデックスの前記ソート済レコード番号リスト中の順位の範囲を求めて、求めた前記ソート済レコード番号リスト中の順位の範囲中のレコード番号列を対象レコード番号列に設定すると共に、当該対象レコード番号列中の前記ユーザによって指定された特定のレコードのレコード番号の順位を対象順位に設定する対象レコード番号列設定手段と、ユーザのジャンプ操作が発生する度に、前記対象レコード番号列中で対象順位を一つ増加もしくは減少すると共に、前記対象レコード番号列の前記対象順位に登録されているレコード番号のレコードを前記テーブルの表示上で提示する提示レコード更新手段とを備えている。
【０００７】
また、本発明は、前記課題達成のために、１または複数のフィールドよりなるレコードを行とするテーブルを複数連結したテーブルであるユニオンテーブルを表示する情報処理システムに、前記テーブルの各々に対応して設けられたインデックスセットを記憶する記憶手段と、前記テーブルの表示上でユーザによって指定された特定のレコードの特定のフィールドの値と同じ値を当該特定のフィールドに持つレコードを、ユーザのジャンプ操作に応答して、順次前記ユニオンテーブルの表示上で提示するロウジャンプ処理部とを備えたものである。ここで、前記インデックスセットは、対応するテーブルの各フィールドの各々に対応して設けられたインデックスを含む。また、前記各フィールドに対応する前記インデックスは、当該インデックスが含まれるインデックスセットに対応するテーブル中での各レコードの順番を表すレコード番号を、レコードの対応するフィールドの値を最優先のキー、レコード番号を前記値の次に優先されるキーとしソートした順番で登録したソート済レコード番号リストと、当該インデックスが含まれるインデックスセットに対応するテーブルのレコードの対応するフィールドの値として用いられている値の各々について、当該値が登録されているレコードのレコード番号が登録されている前記ソート済レコード番号リスト中の順位の範囲を示す範囲情報とを含んでいる。そして、前記ロウジャンプ処理部は、表示しているユニオンテーブルに含まれる各テーブルに対応する各インデックスセットの前記ユーザによって指定された特定のフィールドに対応するインデックスの各々について、前記範囲情報を参照して、前記ユーザによって指定された特定のレコードの特定のフィールドの値を持つレコードのレコード番号が登録されている、前記ソート済レコード番号リスト中の順位の範囲を求め、求めた前記ソート済レコード番号リスト中の順位の範囲中のレコード番号列を部分対象レコード番号列に設定すると共に、前記インデックスの各々について設定した部分対象レコード番号列を、当該インデックスが含まれるインデックスセットに対応するテーブルの前記ユニオンテーブル中の順番と同順に連結して対象レコード番号列に設定すると共に、当該対象レコード番号列中の、前記ユーザによって指定された特定のレコードに対応するレコード番号の順位を対象順位に設定する対象レコード番号列設定手段と、ユーザのジャンプ操作が発生する度に、前記対象レコード番号列中で対象順位を一つ増加もしくは減少すると共に、当該レコード番号を含む部分対象レコード番号列を求めたインデックスが含まれるインデックスセットに対応するテーブルの、前記対象レコード番号列の前記対象順位に登録されているレコード番号のレコードを前記ユニオンテーブルの表示上で提示する提示レコード更新手段と備えている。
【０００８】
また、前記課題達成のために、本発明は、１または複数のフィールドよりなるレコードを行とするテーブルを表示する情報処理システムに、前記各フィールドの各々に対応して設けられたインデックスを記憶する記憶手段と、前記テーブルの表示上でユーザによって指定された特定のレコードの複数の特定のフィールドの値と同じ値を当該複数の特定のフィールドに持つレコードを、ユーザのジャンプ操作に応答して、順次前記テーブルの表示上で提示するロウジャンプ処理部と設けたものである。ここで、前記各フィールドに対応するインデックスは、前記テーブル中での各レコードの順番を表すレコード番号を、レコードの対応するフィールドの値を最優先のキー、レコード番号を前記値の次に優先されるキーとしソートした順番で登録したソート済レコード番号リストと、前記テーブルのレコードの対応するフィールドの値として用いられている値の各々について、当該値を対応するフィールドに持つレコードのレコード番号が登録されている、前記ソート済レコード番号リスト中の順位の範囲を示す範囲情報とを含んでいる。また、前記ロウジャンプ処理部は、前記ユーザによって指定された複数の特定のフィールドに対応するインデックスの各々について、前記範囲情報を参照して、前記ユーザによって指定された特定のレコードの特定のフィールドの値を対応するフィールドの値として持つレコードのレコード番号が登録されている、前記ソート済レコード番号リスト中の順位の範囲を求め、求めた前記ソート済レコード番号リスト中の順位の範囲中のレコード番号列を仮対象レコード番号列として、前記インデックスの各々について設定した仮対象レコード番号列の全てに含まれるレコード番号をレコード番号順に順位づけした列を対象レコード番号列に設定すると共に、当該対象レコード番号列中の前記ユーザによって指定された特定のレコードのレコード番号の順位を対象順位に設定する対象レコード番号列設定手段と、ユーザのジャンプ操作が発生する度に、前記対象レコード番号列中で対象順位を一つ増加もしくは減少すると共に、前記対象レコード番号列の前記対象順位に登録されているレコード番号のレコードを前記テーブルの表示上で提示する提示レコード更新手段とを備えている。
【０００９】
ここで、以上の情報処理システムにおいて、前記範囲情報を、前記テーブルのレコードの対応するフィールドの値として用いられている値を各エントリに登録した値リストと、前記値リストの各エントリに対応するエントリを有するポインタリストを有するものとし、前記ポインタリストの各エントリに、当該エントリに対応する前記値リストのエントリに登録されている値が登録されているレコードのレコード番号が登録されている前記ソート済レコード番号リスト中の範囲の末尾の順位を算定可能な値を登録するようにしてもよい。
【００１０】
以上のような情報処理システムによれば、インデックスを用いて、容易に、ユーザによって指定された特定のレコードの特定のフィールドの値と同じ値を当該特定のフィールドに持つレコードのレコード番号の列である対象レコード番号列を取得することができる。そして、一旦、対象レコード番号列を取得した後は、ジャンプ操作の発生の度に、対象レコード番号列中で順位を一つずつ増加または減少するだけで、ジャンプ操作に応答して、次に提示するレコードのレコード番号を高速に得ることができるようになる。
【００１１】
よって、ユーザのジャンプ操作に応じて、同じ値が登録されているレコードの行を順次提示するロウジャンプ処理を、連続的に高速に実行することができるようになる。
【発明の効果】
【００１２】
以上のように、本発明によれば、レコードを行とするテーブルを格納したデータベースからテーブルを読み出して表示している状態で、レコードを行とするテーブルを格納したデータベースからテーブルを読み出して表示している状態で、ユーザのジャンプ操作に応じて、同じ値が登録されているレコードの行を順次提示するロウジャンプ処理を、連続的に高速に実行することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係る情報処理システムの構成を示すブロック図である。
【図２】本発明の第１実施形態に係るテーブルデータセットを示す図である。
【図３】本発明の第１実施形態に係るロウジャンプ処理例を示す図である。
【図４】本発明の第１実施形態に係るロウジャンプ処理を示すフローチャートである。
【図５】本発明の第１実施形態に係るロウジャンプ処理の動作を示す図である。
【図６】本発明の第１実施形態に係るユニオンテーブルロウジャンプ処理の動作を示す図である。
【図７】本発明の第２実施形態に係るロウジャンプ処理の動作を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明に係る情報処理システムの実施形態について説明する。
まず、第１の実施形態について説明する。
図１に、本第１実施形態に係る情報処理システムの構成を示す。
図示するように、情報処理システムは、プロセッサ１と入力装置２と表示装置３と１つまたは複数のストレージ４とより構成される。
また、プロセッサ１は、関係演算処理部１１とテーブル表示処理部１２とを備えている。
ここで、プロセッサ１は、たとえば、ＣＰＵと、メモリと、各種周辺デバイスとを備えた汎用のコンピュータであり、関係演算処理部１１とテーブル表示処理部１２とは、コンピュータが所定のプログラムを実行することにより実現されるコンピュータの機能として実装される。
【００１５】
次に、ストレージ４には、RDB（Relational Database）のテーブルと、当該テーブルのインデックスのセットであるインデックスセットとが格納される。ここで、便宜上、このテーブルと当該テーブルのインデックスセットとをまとめてテーブルデータセットと呼ぶこととして、各ストレージ４にはテーブルデータセットが一つまたは複数格納されている。
【００１６】
ここで、ストレージ４は、プロセッサ１に接続された外部ストレージであっても、プロセッサ１がネットワーク５を介してアクセスするネットワークストレージやデータサーバであってもよい。また、一つのテーブルデータセットが複数のストレージ４に分散配置されるものであってもよい。
【００１７】
次に、図２に、各ストレージ４に格納されるテーブルデータセットを示す。
図２ａは、テーブルＡ２００のテーブルデータセットを、図２ｂは、テーブルＢ２５０のテーブルデータセットを表したものである。
図示するように、テーブルＡ２００のテーブルデータセットに含まれるテーブルＡ２００は、複数のフィールド（図２ａでは、GenderとAge）を持つレコードを行とする表であり、各レコードにはテーブル２００中の当該レコードの行の（図２ａでは、0から7の）順位を示すレコード番号が付与されている。
【００１８】
また、図２ａに示すように、テーブルＡ２００のテーブルデータセットに含まれるインデックスセット２１０は、テーブルＡ２００のレコードのフィールド毎に設けられたインデックスより構成される。図２ａでは、テーブルＡ２００のレコードのフィールドは、GenderとAgeであるので、Genderのインデックス２１１と、Ageのインデックス２１２がインデックスセットに含まれる。
【００１９】
また、テーブルＢ２５０についても同様であり、図２ｂに示すように、テーブルＢ２５０のテーブルデータセットには、テーブルＢ２５０と、テーブルＢ２５０のインデックスセット２６０が含まれ、テーブルＢ２５０のインデックスセット２６０にはGenderのインデックス２６１と、Ageのインデックス２６２が含まれる。
【００２０】
そして、各インデックスは、VNo、VL、ETRS、SOSのデータよりなる。
VLは、対応するテーブルの対応するフィールドの値として用いられている値を所定の基準でソートして各エントリに登録したリストである。
すなわち、たとえば、図２ａに示すテーブルＡ２００のテーブルデータセットのインデックスセット２１０のGenderのインデックス２１１であれば、テーブルＡ２００のGenderのフィールドに登録されているのはFとMのみであるので、VLは、Fを登録したエントリとMを登録したエントリよりなるリストとなる。
【００２１】
次に、VNoは、対応するテーブルのレコード数と同数のエントリよりなるリストであり、VNoのn番目のエントリには、対応するテーブルのレコード番号nのレコードの対応するフィールドの値が登録されているVLのエントリのVL中の順位を示す値が登録される。
【００２２】
すなわち、たとえば、図２ａに示すテーブルＡ２００のテーブルデータセットのインデックスセット２１０のGenderのインデックス２１１であれば、テーブルＡ２００のレコード番号３のレコードのGenderのフィールドの値はFであり、Fが登録されているVLのエントリの順位は0であるので、VNoの３番目のエントリには0が登録される。また、同様に、テーブルＡ２００のレコード番号５のレコードのGenderのフィールドの値はMであり、Mが登録されているVLのエントリの順位は1であるので、VNoの５番目のエントリには1が登録される。
【００２３】
次に、SOSは、対応するテーブルのレコード数と同数のエントリよりなるリストであり、SOSの各エントリには、対応するテーブルの各レコードのレコード番号が、レコードの対応するフィールドの値が登録されているVLのエントリの順位を最優先のキー、レコード番号をその次に優先されるキーとしてソートされた状態で登録されている。すなわち、VLのより順位が上位のエントリに登録されている値を対応するフィールドに持つレコードのレコード番号は、SOSのより上位のエントリに登録される。また、同じ値を対応するフィールドに持つレコード同士においては、レコード番号がより小さいレコードのレコード番号が、SOSのより上位のエントリに登録される。
【００２４】
すなわち、たとえば、図２ａに示すテーブルＡ２００のテーブルデータセットのインデックスセット２１０のGenderのインデックス２１１であれば、VLにF、Mの順にGenderのフィールドの値が登録されているので、テーブルＡ２００のGenderのフィールドの値としてFを持つレコードのレコード番号1,3,4,6,7は、Genderのフィールドの値としてMを持つレコードのレコード番号0,2,5よりも上位のSOSのエントリに登録される。また、Genderのフィールドの値としてFを持つレコードのレコード番号1,3,4,6,7は、レコード番号に従って当該順序でSOSの先頭のエントリから順次各エントリに登録され、Genderのフィールドの値としてMを持つレコードのレコード番号0,2,5は、レコード番号に従って当該順序で、SOSのGenderのフィールドの値としてFを持つレコードのレコード番号1,3,4,6,7のエントリより後のエントリに順次登録される。
【００２５】
次に、ETRSは、VLのエントリと同数のエントリを備え、各エントリは、当該エントリのETRS 中の順位と等しいVL中の順位のVLのエントリに登録されている値を対応するフィールドの値として持つ対応するテーブルのレコードのレコード番号が登録されているSOSのエントリの内の順位が最も下位のSOS中のエントリのSOS中の順位の次の順位が登録される。
【００２６】
すなわち、たとえば、図２ａに示すテーブルＡ２００のテーブルデータセットのインデックスセット２１０のGenderのインデックス２１１であれば、ETRSの２番目のエントリには、VLの２番目のエントリに登録されているMをGenderのフィールドに持つテーブルＡ２００のレコードのレコード番号0,2,5が登録されているSOSのエントリの内の最も下位のSOS中のエントリの順位は7であるので、8が登録される。
【００２７】
したがって、VNoのn番目のエントリの値は、対応するテーブルのレコード番号nのレコードの対応するフィールドの値が登録されているVLのエントリのVL中の順位を表すと共に、ETRSのエントリの順位も表すものとなる。VNoのn番目のエントリの値が表すETRSのエントリの順位は、対応するテーブルのレコード番号nのレコードの対応するフィールドの値を対応するフィールドの値として持つレコードのレコード番号が登録されているSOSのエントリの最も下位の順位の次の順位が登録されているETRSのエントリの順位である。
【００２８】
ここで、このようなインデックスによれば、VNoとVLより、対応するテーブルのレコード番号から、そのレコード番号のレコードの対応するフィールドの値を求めることができる。また、VLとETRSとSOSから、対応するテーブルの対応するフィールドの値より、その値を対応するフィールドの値として持つ対応するテーブルのレコードのレコード数やレコード番号を求めることができる。
【００２９】
したがって、VNoとVLとETRSとSOSより、対応するテーブルのレコード番号より、そのレコード番号のレコードの対応するフィールドと値が等しい、対応するテーブルのレコードのレコード数やレコード番号を求めることができる。
【００３０】
さて、図１に戻り、プロセッサ１の関係演算処理部１１は、図２に示したインデックスデータセットの各インデックスを適宜用いて、レコード番号やフィールドの値をキーとするレコードの検索や、複数のテーブルのJOINやUNIONなどの結合処理などを行う。
【００３１】
一方、プロセッサ１のテーブル表示処理部１２は、図３ａ１に示すようにユーザから表示を指示されたテーブル（テーブルデータセットに含まれるテーブルや関係演算処理部１１が結合処理で生成したテーブル）を表示装置３に表示し、ユーザが入力装置２を用いて指定したフィールドを選択状態とし、選択状態としたフィールドと当該フィールドを含む行を強調表示する。
【００３２】
そして、特定の行のレコードの特定のフィールドが選択状態にあって、選択状態にあるフィールド３００と当該フィールド３００を含む行が強調表示されているときに、ユーザから、順方向ジャンプ操作、または、逆方向ジャンプ操作を受け付けたときに、テーブル表示処理部１２はロウジャンプ処理を行う。ここで、順方向ジャンプ操作は、たとえば、入力装置２の下矢印キーの押し下げにより受け付け、逆方向ジャンプ操作は、たとえば、入力装置２の上矢印キーの押し下げにより受け付ける。
【００３３】
さて、テーブル表示処理部１２は、ユーザから順方向ジャンプ操作を受け付けたときに、ロウジャンプ処理において、図３ａ1＞図３ａ２、図３ａ２＞図３ａ３に示すように、選択状態にあるフィールド３００の値と同じ値を同じフィールドに持つレコードのうちの、選択状態にあるフィールド３００が含まれる行に下方向に直近の行のレコードの、選択状態にあるフィールド３００と同じフィールドに、選択状態とするフィールドを更新し、選択状態にあるフィールドと当該フィールドを含む行を強調表示する。
【００３４】
また、テーブル表示処理部１２は、ユーザから逆方向ジャンプ操作を受け付けたときに、ロウジャンプ処理において、図３ａ３＞図３ａ２、図３ａ２＞図３ａ１に示すように、選択状態にあるフィールド３００の値と同じ値を同じフィールドに持つレコードのうちの、選択状態にあるフィールドが含まれる行に上方向に直近の行のレコードの、選択状態にあるフィールド３００と同じフィールドに、選択状態とするフィールド３００を更新し、選択状態にあるフィールドと当該フィールドを含む行を強調表示する。
【００３５】
ただし、以上のロウジャンプ処理は、次のように行うようにしてもよい。
すなわち、プロセッサ１のテーブル表示処理部１２は、図３ｂ１に示すようにユーザから表示を指示されたテーブル上に所定数の行を含む表示対象行範囲３０１を設定し、図３ｂ２に示すようにテーブルの表示対象行範囲３０１を表示装置３に表示する処理を行う。また、テーブル表示処理部１２は、表示対象行範囲３０１をユーザのスクロール操作に応じて上下に移動する処理や、ユーザが入力装置２を用いて指定したフィールドを選択状態とし、選択状態としたフィールド３００と当該フィールド３００を含む行を強調表示する処理を行う。
【００３６】
そして、特定の行のレコードの特定のフィールドが選択状態にあって、当該選択状態にあるフィールドと当該フィールドを含む行が強調表示されているときに、下矢印キーでユーザの順方向ジャンプ操作、または、上矢印キーで逆方向ジャンプ操作を受け付けたときに、テーブル表示処理部１２はロウジャンプ処理を行う。
【００３７】
また、テーブル表示処理部１２は、ユーザから順方向ジャンプ操作を受け付けたときに、ロウジャンプ処理において、図３ｃ1＞図３ｃ２、図３ｃ２＞図３ｃ３に示すように、選択状態にあるフィールド３００の値と同じ値を同じフィールドに持つレコードのうちの、選択状態にあるフィールド３００が含まれる行に下方向に直近の行のレコードの、選択状態にあるフィールド３００と同じフィールドに、選択状態とするフィールド３００を更新し、選択状態にあるフィールド３００が表示対象行範囲３０１の中央の行となるように、表示対象行範囲３０１を移動すると共に、表示装置３の表示を更新後の表示対象行範囲３０１の行が表示されるように更新した上で、選択状態にあるフィールド３０と当該フィールド３００を含む行を強調表示する。
【００３８】
また、テーブル表示処理部１２は、ユーザから逆方向ジャンプ操作を受け付けたときに、ロウジャンプ処理において、図３ｃ３＞図３ｃ２、図３ｃ２＞図３ｃ１に示すように、選択状態にあるフィールド３００の値と同じ値を同じフィールドに持つレコードのうちの、選択状態にあるフィールド３００が含まれる行に上方向に直近の行のレコードの、選択状態にあるフィールド３００と同じフィールドに、選択状態とするフィールド３００を更新し、選択状態にあるフィールド３００が表示対象行範囲３０１の中央の行となるように、表示対象行範囲３０１を移動すると共に、表示装置３の表示を更新後の表示対象行範囲３０１の行が表示されるように更新した上で、選択状態にあるフィールド３００と当該フィールド３００を含む行を強調表示する。
【００３９】
以下、このようなテーブル表示処理部１２が行うロウジャンプ処理の詳細について説明する。
まず、テーブルデータセットに含まれるテーブルを単一で表示しているときに行うロウジャンプ処理について説明する。
図４に、テーブルデータセットに含まれるテーブルを単一で表示しているときに行うロウジャンプ処理の手順を示す。
図示するように、ユーザのジャンプ操作が発生して、ロウジャンプ処理を開始したならば、テーブル表示処理部１２は、まず、表示しているテーブルを指定テーブルとして、選択状態にあるフィールドが属するレコードのレコード番号を指定レコード番号として、選択状態にあるフィールドを指定フィールドとして取得する（ステップ４０２）。
次に、指定テーブルのテーブルデータセットの指定フィールドのインデックスを参照して、指定レコード番号のレコードの指定フィールドの値と同じ値を指定フィールドに持つ指定テーブルのレコードの、レコード番号順にソートされたレコード番号の列を対象レコード番号列として取得する（ステップ４０４）。
【００４０】
ここで、ステップ４０４では、以下のようにして対象レコード番号列を取得する。
すなわち、いま、指定テーブルがテーブルＡ２００であり、指定レコード番号が３であり、指定フィールドがGenderである場合について図５ａに示すように、対象レコード番号列の取得においては、テーブルＡ２００（指定テーブル）のテーブルデータセットに含まれるGenderのフィールド（指定フィールド）のインデックス２１１のVNoの指定レコード番号に一致する順位のエントリに登録されているETRSの順位を取得し、ETRSの取得した順位のエントリに登録されている順位の一つ前の順位を末尾順位、ETRSの取得した順位の一つ前の順位のエントリに登録されている順位を先頭順位として、SOSの先頭順位のエントリから末尾順位のエントリまでの間の各エントリに登録されているレコード番号の列を対象レコード番号列５０１とする。
【００４１】
なお、ETRSの取得した順位の一つ前の順位のエントリが存在しない場合には、0をETRSの取得した順位の一つ前の順位のエントリに登録されている順位として算定する。
次に、対象レコード番号列として取得したならば（ステップ４０４）、対象レコード番号列５０１中の指定レコード番号列の順位をp、対象レコード番号列５０１に含まれるレコード番号の数をmとする（ステップ４０６）。
【００４２】
そして、発生したジャンプ操作が順方向ジャンプ操作であったかどうかを調べ（ステップ４０８）、順方向ジャンプ操作であれば、pがmと等しいかどうか、すなわち、対象レコード番号列５０１のp番目のレコード番号が対象レコード番号列５０１の最後のレコード番号であるかどうかを調べ（ステップ４１０）、pがmと等しくなければ、pを１増加し（ステップ４１２）、対象レコード番号列５０１のp番目のレコード番号のレコードの指定フィールドに、選択状態とするフィールド５００を更新する（ステップ４１４）。
【００４３】
また、選択状態のフィールドの更新に伴う表示の更新を行う（ステップ４１６）。ここで、ステップ４１６では、図３ａ１-ａ３に示したように強調表示する選択状態のフィールド及び当該フィールドを含む行の更新や、図３ｃ１-ｃ３に示したような表示対象行範囲の更新、及び、強調表示する選択状態のフィールド及び当該フィールドを含む行の更新を行う。
【００４４】
そして、ユーザの新たなジャンプ操作の発生（ステップ４１８）と、ユーザの、選択状態にあるフィールド以外のフィールドの選択操作などの選択状態にあるフィールドの選択状態を解除する操作の発生（ステップ４２０）とを監視し、ユーザの新たなジャンプ操作が発生したならば（ステップ４１８）、ステップ４０８からの処理に戻る。
【００４５】
一方、ユーザの選択状態にあるフィールドの選択状態を解除する操作が発生した場合には（ステップ４２０）、ロウジャンプ処理を終了する。
一方、ステップ４１０で、pがmと等しいと判定された場合には、pを１に設定し（ステップ４２２）、対象レコード番号列５０１のp番目のレコード番号、すなわち、対象レコード番号列５０１の最初のレコード番号のレコードの指定フィールドに、選択状態とするフィールド５００を更新し（ステップ４１４）、選択状態のフィールドの更新に伴う表示の更新を行う（ステップ４１６）。そして、上述したステップ４１８以降の処理に進む。
【００４６】
また、ステップ４０８で発生したジャンプ操作が順方向ジャンプ操作でない、すなわち、発生したジャンプ操作が逆方向ジャンプ操作であると判定された場合には、pが1と等しいかどうか、すなわち、対象レコード番号列５０１のp番目のレコード番号が対象レコード番号列５０１の先頭のレコード番号であるかどうかを調べ（ステップ４２４）、pが１と等しくなければ、pを１減少し（ステップ４２６）、対象レコード番号列５０１のp番目のレコード番号の指定フィールドに、選択状態とするフィールド５００を更新し（ステップ４１４）、選択状態のフィールドの更新に伴う表示の更新を行う（ステップ４１６）。そして、上述したステップ４１８以降の処理に進む。
【００４７】
一方、pが１と等しければ（ステップ４２４）、pをmに設定し（ステップ４２８）、対象レコード番号列５０１のm番目のレコード番号、すなわち、対象レコード番号列５０１の最後のレコード番号のレコードの指定フィールドに、選択状態とするフィールド５００を更新し（ステップ４１４）、選択状態のフィールドの更新に伴う表示の更新を行う（ステップ４１６）。そして、上述したステップ４１８以降の処理に進む。
【００４８】
以上、テーブルデータセットに含まれるテーブルを単一で表示しているときに行うロウジャンプ処理について説明した。なお、以上では、ユーザの最初のジャンプ操作が発生してから対象レコード番号列の算定を開始したが、これは、ユーザの指定によりフィールドが選択状態となった時点で、対象レコード番号列の算定を開始しておくようにしてよい。
【００４９】
以上のようなロウジャンプ処理によれば、図５ａに示したようにインデックスを利用して、ユーザから指定されたレコードのユーザから指定されたフィールドの値と同じ値を同じフィールドに持つレコードのレコード番号の、レコード番号順にソートされた列である対象レコード番号列５０１を、ユーザによって指定されたレコードのレコード番号より容易に取得することができる。また、図５ａに示したように、一旦、対象レコード番号列５０１を取得した後は、順方向ジャンプ操作に対しては、図５ｂ、ｃに示すように、対象レコード番号列５０１中から抽出するレコード番号の位置を一つ進め、逆方向ジャンプ操作に対しては、図５ｄ、ｅに示すように、対象レコード番号列５０１中から抽出するレコード番号の位置を一つ戻すだけで、選択状態とするフィールド５００の属するレコードのレコード番号を容易に対象レコード番号列５０１中から抽出して設定することができる。
【００５０】
ところで、以上のロウジャンプ処理は、巡回的な選択状態とするフィールドの設定を行わない場合には、ステップ４１０でpがmと等しいと判定された場合にはステップ４１８に進み、ステップ４２４でpが1と等しいと判定された場合にはステップ４１８に進む処理としてもよい。
【００５１】
次に、異なるテーブルデータセットに含まれる複数のテーブルを連結（UNION）したテーブルをユニオンテーブルと呼ぶこととして、当該ユニオンテーブルを表示しているときにテーブル表示処理部１２が行うロウジャンプ処理について説明する。
【００５２】
ユニオンテーブルを表示しているときに行うロウジャンプ処理は、ステップ４０２の指定テーブル、指定レコード番号、指定フィールドの取得法と、ステップ４０４の対象レコード番号列の取得法と、ステップ４１４を除き、図４に示したロウジャンプ処理と同様である。
【００５３】
すなわち、テーブル表示処理部１２は、ユニオンテーブルを表示しているときのロウジャンプ処理では、ステップ４０２とステップ４０４とステップ４１４を以下のように行う。
すなわち、まず、ステップ４０２では、表示しているユニオンテーブルに含まれるテーブルのうちの、選択状態にあるフィールドが属するレコードが属するテーブルを指定テーブルとして、選択状態にあるフィールドが属するレコードの指定テーブル中でのレコード番号を指定レコード番号として、選択状態にあるフィールドを指定フィールドとして取得する。
【００５４】
そして、次に、ステップ４０４では、ユニオンテーブルに含まれる各テーブルのテーブルデータセットの指定フィールドのインデックスを参照して、指定フィールドの値と同じ値を指定フィールドに持つ指定テーブルのレコードの、レコード番号順にソートされたレコード番号の列を部分対象レコード番号列として取得し、取得した部分対象レコード番号列を、対応するテーブルのユニオンテーブル中での順序と同じ順序で連結して対象レコード番号列とする。
【００５５】
ここで、より具体的には、ステップ４０４では、以下のようにして対象レコード番号列を取得する。
すなわち、いま、図６ａに示したように、ユニオンテーブル６０がテーブルＡ２００とテーブルＢ２５０とを、テーブルＡ２００、テーブルＢ２５０の順序で連結したものであり、選択状態にあるフィールド６００が属するレコードが属するテーブルである指定テーブルがテーブルＡ２００であり、指定レコード番号が２であり、指定フィールドがGenderである場合には、まず、テーブルＡ２００（指定テーブル）のテーブルデータセットに含まれるGenderのフィールド（指定フィールド）のインデックス２１１のVNoの指定レコード番号に一致する順位のエントリに登録されているETRSの順位を取得し、ETRSの取得した順位のエントリに登録されている順位の一つ前の順位を末尾順位、ETRSの取得した順位の一つ前の順位のエントリに登録されている順位を先頭順位として、SOSの先頭順位のエントリから末尾順位のエントリまでの間の各エントリに登録されているレコード番号の列をテーブルＡ２００の部分対象レコード番号列６０１とする。
【００５６】
また、テーブルＡ２００（指定テーブル）のテーブルデータセットに含まれるGenderのフィールド（指定フィールド）のインデックス２１１のVNoの指定レコード番号に一致する順位のエントリに登録されているVLの順位を取得し、VLの取得した順位のエントリに登録されている値を指定フィールド値として取得する。そして、ユニオンテーブルに含まれる指定テーブル以外のテーブルであるテーブルＢ２５０のテーブルデータセットに含まれるGenderのフィールド（指定フィールド）のインデックス２６１のVLの指定フィールド値が登録されているエントリの順位を探索し、探索した順位と同じ順位のETRSのエントリに登録されている順位の一つ前の順位を末尾順位、ETRSの取得した順位の一つ前の順位のエントリに登録されている順位を先頭順位として、SOSの先頭順位のエントリから末尾順位のエントリまでの間の各エントリに登録されているレコード番号の列をテーブルＢ２５０の部分対象レコード番号列６０２とする。
【００５７】
そして、テーブルＡ２００の部分対象レコード番号列６０１とテーブルＢ２５０の部分対象レコード番号列６０２とを、各テーブルのユニオンテーブル中の順番に従って連結し対象レコード番号列６１０とする。
【００５８】
次に、ユニオンテーブルを表示しているときに行うロウジャンプ処理のステップ４１４では、対象レコード番号列のp番目のレコード番号に対応するユニオンレコード中のレコードの指定フィールドに、選択状態とするフィールドを更新するようにする。ここで、対象レコード番号列のp番目のレコード番号に対応するユニオンレコード中のレコードとは、対象レコード番号列のp番目のレコード番号が含まれる部分対象レコード番号列を算定したインデックスに対応するテーブルの、当該レコード番号のレコードに相当するユニオンテーブル上のレコードである。
【００５９】
以上のように、ユニオンテーブルを対象としてロウジャンプ処理を行うときにも、上述のようにユニオンテーブルに含まれる各テーブルについてインデックスを用いて部分対象レコード列を算出し、算出した部分対象レコード列を連結して対象レコード列とすることにより、容易に、対象レコード番号列を設定することができる。また、一旦、対象レコード番号列を取得した後は、順方向ジャンプ操作に対しては、図６ｂ、ｃに示すように、対象レコード番号列６１０中から抽出するレコード番号の位置を一つ進め、逆方向ジャンプ操作に対しては、図６ｃ、ｄに示すように、対象レコード番号列６１０中から抽出するレコード番号の位置を一つ戻すだけで、選択状態とするフィールド６００の属するレコードのレコード番号を容易に対象レコード番号列６１０中から抽出して設定することができる。
【００６０】
以上、本発明の第１実施形態について説明した。
以下、本発明の第２の実施形態について説明する。
本第２実施形態では、以上の第１実施形態では、ロウジャンプ処理において、ユーザから指定された単一のフィールドを選択状態として、選択状態にあるフィールドと同じ値を、選択状態にあるフィールドと同じフィールドに持つレコードを強調表示等により順次提示していたところを、ユーザから複数のフィールドの指定を受け付け、指定された複数のフィールドを選択状態として、選択状態にある複数フィールドと同じ値を、選択状態にある複数フィールドと同じフィールドに持つレコードを強調表示等により順次提示するようにしたものである。
【００６１】
ここで、本第２実施形態は、図４に示したロウジャンプ処理のステップ４０２の指定テーブル、指定レコード番号、指定フィールドの取得法と、ステップ４０４の対象レコード番号列の作成法を除き、第１実施形態と同様である。
【００６２】
すなわち、本第２実施形態では、テーブル表示処理部１２は、テーブルデータセットに含まれるテーブルを単一で表示しているときのロウジャンプ処理では、ステップ４０２とステップ４０４を以下のように行う。
【００６３】
すなわち、ステップ４０２では、まず、表示しているテーブルを指定テーブルとして、選択状態にあるフィールドが属するレコードのレコード番号を指定レコード番号として、選択状態にある各フィールドを指定フィールドとして取得する。
【００６４】
次に、ステップ４０４では、指定テーブルのテーブルデータセットの各指定フィールドのインデックスのそれぞれについて、当該インデックスを参照して、指定フィールドの値と同じ値を指定フィールドに持つ指定テーブルのレコードの、レコード番号順にソートされたレコード番号の列を仮対象レコード番号列として取得する。そして、各インデックスについて取得した仮対象レコード番号列の交差（積集合）を対象レコード番号列として取得する。
【００６５】
ここで、ステップ４０４では、以下のようにして対象レコード番号列を取得する。
すなわち、いま、図７ａに示すように、指定テーブルがテーブルＡ２００であり、指定レコード番号が４であり、指定フィールドがGenderとAgeである場合、対象レコード番号列の取得においては、テーブルＡ２００（指定テーブル）のテーブルデータセットに含まれるGenderのフィールド（指定フィールド）のインデックス２１１のVNoの指定レコード番号に一致する順位のエントリに登録されているETRSの順位を取得し、ETRSの取得した順位のエントリに登録されている順位の一つ前の順位を末尾順位、ETRSの取得した順位の一つ前の順位のエントリに登録されている順位を先頭順位として、SOSの先頭順位のエントリから末尾順位のエントリまでの間の各エントリに登録されているレコード番号の列を仮対象レコード番号列７０１とする。
【００６６】
また、残る指定フィールドであるAgeについても同様に、テーブルＡ２００（指定テーブル）のテーブルデータセットに含まれるAgeのフィールド（指定フィールド）のインデックス２１２のVNoの指定レコード番号に一致する順位のエントリに登録されているETRSの順位を取得し、ETRSの取得した順位のエントリに登録されている順位の一つ前の順位を末尾順位、ETRSの取得した順位の一つ前の順位のエントリに登録されている順位を先頭順位として、SOSの先頭順位のエントリから末尾順位のエントリまでの間の各エントリに登録されているレコード番号の列を仮対象レコード番号列７０２とする。
【００６７】
そして、GenderとAgeの二つの指定フィールドを用いて算定した二つの仮対象レコード番号列７０１、７０２の双方に含まれているレコード番号をレコード番号順に抽出し、対象レコード番号列７１０とする。
【００６８】
以上のように、複数のフィールドを対象としてロウジャンプ処理を行うときにも、上述のように各フィールドに対応するインデックスを用いて仮対象レコード列を算出し、算出した仮対象レコード列の交差（積集合）を対象レコード列とすることにより、ユニオンテーブルについても、容易に、対象レコード番号列を設定することができる。また、一旦、対象レコード番号列を取得した後は、図７ｂ、ｃに示すように、順方向ジャンプ操作に対しては、対象レコード番号列７１０中から抽出するレコード番号の位置を一つ進め、逆方向ジャンプ操作に対しては、対象レコード番号列７１０中から抽出するレコード番号の位置を一つ戻すだけで、選択状態とするフィールドの属するレコードのレコード番号を容易に対象レコード番号列７１０中から抽出して設定することができる。
【００６９】
なお、ユニオンテーブルを表示しているときに、複数のフィールドを対象とするロウジャンプ処理における対象レコード列の算出も、図７ａと同様に行うことができる。すなわち、この場合には指定フィールドのそれぞれについて、図６ａに示したユニオンテーブルの対象レコード番号列の算出法により算出したレコード番号列を仮対象レコード番号列とし、各仮対象レコード番号列の交差（積集合）を対象レコード番号列とすればよい。
【００７０】
以上、本発明の実施形態について説明した。
なお、以上の各実施形態では、対象レコード番号列の算定を完了してから、選択状態とするフィールドの更新を行ったが、これは、次に選択状態とするフィールドのレコードを特定するに足りる状態まで対象レコード番号列の算定の処理が進んだならば、対象レコード番号列の算定の完了を待たずに、選択状態とするフィールドの更新を行うようにしてもよい。
【００７１】
また、ユニオンテーブルを対象とする対象レコード番号列の算定における、各テーブルの部分対象レコード番号列の算定及び他の部分対象レコード番号列との連結は、当該テーブルに、次に選択状態とするフィールドが含まれるレコードが属するテーブルが切り替わるときに行うようにしてもよい。
【符号の説明】
【００７２】
１…プロセッサ、２…入力装置、３…表示装置、４…ストレージ、５…ネットワーク、１１…関係演算処理部、１２…テーブル表示処理部、２００…テーブルＡ、２５０…テーブルＢ。
【図１】
2017045364.tif 000003
【図２】
2017045364.tif 000004
【図３】
2017045364.tif 000005
【図４】
2017045364.tif 000006
【図５】
2017045364.tif 000007
【図６】
2017045364.tif 000008
【図７】
2017045364.tif 000009