JP2001043290A - 表形式データの提示方法、挿入方法、削除方法、更新方法およびこれら方法を利用したトランザクション処理方法、並列処理方法、並びに、上記方法を実現するプログラムを記憶した記憶媒体 - Google Patents

表形式データの提示方法、挿入方法、削除方法、更新方法およびこれら方法を利用したトランザクション処理方法、並列処理方法、並びに、上記方法を実現するプログラムを記憶した記憶媒体

Info

Publication number
JP2001043290A
JP2001043290A JP11215450A JP21545099A JP2001043290A JP 2001043290 A JP2001043290 A JP 2001043290A JP 11215450 A JP11215450 A JP 11215450A JP 21545099 A JP21545099 A JP 21545099A JP 2001043290 A JP2001043290 A JP 2001043290A
Authority
JP
Japan
Prior art keywords
value
array
subscript
item
pointer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11215450A
Other languages
English (en)
Other versions
JP4425377B2 (ja
JP2001043290A5 (ja
Inventor
Shinji Kosho
晋二 古庄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TAABO DATA LAB KK
TAABO DATA LABORATORY KK
Original Assignee
TAABO DATA LAB KK
TAABO DATA LABORATORY KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP21545099A priority Critical patent/JP4425377B2/ja
Application filed by TAABO DATA LAB KK, TAABO DATA LABORATORY KK filed Critical TAABO DATA LAB KK
Priority to CA002380565A priority patent/CA2380565A1/en
Priority to US10/048,231 priority patent/US6973467B1/en
Priority to KR1020027001281A priority patent/KR100787079B1/ko
Priority to PCT/JP2000/005135 priority patent/WO2001009764A1/ja
Priority to EP00948339A priority patent/EP1213663A4/en
Priority to CNB008125716A priority patent/CN1310173C/zh
Publication of JP2001043290A publication Critical patent/JP2001043290A/ja
Publication of JP2001043290A5 publication Critical patent/JP2001043290A5/ja
Application granted granted Critical
Publication of JP4425377B2 publication Critical patent/JP4425377B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【課題】 表形式データにおいて、データの挿入、削除
および更新の処理を高速かつ適切になす。 【解決手段】 CPU12は、レコード番号を添え字と
して受け入れ、当該添え字の範囲に対応するオフセット
値を与えるための添え字変換配列を生成し、挿入される
項目値の位置を示す挿入位置を特定し、添え字変換配列
において、挿入位置に関して、対応する添え字の範囲を
確定するとともに、配列の末尾を特定するためのオフセ
ット値を与え、添え字変換配列において、挿入位置に対
応するレコード番号より大きな番号を有するものに関し
て、対応する添え字の範囲をインクリメントするととも
に、受け入れられた添え字をデクリメントするためのオ
フセット値を与え、上記末尾の位置に、挿入すべき項目
値を配置し、添え字に、添え字変換配列中の添え字の範
囲にしたがったオフセット値を与える。これにより、オ
フセット値が与えられた添え字を用いて配列中の項目値
が特定される。

Description

【発明の詳細な説明】
【0001】
【産業上の技術分野】本発明は、コンピュータのような
情報処理装置を用いて大量のデータを処理するデータ処
理方法及びデータ処理装置に関し、より詳細には、デー
タベースを構成する表形式データの更新、削除、挿入お
よびトランザクション処理に関する。
【0002】
【従来の技術】データベースは種々の用途に用いられて
いるが、中規模ないし大規模システムにおいては、論理
的な矛盾が排除できるリレーショナルデータベース(R
DB)の使用が主流となっている。たとえば、RDBは
飛行機の座席予約等のシステムに利用されている。この
場合、キー項目を指定することにより、(多くの場合1
件の)ターゲットを迅速に検索することもでき、或い
は、予約の確定、キャンセル或いは変更などを行うこと
ができる。しかし、近年、データベースを、上記の如く
単純に個々のレコードデータを管理する用途(基幹系業
務)以外に、分析(情報系業務) にも使用する傾向が
顕著である。例えば、上記データベースの所有者は、時
間帯、路線、季節などによって搭乗率がどう変化するか
を、クロス集計を作成して分析することを試みるであろ
う。
【0003】
【発明が解決しようとする課題】ところが、従来のRD
Bは、ローカルメモリを使用しコミットすることにより
その内容を確定しているため、トランザクション処理を
主体とする基幹業務には適しても、その構造上、大規模
データの分析(情報系)処理には向かない。たとえば、
任意の項目でソートを行おうとすれば、理論上、(たと
えばn件のレコードでは)、n*log(n)の時間が
かかり、大規模なデータほど処理効率が低下する。(現
実の製品では、理論よりもさらに急速に処理性能の低下
が進む。)そして、この制約(=n*log(n)の時
間)はソートに限らず、部分集合の抽出(=検索)など
一般的な操作全般に出現する。
【0004】もちろん、この制約を回避すべく、さまざ
まな高速化方法が考案されてはいる。その好例としてビ
ットマップインデックスがある。ビットマップインデッ
クスは、各レコードが条件を満たすか否かを1ビットで
あらわしたビットマップであり、例えば「性別」という
項目があった場合、「男性」のビットマップと、「女
性」のビットマップが作成される。このとき、「女性」
のレコードのみを取り出そうとすれば(つまり、検索す
れば)、高速にその部分集合(すなわち、女性のレコー
ドの集合)を得ることができる。しかし、各値毎にビッ
トマップを作成するということはいつでも可能なわけで
はない。例えば、10億レコードで10億通りの値をと
る項目(ID番号など)の場合、10億ビット(約12
5MB)のビットマップを10億個作成しなければなら
なくなる。つまり、ビットマップインデックスは非常に
少数のバリエーションしか持たない項目(たとえば性
別)でしか実現できないことが分かる。また、この方法
は部分集合に対しては即座には適用できないことが明ら
かであるし、レコードの挿入・削除が頻発する場合にも
使用できない。他の高速化手法も同様に何らかの制約を
持っている。このような各種高速化技術の適用範囲の制
約のため、ユーザーには全く同等に見える操作が、瞬時
に終了する場合と何時間もかかる場合があり、処理時間
の極端な非連続性(=予測困難さ)という深刻な問題が
発生している。たとえば、現在商業的に入手可能なRD
Bで全体集合が1000万レコードを有するテーブルで
測定したところ、全件(=1000万件)をヒットさせ
た場合、1秒しかかからなかったのに、わずか737件
をヒットさせただけで61秒を要したという報告があ
る。では、900万件ヒットする場合、どのくらいの処
理時間がかかるのであろう。言うまでもないことだが、
検索を実行する前に予めヒットする件数を知ることはで
きないから、ヒット件数と検索の所要時間の対応関数が
分かっていたとしても、所要時間を確実に予測すること
はできない。そもそも、男性という条件を満たす500
万件のレコードを抽出する時間(検索時間)と、女性と
いう条件を満たす500万件のレコードを抽出する時間
(検索時間)が同じであるという理論的根拠すらも希薄
ではある。
【0005】このようなパフォーマンスの不安定さは、
特にリアルタイム性を要求される制御システムにおいて
は致命的であり、例えば複数の発電所と非常に多数の電
力需要を電力線ネットワークで接続した大規模かつ複雑
な電力供給制御システム、また例えば大規模な化学プラ
ントの制御システムなど、多量のデータを管理・使用す
るシステムでありながらデータベースを使用できない例
は数多いのである。もちろん、パフォーマンスが安定し
ていても遅すぎれば使い物にならないことは明らかであ
るが、ここで強調したいのは、特殊な限定条件下のみで
しか適用できないさまざまな高速化方法が導入された結
果、データベースシステムはひどく複雑になったばかり
か、前述の処理時間の極端な非連続性という重大な問題
を抱え込んだということである。
【0006】さて、近年、前述のデータベースの分析的
使用方法が一般化していることは前述のようであり、同
時にデータの巨大化が急速に進行していることも周知の
事実である。このような状況のなかで、RDBにおける
前述の問題を克服するために、DWH(データウェアハ
ウス)および多次元DB(MDB:Multi Dimensional
Database)が出現した。DWHは、トランザクション処
理機能などを外し、検索・集計性能に特化したチューニ
ングを行ったRDBであると考えて差し支えない。した
がって、n*log(n)の処理時間という根本的制約
は残存したままであり、パフォーマンスは改善されたも
のの十分とは言えず、その非連続性の問題も解消されて
いない。さらに、基幹系の既存RDBと情報系のDWH
という不可避な組み合わせにより、設備投資が大幅に増
加し、情報管理の複雑化と運用コスト増加という新たな
問題が発生している。
【0007】一方、MDBは指定された項目(次元とよ
ばれている)の組み合わせによる基礎クロス集計を予め
作成しておき、ユーザーの要求するクロス集計を基礎ク
ロス集計から合成するものであると考えて良い。MDB
は、クロス集計こそは満足なレスポンスで合成できる
が、問題も多い。例えば、(集計から元データに戻るこ
とは不可能なので、特別な工夫をしない限り)元々のレ
コードに戻ることができない、(予めクロス集計を作成
しておかねばならないため、)株価などの時事刻々と更
新されるデータに対応できない、あるいは、予め指定し
た以外の項目(次元)のクロス集計は作成できないこと
などの問題が挙げられる。もちろん、設備投資の増加、
情報管理の複雑化と運用コストの上昇というDWHと同
じ問題も発生している。現実を見ると、DWHやMDB
は、前述のような制御システム、あるいは科学技術計
算、金融工学など、コストを度外視しても性能を重視す
る分野においてすら稀にしか導入されない。このこと
は、これらの機能及び性能が前述の分野において実用に
耐えないことの証左である。
【0008】このような問題を解決すべく、本発明者は
すでに従来技術よりも略100〜1000倍高速に表形
式データを検索・集計・ソート・ジョインする方法(線
形フィルター法)を考案し、これに関する特許出願をな
している((特願平10−227278号)。線形フィ
ルター法は、処理性能の高さと安定性、処理の統一性、
データのコンパクトさと分割性、 O(n)のアーキテ
クチャーであること、ソートの直列接続性、パイプライ
ン処理や並行処理に適することなど非常に好ましい性質
を多々備えている。そこで、本発明は、特に、上記線形
フィルター法を用いて、データの挿入、削除および更新
の処理を高速かつ適切になすことができる表形式データ
におけるデータ挿入、削除および更新方法を提供するこ
とを目的とする。
【0009】また、広く一般に理解されているとおり、
更新処理の実運用においては、複数のプロセスによる同
一データへの同時アクセスを制御する排他処理、複数の
処理を1つの有意義な処理ブロックとして一括してコミ
ット(またはロールバック)するトランザクション処理
を適切になすことが要求される。そこで、本発明は、上
記トランザクション処理を適切になすことができる表形
式データの挿入、削除および更新方法を提供することを
目的とする。
【0010】
【課題を解決するための手段】本発明の目的は、項目と
これに含まれる項目値とを含むレコードの配列として表
わされる表形式データの任意の位置に、項目値を挿入す
る表形式データの挿入方法であって、レコード番号を添
え字として受け入れ、当該添え字の範囲に対応するオフ
セット値を与えるように構成された添え字変換配列を生
成し、挿入される項目値の位置を示す挿入位置を特定
し、前記添え字変換配列において、前記挿入位置に関し
て、対応する添え字の範囲を確定するとともに、前記配
列の末尾以降の所定の位置を特定するためのオフセット
値を与え、前記添え字変換配列において、前記挿入位置
に対応するレコード番号より大きなレコード番号を有す
るものに関して、対応する添え字の範囲を上方にシフト
するとともに、受け入れられた添え字をデクリメントす
るためのオフセット値を与え、前記配列の末尾に、前記
挿入すべき項目値を配置し、前記添え字に、添え字変換
配列中の添え字の範囲にしたがったオフセット値が与え
られ、当該オフセット値が与えられた添え字により配列
中の項目値が特定されることを特徴とする表形式データ
の挿入方法により達成される。
【0011】本発明によれば、添え字変換配列により、
添え字に所定のオフセットを与えて、配列の項目値を特
定している。したがって、挿入の場合に、新たに挿入さ
れた位置に対応する添え字が、添え字変換配列により、
配列の末尾以降の所定の位置に配置された新たな項目値
を特定することができる。したがって、実際に配列中に
実際にデータを挿入し、他のデータを移動する必要がな
く、論理上、配列に項目値を挿入することが可能とな
る。また、これにより、後述するような並列処理やトラ
ンザクション処理を適切になすことが可能となる。
【0012】また、本発明の目的は、項目とこれに含ま
れる項目値とを含むレコードの配列として表わされる表
形式データにおいて、任意の位置の項目値を削除する表
形式データの削除方法であって、レコード番号を添え字
として受け入れ、受け入れられた添え字の範囲に対応す
るオフセット値を与えるように構成された添え字変換配
列を生成し、削除すべき項目値の位置を示す削除位置を
特定し、前記添え字変換配列において、削除位置に対応
するレコード番号より大きなレコード番号を有するもの
に関して、対応する添え字の範囲を下方にシフトすると
ともに、受け入れられた添え字をインクリメントするた
めのオフセット値を与え、前記添え字に、添え字変換配
列中の添え字の範囲にしたがったオフセット値が与えら
れ、当該オフセット値が与えられた添え字により配列中
の項目値が特定されることを特徴とする表形式データの
削除方法により達成される。本発明においても、添え字
変換配列により、削除する位置に対応する項目値を、添
え字がポイントしないように構成される。データを実際
に削除し、かつ、データを移動することなく、論理上、
データ削除の処理が実現される。また、表形式データの
削除方法は、上記更新方法および削除方法を、順次、或
いは、その逆順で実行すればよい。
【0013】また、本発明の別の実施態様においては、
項目とこれに含まれる項目値とを含むレコードの配列と
して表わされる表形式データの項目値の値を変換する表
形式データの値変換方法は、項目値の範囲に対応するオ
フセット値を与えるように構成された値変換配列を生成
し、レコード番号を添え字として受け入れ、前記配列中
の、当該添え字に対応する項目値に、前記項目値の範囲
に対応したオフセット値を与えるように構成されてい
る。また、本発明の目的は、項目とこれに含まれる項目
値とを含むレコードの配列として表わされる表形式デー
タにおいて、任意のレコード番号に対応する項目値を特
定するように構成された表形式データのデータ構造であ
って、当該表形式データを、特定の項目に属する項目値
に対応した項目値番号の順に当該項目値が格納されてい
る第1の実体配列を含む値リストと、一意的なレコード
番号の順に、当該項目値番号を指示するためのポインタ
値が格納された第2の実体配列を含むポインタ配列とか
らなる一以上の情報ブロックに分割するように構成し、
前記ポインタ配列に、入力されたレコード番号を添え字
として、当該添え字の範囲に対応する第1のオフセット
を与えるように構成された第1の添え字変換配列を形成
するとともに、当該添え字変換配列を経てオフセットが
与えられた添え字により特定される、第2の実体配列中
のポインタ値を値として、当該値の範囲に対応する第2
のオフセットを与えるように構成された値変換配列を形
成し、前記値リストに、入力された、ポインタ配列の出
力を添え字として、当該添え字の範囲に対応する第3の
オフセットを与えるように構成された第2の添え字変換
配列を形成し、当該第2の添え字変換配列を経てオフセ
ットが与えられたポインタ配列の出力により、第1の実
体配列中の項目値が特定されるように構成されたことを
特徴とする表形式データのデータ構造により達成され
る。
【0014】本発明によれば、たとえば、あるプロセス
では、添え字変換配列や値変換配列を経たデータストリ
ームを形成し、他のプロセスでは、実体配列のみを利用
するデータストリームを形成することができる。このよ
うに、必要に応じて、上記変換配列の通過や不通過を設
定することにより、プロセスの並列処理やトランザクシ
ョン処理を適切に実現することが可能となる。たとえ
ば、前記添え字変換配列の各々は、所定の範囲にそれぞ
れ含まれる添え字の最小値を示す開始位置からなる開始
位置配列、および/または、当該所定の範囲に含まれる
添え字の最大値を示す終了位置からなる終了位置配列
と、対応するオフセット値からなるオフセット配列とか
ら構成されるのが好ましい。また、前記値変換配列は、
所定の範囲にそれぞれ含まれる値の最小値を示す開始位
置からなる開始位置配列、および/または、当該所定の
範囲に含まれる値の最大値を示す終了位置からなる終了
位置配列と、対応するオフセット値からなるオフセット
配列とから構成されるのが好ましい。
【0015】さらに、本発明の目的は、上に定義したデ
ータ構造にて表わされる表形式データの任意の位置に、
項目値を挿入する表形式データの挿入方法であって、
(1)前記値リストに関して、挿入される項目値の位置
を示す挿入位置を特定し、前記第2の添え字変換配列に
おいて、前記挿入位置に関して、対応する添え字を確定
するとともに、前記第1の実体配列の末尾以降の所定の
位置を特定するための第3のオフセット値を与え、前記
第2の添え字変換配列において、前記挿入位置に対応す
る添え字の値より大きなものに関して、対応する添え字
の範囲を、当該範囲を確定する値が大きくなるように上
方にシフトするとともに、受け入れられた添え字をデク
リメントするための第3のオフセット値を与え、前記第
1の実体配列の末尾以降の所定の位置に、前記挿入すべ
き項目値を配置し、(2)前記ポインタ配列に関して、
挿入されるレコード番号に対応するポインタ値の位置を
示す挿入位置を特定し、前記第1の添え字変換配列にお
いて、前記挿入位置に関して、対応する添え字を確定す
るとともに、前記第1の実体配列の末尾以降の所定の位
置を特定するための第1のオフセット値を与え、前記第
1の添え字変換配列において、前記挿入位置に対応する
レコード番号より大きなレコード番号を有するものに関
して、対応する添え字の範囲を、当該範囲を確定する値
が大きくなるように上方にシフトするとともに、受け入
れられた添え字をデクリメントするための第1のオフセ
ット値を与え、前記第2の実体配列の末尾以降の所定の
位置に、現存するポインタ値より大きな新たなポインタ
値を配置し、かつ、(3)前記ポインタ配列に関して、
前記値変換配列に、前記値リストにおける挿入位置に対
応するポインタ値以上を有するものに対して、これをイ
ンクリメントする第2のオフセット値を与え、前記値変
換配列に、前記新たなポインタ値が、前記挿入位置に対
応する位置を特定するような第2のオフセット値を与え
ることを特徴とする表形式データのデータ挿入方法によ
り達成される。
【0016】上記挿入方法の好ましい実施態様において
は、m個のレコード番号と、n個の項目値とを備え、前
記値リスト中の項目値の挿入位置が、i(0≦i≦n−
1)であり、第1の実体配列の末尾nに項目値が配置さ
れ、かつ、レコード番号の挿入位置がj(0≦j≦m−
1)であり、第2の実体配列の末尾mにポインタ値が配
置される場合に、(1)前記値リストの第2の添え字変
換配列において、値の範囲が(i−1)以下の場合に、
第3のオフセット値として0を与え、値がiである場合
に、第3のオフセット値として(n−i)を与え、か
つ、値の範囲が(i+1)以上n以下である場合に、第
3のオフセット値として(−1)を与え、(2)前記ポ
インタ配列の第1の添え字変換配列において、添え字の
範囲が(j−1)以下の場合に、第1のオフセット値と
して0を与え、添え字がjである場合に、第1のオフセ
ット値として(m−j)を与え、かつ、添え字が(j+
1)以上m以下の場合に、第1のオフセット値として
(−1)を与え、(3)前記ポインタ配列の値変換配列
において、値の範囲が(i−1)の場合に、第2のオフ
セット値として0を与え、値の範囲がi以上(n−1)
以下である場合に、第2のオフセット値として1を与
え、かつ、値がnである場合に、第2のオフセット値と
して(i−n)を与えるように構成されている。
【0017】或いは、m個のレコード番号と、n個の項
目値とを備え、前記値リスト中の項目値の挿入位置が、
i(0≦i≦n−1)であり、第1の実体配列の末尾以
降の所定の位置z(z≧n)に項目値が配置され、か
つ、レコード番号の挿入位置がj(0≦j≦m−1)で
あり、第2の実体配列の末尾以降の所定の位置x(x≧
m)にポインタ値が配置される場合に、(1)前記値リ
ストの第2の添え字変換配列において、値の範囲が(i
−1)以下の場合に、第3のオフセット値として0を与
え、値がiである場合に、第3のオフセット値として
(z−i)を与え、かつ、値の範囲が(i+1)以上n
以下である場合に、第3のオフセット値として(−1)
を与え、(2)前記ポインタ配列の第1の添え字変換配
列において、添え字の範囲が(j−1)以下の場合に、
第1のオフセット値として0を与え、添え字がjである
場合に、第1のオフセット値として(x−j)を与え、
かつ、添え字が(j+1)以上m以下の場合に、第1の
オフセット値として(−1)を与えるとともに、(3)
前記ポインタ配列の値変換配列において、値の範囲が
(i−1)の場合に、第2のオフセット値として0を与
え、値の範囲がi以上(n−1)以下である場合に、第
2のオフセット値として1を与え、かつ、値がy(ただ
し、yは、第2の実体配列の位置xに格納されたポイン
タ値)である場合に、第2のオフセット値として(i−
y)を与えるように構成されてもよい。
【0018】また、本発明の目的は、上記定義に基づく
データ構造にて表わされる表形式データの任意の位置の
項目値を削除する表形式データの削除方法であって、前
記ポインタ配列に関して、削除されるポインタ値の位置
を示す削除位置を特定し、前記第1の添え字変換配列に
おいて、前記削除に関して、対応する添え字を確定し、
前記第1の添え字変換配列において、前記削除位置に対
応するレコード番号より大きなレコード番号を有するも
のに関して、対応する添え字の範囲を、当該範囲を確定
する値が小さくなるように下方にシフトするとともに、
受け入れられた添え字をインクリメントするための第1
のオフセット値を与えることを特徴とする表形式データ
の削除方法により達成される。上記削除方法の好ましい
実施態様においては、m個のレコード番号と、n個の項
目値とを備え、レコード番号の削除位置がj(0≦j≦
m−1)である場合に、前記ポインタ配列の第1の添え
字変換配列において、添え字の範囲が(j−1)以下の
場合に、第1のオフセット値として0を与え、かつ、添
え字の範囲がj以上(m−2)以下である場合に、オフ
セット値として1を与えるように構成されている。
【0019】さらに、本発明の目的は、上記定義による
データ構造にて表わされる表形式データの任意の位置の
項目値を更新する表形式データの更新方法であって、
(A)(1)前記値リストに関して、更新される項目値を
挿入される項目値と仮定し、当該項目値の挿入すべき位
置を示す挿入位置を特定し、前記第2の添え字変換配列
において、前記挿入位置に関して、対応する添え字を確
定するとともに、前記第1の実体配列の末尾以降の所定
の位置を特定するためのオフセット値を与え、前記第2
の添え字変換配列において、前記挿入位置に対応する添
え字の値より大きなものに関して、対応する添え字の範
囲を、当該範囲を確定する値が大きくなるように上方に
シフトするとともに、受け入れられた添え字をデクリメ
ントするための第3のオフセット値を与え、前記第1の
実体配列の末尾以降の所定の位置に、前記挿入すべき項
目値を配置し、(2)前記ポインタ配列に関して、更新
されるポインタ値を挿入されるポインタ値と仮定し、当
該ポインタ値の挿入すべき位置を示す挿入位置を特定
し、前記第1の添え字変換配列において、前記挿入位置
に関して、対応する添え字を確定するとともに、前記第
1の実体配列の末尾以降の所定の位置を特定するための
第1のオフセット値を与え、前記第1の添え字変換配列
において、前記挿入位置に対応するレコード番号より大
きなレコード番号を有するものに関して、対応する添え
字の範囲を、当該範囲を確定する値が大きくなるように
上方にシフトするとともに、受け入れられた添え字をデ
クリメントするための第1のオフセット値を与え、前記
第2の実体配列の末尾以降の所定の位置に、現存するポ
インタ値より大きな新たなポインタ値を配置し、かつ、
(3)前記ポインタ配列に関して、前記値変換配列に、
前記値リストにおける挿入位置に対応するポインタ値以
上を有するものに対して、これをインクリメントする第
2のオフセット値を与え、前記値変換配列に、前記新た
なポインタ値が、前記挿入位置に対応する位置を特定す
るような第2のオフセット値を与え、(B)前記ポインタ
配列に関して、更新すべきポインタ値の位置を、削除位
置として、前記挿入位置を考慮して特定し、前記第1の
添え字変換配列において、前記削除位置に関して、対応
する添え字を確定し、前記第1の添え字変換配列におい
て、前記削除位置に対応するレコード番号より大きなレ
コード番号を有するものに関して、対応する添え字の範
囲を、当該範囲を確定する値が小さくなるように下方に
シフトするとともに、受け入れられた添え字をインクリ
メントするための第1のオフセット値を与え、前記(A)
および(B)、或いは、前記(B)および(A)の何れかを順
次実行するように構成されたことを特徴とする表形式デ
ータの更新方法により達成される。
【0020】上記更新方法の好ましい実施態様において
は、m個のレコード番号と、n個の項目値とを備え、前
記値リスト中の項目値の更新位置が、i(0≦i≦n−
1)であり、第1の実体配列の末尾nに項目値が配置さ
れ、かつ、レコード番号の更新位置がj(0≦j≦m−
1)であり、第2の実体配列の末尾mにポインタ値が配
置される場合に、(1)前記値リストの第2の添え字変
換配列において、値の範囲が(i−1)以下の場合に、
第3のオフセット値として0を与え、値がiである場合
に、第3のオフセット値として(n−i)を与え、か
つ、値の範囲が(i+1)以上n以下である場合に、第
3のオフセット値として(−1)を与え、(2)前記ポ
インタ配列の第1の添え字変換配列において、添え字の
範囲が(j−1)以下の場合に、第1のオフセット値と
して0を与え、添え字がjである場合に、第1のオフセ
ット値として(m−j)を与え、かつ、添え字が(j+
1)以上(m+1)以下の場合に、第1のオフセット値
として0を与え、(3)前記ポインタ配列の値変換配列
において、値の範囲が(i−1)の場合に、第2のオフ
セット値として0を与え、値の範囲がi以上(n−1)
以下である場合に、第2のオフセット値として1を与
え、かつ、値がnである場合に、第2のオフセット値と
して(i−n)を与えるように構成されている。
【0021】或いは、m個のレコード番号と、n個の項
目値とを備え、前記値リスト中の項目値の更新位置が、
i(0≦i≦n−1)であり、第1の実体配列の末尾以
降の所定の位置z(z≧n)に更新された項目値が配置
され、かつ、レコード番号の更新位置がj(0≦j≦m
−1)であり、第2の実体配列の末尾以降の所定の位置
x(x≧m)に更新されたポインタ値が配置される場合
に、(1)前記値リストの第2の添え字変換配列におい
て、値の範囲が(i−1)以下の場合に、第3のオフセ
ット値として0を与え、値がiである場合に、第3のオ
フセット値として(z−i)を与え、かつ、値の範囲が
(i+1)以上n以下である場合に、第3のオフセット
値として(−1)を与え、(2)前記ポインタ配列の第
1の添え字変換配列において、添え字の範囲が(j−
1)以下の場合に、第1のオフセット値として0を与
え、添え字がjである場合に、第1のオフセット値とし
て(x−j)を与え、かつ、添え字が(j+1)以上
(m+1)以下の場合に、第1のオフセット値として0
を与えるとともに、(3)前記ポインタ配列の値変換配
列において、値の範囲が(i−1)の場合に、第2のオ
フセット値として0を与え、値の範囲がi以上(n−
1)以下である場合に、第2のオフセット値として1を
与え、かつ、値がy(ただし、yは、第2の実体配列の
位置xに格納されたポインタ値)である場合に、第2の
オフセット値として(i−y)を与えるように構成して
もよい。
【0022】或いは、上記定義にしたがった表形式デー
タの削除方法は、 前記レコード番号に関して、レコー
ド番号自体を配置した第4の実体配列と、当該レコード
番号を特定するための添え字の範囲にしたがって、所定
のオフセット値を与える第3の添え字変換配列とを設
け、前記削除すべきレコード番号の位置を示す削除位置
を特定し、前記第3の添え字変換配列において、前記削
除に関して対応する添え字を確定し、前記第3の添え字
変換配列において、前記削除位置に対応する添え字より
大きな値を有するものに関して、対応する添え字の範囲
を、当該範囲を確定する値が小さくなるように下方にシ
フトするとともに、受け入れられた添え字をインクリメ
ントするための第4のオフセット値を与えるように構成
してもよい。これは、レコード番号自体を配置した第4
の実体配列を含む情報ブロックを形成し、レコード番号
を指定するための添え字変換配列を形成し、これにより
実質的なデータの削除を実現している。
【0023】また、本発明の目的は、上記方法により表
形式データにおけるデータの挿入、削除および/または
更新をなし、ロールバックおよびコミットの何れかの場
合には、前記添え字変換配列および値変換配列を廃棄す
ることを特徴とするトランザクション処理方法によって
も達成される。この場合に、ロールバックの場合にの
み、前記添え字変換配列および値変換配列を廃棄しても
よい。また、本発明の目的は、上記定義にしたがったデ
ータ構造を有する表形式データに関して、複数のプロセ
スにより同時に処理が実行されるプロセスの並列処理方
法であって、前記プロセスのうち、データの挿入、削除
および/または更新を伴うものは、前記ポインタ配列に
おいて、第1の添え字変換配列、第2の実体配列および
値変換配列を経るように構成されるとともに、前記値リ
ストにおいて、第2の添え字変換配列および第1の実体
配列を経るように構成され、その一方、前記プロセスの
うち、データの挿入、削除および/または更新を伴わな
いものは、前記ポインタ配列において、第2の実体配列
を経るとともに、前記値リストにおいて、前記値リスト
において、第1の実体配列を経るように構成されたこと
を特徴とするプロセスの並列処理方法によっても達成さ
れる。データの挿入、削除および/または更新を伴うプ
ロセスは、上述したような挿入方法、削除方法および更
新方法の何れかを利用しているのが好ましい。
【0024】或いは、本発明のさらに別の実施態様にお
いては、上記データ構造を有する表形式データに関し
て、レコードのロックをなす方法は、ロックを管理する
配列を含む情報ブロックを設け、前記情報ブロックの配
列中に、前記レコード番号の各々に対応して、ロックの
種別を示す項目値を配置するように構成されている。ま
た、本発明の目的は、上記種々の方法の少なくとも何れ
かを実現するプログラムを記憶した、コンピュータによ
り読み出し可能な記憶媒体によっても達成される。
【0025】
【発明の実施の形態】以下、添付図面を参照して、本発
明の実施の形態につき説明を加える。図1は、本発明の
実施の形態にかかる表形式データにかかる、ある項目の
データを挿入、削除および更新する方法を実現できるコ
ンピュータシステムのハードウェア構成を示すブロック
ダイヤグラムである。図1に示すように、このコンピュ
ータシステム10は、通常のものと同様の構成であり、
プログラムを実行することにより、システム全体および
個々の構成部分を制御するCPU12、ワークデータな
どを記憶するRAM(Random Access Memory)14、プロ
グラム等を記憶するROM(Read Only Memory)16、ハ
ードディスク等の固定記憶媒体18、CD−ROM19
をアクセスするためのCD−ROMドライバ20、CD
−ROMドライバ20や外部ネットワーク(図示せず)
と接続された外部端子との間に設けられたインタフェー
ス(I/F)22、キーボードやマウスからなる入力装
置24、CRT表示装置26を備えている。CPU1
2、RAM14、ROM16、外部記憶媒体18、I/
F22、入力装置24および表示装置26は、バス28
を介して相互に接続されている。
【0026】本実施の形態にかかる表形式データにかか
るある項目のデータを挿入するプログラム、ある項目の
データを削除するプログラム、ある項目のデータを更新
するプログラム、トランザクション処理を実現するプロ
グラム、並列処理を司るプログラム、および、排他処理
を実現するプログラムは、CD−ROM19に収容さ
れ、CD−ROMドライバ20に読取られても良いし、
ROM16に予め記憶されていても良い。また、いった
んCD−ROM19から読み出したものを、外部記憶媒
体18の所定の領域に記憶しておいても良い。或いは、
上記プログラムは、ネットワーク(図示せず)、外部端
子およびI/F22を経て外部から供給されるものであ
っても良い。なお、本明細書において、データの挿入と
は、隣接するレコードの間にデータを入れることのみな
らず、レコードの末尾に新規のレコードを追加すること
も含む。
【0027】また、本実施の形態においては、データの
挿入、削除および更新処理、並びに、トランザクション
処理、並列処理、排他処理を適切かつ高速に実現するた
めに、後述するように、表形式データに基づき、所定の
データ形式の情報ブロックを生成する必要がある。この
情報ブロック生成プログラムも同様に、CD−ROM1
9に収容され、ROM16に記憶され、或いは、外部記
憶媒体18に記憶されても良い。或いは、これらプログ
ラムは、ネットワーク(図示せず)を介して、外部から
供給されても良いことはいうまでもない。また、本実施
の形態において、情報ブロック生成プログラムにて生成
されたデータ(情報ブロック)は、RAM14に記憶さ
れ、或いは、外部記憶媒体18の所定の領域に記憶され
る。
【0028】まず、本発明の前提となる表形式データの
取扱い、すなわち、表形式データを管理する形態につき
簡単に説明を加える。本発明者は、表形式データを高速
に検索、集計およびソートを高速に実現するため、ま
た、複数の表形式データを所望のようにジョインできる
ようにするため、特定のデータ形式を有する表形式デー
タの構築(特願平10−227278号)と、当該特定
のデータ形式を有する表形式データのジョイン(特願平
11−151156号)とを考案している。本発明にお
いても、基本的には、これら出願に開示された技術に基
づき、表形式データを所定の情報ブロックの集合体とし
て構築し、これを用いて検索、集計およびソートを実現
している。図2は、本実施の形態にて用いる情報ブロッ
クを示す図である。図2に示すように、情報ブロック1
00は、値リスト110と値リストへのポインタ配列1
20とを含んでいる。値リスト110は、表形式データ
の各項目に対して、その項目に属する項目値が順序付け
(整数化)された項目値番号の順番に、上記項目値番号
に対応した項目値111が格納されたテーブルである。
値リストへのポインタ配列120は、表形式データのあ
る列(すなわち項目)の項目値番号、つまり値リスト1
10へのポインタが表形式データのレコード番号順に格
納された配列である。
【0029】上記値リストへのポインタ配列120と値
リスト110とを組み合わせることにより、あるレコー
ド番号が与えられたときに、所定の項目に関する値リス
トへのポインタ配列120からそのレコード番号に対応
して格納された項目値番号を取り出し、次いで、値リス
ト110内でその項目値番号に対応して格納された項目
値を取り出すことにより、レコード番号から項目値を得
ることができる。したがって、従来のデータ表と同様
に、レコード番号(行)と項目(列)という座標を用い
てすべてのデータ(項目値)を参照することができる。
たとえば、図3(a)に示す表形式データを考える。こ
の例では、顧客ID、顧客名、電話番号という項目に種
々の項目値が与えられている。本実施の形態において
は、このような表形式データを、図3(b)ないし
(d)に示す形式の情報ブロックとして保持している。
たとえば、図3(b)において、ポインタ配列120−
1は、顧客IDを示す項目値を格納した値リスト110
−1に関連付けられている。すなわち、先頭レコード
(レコード番号「0」)のポインタ配列のポインタ値は
0であり、これに対応して、顧客IDを示す項目値
「1」が得られる。図3(c)において、ポインタ配列
120−2は、顧客名を示す項目値を格納した値リスト
110−2に関連付けられている。たとえば先頭レコー
ド(レコード番号「0」)のポインタ配列におけるポイ
ンタ値は「5」であり、これに対応して、顧客名を示す
項目値「山田 ○男」が得られる。図3(d)において
も、同様に、ポインタ配列120−3が、電話番号を示
す項目値を格納した値リスト110−3に関連付けられ
ていることが理解できよう。また、各値リストにおいて
は、項目値が順序付けられて(この例では昇順)いるこ
とが理解できよう。
【0030】さらに、本実施の形態においては、情報ブ
ロック100の値管理テーブルは、値リスト110のほ
か、検索や集計のために用いる分類番号フラグ配列、項
目値に対応するポインタを格納すべきメモリ空間の先頭
アドレスを示す開始位置配列、および、存在数配列が含
まれている。分類番号フラグ配列の各フラグ、および、
存在数配列の各存在数は、項目値の各々に対応付けられ
ている。分類番号フラグのフラグ値は、通常 「0」で
あり、検索や集計の際に見出すべき項目値に対応して
「1」にセットされる。また、存在数は、その項目値を
有するレコードの個数に対応する。なお、開始位置は、
対応するポインタ値よりも小さなポインタ値に対応する
存在数を加算したものに対応するため、必ずしも設ける
必要はない。図4(a)は、表形式データの他の例を示
す図、図4(b)および(c)は、それぞれ、「性別」
および「年令」に関する情報ブロックを示す図である。
図4(b)に示すように、性別に関する情報ブロック2
00−1の値管理テーブル210−1には、ポインタ配
列220の各ポインタ値に対応する項目値(「男性」お
よび「女性」)と、各項目値に対応する分類番号、開始
位置および存在数が示されている。たとえば、ポインタ
値が「0」(つまり、値リストの項目値が「男性」)で
あるようなレコードの数は632564個であり、その
一方、ポインタ値が「1」(つまり、値リストの項目値
が「女性」)であるようなレコードの数は367436
個となっている。また、各項目値に対応する開始位置
は、後述するレコードへのポインタ配列230−1の先
頭アドレスを示している。図4(c)においても、同様
のことが理解できよう。
【0031】このようなデータ構造を有する情報ブロッ
クを用いた検索の一例および情報ブロックの生成処理に
つき、以下に説明する。図5は、単一項目に関する検索
手法を示すフローチャートである。この処理は、CPU
12(図1参照)が所定の検索プログラムを実行するこ
とにより実現される。この例では、「年令」の項目値が
16歳または19歳であるレコードが検索される。ま
ず、表形式データに関する情報ブロックのうち、図4
(c)に示す「年令」に関する情報ブロック200−2
が特定される(ステップ501)。
【0032】次いで、特定された情報ブロック(以下、
「特定情報ブロック」と称する。)の値リスト210−
2において、項目値が上記検索条件に合致するもの(1
6歳または19歳)に対応する行の分類番号が「1」に
セットされる(ステップ502)。本例の場合には、項
目値番号「0」および項目値番号「3」に対応する行の
分類番号が1にセットされる。次いで、分類番号が
「1」にセットされている行に対応した開始位置および
存在数が取得される(ステップ503)。これら情報を
ポインタ取り出し情報と称する。レコードへのポインタ
配列において、ステップ503にて取得されたポインタ
取り出し情報に基づき、検索条件に合致したレコードへ
のポインタを示すレコード番号が取り出される(ステッ
プ504)。本例においては、項目値番号「0」に対応
したレコードのポインタは、レコードへのポインタ配列
の開始位置「0」すなわち先頭から、45898個目ま
での領域に格納され、その一方、項目値番号「3」に対
応したレコードのポインタは、レコードへのポインタ配
列の2383137番目から189653個分の領域に
格納されていることがわかる。最後に、後の処理にて利
用できるようにするために、取り出されたレコード番号
の配列が、結果集合として作成され、これが保持される
(ステップ505)。また、集計およびソートも、分類
番号、開始位置および存在数を利用することにより実現
することができる。
【0033】次に、上述したような検索処理等に利用す
るための情報ブロックの生成処理につき説明を加える。
図6は、表形式データに基づき情報ブロックを作成する
ための処理を説明するフローチャートである。まず、シ
ステム10は、表形式の原データを取得し、これを項目
別のものに分解する(ステップ601)。この原データ
は、たとえば、図7(a)に示すものでも良いし、或い
は、図7(b)に示すものでも良い。これら原データ
は、外部から供給されるものであっても良いし、或い
は、固定記憶媒体18に記憶されたものであっても良
い。以下に述べるステップ602ないしステップ604
からなる処理ブロック610は、ある一つの項目に関す
る情報ブロックの生成を示す。したがって、複数の項目
に関する情報ブロックを生成する場合には、項目の数だ
け処理ブロック610に対応する処理が実行される。以
下、「性別」に関する項目の情報ブロックを例にとって
説明を加える。
【0034】まず、「性別」に関する項目の情報ブロッ
ク用の領域が、たとえば、RAM14中に確保される
(ステップ602)。次いで、この確保された領域中
に、値管理テーブルが生成される。より詳細には、ま
ず、値管理テーブルが初期化される。次いで、原データ
のうち、「性別」に関するデータを先頭から末尾まで走
査することにより、どのような項目名が、それぞれいく
つ存在するかが見出される。本例では、「女性」および
「男性」という項目名が、それぞれ、367436個お
よび632564個だけあることが見出される。これに
より、値リストに、「女性」および「男性」という項目
値がセットされ、また、存在数配列にも所定の数がセッ
トされる。その後に、項目値が所定の基準にしたがって
ソートされる。ソートの際には、項目数の並び替えにし
たがって存在数も並びかえられる。次いで、開始位置配
列の値が決定される。これは、ソートにより自己より上
位に位置する存在数を累算することにより求められる。
また、開始位置配列の値を、対応する分類番号配列の値
に割り当てる。この値は次のステップにて用いられる。
このようにして値管理テーブルが生成された後に、レコ
ードへのポインタ配列が生成される。このポインタ配列
の領域の大きさは、存在数の総和に対応する。このよう
にして、所定の項目に関する情報ブロックを作り出すこ
とが可能となる。この情報ブロックの生成を予め行って
おき、生成された情報ブロックを用いて検索、集計およ
びソートの処理が実行される。
【0035】次に、上記形態の情報ブロックにおいて、
要素を挿入、削除或いは更新する処理につき、以下に説
明を加える。たとえば、100万レコード(レコード番
号0〜999,999)のサイズを持つ配列の先頭から
2番目に、1つの要素を挿入することを考える。たとえ
ば、レコード番号0〜999,999に対応する配列の
うち、レコード番号「0」と「1」との間に、新たに一
つの要素を挿入する場合である(図8(a)参照)。こ
の場合に、新たなレコード番号「1」に新たな値(たと
えば「10」が挿入され)、これ以降の値(すなわち9
99,999個の値)を一つずつ移動しなければならな
い。また、特定の要素を削除する場合にも、莫大な数の
要素を移動する必要がある。或いは、上記配列におい
て、特定の値を持つ要素を別の値に書きかえる場合、た
とえば、1以上の値を有するものをインクリメントする
場合(図8(b)参照)にも、配列全体を走査する必要
が有り、処理に莫大な時間を要する。ところで、上記配
列は、添え字が配列中の位置を示すことにより、対応す
る位置の格納値を取り出す(すなわち添え字から格納値
を引用する)ことができる点で有利である。つまり、各
要素(格納値)がメモリのアドレス順に格納されていれ
ば、添え字から直ちにアドレスを算出し、対応するアド
レスの拡張値を得ることができる。そこで、この利点を
生かしつつ、要素(格納値)の挿入および削除に要する
負荷を最小にする手法が求められる。
【0036】本発明においては、図9(a)に示すよう
な、添え字を配列に与え、対応する値(格納値)を取り
出すような系において、図9(b)ないし(d)に示す
ように、配列に与える「添え字」を変換する添え字変換
部、および/または、配列から取り出された値を変換す
る値変換部を設けるとともに、配列自体を、実体配列と
差分配列とに分割し、配列に含まれる要素(格納値)の
位置を変更することなく、かつ、値自体を変更すること
なく、要素の挿入、削除および更新を実現可能にしてい
る。
【0037】[添え字変換配列による要素の挿入]ま
ず、本発明の第1の実施の形態にて利用される、要素の
挿入等のための添え字変換配列につき、説明を加える。
図2ないし図4に示す情報ブロックに関して考えると、
添え字には、値リストへのポインタ配列の要素(ポイン
タ値)を指定するためのレコード番号や、値リストの項
目値を指定するためのポインタ配列中のポインタ値等が
含まれる。また、配列には、値リストへのポインタ配
列、値リスト、レコード番号へのポインタ配列等が含ま
れる。たとえば、図10(a)に示すように、配列の第
0行(添え字「0」)と第1行(添え字「1」)との間
に、要素「Y0」を挿入する場合を考える。この場合に
は、要素「Y0」の挿入後には、添え字と配列中の要素
(格納値)とは、図10(b)に示す論理的関係とな
る。
【0038】図10(b)に示す論理的関係を保持しつ
つ、挿入時に生じる負荷を最小限にするために、図10
(c)に示す添え字変換配列を考える。図10(c)に
おいて、添え字変換配列は、開始位置配列と、終了位置
配列と、オフセット配列とからなる。これらの配列に格
納された要素(値)のうち、同じ位置(たとえば第0
行、第1行等)に配置されたものが相互に関連してい
る。開始位置配列中の要素と、終了位置配列中の対応す
る要素により、関連する添え字の範囲が特定される。す
なわち、開始位置配列中の要素は、関連する添え字の最
小値を示し、終了位置配列中の要素は、関連する添え字
の最大値を示す。その一方、オフセット配列中の対応す
る要素は、添え字に加減算して、実際の実体配列を指定
する変換済の添え字を得るためのオフセット値を示す。
なお、本明細書において、開始位置配列、終了位置配列
およびオフセット配列の対応する要素の組(すなわち同
じ行に位置する要素の組)を、場合によって「構造体配
列」と称し、各配列中の要素を「構造体のメンバー」と
称する。この添え字変換配列の意味するところにつき以
下に説明する。上述したように、ある構造体配列中の構
造体のメンバーにより、添え字の範囲および当該範囲に
含まれる添え字のオフセット値が決定される。このた
め、ある添え字に対して、その添え字に関連する構造体
配列を特定し、オフセット値を加えることにより、変換
済の添え字を得ることができ、これを使用して配列(実
体配列)の位置を特定して、配列中の要素(格納値)を
参照することが可能となる。
【0039】たとえば、図10(c)において、添え字
「0」は、第0行(1行目)の構造体配列と関連するこ
とが理解できる。この構造体配列において、オフセット
配列中のメンバーの値(オフセット値)は「0」である
ため、変換済の添え字は、「0+0」=0となる。した
がって、もともとの添え字「0」に対応する実体配列中
の要素は、「0」の位置に格納されていることが分か
る。また、添え字「1」は、第1行(2行目)の構造体
配列と関連し、当該構造体配列に関するオフセット配列
中のメンバーの値(オフセット値)は、「n−1」であ
るため、変換後の添え字は、「1+(n−1)=n」と
なる。したがって、対応する要素は、実体配列の「n」
の位置に格納されていることが理解できる。添え字
「2」ないし「n」に関しても同様に、対応する要素の
格納されている位置が特定できることは明らかであろ
う。
【0040】より詳細に、上記手順につき、図11のフ
ローチャートを参照して説明を加える。まず、添え字の
位置を示す番号(格納位置番号)が初期化され(ステッ
プ1101)、次いで、開始配列および終了配列の要素
を参照して、添え字が、開始位置配列および終了位置配
列の値により画定される範囲のうち、何れに含まれるか
が特定される(ステップ1102)。すなわち、このス
テップにより、添え字がどの構造体配列に関連するかが
特定される。たとえば、図10(c)の例において、添
え字「0」は、開始配列中の要素「0」および終了配列
の要素「0」にて特定される範囲に含まれることが分か
る。或いは、添え字「1」は、開始配列中の要素「1」
および終了配列中の要素「1」にて特定される範囲に含
まれることがわかる。
【0041】次いで、その範囲に基づき、対応するオフ
セット値が取り出され(ステップ1103)、添え字に
オフセット値を加えた値が得られる(ステップ110
4)。このオフセットが加えられた値が、変換済の添え
字となるため、この値を利用して、実体配列中の要素が
特定される(ステップ1105)。たとえば、添え字
「1」に関して、この添え字は第1行(2行目)に対応
する範囲に含まれるため、第1行のオフセット値である
「n−1」が添え字「1」に加えられる。したがって、
変換済の添え字は「n」となり、実体配列中の対応する
要素(格納値)「Y0」を得ることができる。或いは、
添え字「2」に関して、この添え字は、第2行(3行
目)に対応する範囲に含まれるため、第2行のオフセッ
ト値である「−1」が添え字「2」に加えられる。しが
たって、変換済の添え字は「1」となり、実体配列中の
対応する要素(格納値)「X1」を得ることができる。
必要な添え字につきステップ1102ないし1105の
処理を繰り返すことにより(ステップ1106および1
107参照)、図10(b)に示す論理的関係を維持し
つつ、実体配列中の要素(格納値)を得ることができ
る。したがって、本発明においては、配列中の要素(格
納値)の挿入時には、上述したような変換配列を生成す
るとともに、配列中の要素自体を移動させることなく、
実体配列の所定の位置(たとえば、アドレスの最大値に
対応する位置)に、挿入すべき要素を配置することによ
り、負荷が生じることなく、要素の挿入を実現できるよ
うにしている。
【0042】[要素挿入のための添え字変換配列の生
成]次に、第1の実施の形態にかかる上記添え字変換配
列の作成手順につき説明を加える。たとえば、図12に
示すように、要素数が5個の配列(符号1201)を考
え、これのうち、第0行(1行目)と第1行(2行目)
との間に、新たな要素(格納値)「Y0」を挿入する場
合を考える(符号1202参照)。図13は、配列に新
たな要素(格納値)を挿入するための変換配列の生成処
理を説明するフローチャートである。この処理は、図1
におけるCPU12により実行される。まず、初期状態
の添え字変換配列が生成される(ステップ1300)。
より詳細には、配列の要素数が調べられ、開始位置およ
び終了位置が画定される。たとえば、図12に示す例で
は、要素数が「5」であるため、初期的な添え字変換配
列において、開始位置が「0」であり、終了位置が
「4」となる。また、この例では、添え字から直接、配
列中の要素が参照されるようになっているため、初期的
なオフセット値が「0」となる(図14の符号1401
参照)。なお、添え字変換配列が予め生成されている場
合、すなわち、既に一度以上の挿入がなされている場合
や、情報ブロック生成時に初期的な添え字変換配列が生
成されている場合には、ステップ1300は省略され
る。
【0043】次いで、挿入すべき要素の位置が特定され
(ステップ1301)、挿入位置、挿入位置の前および
挿入位置の後に関する添え字変換配列のための領域が確
保される。図14の符号1401の例では、初期的な添
え字変換配列に含まれる各配列が、それぞれ1つの要素
のみを含んでいたが、ステップ1301の処理により、
3つの要素(挿入位置の前に関する要素、挿入位置に関
する要素、および、挿入位置の後に関する要素)を有す
る配列のための領域が確保される(ステップ130
2)。なお、既に各々が複数の要素を有する配列が設け
られていた場合には、要素数が2つ増えるような配列の
ための領域が確保される。
【0044】その後、挿入位置より前に関して、各配列
の要素の値が決定される(ステップ1303)。より詳
細には、開始位置配列の対応する要素値およびオフセッ
ト配列の対応する要素値は変更されず、終了位置配列の
要素値として、「挿入位置に対応する値−1」が与えら
れる。また、挿入位置に関しても、各配列の対応する要
素の値が決定される(ステップ1304、1305)。
この場合には、開始位置配列および終了位置配列の要素
値として、「挿入位置に対応する値」が与えられ、か
つ、オフセット配列の要素値として、「実体配列の末尾
の位置に対応する値」が与えられる。なお、後述するよ
うに「差分配列」として、挿入すべき要素を別個の位置
に配置するのであれば、当該差分配列中の、挿入すべき
要素の配置される位置に対応する値をオフセット値とし
て与えれば良い。また、挿入位置より後に関しても、以
下の手法により各配列の要素値が決定される。すなわ
ち、開始位置配列の対応する要素値として、「挿入位置
に対応する値+1」が与えられ(ステップ1306)、
終了位置配列の対応する値として、初期的な「終了位置
に対応する値+1」が与えられる(ステップ130
7)。次いで、オフセット配列の対応する要素値が、
「その初期値(元の値)−1」に設定される(ステップ
1308)。
【0045】たとえば、図12の符号1201に示すよ
うな添え字および配列があり、ステップ1300によ
り、図14の符号1401に示す初期的な添え字変換配
列が生成された場合には、上記ステップ1301ないし
ステップ1307の処理により、符号1411に示す添
え字変換配列が生成されることが理解できよう。このよ
うな添え字変換配列を生成した後に、CPU12は、ス
テップ1304にて設定された実体配列の末尾以降の所
定の位置(上記例では末尾)に、挿入すべき要素を格納
する。これにより、実体配列の要素(格納値)を移動す
ることなく、実質的に(論理上)実体配列の所望の位置
に要素を挿入することが可能となる。
【0046】[添え字変換配列による要素の削除]次
に、上述した添え字変換配列を用いて、要素を削除する
手法につき説明を加える。たとえば、図15(a)に示
すように、配列の第1行(2行目)の要素を削除する場
合を考える。この場合には、削除の後に、添え字と配列
中の要素(格納値)とは、図15(b)に示す論理的関
係となる。挿入の場合と同様に、図15(b)に示す論
理的関係を保持しつつ、削除時に生じる負荷を最小限に
するために、図15(c)に示す添え字変換配列を考え
る。図15(c)においても、図10(c)と同様に、
構造体配列により添え字の範囲およびオフセット値が規
定され、変換済の添え字が求められるようになってい
る。より詳細には、添え字の各々に関して、図11の処
理を施すことにより、実体配列中の要素(格納値)が特
定されることが理解できる。たとえば、添え字「1」
は、第1行(2行目)の構造体配列と関連し、当該構造
体配列に関するオフセット配列中のメンバーの値(オフ
セット値)は「1」であるため、変換後の添え字は、
「1+1=2」となる。したがって、対応する要素は、
実体配列の「2」に対応する位置に格納されていること
が理解できる。
【0047】[要素削除のための添え字変換配列の生
成]たとえば、図16(a)に示すように、5個の要素
からなる配列(符号1601)を考え、これのうち、第
1行(2行目)の要素(格納値)X0を削除する場合を
考える(符号1602参照)。なお、この例では、実体
配列は、配列1601と同じであると仮定する。図17
は、配列から要素(格納値)を削除するための変換配列
の生成処理を示すフローチャート、図18(a)は、図
16(a)に示す例に関して、処理に伴って変換配列中
の数値が変化する状態を示す図である。図17に示す処
理も、図1におけるCPU12により実行される。ま
ず、添え字変換配列が生成されていない場合には、初期
状態の添え字変換配列が生成される(ステップ170
0)。たとえば、図16(a)に示す例では、要素数が
「5」であるため、その開始位置を示す値が「0」、終
了位置を示す値が「4」、オフセット値が「0」となる
ような開始位置配列、終了位置配列およびオフセット配
列が生成される(図18(a)の符号1801参照)。
【0048】次いで、削除すべき要素の位置が特定され
(ステップ1701)、当該削除位置に関する変換配列
のための領域が特定される(ステップ1702)。図1
8(a)に示す例では、符号1802に示すように、変
換配列中の各配列において、削除位置の前、削除位置お
よび削除位置の後に関する要素を収容するための領域が
選られる。新たな領域において、削除位置の前に関し
て、終了位置配列の要素として、「削除位置を示す値−
1」が配置され(ステップ1703)、その一方、削除
位置の後に関して、開始位置配列の要素として、「削除
位置を示す値+1」が配置される(ステップ170
4)。このようにして、削除位置を含む変換配列中の構
造体配列に関して、符号1802に示すような開始位置
配列、終了位置配列およびオフセット配列が作成され
る。なお、削除位置に関する構造体配列は、最終的には
使用されないため、削除位置自体を算出することは必要
であるが、図18(a)に示すように、要素を配列中に
格納する必要はない。
【0049】次いで、各配列に関して、削除位置より後
の要素に関して、以下に述べる演算が施される。まず、
開始位置配列の要素が「もとの値−1」に設定され(ス
テップ1705)るとともに、終了位置配列の要素が
「もとの値−1」に設定される(ステップ1706)。
また、オフセット配列の要素が「もとの値+1」と設定
される(ステップ1707)。たとえば、図18(a)
の例において、削除位置より後ろに位置する開始位置配
列中の要素「2」がデクリメントされ、「1」となり
(符号1804参照)、終了位置配列中の要素「4」が
デクリメントされ「3」となり、かつ、オフセット配列
中の要素「0」がインクリメントされ「1」となる。こ
のようにして、配列中の要素を削除するための添え字変
換配列を得ることが可能となる。なお、実体配列(すな
わち、添え字にて特定される要素を実際に格納した配
列)は、要素の削除の際にも変更されない。すなわち、
添え字変換配列のみによって、見かけ(論理上)の配列
中の要素の削除を実現している。
【0050】また、図16(b)に示す他の例について
も、図17の処理により配列中の要素の削除が実現でき
る。この例では、先に説明した要素の挿入により、配列
には、第3行(4行目)に要素「Y0」が挿入されてお
り、したがって、その実体配列は、末尾に要素「Y0」
が付加された形態となっている(図16の符号1610
参照)。また、上記挿入の際に、図18(b)の符号1
811にて示す添え字変換配列が生成されている。この
ような場合には、ステップ1700に示す初期変換配列
の生成は省略される。図18(b)の符号1811にて
示す添え字変換配列に対して、ステップ1701ないし
ステップ1707の処理を施すことにより、符号181
3にて示す添え字変換配列が求められることが理解でき
よう。また、このような添え字変換配列を用いること
で、実体配列(図16の符号1610)を変更すること
なく、添え字から変換配列を経た添え字(変換済の添え
字)を用いて、図16の符号1612に示す論理関係を
持たせることができることが理解されよう。
【0051】[要素の挿入および削除の結合]配列中の
要素の挿入および削除は、上記図13に示す挿入処理お
よび図17に示す削除処理を順次実行することにより実
現される。上記処理の順序は逆でも容易なことは言うま
でもない。たとえば、初期的に、図19に示すように、
「0」ないし「4」の添え字に対して、それぞれ、
「0」、「100」、「200」、「300」および
「400」という要素が特定されるようになっている配
列1901を考える。この配列に関して、第2行(3行
目)と第3行(4行目)との間に、要素「201」を挿
入するとともに、第1行(2行目)の要素を削除して、
符号1902に示す配列を得ることを考える。本実施の
形態においては、図20(a)に示すように、まず、初
期的な変換配列を作成し(符号2001参照)、次い
で、図13に示す処理によって挿入のための変換配列
(図20(b)の符号2002参照)を作成するととも
に、実体配列の末尾に挿入すべき要素(この場合には
「201」)を配置する(符号2003参照)。次い
で、図17に示す処理によって削除のための変換配列
(図20(c)の符号2004参照)を作成する。これ
により、要素の挿入および削除が実現される。
【0052】なお、要素の削除、および、当該削除した
要素の位置に新たな要素を挿入する処理を順次実行する
ことにより、要素の更新が実現されることが理解できる
であろう。図20(a)〜(c)の右側の図表(符号2
011〜2013)において、格納位置は、添え字変換
配列を経た添え字、格納値は、見かけ(論理的な)実体
配列を示している。初期的には、添え字と格納位置とは
一致している(符号2011参照)が、挿入および削除
により、添え字変換配列が生成ないし更新され、見かけ
の実体配列において所望のように要素が挿入および削除
されていることが理解できよう(符号2012、201
3参照)。
【0053】[添え字変換配列の他の例]次に、第2の
実施の形態にかかる添え字変換配列のサイズを削減した
例につき説明を加える。前記第1の実施の形態において
は、開始位置配列と終了位置配列とを用いて、添え字が
どの範囲に含まれるか、或いは、削除または挿入すべき
要素の位置が特定されるようになっていた。しかしなが
ら、終了位置配列のある要素の値が「n」である場合
に、次の行に位置する開始位置配列の要素の値は、「n
+1」であることは明らかであり、その逆もまた明らか
である。そこで、第2の実施の形態においては、添え字
変換配列を、開始位置配列およびオフセット配列、或い
は、終了位置配列およびオフセット配列から構成し、添
え字変換配列に要するメモリサイズを削減した。たとえ
ば、図21(a)に示す添え字変換配列2101を、図
21(b)のように表わしても良い。図21(b)にお
いては、0≦添え字i≦(3−1)であるような添え字
「i」は、第0行(1行目)に対応するため、このよう
な添え字のオフセット値は「0」となる。また、3≦添
え字i≦(4−1)であるような添え字「i」(=3)
は、第1行(2行目)に対応し、4≦添え字iであるよ
うな添え字「i」は、第2行(3行目)に対応する。
【0054】或いは、図21(c)に示すような添え字
変換配列を用いても良いことは明らかである。この場合
に、5≧添え字i≧(3+1)であるような添え字
「i」は、第2行(3行目)に対応し、3≧添え字i≧
(2+1)であるような添え字「i」は、第1行(2行
目)に対応し、また、2≧添え字iであるような添え字
「i」は、第0行(1行目)に対応する。なお、図21
(b)に示すような添え字変換配列を用いれば添え字の
総数を知ることができ、これにより、配列のサイズを知
ることができるため、この添え字変換配列を用いるのが
より好ましい。
【0055】[実体配列と差分配列]前記第1の実施の
形態においては、配列に要素を挿入する際に、配列の末
尾に挿入すべき要素を配置している(たとえば、図10
(c)参照)。しかしながら、オフセット配列中の対応
するオフセット値を設定することにより、所望の位置
に、挿入すべき要素を配置できることは明らかである。
第3の実施の形態では、この挿入される要素を、任意の
編集用作業領域に配置している。このような、挿入され
る要素が配置された編集用の作業領域を「差分配列」と
称する。図22は、添え字変換配列、実体配列および差
分配列の一例を示す図である。図22に示すように、こ
の例では、添え字変換配列2201により、挿入された
要素「Y0」および「Y1」が、実体配列2202とは
別個の領域に確保された差分配列2203中に配置され
ている。これは、添え字変換配列を作成(図13参照)
した後に、挿入すべき要素(格納値)を配置する際に、
挿入すべき要素のオフセット値にしたがった領域に、差
分配列を作成し、当該差分配列中に上記要素を配置すれ
ば良い。
【0056】[値変換配列]次に、本発明の第4の実施
の形態にかかる値変換配列につき説明を加える。配列に
関しては、上記要素の挿入および削除のほか、配列の要
素(格納値)自体を変化させる(更新する)必要が生じ
得る。本実施の形態においては、配列の要素を更新する
ために、以下に述べる値変換配列を利用する。たとえ
ば、図23(a)に示すように、ある配列(レコード番
号リスト)のうち、1以上の値を有するものをインクリ
メントする必要がある場合を考える。従来の手法では、
配列中の要素(格納値)が1以上であるかを判断し、1
以上である場合には、要素(格納値)をインクリメント
するという処理を、全ての要素に関して実行していた。
これに対して、本発明の第4の実施の形態においては、
配列の後段(下流側)に、値変換配列を配置し、配列か
ら出力された値を、値変換配列を通すことにより、変換
済の値を出力し、この変換済の出力において、要素(格
納値)の更新が実現されているような手法を用いてい
る。図23(a)に示すような場合には、図23(b)
に示すような値変換配列が設けられる。この実施の形態
では、第2の実施の形態と同様に、値変換配列は、終了
位置配列とオフセット配列とから構成されている。無
論、第1の実施の形態のように、値変換配列を開始位置
配列、終了位置配列およびオフセット配列から構成して
も良い。
【0057】これらの配列に格納された要素(値)のう
ち、同じ位置(たとえば第0行、第1行)に配置された
ものが相互に関連している。したがって、対応する位置
に配置された要素により、構造体配列を構成する。本実
施の形態においては、終了位置配列の値により、実体配
列中の要素(格納値)の配置されている位置が、どの構
造体配列に関連しているかが特定され、それに基づき、
値に対するオフセットを特定することが可能となる。上
述した例(1以上の要素をインクリメントする例)に関
する処理につき、図24を用いてより詳細に説明する。
この処理も、先に延べた実施の形態と同様に、図1に示
すCPUにより実行される。
【0058】まず、要素の格納位置を示す番号(格納位
置番号)が初期化され(ステップ2401)、当該格納
位置番号により特定される配列中の要素(格納値)が、
終了位置配列により画定される範囲のうち、何れに含ま
れるかが特定される(ステップ2402)。このステッ
プにより、要素がどの構造体配列に関連するかが特定さ
れる。図23(b)の例において、格納位置番号が
「0」(すなわち、第0行(1行目)の)要素は「1」
であり、この要素は、終了位置配列中の第1行(2行
目)の値にて確定される範囲(すなわち、1≦配列中の
要素≦1)に含まれるため、当該要素は、第1行(2行
目)の構造体配列に関連していることがわかる。次い
で、この構造体配列に属するオフセット配列中のオフセ
ット値が取り出され(ステップ2403)、要素にオフ
セット値を加えた値が出力される(ステップ240
4)。このように、値変換配列を経た値は、出力値配列
の格納位置番号に対応する領域に記憶されても良い(ス
テップ2405)。或いは、値変換配列を経た値を直接
他の処理に利用しても良いことは言うまでもない。上記
格納位置番号が「0」の要素に関しては、対応するオフ
セット値は「1」であるため、「1+1=2」が変換配
列後の要素(格納値)として出力される。実体配列中の
必要な値に関して、ステップ2402ないし2405の
処理を、繰り返すことにより、図23(a)に示すよう
な論理関係を維持しつつ、実体配列の要素自体を変化さ
せることなく、要素の更新をなすことが可能となる。
【0059】[値変換配列の生成]次に、上記値変換配
列の作成手順の一例につき、図25のフローチャートを
用いて説明を加える。図25の例においては、図23
(b)に示すものと同様に、ある数以上の値に所定の数
を加えるための値変換配列を生成している。なお、この
処理も、図1に示すCPU12により実行される。ま
ず、必要な場合に、初期的な値変換配列が生成される
(ステップ2500)。このステップの処理は、値変換
配列が生成されていなかった場合にのみ、実行される。
図23(b)に示す実体配列2301に関しては、図2
6(a)に示すような、初期的な値変換配列が得られ
る。初期的な値変換配列2601においては、終了位置
配列中の要素として、実体配列中の要素の最大値が割り
当てられ、オフセット配列中の要素として「0」が割り
当てられる。
【0060】次いで、あるオフセットを与える要素(格
納値)の範囲に基づき、生成すべき配列の行数が決定さ
れる(ステップ2501)。たとえば、図23(a)に
示すように、「1」以上の値をもつ要素に「1」を加え
るという条件が与えられた場合には、終了位置配列およ
びオフセット配列の行数は「2」となる。これは、
「1」より小さな値を持つ要素に関する行(或いは構造
体配列)、および、「1」以上の値をもつ要素に関する
行(或いは構造体配列)が生成されるべきだからであ
る。その後に、昇順で、各範囲の最大値が終了位置配列
の対応する行に配置されるとともに、そのオフセット値
が、オフセット配列の対応する行に配置される(ステッ
プ2502、2503)。図23(a)に示すような実
体配列において、「1」以上の値を持つ要素に「1」を
加えるべき場合には、終了位置配列において、第0行
(1行目)に、1より小さい値の最大値である「0」が
配置され、オフセット配列の第0行(1行目)に、オフ
セット値「0」が配置される。すなわち、第0行の構造
体配列に数値が与えられる。その一方、終了位置配列に
おいて、第1行(2行目)には、実体配列中の要素の最
大値「1」が与えられる。これは、値変換配列の初期値
を用いれば良い。また、オフセット配列の第1行(2行
目)に、オフセット値「1」が配置される(図26
(a)の符号2602参照)。上記ステップ2502、
2503の処理を条件にしたがった全ての範囲に施すこ
とにより(ステップ2504、2505参照)、値の変
換条件にしたがった値変換配列を得ることが可能とな
る。
【0061】なお、上記実施の形態では、1つの条件に
より、2つの変換配列の領域が形成されたが、これに限
定されるものではなく、複数の条件(たとえば、0≦値
≦1である場合には、要素に「1」を加え、1≦値≦4
である場合には、要素に「−1」を加え、その他の要素
に関してはオフセットを与えない)に基づいて、値変換
配列を作成できることは明らかである(図26(b)の
符号2611、2612参照)。上記添え字変換配列お
よび値変換配列は、組み合わせて利用することができ
る。たとえば、図27においては、「0」ないし「9
9」の要素が繰り返し現れる実体配列(符号2700参
照)の上流側(入力側)に、「0」から「500,00
0」までの添え字にはオフセット「0」を与え、「50
0,000」から「999,999」までの添え字には
オフセット「1」を与える添え字変換配列(符号270
1参照)を設け、実体配列の下流側(出力側)に、値が
49以下であればオフセット「−1」を与え、値が50
以上であればオフセット「1」を与える値変換配列(符
号2702)を設けている。これにより、添え字が、添
え字変換配列、実体配列および値変換配列を経て、出力
値を得ることができる。
【0062】上記添え字変換配列を用いて、ある情報ブ
ロック中の実体配列に与えられる添え字を変換し、変換
済の添え字により実体配列中の要素(項目値)を取り出
し、さらに、上記値変換配列を用いて、取り出された要
素(項目値)を変換することにより、当該情報ブロック
の入力(添え字)と出力(変換済の値)とからなる見か
けの(論理的な)配列を考えることが可能となる。
【0063】[具体的な表形式データに対するデータの
削除]次に、上述した手法を用いて、実際の表形式デー
タの所望のデータを挿入し、削除し或いは更新する具体
的な手順につき説明を加える。第5の実施の形態では、
会員姓および会員名という項目からなる人名テーブル
に、所望の会員姓名が挿入、削除され、或いは、その姓
或いは名が更新される。ここでは、挿入に関して第2の
実施の形態にかかる手法を用いている。すなわち、添え
字変換配列および値変換配列が、それぞれ、終了位置配
列およびオフセット配列から構成されるようになってい
る。なお、以下に述べる添え字変換配列の生成処理、お
よび、値変換配列の生成処理には、新たに変換配列を生
成することと、もともと存在した変換配列を更新するこ
ととが含まれる。したがって、以下において、「生成」
は、生成や更新を意味し、場合によっては、これを「生
成(ないし更新)」と称する。
【0064】図28(a)は、人名テーブルの例を示す
図である。このような人名テーブル2800のために、
本実施の形態においては、図28(b)に示すレコード
番号リスト2810、図28(c)に示す「会員姓」と
いう項目に関する情報ブロック2820、および、図2
8(d)に示す「会員名」という項目に関する情報ブロ
ック2830が生成される。情報ブロック2820の値
リストへのポインタ配列2821において、初期的な添
え字変換配列2823および初期的な変換配列2824
は予め作成されている。また、実体配列2825が、変
換配列を作成する前の(もとの)値リストへのポインタ
配列に対応する。値リスト2822においても、初期的
な添え字変換配列2826が予め作成されている。な
お、実体配列2827が、もともとの項目値を格納した
値リストに対応している。情報ブロック2830の値リ
ストへのポインタ配列2831においても、初期的な添
え字変換配列および値変換配列が予め作成されており、
値リスト2832においても、初期的な添え字変換配列
が予め作成されている。
【0065】このような構造を有する情報ブロックから
なる表形式データにおいて、図29に示すように、3つ
あるレコードのうち(図29(a)参照)、第1行(2
行目)のレコードの削除する(図29(b)参照)場合
を考える。この場合には、以下に述べるような各情報ブ
ロックに関して、[添え字変換配列による要素の削除]
にて述べた処理が実行される。まず、「会員姓」の情報
ブロックに関して考察を加える。図29(a)のような
「会員姓」を得るために、初期的には、値リストへのポ
インタ配列において、図30の符号3000に示すよう
な添え字の入出力関係が成立している。すなわち、添え
字である「レコード番号」の入力に対して、実体配列で
ある「値リストへのポインタ配列」のポインタ値が、符
号3000に示すように出力される。
【0066】さて、このような「値リストへのポインタ
配列」中の添え字変換配列に対して、図1に示すCPU
12により、図17に示すものと略同様の処理が施され
る。より具体的には、まず、実体配列(ポインタ配列)
3001において削除すべき要素の位置等が特定され
(図17のステップ1701)、削除位置に関する変換
配列の領域が確保される(ステップ1702)。次い
で、削除位置の前に関して、終了位置配列の要素とし
て、「削除位置−1」すなわち「0」が配置される(ス
テップ1703)。なお、この例では、開始位置配列が
設けられていないため、ステップ1704およびステッ
プ1705が省略される。その後に、削除位置より後に
関して、終了位置配列の各要素がデクリメントされる
(ステップ1706)とともに、オフセット配列の各要
素がインクリメントされる(ステップ1707)。この
ような処理により、図30(b)に示すような、添え字
変換配列を得ることができる。図30(b)において、
添え字であるレコード番号に対して、実体配列である
「値リストへのポインタ配列」のポインタ値が、符号3
010に示すように出力されることが理解できるであろ
う。
【0067】また、「会員名」に関する情報ブロック
(図28の符号2830参照)に関しても、「会員姓」
に関する情報ブロックと同様に、CPU12により、図
17に示すものと略同様の処理が施される。これによ
り、図31(a)に示す「会員名」の情報ブロック中の
添え字変換配列3101が、図31(b)に示すような
添え字変換配列3111になる。したがって、添え字で
ある「レコード番号」の入力と、実体配列である「値リ
ストへのポインタ」のポインタ値との関係は、図31
(a)の符号3100に示すものから、図31(b)の
符号3110に示すものに変化する。
【0068】このように添え字変換配列の生成処理を施
した後に、レコード番号からポインタ配列を経ることに
より、値リストの実体配列中において所望の要素(項目
値)を特定することができる。図32に示すように、C
PU12は、新たなレコード番号(添え字)から、添え
字変換配列を経た新たな添え字により、実体配列中の要
素(ポインタ値)を特定する。たとえば、レコード番号
「0」に関するオフセット値は「0」であるため、実体
配列中の第0行(1行目)の要素(ポインタ値)が取り
出され、このポインタ値「1」によって、値リスト中の
実体配列における第1行(2行目)の項目値が特定され
る(図32において参照)。これに対して、レコード
番号「1」に関するオフセット値は「1」であるため、
「1+1=2」という変換済の添え字が得られ、これに
より、実体配列中の第2行(3行目)の要素(ポインタ
値)が取り出される。次いで、このポインタ値「1」に
よって、値リスト中の実体配列における第1行(2行
目)の項目値が特定される(図32において参照)。
【0069】「会員名」の情報ブロックに関しても、同
様の経路(、参照)により、値リスト中の実体配列
の項目値が特定されることは明らかであろう。このよう
にして、新たなレコード番号に対応する人名テーブルの
表(ビュー)3200を得ることが可能となる。ビュー
3200において、ないしは、上記処理において特
定された項目値をそれぞれ示す。
【0070】[具体的な表形式データに対するデータの
挿入]次に、データを挿入する例につき説明を加える。
たとえば、2つあるレコード(図33(a)参照)のう
ち、第0行(1行目)と第1行(2行目)との間に、あ
るレコードを挿入する(図33(b)参照)を考える。
この場合には、以下に述べるような各情報ブロックに関
して、「添え字変換配列による要素の挿入が実行される
とともに、必要な情報ブロックに関して「値変換配列の
生成」が実行される。図34は、レコード(データ)の
挿入前の各情報ブロックの状態を示す図である。まず、
「会員姓」の情報ブロックにおける添え字変換配列の更
新、および、「会員名」の情報ブロックにおける添え字
変換配列の更新につき考察を加える。
【0071】「会員姓」に関しては、値リストの実体配
列中に、「佐藤」という要素(項目値)を加える必要が
ある。そこで、CPU12は、値リスト中の添え字変換
配列による挿入処理(図13参照)を実行する。より具
体的には、要素(項目値)の挿入位置が決定される(図
13のステップ1300参照)。この例では、「佐藤」
という要素(項目値)を挿入する必要があるが、値リス
トの実体配列においては、要素が昇順(この場合には五
十音順)で配置されているため、「佐藤」という要素
は、「鈴木」という要素の前に配置する必要があり、し
たがって、その挿入位置は第0行(1行目)と判断され
る。そこで、図13のステップ1301にしたがって、
各変換配列の領域が確保される。この例では、挿入位置
が第0行(1行目)であるため、挿入位置より前には要
素が存在せず、挿入位置および挿入位置より後の要素に
対して、ステップ1303ないしステップ1307の処
理が施される。図35(b)に示すように、挿入位置
(符号3510参照)に関して、終了位置配列に、挿入
位置を示す要素「0」が配置され(符号3511参
照)、かつ、実体配列の末尾を示す位置「1」が、オフ
セット配列の対応する要素として配置される(符号35
12参照)。また、挿入位置より後に関して、終了位置
配列に、もとの値に「+1」を加算した値が配置され
(符号3513参照)、オフセット配列の対応する値と
して、もとのオフセット値「0」に「−1」を加算した
値が配置される(符号3514参照)。また、実体配列
の末尾に、新たな要素(項目値)「佐藤」が配置される
(符号3520参照)。実体配列においては挿入すべき
新たな要素が末尾に付加された形態となっているが、値
リスト中の添え字変換配列により、見かけの(つまり論
理的な)配列は、符号3521にて示すように、昇順
(五十音順)となっている。
【0072】同様に、「会員名」に関しても、値リスト
の実体配列中に、「エー作」という要素(項目値)を加
える必要がある。そこで、CPU12は、「会員名」の
情報ブロックにおいて、の値リスト中の添え字変換配列
による挿入処理(図13)を実行する。より具体的に
は、要素(項目値)の挿入位置が、第1行(2行目)で
あると決定され(図36(b)の符号3610参照)、
各変換配列の領域が確保される。挿入位置より前の要素
に対しては、その終了配列中の要素として、挿入位置
(この場合「1」)から「1」を減じた(「−1」を加
算した)値が割り当てられ(符号3611参照)、その
一方、対応するオフセット配列中の要素は保持される
(符号3612参照)。また、挿入位置(符号3610
参照)に関して、終了位置配列に、挿入位置を示す要素
「1」が配置され(符号3513参照)、かつ、実体配
列の末尾を示す位置「2」を示すためのオフセット値
「1」が、オフセット配列中の要素として与えられる
(符号3614参照)。
【0073】その一方、挿入位置より後に関して、終了
位置配列に、もとの値に「+1」を加算した値が配置さ
れ(符号3615参照)、オフセット配列の対応する値
として、もとのオフセット値「0」に「−1」を加算し
た値が配置される(符号3516参照)。さらに、実体
配列の末尾に、新たな要素(項目値)「エー作」が配置
される(符号3620参照)。なお、実体配列において
は挿入すべき新たな要素が末尾に付加された形態となっ
ているが、値リスト中の添え字変換配列により、見かけ
の(つまり論理的な)配列は、符号3621にて示すよ
うに、昇順(五十音順)となっていることが理解でき
る。このようにして各情報ブロックの値リストに関する
値変換配列の生成(ないし更新)が実現された後、これ
に付随した、ポインタ配列の側の添え字変換配列および
値変換配列の生成(ないし更新)が実行される。
【0074】まず、値リストへのポインタ配列におい
て、実体配列の要素を変換するための値変換配列が生成
(ないし更新)される必要がある。たとえば、図37に
示す「会員姓」の情報ブロックにおける値リストへのポ
インタ配列に関して、関連する値リスト(すなわち「会
員姓」の値リスト)に、先の処理により、新たな姓「佐
藤」が見かけの(つまり論理的な)配列の先頭に挿入さ
れている(図35の符号3521参照)。そこで、値リ
ストへのポインタ配列のポインタ値(すなわち実体配列
3701における要素)のうち、0以上の値を有するも
のがすべてインクリメントされなければならない。そこ
で、CPU12は、図25に示すフローチャートにした
がって、上記値リストへのポインタ配列における値変換
配列を生成(ないし更新)する。
【0075】図37(a)に示す配列では、値のとり得
る最大値が「0」であり、かつ「0」以上の値をインク
リメントする必要があるため、結果として、オフセット
配列中の値「0」に「+1」が加算される(図25のス
テップ2503、図37(b)の符号3711参照)。
初期的には、実際に実体配列中に収容された要素(ポイ
ンタ値)と、値変換配列を経て出力される要素(ポイン
タ値)とが、図37(a)の符号3702に示すように
同一であったのに対して、値変換配列の生成(ないし更
新)の後には、値変換配列を経て出力される要素(ポイ
ンタ値)が、図37(b)の符号3712に示すよう
に、もとの値をインクリメントした形態となる。また、
新たな姓「佐藤」がレコード番号「1」(すなわち第1
行或いは2行目)に挿入されることに伴って、値リスト
へのポインタ配列における添え字変換配列の生成(ない
し更新)処理を実行するとともに、値リスト中の見かけ
の(つまり論理的な)配列の第0行(1行目)にも姓
「佐藤」が挿入されたため、値リストへのポインタ配列
中の値を、上記値リストの変更に伴って生成(ないし更
新)する処理を実行する必要がある。つまり、値リスト
へのポインタ配列では、添え字であるレコード番号から
整数化されたポインタ値を取り出すものであり、したが
って、以下の添え字変換配列の生成(ないし更新)によ
り、添え字変換配列を生成して、レコード番号「1」に
対応する姓「佐藤」を示すことができるようにするとと
もに、ポインタ配列からの出力(値)を変換して、「佐
藤」および「鈴木」という要素を昇順で並べた見かけの
(つまり理論的な)値リストを適切に示すことができる
ようにしている。
【0076】まず、CPU12は、上記ポインタ配列の
添え字変換配列に関して、添え字であるレコード番号が
挿入されたことに対応して、図13に示す処理を実行す
る。より具体的には、新たな姓「佐藤」(および新たな
名「エー作」)を挿入すべきレコード番号が「1」であ
るため、挿入位置が第1行(2行目)であると判断され
(図13のステップ1301参照)、挿入位置およびそ
の前後に関する変換配列の領域が確保される(ステップ
1302)。以下、ステップ1303ないしステップ1
308の処理(実際には、開始位置に関する処理が省略
される)により、図38(a)に示すように添え字変換
配列(符号3810参照)が形成される。
【0077】これにより、添え字変換配列を経ることに
より、値リストのポインタ配列は、添え字であるレコー
ド番号の入力に対して、符号3811に示すような出力
が選られることになる。ところで、図37を参照して説
明したように、上記例では、値リストにおける見かけの
(つまり理論的な)配列では、昇順(五十音順)にした
がって、「佐藤」という要素(項目値)が「鈴木」とい
う要素(項目値)より上位に位置していることがわかっ
ている。したがって、値変換配列により、値リストのポ
インタ配列中の実体配列の値を変換して、値リスト中の
要素(項目値)を適切に指示できるようにしなければな
らない。そこで、CPU12が図25にしたがった処理
を実行する。この処理では、姓「佐藤」の挿入により、
実体配列の値が「1」であるものの出力が「0」となる
ようにオフセット値、すなわち、オフセット値「−1」
を与え、それ以外についてはオフセット値「1」を与え
るような処理を実行する。これにより、図38(b)に
示すように値変換配列(符号3820参照)を得ること
ができる。
【0078】図38(b)において、新たなレコード番
号(添え字)に対して、添え字変換配列、実体配列およ
び値変換配列を経て出力された値は、見かけの(つまり
倫理的な)配列(符号3821参照)に示すようにな
り、これにより、適切に値リストの要素(項目値)が特
定されることが理解できよう。「会員姓」の情報ブロッ
クの値リストへのポインタ配列に対して施されたものと
同様の処理が、「会員名」の情報ブロックに対しても施
される。まず、図39に示すように、「会員名」の情報
ブロックのうち、値リストに関する処理(添え字変換配
列の生成(更新)および実体配列への要素(項目値)の
挿入:図36参照)に伴う値リストへのポインタ配列の
生成(ないし更新)が実行される。CPU12が図13
に示す処理を事項することにより、まず、図39(b)
に示す値変換配列(符号3910参照)を得ることがで
きることは明らかであろう。
【0079】次いで、CPU12は、上記ポインタ配列
の添え字変換配列に関して、添え字であるレコード番号
が挿入されたことに対応して、図13に示す処理を実行
する。より具体的には、新たな会員名「エー作」が挿入
すべきレコード番号が「1」であるため、第1行(2行
目)を挿入位置として(図13のステップ1301参
照)、図13にしたがった処理が行われる。これによ
り、図40(a)に示すようなオフセット配列(符号4
010参照)を得ることができる。さらに、上記添え字
変換配列の生成(ないし更新)および実体配列の末尾へ
の要素の挿入に伴って値変換配列を更新する必要がある
ため、CPU12は、図25に示す処理を実行し、これ
により、図40(b)に示す値変換配列(符号4020
参照)を得ることができる。
【0080】図40(b)において、レコード番号を添
え字とする値リストのポインタ配列の出力は、見かけの
(論理的な)配列(符号4021参照)に示すものとな
る。各レコード番号からは図40(b)の破線で示すよ
うな経路で出力が得られていることが理解できよう。こ
のように、各情報ブロックにおいて添え字変換配列およ
び/または値変換配列の生成ないし更新処理を施した後
に、レコード番号からポインタ配列を経ることにより、
値リストの実体配列中において所望の要素(項目値)を
特定することができる。図40に示すように、CPU1
2は、値リストへのポインタ配列において、新たなレコ
ード番号(添え字)から、添え字変換配列、実体配列お
よび値変換配列を経て、値リストの実体配列中の要素
(項目値)を特定するための出力を得る。たとえば、
「会員姓」の情報ブロックに関して、レコード番号
「0」に関するオフセット値は「0」であるため、実体
配列中の第0行(1行目)の要素(ポインタ値)が取り
出され、さらに、この要素(ポインタ値)の対応するオ
フセット値が「1」であるため、値リストへのポインタ
配列からの出力は「1」となる(図40において参
照)。これに対して、レコード番号「1」に関して、添
え字変換配列のオフセット値は「1」であるため、「1
+1=2」という変換済の添え字が得られ、これによ
り、実体配列中の第2行(3行目)の要素(ポインタ
値)が取り出される。さらに、この要素(ポインタ値)
に対応するオフセット値が「−1」であるため、値リス
トへのポインタ配列からの出力は「0」となる(図40
において参照)。同様にしてレコード番号「3」につ
いても、出力「1」を得ることができる。このような出
力は、値リストに与えられ、値リスト中の添え字変換配
列を経たものにより、実体配列中の要素(項目値)が特
定される。「会員名」の情報ブロックに関しても、同様
の経路を経て、レコード番号から値リストの実体配列中
の要素(項目値)が特定される(図41のないし参
照)。
【0081】このようにして、新たなレコード番号に対
応する人名テーブルの表(ビュー)4100を得ること
が可能となる。ビュー4100において、ないし
は、上記処理において特定された項目値をそれぞれ示
す。本実施の形態によれば、実体配列への入力を添え字
として定義し、当該添え字を変換し、および/または、
実体配列からの出力である値を変換することにより、実
体配列の要素自体を移動することなく、実体配列への要
素の挿入および削除を実現している。つまり、実体配列
への入力および出力に所定の関数を施すことにより、仮
想的に(或いは論理的に)実体配列に対する挿入/削除
/更新が行われたとみなせるように構成している。した
がって、実体配列中の要素の移動を必要とすることな
く、データの挿入等を実現することができる。特に、要
素数が膨大な表形式データにおいて、要素の移動を伴わ
ないことにより、処理の著しい高速化に寄与することが
可能となる。
【0082】[表形式データに対するデータの更新]上
述したように、本発明においては実体配列の変更(すな
わち、データ自体の変更や移動)を伴うことなく、表形
式データに対するデータの挿入および削除を実現するこ
とができる。表形式データに対するデータの更新は、あ
るレコード番号のデータの削除(レコードの削除)およ
び同じレコード番号へのデータの挿入(レコードの挿
入)を順次実行することと等価である。たとえば、図2
8に示す表形式データ(人名テーブル)において、第1
行(2行目)のレコードを更新する行為(たとえば、
「会員姓」の「佐藤」を「田中」に更新する処理、およ
び/または、「会員名」の「エー作」を「ビー作」に更
新する処理)を考える。この場合に、まず、図29ない
し図32を参照して説明した手法を用いて、第1行(2
行目)のレコードを削除する処理を実行し、その後に、
図33ないし図42を参照して説明した手法を用いて、
第0行(1行目)と第1行(2行目)との間に、新たな
レコードを挿入する処理を実行すれば良い。
【0083】[情報ブロックの形態にて表わされた表形
式データの挿入等に関する考察]さて、上記情報ブロッ
クの形態にて表わされた表形式データにおいて、データ
を追加する場合につき、再度考察を加える。前述したよ
うに、上述した例では、図46(a)に示すように、C
PU12により、値リストへの項目値の挿入に伴う添え
字変換配列の処理、すなわち、五十音順にソートされた
状態にて項目値が収容された状態の「見かけの(論理的
な)配列」を得るために添え字変換配列を生成(ないし
更新)する処理が実行される(ステップ4601)。そ
の後に、上記処理において、見かけの(論理的な)実体
配列(値リスト)の所定の位置に、要素(項目値)が挿
入されているため、これに伴って、値リストへのポイン
タ配列に関して、所定の位置に対応する値以上の値を有
するものがインクリメントされている(ステップ460
2)。次いで、レコード番号とポインタ配列中のポイン
タ値に着目して、CPU12は、レコード番号の挿入に
伴って、値リストへのポインタ配列の添え字変換配列の
処理を実行している(ステップ4603)。このような
処理の後、最後に、新たに挿入されたポインタ配列の実
体配列における項目値(前記例では、もとの実体配列中
の最大値よりも一つ大きな値)に対する値変換配列を生
成している(ステップ4604)。
【0084】この処理を見ると、ステップ4601とス
テップ4603とは独立して実行でき(場合によっては
並列的に実行することもでき)、その一方、ステップ4
602とステップ4604とは一括して実行することが
できる。したがって、挿入処理は、図46(b)に示す
ように、ポインタ配列の添え字変換配列に関する処理
(ステップ4611:図46(a)のステップ4603
に対応する)、値リストの添え字変換配列に関する処理
(ステップ4612:ステップ4601に対応する)、
および、ポインタ配列の値変換に関する処理(ステップ
4613:ステップ4602および4604に対応す
る)からなると考えることができる。さて、ここで、m
個のレコードに対応してm個の要素(ポインタ値)から
なる値リストへのポインタ配列と、n個の要素(項目
値)からなる値リストとを考える。ここで、第j行のレ
コードに、要素を挿入すると仮定する。図47(a)に
示すように、第j行の要素の挿入に対して、ステップ4
611の処理により、値リストへのポインタ配列に関し
て、終了位置配列およびオフセット配列からなる添え字
変換配列(符号4701参照)、および、その末尾に新
たなポインタ値が格納された実体配列(符号4702参
照)が得られることが理解できるであろう。
【0085】その一方、所定の順序(たとえば五十音
順)にて要素(項目値)が配置された値リストに関し
て、この要素を走査することにより、第i行に要素を挿
入すべきであると判断された場合にも、ステップ461
2の処理により、終了位置配列およびオフセット配列か
らなる添え字変換配列(符号4703参照)、および、
その末尾に挿入すべき要素(項目値)が配置された実体
配列(符号4704参照)が得られることが理解できる
であろう。ここで、値リストへのポインタ配列におい
て、添え字変換配列は、添え字(レコード番号)「p」
が、0≦p≦(j−1)である場合には、オフセット値
「0」を加え、j≦p≦j(すなわちp=j)の場合に
は、オフセット値「m−j」を加え、或いは、(j+1)
≦p≦mの場合には、オフセット値「−1」を加えるこ
とを意味している。また、値リストにおいて、添え字変
換配列は、入力した添え字(ポインタ配列の出力)
「q」が、0≦q≦(i−1)である場合には、オフセッ
ト値「0」を加え、i≦q≦i(つまりq=i)の場合
には、オフセット値「n−i」を加え、或いは、(i+
1)≦q≦nの場合には、オフセット値「−1」を加え
ることを意味している。
【0086】次に、値リストへのポインタ配列における
値変換配列に考察を加えると、値リストの見かけ(論理
上)の挿入位置「i」より小さな値についてはオフセッ
トを加える必要が無い(すなわち、ポインタ値の意味合
いに変化が無い)と考えることができる。その一方、上
記挿入位置「i」以上の値については、見かけ(論理
上)の値リストに対してポイントすべき位置が、一つず
つ下方(すなわち値の大きな方)にシフトしていること
になるため、その値にはオフセット値「1」を加えるべ
きであることが理解できる。さらに、値リストの実体配
列の末尾に追加されたポイント値(すなわち、レコード
番号の挿入処理に伴って付加された、実体配列中の位置
「m」におけるポインタ値)の値は、「n」であると考
えられる。これは、挿入処理前のポインタ配列の実体配
列において、「0」ないし「n−1」の何れかの値を取
り得るため、挿入処理によりポイント値「n」が与えら
れるからである。このため、このポイント値「n」が値
変換により、値リストの見かけ(論理上)の挿入位置
「i」をポイントするためには、そのオフセット値を
「i−n」に設定すればよいことがわかる。無論、実体
配列中の位置「m」におけるポイント値が他の値を割り
当てても、値変換により、その値が「i」に変換される
ようなオフセット値を与えればよい。このようにして、
図47の符号4705に示すような値変換配列を得るこ
とが可能となる。すなわち、ポインタ配列の値変化リス
トに関して、実体配列中の要素(ポインタ値)「r」
が、0≦r≦(i−1)である場合には、オフセット値0
を加え、i≦r≦(n−1)の場合には、オフセット値
「+1」を加え、或いは、n≦r≦n(つまりr=n)
の場合には、オフセット値「i−n」を加えればよいこ
とになる。
【0087】削除に関しても、挿入の場合と同様に、m
個のレコードに対応してm個の要素(ポインタ値)から
なる値リストへのポインタ配列と、n個の要素(項目
値)からなる値リストを考え、その第j行のレコードを
削除すると仮定する。この場合には、図48に示すよう
に、ポインタ配列中の添え字変換配列(符号4801)
参照を得ればよい。図48から理解できるように、添え
字(レコード番号)「p」が、0≦p≦(j−1)の場合
には、オフセット値0を加え、j≦p≦(m−2)の場合
には、オフセット値「+1」を加えればよい。これによ
り、変換後の添え字は、もとの(変換前の)添え字
「j」に対応するポインタ値を、ポインタすることがな
くなり、これにより当該ポインタ値およびこれにより特
定される値リストが、見かけ上(論理的に)削除され
る。
【0088】[他の手法による表形式データに対するデ
ータの削除]次に、本発明において、表形式データに対
するデータの削除の他の例につき説明を加える。この手
法は、データの挿入がなされない場合に有効である。再
度、図28のような構造を有する情報ブロックからなる
表形式データにおいて、図29に示すように第1行(2
行目)のレコードを削除する場合を考える。
【0089】本例では、「会員姓」および「会員名」の
情報ブロックに処理を施すことなく、レコード番号リス
トに処理を施すことにより、レコードの削除を実現して
いる。より詳細には、図42に示すように、レコード番
号リストの添え字変換配列に関して、削除の処理を実行
し、もとのレコード番号「1」を削除した形態の論理的
な出力をなすようにしている。図42(a)に示すよう
に、レコード番号リストにおける添え字入力とレコード
番号出力との関係は、符号4201に示すようなものと
なっている。そこで、CPU12は、第1行(2行目)
を削除するために、図17に示す処理を実行する。より
詳細には、削除位置(この場合には第1行)が特定され
(ステップ1701)、次いで、削除位置に関する変換
配列の領域が生成され(ステップ1702)、変換配列
中の要素につき、所定の処理が実行される(ステップ1
703ないし1707参照、ただし、この例では、開始
配列に関する処理は実行されていない。)。これによ
り、図42(b)に示すような添え字変換配列(符号4
210参照)が得られる。この添え字変換配列を経るこ
とにより、入力と出力の関係は符号4211に示すよう
なものとなり、論理的にはレコード番号「1」が削除さ
れ、それ以下のレコード番号が一つずつシフトした状態
が実現されていることが理解できるであろう。本例によ
れば、レコード番号自体の添え字変換配列を用いること
により、仮想的(論理的)にレコード番号の削除および
シフトが実現され、したがって、極めて簡素な手法によ
りレコードの削除を実現することが可能となる。
【0090】[本発明のトランザクション処理等への応
用]次に、上記手法を用いてトランザクションを適切に
なすことにつき説明を加える。上述したように、本発明
においては実体配列の要素の順序を変更したり、或い
は、要素を移動することなく、要素の挿入、削除並びに
更新を実現している。そこで、これを用いれば、トラン
ザクションを適切に実現することができる。図43は、
トランザクション処理を示すフローチャートである。こ
の処理は、図1のCPU12により実行される。また、
表形式データを複数の情報ブロックの集合体の形態とす
るための処理(たとえば、図6に示す処理)は予め実行
されているものとする。
【0091】CPU12は、まず、トランザクション処
理に関わる全ての情報ブロックに関して初期的な変換配
列を付与する(ステップ4301)。たとえば、レコー
ド番号リストにおいては、レコード番号の配列(実体配
列)に対する初期的な添え字変換配列を生成し、或い
は、ある情報ブロックの値リストへのポインタ配列にお
いては、ポインタ配列の実体配列に対する初期的な添え
字変換配列および値変換配列を生成するとともに、当該
情報ブロックの値リストにおいては、実体配列(実際の
値リスト)に対する初期的な添え字変換配列を生成す
る。次いで、CPU12は、所定のトランザクション処
理を実行する(ステップ4302)。ここにおいて、レ
コードの挿入、削除或いは更新の何れかが必要である場
合には、前述したように、添え字変換配列や値変換配列
を更新し、かつ、必要な場合には実体配列の末尾に要素
を挿入(或いは別の領域に差分配列を生成)する。たと
えば、オペレータ等によりロールバックの指示があった
場合(ステップ4303でイエス(Yes)には、CPU1
2は、その時存在した全ての変換配列を廃棄する(ステ
ップ4304)。
【0092】その一方、ロールバックの指示がなく(ス
テップ4303でノー(No))、かつ、トランザクション
処理が終了した場合には、CPU12は処理をコミット
する(ステップ4304)。コミットの際に、CPU1
2は各変換配列を破棄しても良いし、或いは、各変換配
列の状態を、ステップ4301にて生成した初期的な変
換配列のものに戻し、他のプロセスがこの状態の変換配
列を経るように構成しても良い。また、処理終了時の変
換配列の状態のまま、他のプロセスがこれを利用しても
良い。さらに、変換配列を維持して、必要に応じてこれ
らを利用できるようにしても良い。
【0093】次に、同じ表形式データを用いた複数のプ
ロセスが並列的に実行される場合を考える。たとえば、
あるプロセスがデータの更新を伴っており(たとえば、
口座から1万円を引き出す処理)、その一方、他のプロ
セスが表形式データを参照している(たとえば、各口座
の預金残高の総領を求める処理)場合を考える。上記デ
ータの更新を伴うプロセス(「更新プロセス」と称す
る)においては、コミットが生じるまで、1万円が仮に
引き出された状態となる。本発明においては、更新プロ
セスが、添え字変換配列や値変換配列を用いてレコード
の削除および挿入を行っており(図44の実線の矢印参
照)、その一方、他のプロセス(「参照プロセス」と称
する)は、上記添え字変換配列や値変換配列を参照する
ことなしに、直接実体配列を参照する(図44の破線の
矢印参照)ことにより、複数の処理が並列的に実行され
ても、それぞれが干渉することなく適切に処理をなすこ
とができる。
【0094】次に、レコードのロックの手法につき簡単
に説明を加える。この場合には、各レコード番号に対応
つけて、ロックを管理する情報ブロックを設ければ良
い。図45は、レコードのロックを説明するための図で
ある。図45に示すように、表形式データにおいて、ロ
ック管理の情報ブロック(符号4501)が設けられ、
当該情報ブロック中に、レコード番号数の要素を配置で
きるポインタ配列(符号4502)を設けている。この
ポインタ配列には、要素(格納値)として、読み書き不
可能を示す「NON」、読み出し専用(更新や削除の不
可)を示す「R」、読み書き可能を示す「RW」などが
格納されている。無論、このような文字を用いる必要な
く、それぞれのステータスを示す数値(たとえば、読み
書き不可能であれば「0」、読み出し専用であれば
「1」など)を割り当てれば良いことは言うまでもな
い。このように、レコード番号に対応したポインタ配列
を参照することにより、プロセスは当該レコード番号に
対応する種々のデータの読み書き可能性を知ることがで
きるとともに、プロセスが、処理の際に、所定のレコー
ド番号に対応するポインタ配列を更新することにより、
排他処理を実現することが可能となる。
【0095】このように、各レコードに対応してロック
の属性(種別)を含む項目値を配置した配列を設けるこ
とにより、まず、大量のレコードに対して、高速にロッ
クをなすことが可能となる。たとえば、ある項目に関し
て特定の項目値を有するレコード(たとえば、性別とい
う項目で「女性」という項目値を有するレコード)を、
高速にロックすることができる。すなわち、従来では、
OSコールにてロックしたいレコードを一つ一つOSに
登録すべきところ、本発明によれば、情報ブロックの配
列中の項目値を変更することで、OSコールを介するこ
となく、そのロックをなすことが可能となる。また、上
記構成によれば、表形式データをジョインさせた場合に
も、そのロックを伝播することが可能となる。たとえ
ば、特願平11−151156号にしたがって、各々が
複数の情報ブロックの集合体である複数の表形式データ
のうち、共通の意味合いを有する情報ブロックの項目値
を共通化することにより、ジョインを実現する場合を考
える。まず、各表形式データに関して、ロックに関する
情報を格納する配列を含む情報ブロックが生成される。
ここに、ジョインの処理をなす前の各表形式データの情
報ブロック中の配列を原テーブルと称する。次いで、ジ
ョインの処理がなされるが、この場合、原テーブルのポ
インタ配列は、基本的に保存されるため、ジョインによ
り生成されたテーブルから、原テーブルのロック情報を
格納する配列を含む情報ブロックを参照ないし書き換え
することが可能である。
【0096】したがって、ジョインテーブルを作成しこ
れを表示しながら、ユーザからのデータ変更以来を受け
付けることが可能となる。より具体的に、以下にその手
順を説明する。 (1)まず、ジョインテーブルを作成し、これが表示さ
れる。 (2)次いで、ユーザがあるジョインテーブル中のレコ
ードを変更することを指示すると、プログラムは、ユー
ザが指示したレコードにロックがかかっていないことを
確認する。このときに、ジョインにより生成されたテー
ブルには、ロック情報を管理する情報ブロックが存在し
ないため、実際には、原テーブルにおける該当レコード
に関するロック情報を調べる。 (3)次いで、プログラムは、ジョインテーブル中のそ
のレコードをロックする。実際には、原テーブルの対応
するレコードをロックすることになる。 (4)その後に、プログラムは、ユーザの指示にしたが
ってデータの書き換えを実行する。 (5)最後に、プログラムは、変更をコミットし、ロッ
クを解除する。 このように、上記構成に従えば、ロックをジョインテー
ブルにも伝播できるため、ジョインテーブルを書き換え
可能なものとすることが可能となる。
【0097】本発明は、以上の実施の形態に限定される
ことなく、特許請求の範囲に記載された発明の範囲内
で、種々の変更が可能であり、それらも本発明の範囲内
に包含されるものであることは言うまでもない。たとえ
ば、本発明は、前記第5ないし第7の実施の形態のよう
に、複数の情報ブロックの組により構築された表形式デ
ータに対するデータの挿入、削除および更新に限定され
るものではない。図49に示すように、レコード番号
(符号4901参照)と、姓(4文字)、名(4文
字)、住所(20文字)等の文字列からなる構造体(符
号4902参照)とが対応付けられた形態の表形式デー
タに関するデータの挿入、削除および更新をなすことも
できる。たとえば、挿入の場合には、氏名、住所等なら
なる構造体配列の組を実体配列と考え、レコード番号を
添え字と考えて、図13に示すものと略同等の処理を実
行すれば良い。また、削除の場合にも、同様に、構造体
配列の組を実体配列と考え、レコード番号を添え字と考
えて、図17に示すものと略同等の処理を実行すれば良
い。
【0098】また、本発明にかかる値変換配列を単独で
利用することも可能である。たとえば、D/A変換器
(図示せず)から、順次1億サンプルの測定データが与
えられる場合を考える。通常、1億サンプルのデータを
一つのメモリにて収容することは容易でなく(たとえ
ば、2バイト/1サンプルであっても、2億バイト(1
00Mバイト以上)のデータ容量を要する)、これを1
0個のメモリに分割して記憶することを考える。図50
において、先頭(第0番)のメモリブロック5000か
ら最後尾(第9番)のメモリブロック5009に、それ
ぞれ1000万個の測定データ(サンプルデータ)が収
容されている。
【0099】このような場合には、各測定データの累算
値を求め、これを記憶すべき場合を考える。本発明に関
して、これは以下の手順により実行することができる。
各メモリブロックに関して、その先頭から末尾までの測
定データのデータ値を加算する。これは、複数のCPU
(この場合には10個が望ましい)が並列的に、自己が
演算をなすべきメモリブロックに対して、累算処理を実
行すれば良い。これにより、図50の符号5010、5
011、…、5019に示すような各ブロックごとの累
算値を算出することができる。
【0100】次いで、メモリブロックの上位に隣接する
メモリブロック中の最終アドレスに対応する論理上の累
算値が取り出されて、これが当該メモリブロックの値変
換配列におけるオフセット配列中のオフセット値とな
る。この例では、一つのメモリブロックにおいて、同一
のオフセット値が用いられるため、終了位置配列など他
の配列を作成する必要はない。たとえば、メモリブロッ
ク5021に関して、そのオフセット値は、Z(9,9
99,999)(ここで、zは、論理上の累算値)とな
り、たとえば、当該メモリブロック5021の先頭アド
レスに対応する累算値Y(10,000,000)に、
オフセット値Z(9,999,999)を加算すること
により、論理上の累算値Z(10,000,000)を
求めることができる。また、当該メモリブロック502
1の末尾アドレスに対応する累算値Y(19,999,
999)に、オフセット値Z(9,999,999)を
加算することにより、論理上の累算値Z(19,99
9,999)が求められる。この累算値Z(19,99
9,999)は、下位に隣接するメモリブロックにて用
いるオフセット値となることが理解できるであろう。
【0101】ここで、累算に要する時間につき考察を加
えると、上述したように10個のメモリブロックに対し
て、並列的な累算処理がなされる場合には、各メモリブ
ロックの累算値を求めるために1000万ステップを要
し、また、加算オフセット値の設定のために、9ステッ
プ程度を要する。これに対して、従来の手法で累算値を
求めるためには、1億ステップが必要であることが理解
できよう。これは、たとえ、メモリブロックに分割がな
されていても、上位に位置するメモリブロックの累算値
が算出されて、はじめて当該メモリブロックに関する累
算が開始できるため、各メモリブロックに関する並列処
理が事実上不可能であることに起因する。このように、
本発明の値変換配列を用いることにより、科学技術計算
等の高速化も可能となる。
【0102】また、本発明によれば、図51に示すよう
に、ネスト構造をとることも可能である。図51におい
て、最も内側に位置するネストにおいては、添え字変換
配列(符号5101参照)および実体配列(符号510
2参照)および値変換配列(符号5103)が設けられ
ている。その一方、その外側に位置するネストにおいて
は、上記添え字変換配列、実体配列および値変換配列か
らなる組を、第2の実体配列(符号5112参照)と考
え、その入力側に添え字変換配列(符号5111参照)
を配置するとともに、その出力側に値変換配列(符号5
113参照)を配置している。同様に、さらにその外側
のネストにおいては、内側のネストを第3の実体配列
(符号5212参照)と考え、その入力側に添え字変換
配列(符号5211参照)を配置するとともに、その出
力側に値変換配列(符号5213参照)を配置してい
る。このような構造をとることにより、階層構造の挿
入、削除、更新の処理をなすことが可能となる。たとえ
ば、値の挿入を複数回実行して、その後に更新トランザ
クションとしてコミットする場合に、上記構造は有用で
ある。
【0103】また、前記図47に示す例では、値リスト
のポインタ配列において、実体配列の末尾にポインタ値
を配置し、そのポインタ値f(m)=n(ここで、n
は、今までのポインタ値がとり得る最大値「n−1」よ
りも1つ大きい。)と設定し、かつ、値リストにおいて
も、実体配列の末尾に項目値を配置しているが、このよ
うな構成に限定されるものではない。すなわち、値リス
トへのポインタ配列に関して、実体配列に隣接せずに、
他の領域(差分配列)にポインタ値を配置してもよく、
或いは、ポインタ値f(m)も、他の値「y」(ただし
y≧n)と設定してもよい。さらに、値リストに関して
も、実体配列に隣接せずに、他の領域(差分配列)に項
目値を配置してもよい。図52は、ポインタ配列に関し
て、領域「x」にポインタ値(f(m)=y)を配置
し、かつ、値リストに関して、領域「z」に項目値を配
置した例を示している。この場合にも、図47にて説明
した場合と略同様に、添字変換配列や値変換配列を求め
ることが可能である。
【0104】さらに、前記実施の形態において、情報ブ
ロックの形態の表形式データのデータ更新処理は、挿入
処理および削除処理、或いは、削除処理および更新処理
を順次実行することができることを述べた。このような
更新処理に関しても、以下のように、添え字変換配列お
よび値変換配列を求めることができる。たとえば、m個
のレコード番号と、n個の項目値を有する表形式データ
に関して、レコード番号「j」に関して項目値の更新を
すべき場合を考える。ここに、更新すべき項目値が挿入
された場合の挿入位置(論理上の挿入位置)が「i」で
あると考える。
【0105】まず、値リストのポインタ配列において、
実体配列の末尾にポインタ値を配置し、そのポインタ値
f(m)=n(ここで、nは、今までのポインタ値がと
り得る最大値「n−1」よりも1つ大きい。)と設定
し、かつ、値リストにおいても、実体配列の末尾に更新
に利用される項目値を配置する場合につき説明を加え
る。この場合には、図53に示すように、ポインタ配列
の添え字「p」に関して、0≦p≦(j−1)である場
合には、オフセット値「0」が与えられ、p=jである
場合には、オフセット値「m−j」が与えられ、或い
は、j+1≦p≦m−1である場合には、オフセット値
「0」が与えられる。また、ポインタ配列の値変換配
列、および、値リストの添え字変換配列は、図47に示
すものと同じであることが分かる(削除処理において
は、これらに手が加えられないため、挿入処理のものが
維持される)。
【0106】或いは、更新処理において、ポインタ配列
に関して、領域「x」にポインタ値(f(m)=y)を
配置し、かつ、値リストに関して、領域「z」に更新さ
れる項目値を配置した場合にも、図52に関して説明し
たものと同様に、添字変換配列および値変換配列が求め
られることが理解できよう(図54参照)。また、前記
実施の形態においては、一般のコンピュータシステム1
0内に、所定のプログラムを読み込み、当該プログラム
を実行することにより、添え時変換配列や値変換配列の
生成、更新等の処理を実現しているが、本発明はこれに
限定されるものではなく、パーソナルコンピュータ等の
ような一般のコンピュータシステムに、データベース処
理専用のボードコンピュータを接続し、当該ボードコン
ピュータが上記処理を実行できるように構成しても良い
ことは言うまでもない。したがって、本明細書におい
て、手段とは必ずしも物理的手段を意味するものではな
く、各手段の機能が、ソフトウェアによって実現される
場合も包含する。さらに、一つの手段の機能が、二つ以
上の物理的手段により実現されても、若しくは、二つ以
上の手段の機能が、一つの物理的手段により実現されて
もよい。
【0107】
【発明の効果】本発明によれば、特に、上記線形フィル
ター法を用いて、データの挿入、削除および更新の処理
を高速かつ適切になすことができる表形式データにおけ
るデータ挿入、削除および更新方法を提供すること可能
となる。本発明は、上記トランザクション処理を適切に
なすことができる表形式データの挿入、削除および更新
方法を提供することが可能となる。
【図面の簡単な説明】
【図1】 図1は、本発明の実施の形態にかかる検索、
集計およびサーチ方法を実現できるコンピュータシステ
ムのハードウェア構成を示すブロックダイヤグラムであ
る。
【図2】 図2は、本実施の形態にて用いる情報ブロッ
クを示す図である。
【図3】 図3は、表形式データの例、および、当該表
形式データに基づく情報ブロックの例を示す図である。
【図4】 図4は、表形式データの他の例、および、当
該表形式データに基づく情報ブロックの他の例を示す図
である。
【図5】 図5は、単一項目に関する検索手法を示すフ
ローチャートである。
【図6】 図6は、表形式データに基づき情報ブロック
を作成するための処理を説明するフローチャートであ
る。
【図7】 図7は、情報ブロックを作成するための原デ
ータの例を示す図である。
【図8】 図8は、配列に要素を挿入する例および配列
の要素を更新する例を示す図である。
【図9】 図9は、添え字、配列および配列からの値の
関係、および、本発明に係る添え字変換および値変換の
概要を説明する図である。
【図10】 図10は、要素の挿入に関する入出力の論
理的関係と、第1の実施の形態にかかる配列への要素の
挿入を説明するための図である。
【図11】 図11は、第1の実施の形態にかかる添え
字から配列中の要素を特定するための処理を示すフロー
チャートである。
【図12】 図12は、第1の実施の形態において、あ
る要素の特定の位置への挿入を説明する図である。
【図13】 図13は、本実施の形態において要素の挿
入のための添え字変換配列を生成するための処理を示す
フローチャートである。
【図14】 図14は、図13の処理により生成された
添え字変換配列の一例を示す図である。
【図15】 図15は、要素の削除に関する入出力の論
理的関係と、第1の実施の形態にかかる配列への要素の
削除を説明するための図である。
【図16】 図16は、第1の実施の形態において、特
定の位置の要素の削除を説明する図である。
【図17】 図17は、本実施の形態において要素の削
除のための添え字変換配列を生成するための処理を示す
フローチャートである。
【図18】 図18は、図17に示す処理にしたがって
変換配列中の数値が変化する状態を示す図である。
【図19】 図19は、第1の実施の形態において、挿
入および削除を順次実行した場合の状態を説明するため
の図である。
【図20】 図20は、第1の実施の形態において、挿
入および削除を順次実行した場合の状態を説明するため
の図である。
【図21】 図21は、本発明の第2の実施の形態にか
かる変換配列の構成を説明するための図である。
【図22】 図22は、本発明の第3の実施の形態にか
かる実体配列および差分配列を説明するための図であ
る。
【図23】 図23は、本発明の第4の実施の形態にか
かる値変換配列の概略を説明するための図である。
【図24】 図24は、第4の実施の形態にかかる値変
換の処理を示すフローチャートである。
【図25】 図25は、第4の実施の形態にかかる値変
換テーブルを生成する処理を示すフローチャートであ
る。
【図26】 図26は、第4の実施の形態において、実
体配列中の値の変換を実行した場合の状態を説明するた
めの図である。
【図27】 図27は、本発明において、添え字変換配
列および値変換配列を組み合わせたデータ構造の一例を
示す図である。
【図28】 図28は、本発明の第5の実施の形態にか
かる各情報ブロックの構造を示す図である。
【図29】 図29は、第5の実施の形態において、特
定のレコードを削除する処理を説明するための図であ
る。
【図30】 図30は、第5の実施の形態において、特
定のレコードを削除する処理を説明するための図であ
る。
【図31】 図31は、第5の実施の形態において、特
定のレコードを削除する処理を説明するための図であ
る。
【図32】 図32は、第5の実施の形態において、特
定のレコードを削除する処理を説明するための図であ
る。
【図33】 図33は、第5の実施の形態において、特
定のレコードを特定の位置に挿入する処理を説明するた
めの図である。
【図34】 図34は、第5の実施の形態において、特
定のレコードを特定の位置に挿入する処理を説明するた
めの図である。
【図35】 図35は、第5の実施の形態において、特
定のレコードを特定の位置に挿入する処理を説明するた
めの図である。
【図36】 図36は、第5の実施の形態において、特
定のレコードを特定の位置に挿入する処理を説明するた
めの図である。
【図37】 図37は、第5の実施の形態において、特
定のレコードを特定の位置に挿入する処理を説明するた
めの図である。
【図38】 図38は、第5の実施の形態において、特
定のレコードを特定の位置に挿入する処理を説明するた
めの図である。
【図39】 図39は、第5の実施の形態において、特
定のレコードを特定の位置に挿入する処理を説明するた
めの図である。
【図40】 図40は、第5の実施の形態において、特
定のレコードを特定の位置に挿入する処理を説明するた
めの図である。
【図41】 図41は、第5の実施の形態において、特
定のレコードを特定の位置に挿入する処理を説明するた
めの図である。
【図42】 図42は、本発明の第6の実施の形態にお
いて、特定のレコードを削除する処理を説明するための
図である。
【図43】 図43は、本発明を利用したトランザクシ
ョン処理を示すフローチャートである。
【図44】 図44は、本発明を利用した複数プロセス
の並列処理を説明するための図である。
【図45】 図45は、本発明を利用した排他処理を説
明するための図である。
【図46】 図46は、本発明において、情報ブロック
の形態をなす表形式データのデータ挿入処理を説明する
ためのフローチャートである。
【図47】 図47は、本発明において、情報ブロック
の形態の表形式データのデータ挿入処理を説明するため
の図である。
【図48】 図48は、本発明において、情報ブロック
の形態の表形式データのデータ削除処理を説明するため
の図である。
【図49】 図49は、本発明にかかる添え字変換配列
の他の応用例を説明するための図である。
【図50】 図50は、本発明にかかる値変換配列のさ
らに他の応用例を説明するための図である。
【図51】 図51は、本発明にかかる添え字変換配列
および値変換配列のさらに他の応用例を説明するための
図である。
【図52】 図52は、本発明にかかる情報ブロックの
形態の表形式データにおいて、データ挿入処理の他の例
を説明するための図である。
【図53】 図53は、本発明にかかる情報ブロックの
形態の表形式データにおいて、データ更新処理を説明す
るための図である。
【図54】 図54は、本発明にかかる情報ブロックの
形態の表形式データにおいて、データ更新処理の他の例
を説明するための図である。
【符号の説明】
10 コンピュータシステム 12 CPU 14 RAM 16 ROM 18 固定記憶装置 20 CD−ROMドライバ 22 I/F 24 入力装置 26 表示装置

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 項目とこれに含まれる項目値とを含むレ
    コードの配列として表わされる表形式データの任意の位
    置に、項目値を挿入する表形式データの挿入方法であっ
    て、 レコード番号を添え字として受け入れ、当該添え字の範
    囲に対応するオフセット値を与えるように構成された添
    え字変換配列を生成し、 挿入される項目値の位置を示す挿入位置を特定し、 前記添え字変換配列において、前記挿入位置に関して、
    対応する添え字の範囲を確定するとともに、前記配列の
    末尾以降の所定の位置を特定するためのオフセット値を
    与え、 前記添え字変換配列において、前記挿入位置に対応する
    レコード番号より大きなレコード番号を有するものに関
    して、対応する添え字の範囲を上方にシフトするととも
    に、受け入れられた添え字をデクリメントするためのオ
    フセット値を与え、 前記配列の末尾以降の所定の位置に、前記挿入すべき項
    目値を配置し、 前記添え字に、添え字変換配列中の添え字の範囲にした
    がったオフセット値が与えられ、当該オフセット値が与
    えられた添え字により配列中の項目値が特定されること
    を特徴とする表形式データの挿入方法。
  2. 【請求項2】 項目とこれに含まれる項目値とを含むレ
    コードの配列として表わされる表形式データにおいて、
    任意の位置の項目値を削除する表形式データの削除方法
    であって、 レコード番号を添え字として受け入れ、受け入れられた
    添え字の範囲に対応するオフセット値を与えるように構
    成された添え字変換配列を生成し、 削除すべき項目値の位置を示す削除位置を特定し、 前記添え字変換配列において、削除位置に対応するレコ
    ード番号より大きなレコード番号を有するものに関し
    て、対応する添え字の範囲を下方にシフトするととも
    に、受け入れられた添え字をインクリメントするための
    オフセット値を与え、 前記添え字に、添え字変換配列中の添え字の範囲にした
    がったオフセット値が与えられ、当該オフセット値が与
    えられた添え字により配列中の項目値が特定されること
    を特徴とする表形式データの削除方法。
  3. 【請求項3】 項目とこれに含まれる項目値とを含むレ
    コードの配列として表わされる表形式データにおいて、
    任意の位置の項目値を更新する表形式データの更新方法
    であって、 レコード番号を添え字として受け入れ、受け入れられた
    添え字の範囲に対応するオフセット値を与えるように構
    成された添え字変換配列を生成し、(1)更新すべき項
    目値の位置を削除位置として仮定して、 前記添え字変換配列において、削除位置に対応するレコ
    ード番号より大きなレコード番号を有するものに関し
    て、対応する添え字の範囲を下方にシフトするととも
    に、受け入れられた添え字をインクリメントするための
    オフセット値を与え、(2)更新すべき項目値の位置を
    挿入位置として仮定して、 前記添え字変換配列において、前記挿入位置に関して、
    対応する添え字の範囲を確定するとともに、前記配列の
    末尾以降の所定の位置を特定するためのオフセット値を
    与え、 前記添え字変換配列において、前記挿入位置に対応する
    レコード番号より大きなレコード番号を有するものに関
    して、対応する添え字の範囲を上方にシフトするととも
    に、受け入れられた添え字をデクリメントするためのオ
    フセット値を与え、 かつ、前記配列の末尾以降の所定の位置に、前記更新す
    べき項目値を配置し、前記(1)および(2)、或い
    は、(2)および(1)を順次実行して、 前記添え字に、添え字変換配列中の添え字の範囲にした
    がったオフセット値が与えられ、当該オフセット値が与
    えられた添え字により配列中の項目値が特定されること
    を特徴とする表形式データの更新方法。
  4. 【請求項4】 項目とこれに含まれる項目値とを含むレ
    コードの配列として表わされる表形式データの項目値の
    値を変換する表形式データの値変換方法であって、 前記項目値の範囲に対応するオフセット値を与えるよう
    に構成された値変換配列を生成し、 レコード番号を添え字として受け入れ、前記配列中の、
    当該添え字に対応する項目値に、前記項目値の範囲に対
    応したオフセット値を与えるように構成されたことを特
    徴とする表形式データの値変換方法。
  5. 【請求項5】 項目とこれに含まれる項目値とを含むレ
    コードの配列として表わされる表形式データにおいて、
    任意のレコード番号に対応する項目値を特定するように
    構成された表形式データのデータ構造であって、 当該表形式データを、特定の項目に属する項目値に対応
    した項目値番号の順に当該項目値が格納されている第1
    の実体配列を含む値リストと、一意的なレコード番号の
    順に、当該項目値番号を指示するためのポインタ値が格
    納された第2の実体配列を含むポインタ配列とからなる
    一以上の情報ブロックに分割するように構成し、 前記ポインタ配列に、入力されたレコード番号を添え字
    として、当該添え字の範囲に対応する第1のオフセット
    を与えるように構成された第1の添え字変換配列を形成
    するとともに、当該添え字変換配列を経てオフセットが
    与えられた添え字により特定される、第2の実体配列中
    のポインタ値を値として、当該値の範囲に対応する第2
    のオフセットを与えるように構成された値変換配列を形
    成し、 前記値リストに、入力された、ポインタ配列の出力を添
    え字として、当該添え字の範囲に対応する第3のオフセ
    ットを与えるように構成された第2の添え字変換配列を
    形成し、当該第2の添え字変換配列を経てオフセットが
    与えられたポインタ配列の出力により、第1の実体配列
    中の項目値が特定されるように構成されたことを特徴と
    する表形式データのデータ構造。
  6. 【請求項6】 前記添え字変換配列の各々が、所定の範
    囲にそれぞれ含まれる添え字の最小値を示す開始位置か
    らなる開始位置配列、および/または、当該所定の範囲
    に含まれる添え字の最大値を示す終了位置からなる終了
    位置配列と、対応するオフセット値からなるオフセット
    配列とから構成されることを特徴とする請求項5に記載
    のデータ構造。
  7. 【請求項7】 前記値変換配列が、所定の範囲にそれぞ
    れ含まれる値の最小値を示す開始位置からなる開始位置
    配列、および/または、当該所定の範囲に含まれる値の
    最大値を示す終了位置からなる終了位置配列と、対応す
    るオフセット値からなるオフセット配列とから構成され
    ることを特徴とする請求項5に記載のデータ構造。
  8. 【請求項8】 請求項5ないし7の何れか一項に記載の
    データ構造にて表わされる表形式データの任意の位置
    に、項目値を挿入する表形式データの挿入方法であっ
    て、(1)前記値リストに関して、 挿入される項目値の位置を示す挿入位置を特定し、 前記第2の添え字変換配列において、前記挿入位置に関
    して、対応する添え字を確定するとともに、前記第1の
    実体配列の末尾以降の所定の位置を特定するための第3
    のオフセット値を与え、 前記第2の添え字変換配列において、前記挿入位置に対
    応する添え字の値より大きなものに関して、対応する添
    え字の範囲を、当該範囲を確定する値が大きくなるよう
    に上方にシフトするとともに、受け入れられた添え字を
    デクリメントするための第3のオフセット値を与え、 前記第1の実体配列の末尾以降の所定の位置に、前記挿
    入すべき項目値を配置し、(2)前記ポインタ配列に関
    して、 挿入されるレコード番号に対応するポインタ値の位置を
    示す挿入位置を特定し、 前記第1の添え字変換配列において、前記挿入位置に関
    して、対応する添え字を確定するとともに、前記第1の
    実体配列の末尾以降の所定の位置を特定するための第1
    のオフセット値を与え、 前記第1の添え字変換配列において、前記挿入位置に対
    応するレコード番号より大きなレコード番号を有するも
    のに関して、対応する添え字の範囲を、当該範囲を確定
    する値が大きくなるように上方にシフトするとともに、
    受け入れられた添え字をデクリメントするための第1の
    オフセット値を与え、 前記第2の実体配列の末尾以降の所定の位置に、現存す
    るポインタ値より大きな新たなポインタ値を配置し、か
    つ、(3)前記ポインタ配列に関して、 前記値変換配列に、前記値リストにおける挿入位置に対
    応するポインタ値以上を有するものに対して、これをイ
    ンクリメントする第2のオフセット値を与え、 前記値変換配列に、前記新たなポインタ値が、前記挿入
    位置に対応する位置を特定するような第2のオフセット
    値を与えることを特徴とする表形式データのデータ挿入
    方法。
  9. 【請求項9】 m個のレコード番号と、n個の項目値と
    を備え、 前記値リスト中の項目値の挿入位置が、i(0≦i≦n
    −1)であり、第1の実体配列の末尾nに項目値が配置
    され、かつ、レコード番号の挿入位置がj(0≦j≦m
    −1)であり、第2の実体配列の末尾mにポインタ値が
    配置される場合に、(1)前記値リストの第2の添え字
    変換配列において、 値の範囲が(i−1)以下の場合に、第3のオフセット
    値として0を与え、 値がiである場合に、第3のオフセット値として(n−
    i)を与え、かつ、 値の範囲が(i+1)以上n以下である場合に、第3の
    オフセット値として(−1)を与え、(2)前記ポイン
    タ配列の第1の添え字変換配列において、 添え字の範囲が(j−1)以下の場合に、第1のオフセ
    ット値として0を与え、 添え字がjである場合に、第1のオフセット値として
    (m−j)を与え、かつ、 添え字が(j+1)以上m以下の場合に、第1のオフセ
    ット値として(−1)を与え、(3)前記ポインタ配列
    の値変換配列において、 値の範囲が(i−1)の場合に、第2のオフセット値と
    して0を与え、 値の範囲がi以上(n−1)以下である場合に、第2の
    オフセット値として1を与え、かつ、 値がnである場合に、第2のオフセット値として(i−
    n)を与えることを特徴とする請求項8に記載の表形式
    データの挿入方法。
  10. 【請求項10】 m個のレコード番号と、n個の項目値
    とを備え、 前記値リスト中の項目値の挿入位置が、i(0≦i≦n
    −1)であり、第1の実体配列の末尾以降の所定の位置
    z(z≧n)に項目値が配置され、かつ、レコード番号
    の挿入位置がj(0≦j≦m−1)であり、第2の実体
    配列の末尾以降の所定の位置x(x≧m)にポインタ値
    が配置される場合に、(1)前記値リストの第2の添え
    字変換配列において、 値の範囲が(i−1)以下の場合に、第3のオフセット
    値として0を与え、 値がiである場合に、第3のオフセット値として(z−
    i)を与え、かつ、 値の範囲が(i+1)以上n以下である場合に、第3の
    オフセット値として(−1)を与え、(2)前記ポイン
    タ配列の第1の添え字変換配列において、 添え字の範囲が(j−1)以下の場合に、第1のオフセ
    ット値として0を与え、 添え字がjである場合に、第1のオフセット値として
    (x−j)を与え、かつ、 添え字が(j+1)以上m以下の場合に、第1のオフセ
    ット値として(−1)を与えるとともに、(3)前記ポ
    インタ配列の値変換配列において、 値の範囲が(i−1)の場合に、第2のオフセット値と
    して0を与え、 値の範囲がi以上(n−1)以下である場合に、第2の
    オフセット値として1を与え、かつ、 値がy(ただし、yは、第2の実体配列の位置xに格納
    されたポインタ値)である場合に、第2のオフセット値
    として(i−y)を与えることを特徴とする請求項8に
    記載の表形式データの挿入方法。
  11. 【請求項11】 請求項5ないし7の何れか一項に記載
    のデータ構造にて表わされる表形式データの任意の位置
    の項目値を削除する表形式データの削除方法であって、 前記ポインタ配列に関して、 削除されるポインタ値の位置を示す削除位置を特定し、 前記第1の添え字変換配列において、前記削除に関し
    て、対応する添え字を確定し、 前記第1の添え字変換配列において、前記削除位置に対
    応するレコード番号より大きなレコード番号を有するも
    のに関して、対応する添え字の範囲を、当該範囲を確定
    する値が小さくなるように下方にシフトするとともに、
    受け入れられた添え字をインクリメントするための第1
    のオフセット値を与えることを特徴とする表形式データ
    の削除方法。
  12. 【請求項12】 m個のレコード番号と、n個の項目値
    とを備え、 レコード番号の削除位置がj(0≦j≦m−1)である
    場合に、 前記ポインタ配列の第1の添え字変換配列において、 添え字の範囲が(j−1)以下の場合に、第1のオフセ
    ット値として0を与え、かつ、 添え字の範囲がj以上(m−2)以下である場合に、オ
    フセット値として1を与えることを特徴とする請求項1
    1に記載の表形式データの削除方法。
  13. 【請求項13】 請求項5ないし7の何れか一項に記載
    のデータ構造にて表わされる表形式データの任意の位置
    の項目値を更新する表形式データの更新方法であって、
    (A)(1)前記値リストに関して、 更新される項目値を挿入される項目値と仮定し、当該項
    目値の挿入すべき位置を示す挿入位置を特定し、 前記第2の添え字変換配列において、前記挿入位置に関
    して、対応する添え字を確定するとともに、前記第1の
    実体配列の末尾以降の所定の位置を特定するためのオフ
    セット値を与え、 前記第2の添え字変換配列において、前記挿入位置に対
    応する添え字の値より大きなものに関して、対応する添
    え字の範囲を、当該範囲を確定する値が大きくなるよう
    に上方にシフトするとともに、受け入れられた添え字を
    デクリメントするための第3のオフセット値を与え、 前記第1の実体配列の末尾以降の所定の位置に、前記挿
    入すべき項目値を配置し、(2)前記ポインタ配列に関
    して、 更新されるポインタ値を挿入されるポインタ値と仮定
    し、当該ポインタ値の挿入すべき位置を示す挿入位置を
    特定し、 前記第1の添え字変換配列において、前記挿入位置に関
    して、対応する添え字を確定するとともに、前記第1の
    実体配列の末尾以降の所定の位置を特定するための第1
    のオフセット値を与え、 前記第1の添え字変換配列において、前記挿入位置に対
    応するレコード番号より大きなレコード番号を有するも
    のに関して、対応する添え字の範囲を、当該範囲を確定
    する値が大きくなるように上方にシフトするとともに、
    受け入れられた添え字をデクリメントするための第1の
    オフセット値を与え、 前記第2の実体配列の末尾以降の所定の位置に、現存す
    るポインタ値より大きな新たなポインタ値を配置し、か
    つ、(3)前記ポインタ配列に関して、 前記値変換配列に、前記値リストにおける挿入位置に対
    応するポインタ値以上を有するものに対して、これをイ
    ンクリメントする第2のオフセット値を与え、 前記値変換配列に、前記新たなポインタ値が、前記挿入
    位置に対応する位置を特定するような第2のオフセット
    値を与え、(B)前記ポインタ配列に関して、 更新すべきポインタ値の位置を、削除位置として、前記
    挿入位置を考慮して特定し、 前記第1の添え字変換配列において、前記削除位置に関
    して、対応する添え字を確定し、 前記第1の添え字変換配列において、前記削除位置に対
    応するレコード番号より大きなレコード番号を有するも
    のに関して、対応する添え字の範囲を、当該範囲を確定
    する値が小さくなるように下方にシフトするとともに、
    受け入れられた添え字をインクリメントするための第1
    のオフセット値を与え、前記(A)および(B)、或いは、
    前記(B)および(A)の何れかを順次実行するように構成
    されたことを特徴とする表形式データの更新方法。
  14. 【請求項14】 m個のレコード番号と、n個の項目値
    とを備え、 前記値リスト中の項目値の更新位置が、i(0≦i≦n
    −1)であり、第1の実体配列の末尾nに項目値が配置
    され、かつ、レコード番号の更新位置がj(0≦j≦m
    −1)であり、第2の実体配列の末尾mにポインタ値が
    配置される場合に、(1)前記値リストの第2の添え字
    変換配列において、 値の範囲が(i−1)以下の場合に、第3のオフセット
    値として0を与え、 値がiである場合に、第3のオフセット値として(n−
    i)を与え、かつ、 値の範囲が(i+1)以上n以下である場合に、第3の
    オフセット値として(−1)を与え、(2)前記ポイン
    タ配列の第1の添え字変換配列において、 添え字の範囲が(j−1)以下の場合に、第1のオフセ
    ット値として0を与え、 添え字がjである場合に、第1のオフセット値として
    (m−j)を与え、かつ、 添え字が(j+1)以上(m+1)以下の場合に、第1
    のオフセット値として0を与え、(3)前記ポインタ配
    列の値変換配列において、 値の範囲が(i−1)の場合に、第2のオフセット値と
    して0を与え、 値の範囲がi以上(n−1)以下である場合に、第2の
    オフセット値として1を与え、かつ、 値がnである場合に、第2のオフセット値として(i−
    n)を与えることを特徴とする請求項13に記載の表形
    式データの更新方法。
  15. 【請求項15】 m個のレコード番号と、n個の項目値
    とを備え、 前記値リスト中の項目値の更新位置が、i(0≦i≦n
    −1)であり、第1の実体配列の末尾以降の所定の位置
    z(z≧n)に更新された項目値が配置され、かつ、レ
    コード番号の更新位置がj(0≦j≦m−1)であり、
    第2の実体配列の末尾以降の所定の位置x(x≧m)に
    更新されたポインタ値が配置される場合に、(1)前記
    値リストの第2の添え字変換配列において、 値の範囲が(i−1)以下の場合に、第3のオフセット
    値として0を与え、 値がiである場合に、第3のオフセット値として(z−
    i)を与え、かつ、 値の範囲が(i+1)以上n以下である場合に、第3の
    オフセット値として(−1)を与え、(2)前記ポイン
    タ配列の第1の添え字変換配列において、 添え字の範囲が(j−1)以下の場合に、第1のオフセ
    ット値として0を与え、 添え字がjである場合に、第1のオフセット値として
    (x−j)を与え、かつ、 添え字が(j+1)以上(m+1)以下の場合に、第1
    のオフセット値として0を与えるとともに、(3)前記
    ポインタ配列の値変換配列において、 値の範囲が(i−1)の場合に、第2のオフセット値と
    して0を与え、 値の範囲がi以上(n−1)以下である場合に、第2の
    オフセット値として1を与え、かつ、 値がy(ただし、yは、第2の実体配列の位置xに格納
    されたポインタ値)である場合に、第2のオフセット値
    として(i−y)を与えることを特徴とする請求項13
    に記載の表形式データの挿入方法。
  16. 【請求項16】 請求項5ないし7の何れか一項に記載
    のデータ構造にて表わされる表形式データの任意の位置
    の項目値を削除する表形式データの削除方法であって、 前記レコード番号に関して、レコード番号自体を配置し
    た第4の実体配列と、当該レコード番号を特定するため
    の添え字の範囲にしたがって、所定のオフセット値を与
    える第3の添え字変換配列とを設け、 前記削除すべきレコード番号の位置を示す削除位置を特
    定し、 前記第3の添え字変換配列において、前記削除に関して
    対応する添え字を確定し、 前記第3の添え字変換配列において、前記削除位置に対
    応する添え字より大きな値を有するものに関して、対応
    する添え字の範囲を、当該範囲を確定する値が小さくな
    るように下方にシフトするとともに、受け入れられた添
    え字をインクリメントするための第4のオフセット値を
    与えることを特徴とする表形式データの削除方法。
  17. 【請求項17】 項目とこれに含まれる項目値とを含む
    レコードの配列として表わされる表形式データの任意の
    位置の項目値を削除する表形式データの削除方法であっ
    て、 前記レコード番号に関して、レコード番号自体を配置し
    た配列と、当該レコード番号を特定するための添え字の
    範囲にしたがって、所定のオフセット値を与える添え字
    変換配列とを設け、 前記削除すべきレコード番号の位置を示す削除位置を特
    定し、 前記添え字変換配列において、前記削除に関して対応す
    る添え字を確定し、 前記添え字変換配列において、前記削除位置に対応する
    添え字より大きな値を有するものに関して、対応する添
    え字の範囲を、当該範囲を確定する値が小さくなるよう
    に下方にシフトするとともに、受け入れられた添え字を
    インクリメントするためのオフセット値を与えることを
    特徴とする表形式データの削除方法。
  18. 【請求項18】 請求項8ないし15の何れか一項に記
    載の方法により表形式データにおけるデータの挿入、削
    除および/または更新をなし、ロールバックおよびコミ
    ットの何れかの場合には、前記添え字変換配列および値
    変換配列を廃棄することを特徴とするトランザクション
    処理方法。
  19. 【請求項19】 請求項8ないし15の何れか一項に記
    載の方法により表形式データにおけるデータの挿入、削
    除および/または更新をなし、ロールバックの場合に、
    前記添え字変換配列および値変換配列を廃棄することを
    特徴とするトランザクション方法。
  20. 【請求項20】 請求項5ないし7のデータ構造を有す
    る表形式データに関して、複数のプロセスにより同時に
    処理が実行されるプロセスの並列処理方法であって、 前記プロセスのうち、データの挿入、削除および/また
    は更新を伴うものは、前記ポインタ配列において、第1
    の添え字変換配列、第2の実体配列および値変換配列を
    経るように構成されるとともに、前記値リストにおい
    て、第2の添え字変換配列および第1の実体配列を経る
    ように構成され、 その一方、前記プロセスのうち、データの挿入、削除お
    よび/または更新を伴わないものは、前記ポインタ配列
    において、第2の実体配列を経るとともに、前記値リス
    トにおいて、前記値リストにおいて、第1の実体配列を
    経るように構成されたことを特徴とするプロセスの並列
    処理方法。
  21. 【請求項21】 前記データの挿入、削除および/また
    は更新を伴うプロセスが、請求項8ないし請求項15の
    何れか一項に記載された方法を利用することを特徴とす
    る請求項20に記載のプロセス並列処理方法。
  22. 【請求項22】 請求項5ないし7のデータ構造を有す
    る表形式データに関して、レコードのロックをなす方法
    であって、 ロックを管理する配列を含む情報ブロックを設け、 前記情報ブロックの配列中に、前記レコード番号の各々
    に対応して、ロックの種別を示す項目値を配置すること
    を特徴とする方法。
  23. 【請求項23】 項目とこれに含まれる項目値とを含む
    レコードの配列として表わされる表形式データの任意の
    位置に、項目値を挿入する表形式データのデータ挿入プ
    ログラムを記憶した、コンピュータにより読み出し可能
    な記憶媒体であって、 レコード番号を添え字として受け入れ、当該添え字の範
    囲に対応するオフセット値を与えるように構成された添
    え字変換配列を生成し、 挿入される項目値の位置を示す挿入位置を特定し、 前記添え字変換配列において、前記挿入位置に関して、
    対応する添え字の範囲を確定するとともに、前記配列の
    末尾を特定するためのオフセット値を与え、 前記添え字変換配列において、前記挿入位置に対応する
    レコード番号より大きなレコード番号を有するものに関
    して、対応する添え字の範囲を上方にシフトするととも
    に、受け入れられた添え字をデクリメントするためのオ
    フセット値を与え、 前記配列の末尾に、前記挿入すべき項目値を配置し、 前記添え字に、添え字変換配列中の添え字の範囲にした
    がったオフセット値が与えられ、当該オフセット値が与
    えられた添え字により配列中の項目値が特定されること
    を特徴とする表形式データのデータ挿入プログラムを記
    憶した記憶媒体。
  24. 【請求項24】 項目とこれに含まれる項目値とを含む
    レコードの配列として表わされる表形式データにおい
    て、任意の位置の項目値を削除する表形式データのデー
    タ削除プログラムを記憶した、コンピュータにより読み
    出し可能な記憶媒体であって、 レコード番号を添え字として受け入れ、受け入れられた
    添え字の範囲に対応するオフセット値を与えるように構
    成された添え字変換配列を生成し、 削除すべき項目値の位置を示す削除位置を特定し、 前記添え字変換配列において、削除位置に対応するレコ
    ード番号より大きなレコード番号を有するものに関し
    て、対応する添え字の範囲を下方にシフトするととも
    に、受け入れられた添え字をインクリメントするための
    オフセット値を与え、 前記添え字に、添え字変換配列中の添え字の範囲にした
    がったオフセット値が与えられ、当該オフセット値が与
    えられた添え字により配列中の項目値が特定されること
    を特徴とする表形式データのデータ削除プログラムを記
    憶した記憶媒体。
  25. 【請求項25】 項目とこれに含まれる項目値とを含む
    レコードの配列として表わされる表形式データにおい
    て、任意の位置の項目値を更新する表形式データのデー
    タ更新プログラムを記憶した、コンピュータにより読み
    出し可能な記憶媒体であって、 レコード番号を添え字として受け入れ、受け入れられた
    添え字の範囲に対応するオフセット値を与えるように構
    成された添え字変換配列を生成し、(1)更新すべき項
    目値の位置を削除位置として仮定して、 前記添え字変換配列において、削除位置に対応するレコ
    ード番号より大きなレコード番号を有するものに関し
    て、対応する添え字の範囲を下方にシフトするととも
    に、受け入れられた添え字をインクリメントするための
    オフセット値を与え、(2)更新すべき項目値の位置を
    挿入位置として仮定して、 前記添え字変換配列において、前記挿入位置に関して、
    対応する添え字の範囲を確定するとともに、前記配列の
    末尾を特定するためのオフセット値を与え、 前記添え字変換配列において、前記挿入位置に対応する
    レコード番号より大きなレコード番号を有するものに関
    して、対応する添え字の範囲を上方にシフトするととも
    に、受け入れられた添え字をデクリメントするためのオ
    フセット値を与え、 かつ、前記配列の末尾に、前記更新すべき項目値を配置
    し、 前記(1)および(2)、或いは、(2)および(1)
    を順次実行して、 前記添え字に、添え字変換配列中の添え字の範囲にした
    がったオフセット値が与えられ、当該オフセット値が与
    えられた添え字により配列中の項目値が特定されること
    を特徴とする表形式データのデータ更新プログラムを記
    憶した記憶媒体。
  26. 【請求項26】 項目とこれに含まれる項目値とを含む
    レコードの配列として表わされる表形式データの項目値
    の値を変換する表形式データの値変換プログラムを記憶
    した、コンピュータにより読み出し可能な記憶媒体であ
    って、 項目値の範囲に対応するオフセット値を与えるように構
    成された値変換配列を生成し、 レコード番号を添え字として受け入れ、前記配列中の、
    当該添え字に対応する項目値に、前記項目値の範囲に対
    応したオフセット値を与えるように構成されたことを特
    徴とする表形式データの値変換プログラムを記憶した記
    憶媒体。
  27. 【請求項27】 請求項5ないし7の何れか一項に記載
    のデータ構造にて表わされる表形式データの任意の位置
    に、項目値を挿入する表形式データのデータ挿入プログ
    ラムを記憶したコンピュータにより読み出し可能な記憶
    媒体であって、 (1)前記値リストに関して、 挿入される項目値の位置を示す挿入位置を特定し、 前記第2の添え字変換配列において、前記挿入位置に関
    して、対応する添え字を確定するとともに、前記第1の
    実体配列の末尾以降の所定の位置を特定するための第3
    のオフセット値を与え、 前記第2の添え字変換配列において、前記挿入位置に対
    応する添え字の値より大きなものに関して、対応する添
    え字の範囲を、当該範囲を確定する値が大きくなるよう
    に上方にシフトするとともに、受け入れられた添え字を
    デクリメントするための第3のオフセット値を与え、 前記第1の実体配列の末尾以降の所定の位置に、前記挿
    入すべき項目値を配置し、(2)前記ポインタ配列に関
    して、 挿入されるレコード番号に対応するポインタ値の位置を
    示す挿入位置を特定し、 前記第1の添え字変換配列において、前記挿入位置に関
    して、対応する添え字を確定するとともに、前記第1の
    実体配列の末尾以降の所定の位置を特定するための第1
    のオフセット値を与え、 前記第1の添え字変換配列において、前記挿入位置に対
    応するレコード番号より大きなレコード番号を有するも
    のに関して、対応する添え字の範囲を、当該範囲を確定
    する値が大きくなるように上方にシフトするとともに、
    受け入れられた添え字をデクリメントするための第1の
    オフセット値を与え、 前記第2の実体配列の末尾以降の所定の位置に、現存す
    るポインタ値より大きな新たなポインタ値を配置し、か
    つ、(3)前記ポインタ配列に関して、 前記値変換配列に、前記値リストにおける挿入位置に対
    応するポインタ値以上を有するものに対して、これをイ
    ンクリメントする第2のオフセット値を与え、 前記値変換配列に、前記新たなポインタ値が、前記挿入
    位置に対応する位置を特定するような第2のオフセット
    値を与えることを特徴とする表形式データのデータ挿入
    プログラムを記憶した記憶媒体。
  28. 【請求項28】 請求項5ないし7の何れか一項に記載
    のデータ構造にて表わされる表形式データの任意の位置
    の項目値を削除する表形式データのデータ削除プログラ
    ムを記憶した、コンピュータにより読み出し可能な記憶
    媒体であって、 前記ポインタ配列に関して、 削除されるポインタ値の位置を示す削除位置を特定し、 前記第1の添え字変換配列において、前記削除に関し
    て、対応する添え字を確定し、 前記第1の添え字変換配列において、前記削除位置に対
    応するレコード番号より大きなレコード番号を有するも
    のに関して、対応する添え字の範囲を、当該範囲を確定
    する値が小さくなるように下方にシフトするとともに、
    受け入れられた添え字をインクリメントするための第1
    のオフセット値を与えることを特徴とする表形式データ
    のデータ削除プログラムを記憶した記憶媒体。
  29. 【請求項29】 請求項5ないし7の何れか一項に記載
    のデータ構造にて表わされる表形式データの任意の位置
    の項目値を更新する表形式データのデータ更新プログラ
    ムを記憶した、コンピュータにより読み出し可能な記憶
    媒体であって、(A)(1)前記値リストに関して、 更新される項目値を挿入される項目値と仮定し、当該項
    目値の挿入すべき位置を示す挿入位置を特定し、 前記第2の添え字変換配列において、前記挿入位置に関
    して、対応する添え字を確定するとともに、前記第1の
    実体配列の末尾以降の所定の位置を特定するためのオフ
    セット値を与え、 前記第2の添え字変換配列において、前記挿入位置に対
    応する添え字の値より大きなものに関して、対応する添
    え字の範囲を、当該範囲を確定する値が大きくなるよう
    に上方にシフトするとともに、受け入れられた添え字を
    デクリメントするための第3のオフセット値を与え、 前記第1の実体配列の末尾以降の所定の位置に、前記挿
    入すべき項目値を配置し、(2)前記ポインタ配列に関
    して、 更新されるポインタ値を挿入されるポインタ値と仮定
    し、当該ポインタ値の挿入すべき位置を示す挿入位置を
    特定し、 前記第1の添え字変換配列において、前記挿入位置に関
    して、対応する添え字を確定するとともに、前記第1の
    実体配列の末尾以降の所定の位置を特定するための第1
    のオフセット値を与え、 前記第1の添え字変換配列において、前記挿入位置に対
    応するレコード番号より大きなレコード番号を有するも
    のに関して、対応する添え字の範囲を、当該範囲を確定
    する値が大きくなるように上方にシフトするとともに、
    受け入れられた添え字をデクリメントするための第1の
    オフセット値を与え、 前記第2の実体配列の末尾以降の所定の位置に、現存す
    るポインタ値より大きな新たなポインタ値を配置し、か
    つ、(3)前記ポインタ配列に関して、 前記値変換配列に、前記値リストにおける挿入位置に対
    応するポインタ値以上を有するものに対して、これをイ
    ンクリメントする第2のオフセット値を与え、 前記値変換配列に、前記新たなポインタ値が、前記挿入
    位置に対応する位置を特定するような第2のオフセット
    値を与え、(B)前記ポインタ配列に関して、 更新すべきポインタ値の位置を、削除位置として、前記
    挿入位置を考慮して特定し、 前記第1の添え字変換配列において、前記削除位置に関
    して、対応する添え字を確定し、 前記第1の添え字変換配列において、前記削除位置に対
    応するレコード番号より大きなレコード番号を有するも
    のに関して、対応する添え字の範囲を、当該範囲を確定
    する値が小さくなるように下方にシフトするとともに、
    受け入れられた添え字をインクリメントするための第1
    のオフセット値を与え、前記(A)および(B)、或いは、
    前記(B)および(A)の何れかを順次実行するように構成
    されたことを特徴とする表形式データのデータ更新プロ
    グラムを記憶した記憶媒体。
JP21545099A 1999-07-29 1999-07-29 データ処理装置、および、データ処理方法 Expired - Lifetime JP4425377B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP21545099A JP4425377B2 (ja) 1999-07-29 1999-07-29 データ処理装置、および、データ処理方法
US10/048,231 US6973467B1 (en) 1999-07-29 2000-07-31 Table format data presenting method, inserting method, deleting method, and updating method
KR1020027001281A KR100787079B1 (ko) 1999-07-29 2000-07-31 표형식데이터의 제시방법, 삽입방법, 삭제방법 및 갱신방법
PCT/JP2000/005135 WO2001009764A1 (fr) 1999-07-29 2000-07-31 Procede de presentation, procede d'insertion, procede d'effacement et procede d'actualisation de donnees de format de tables
CA002380565A CA2380565A1 (en) 1999-07-29 2000-07-31 Table format data presenting method, inserting method, deleting method, and updating method
EP00948339A EP1213663A4 (en) 1999-07-29 2000-07-31 PRESENTATION METHOD, INSERTION METHOD, ERASING METHOD, AND METHOD OF UPDATING TABLES FORMAT DATA
CNB008125716A CN1310173C (zh) 1999-07-29 2000-07-31 表格式数据显示方法、插入方法、删除方法和更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21545099A JP4425377B2 (ja) 1999-07-29 1999-07-29 データ処理装置、および、データ処理方法

Publications (3)

Publication Number Publication Date
JP2001043290A true JP2001043290A (ja) 2001-02-16
JP2001043290A5 JP2001043290A5 (ja) 2006-09-14
JP4425377B2 JP4425377B2 (ja) 2010-03-03

Family

ID=16672576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21545099A Expired - Lifetime JP4425377B2 (ja) 1999-07-29 1999-07-29 データ処理装置、および、データ処理方法

Country Status (7)

Country Link
US (1) US6973467B1 (ja)
EP (1) EP1213663A4 (ja)
JP (1) JP4425377B2 (ja)
KR (1) KR100787079B1 (ja)
CN (1) CN1310173C (ja)
CA (1) CA2380565A1 (ja)
WO (1) WO2001009764A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002010976A1 (fr) * 2000-07-31 2002-02-07 Turbo Data Laboratories, Inc. Procede de compilation de donnees
WO2005043409A1 (ja) * 2003-10-31 2005-05-12 Turbo Data Laboratories Inc. 表形式データの結合方法、結合装置およびプログラム
WO2005106713A1 (ja) * 2004-04-28 2005-11-10 Shinji Furusho 情報処理方法及び情報処理システム
JP2006508434A (ja) * 2002-11-15 2006-03-09 フォン・シュヴェーバー,エリック 情報サーベイのための方法及び装置
US7882114B2 (en) 2002-10-25 2011-02-01 Turbo Data Laboratories, Inc. Data processing method and data processing program

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3860992B2 (ja) * 2001-11-09 2006-12-20 株式会社ターボデータラボラトリー データの結合・提示方法、および、データ結合・提示プログラム
WO2004092948A1 (ja) * 2003-04-16 2004-10-28 Turbo Data Lab Inc 情報処理システムおよび情報処理方法
JP2005182122A (ja) * 2003-12-16 2005-07-07 Alpine Electronics Inc リムーバブル記録媒体及びそのファイル制御方法
WO2006037613A2 (en) * 2004-10-04 2006-04-13 Clearpace Software Limited Method and system for implementing an enhanced database
US8024353B2 (en) * 2005-02-11 2011-09-20 Fujitsu Limited Method and system for sequentially accessing compiled schema
US20080046861A1 (en) * 2006-08-15 2008-02-21 Grieser Maria A Method and interface for creating a workbook to implement a business process
US8312457B2 (en) * 2009-12-14 2012-11-13 Microsoft Corporation Maintaining a count for lock-free linked list structures
CN102045352B (zh) * 2010-12-10 2014-03-12 中国电力科学研究院 从站侧协议的解析与实施方法
US8745016B2 (en) * 2011-06-17 2014-06-03 International Business Machines Corporation Managing concurrent access to data in database system
US9870382B2 (en) * 2014-03-25 2018-01-16 Sap Se Data encoding and corresponding data structure
JP6459669B2 (ja) * 2015-03-17 2019-01-30 日本電気株式会社 カラムストア型データベース管理システム
CN105303362A (zh) * 2015-09-17 2016-02-03 哈尔滨工程大学 一种基于存储过程的Web签字流程的方法
CN105446950B (zh) * 2015-12-29 2018-08-14 山东海量信息技术研究院 一种excel文件数据的输出方法
CN108628892B (zh) * 2017-03-21 2020-11-20 北京京东尚科信息技术有限公司 有序数据存储的方法、装置、电子设备和可读存储介质
CN109634955B (zh) * 2018-11-15 2021-07-27 金蝶软件(中国)有限公司 数据存储方法、数据检索方法和装置
CN111538750A (zh) * 2020-06-24 2020-08-14 深圳壹账通智能科技有限公司 一种信息还原方法、装置、计算机系统及可读存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450554A (en) * 1991-11-11 1995-09-12 Matsushita Electric Industrial Co., Ltd. Apparatus for detecting possibility of parallel processing and method thereof and a program translation apparatus utilized therein
US6055627A (en) * 1992-06-22 2000-04-25 Hitachi, Ltd. Compiling method of accessing a multi-dimensional array and system therefor
JP3233245B2 (ja) * 1993-07-01 2001-11-26 日本電気株式会社 言語処理方法
JPH0744508A (ja) * 1993-08-03 1995-02-14 Hitachi Ltd プログラム分割方法
US5485619A (en) * 1993-12-29 1996-01-16 International Business Machines Corporation Array variable transformation system employing subscript table mapping to scalar loop indices
US5822720A (en) * 1994-02-16 1998-10-13 Sentius Corporation System amd method for linking streams of multimedia data for reference material for display
US5610825A (en) * 1994-11-08 1997-03-11 Johnson; William J. Method and apparatus for the display of digitized analog signal loss
JPH08305672A (ja) * 1995-05-09 1996-11-22 Hitachi Ltd 計算分割最適化方法
US5687377A (en) * 1995-10-06 1997-11-11 Electronic Data Systems Corporation Method for storing variables in a programming language
US5640336A (en) * 1996-01-02 1997-06-17 Motorola Computational array and method for calculating multiple terms of a polynomial in a single computing element
US5805887A (en) * 1996-05-31 1998-09-08 International Business Machines Corporation Universal pointer object
GB2326253A (en) * 1997-06-10 1998-12-16 Advanced Risc Mach Ltd Coprocessor data access control
JP3395646B2 (ja) * 1998-03-31 2003-04-14 日本電気株式会社 プログラム並列化装置及び並列化用プログラムを記録した記録媒体

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002010976A1 (fr) * 2000-07-31 2002-02-07 Turbo Data Laboratories, Inc. Procede de compilation de donnees
US7225198B2 (en) 2000-07-31 2007-05-29 Turbo Data Laboratories, Inc. Data compiling method
US7882114B2 (en) 2002-10-25 2011-02-01 Turbo Data Laboratories, Inc. Data processing method and data processing program
JP2006508434A (ja) * 2002-11-15 2006-03-09 フォン・シュヴェーバー,エリック 情報サーベイのための方法及び装置
JP2011008807A (ja) * 2002-11-15 2011-01-13 Schweber Erick Von 情報サーベイのための方法及び装置
WO2005043409A1 (ja) * 2003-10-31 2005-05-12 Turbo Data Laboratories Inc. 表形式データの結合方法、結合装置およびプログラム
WO2005106713A1 (ja) * 2004-04-28 2005-11-10 Shinji Furusho 情報処理方法及び情報処理システム
JPWO2005106713A1 (ja) * 2004-04-28 2008-07-31 株式会社ターボデータラボラトリー 情報処理方法及び情報処理システム
JP4673299B2 (ja) * 2004-04-28 2011-04-20 株式会社ターボデータラボラトリー 情報処理方法及び情報処理システム

Also Published As

Publication number Publication date
EP1213663A4 (en) 2006-07-12
CA2380565A1 (en) 2001-02-08
KR20020067492A (ko) 2002-08-22
JP4425377B2 (ja) 2010-03-03
EP1213663A1 (en) 2002-06-12
WO2001009764A1 (fr) 2001-02-08
CN1310173C (zh) 2007-04-11
KR100787079B1 (ko) 2007-12-21
US6973467B1 (en) 2005-12-06
CN1373876A (zh) 2002-10-09

Similar Documents

Publication Publication Date Title
JP4425377B2 (ja) データ処理装置、および、データ処理方法
US6067540A (en) Bitmap segmentation
US6564212B2 (en) Method of processing queries in a database system, and database system and software product for implementing such method
US6141655A (en) Method and apparatus for optimizing and structuring data by designing a cube forest data structure for hierarchically split cube forest template
US7418544B2 (en) Method and system for log structured relational database objects
US6694323B2 (en) System and methodology for providing compact B-Tree
JP3945771B2 (ja) データベース・システム
US6633883B2 (en) Methods of organizing data and processing queries in a database system, and database system and software product for implementing such methods
US6070164A (en) Database method and apparatus using hierarchical bit vector index structure
EP1504377B1 (en) Storing and querying relational data in compressed storage format
US20050071349A1 (en) Method and apparatus for accessing multidimensional data
JPH0766347B2 (ja) データ・ベースにデータを記憶する方法およびデータ・ベース・システム
Ghanem et al. Bulk operations for space-partitioning trees
Álvarez-García et al. Compact and efficient representation of general graph databases
RU2433467C1 (ru) Способ формирования структуры агрегированных данных и способ поиска данных посредством структуры агрегированных данных в системе управления базами данных
JP6006740B2 (ja) インデックス管理装置
JP2004534981A (ja) データベース・システムでデータを編成し、問合せを処理する方法、およびそのような方法を実施するためのデータベース・システムおよびソフトウェア製品
Kvet Database Block Management using Master Index
JP4152107B2 (ja) データベース更新情報の反映システムおよびそのためのプログラム
JP3980326B2 (ja) データ管理方法およびコンピュータ読み取り可能な記録媒体
Xu et al. Efficiently Update Disk-Resident Interval Tree
Jea et al. A difference-based version model for OODBMS
Park et al. A high-performance spatial storage system based on main-memory database architecture
Chen et al. Signature files and signature file construction
Peng et al. L-Index: A Conceptual Index of Textual Data on Map Reduce Platform

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060725

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091014

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091209

R150 Certificate of patent or registration of utility model

Ref document number: 4425377

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151218

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term