JP4160632B2 - データベースをトラバースするための並列処理装置 - Google Patents
データベースをトラバースするための並列処理装置 Download PDFInfo
- Publication number
- JP4160632B2 JP4160632B2 JP50892796A JP50892796A JP4160632B2 JP 4160632 B2 JP4160632 B2 JP 4160632B2 JP 50892796 A JP50892796 A JP 50892796A JP 50892796 A JP50892796 A JP 50892796A JP 4160632 B2 JP4160632 B2 JP 4160632B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- column
- physical
- files
- logical
- 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.)
- Expired - Fee Related
Links
- 239000000284 extract Substances 0.000 claims abstract description 16
- 239000000872 buffer Substances 0.000 claims description 90
- 230000006870 function Effects 0.000 claims description 30
- 238000000605 extraction Methods 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 25
- 230000003213 activating effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 238000002360 preparation method Methods 0.000 description 9
- 238000010845 search algorithm Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 3
- 102100021102 Hyaluronidase PH-20 Human genes 0.000 description 2
- 101150055528 SPAM1 gene Proteins 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 208000017482 infantile neuronal ceroid lipofuscinosis Diseases 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Numerical Control (AREA)
Description
本発明はデータ処理装置の技術に係わり、特に、ユーザによって定義された基準に基づいて大規模なデータベースをトラバースし、ユーザによって定義された基準に基づいてデータベースから情報を回収し、そしてユーザの指定したフォーマットにデータを提供する方法に関する。
発明の背景
大規模データベースのユーザが直面する不変的な問題は、いかにして必要な情報に効率的かつ便利なフォーマットでアクセスするかということである。一般的に、大規模ビジネスは、連続的に様々のフォーマットで様々の用途のためにデータを収集し、記憶するであろう。これらのファイルの大部分は、一般的に、各記入もしくは一組の記入がファイル中の他の事象もしくは取引と独立に発生する個々の事象もしくは取引に関する情報を含むイベントもしくはトランザクションファイルとして参照される。
例えば、大規模小売り店チェーンは、住所、電話番号等を含む顧客の情報、および各顧客ごとに購入された物品のリスト、購入の日付、価格、支払い方法を含む勘定履歴情報からなるデータベースを保守することが必要となろう。日毎あるいは月毎に更新され、業務の数年にわたるであろうこのようなファイルは、大規模な会社にとって明らかに極めて大量となる。このようにこれらのファイルは、一般的にテープ記憶装置およびディスク記憶装置のような外部記憶装置に記憶される。
例えば、このファイルが相対的に低速の外部記憶装置に記憶されるという事実と関連して、3年間にわたる勘定履歴ファイルの純粋な大きさは、これらのファイルからのデータの回収および処理を時間のかかるタスクとしている。その結果、このようなファイルは、元の形式で使用されることはあまりない。その代わりに、ビジネスは、一般的に、これらのファイル内のデータを評価し、集計ファイル、すなわち特定の時間期間内の全購入勘定のファイルを形成することを望むであろう。
その結果、法人は、イベントもしくはトランザクションファイルから抜粋される情報を含む中間的な“集計ファイル”を設定するであろう。従ってこのファイルは、新たな事象もしくは取引が収集されるたびに更新される。例えば、業務ファイルが、各従業者への支払いはもちろん各プロジェクト毎に各従業者によって費やされた時間を示す賃金台帳情報を含んでいれば、各業者が各プロジェクトに費やした時間の現在の総計を維持するために集計ファイルが作成されなければならない。新たな賃金台帳の追加はトランザクションファイルにエントリーされるため、集計ファイルは、集計ファイル中に以前に記憶された合計に新たなトランザクションデータを単に加算することによって更新されるであろう。
その結果、ユーザが従業者John Smithが彼のプロジェクトのそれぞれに費やした時間に関する情報を要求したとき、システムは、要求された情報を提供するために元の賃金台帳業務ファイルよりもむしろ集計ファイルにアクセスするであろう。したがって、おおくの場合、システムは、集計ファイルを更新して最新の要求情報を得るために、当日のエントリーを検索することが必要となる。これは処理時間を減少する。
しかしながら、システムに基づくこのような集計ファイルは、ある欠点を有する。例えば、もしユーザが望む形式の情報が集計ファイル中に保持されていなければ、情報はすぐには得られない。したがって、将来の情報およびビジネス要求を予測、推定し、集計情報をただちに可能とするために“集計ファイル”の設計者に過大の負担を課すこととなる。
集計ファイル中のデータが遡及的に変更されなければならないときには、付加的な問題が発生する。例えば、集合交渉の結論が従業者と相違する場合には、組合は時間当たり$7から時間当たり$8への遡及的な支払の増加を結論する。上記の従来のシステムにおいては、支払いの差額がまず計算されなければならず、支払い情報の派生情報を含むすべての集計ファイルは、遡及的な変更の影響を反映するために調整されなければならない。
この結果、従来技術のシステムは、これらの出力データが元のトランザクションもしくはイベントファイルよりもむしろ集計ファイルの内容に基づくという事実に起因する本質的な柔軟性の欠如に苦しむこととなる。したがって、元のトランザクションもしくはイベントファイルから望まれるフォーマットに情報を迅速に編集するシステムの必要性が存在する。
発明の要約
本発明によれば、大量のイベントもしくはトランザクションファイルを迅速かつ効率的な方法で処理することができ、したがって、集計ファイルの保持の必要を低減するイベントもしくはトランザクションデータベースをトラバースするための並列処理システムが提供される。
本発明によれば、一組の探索アルゴリズムは、独立した事象もしくは取引を含む物理ファイルの組をトラバースするために使用される論理テーブル中に定義される。論理テーブルは、“非手続き”言語の実施例を示している。しかしながら、本発明と矛盾することなく、論理テーブルを“パスカル”もしくは“C”のような“手続き”言語で表すことも可能である。
個々の独立した事象もしくは取引は、論理レコードと呼ばれる。同形式にフォーマットされた論理レコードの組は論理ファイルと呼ばれる。例えば、論理ファイルは、所定期間、例えば3年間に発生する購入事象(例えばクレジットカード購入)に関する情報を含む論理レコードの組であり得る。この購入履歴論理ファイルは、例えば、現在の暦年(0年)の購入品を含む物理ファイル1、前の暦年(−1年)の購入品を含む物理ファイル2、およびその前の暦年(−2年)の購入品を含む物理ファイル3、の3つの物理ファイルにわたる。物理ファイルは、テープもしくはディスクに記憶されてよい。
本発明によれば、論理ファイル中の各物理ファイルは、それぞれの探索アルゴリズムに従って1つの分離したスレッドによって探索される。複数プロセッサシステムにおいて、分離したスレッドは分離したプロセッサで実行され得る。もしプロセッサの数がスレッドの数と同数もしくはそれより大きければ、各スレッドの探索アルゴリズムは、他のスレッドのアルゴリズムと並列に対応する物理ファイルをトラバースすることができる。例えば、3つのスレッドと3つのプロセッサがあれば、3つのスレッド全部が対応する物理ファイルを並列にトラバースする。さらに、もしスレッドの数がプロセッサの数を越えていても、少なくともいくつかの探索アルゴリズムは並列に実行される。例えば、3つのプロセッサを有するシステム内に4つのスレッドが存在すれば、スレッドはいかなる瞬間においても3つのスレッドが実行されるようにプロセッサを共有しなければならない。
本発明によれば、探索アルゴリズムは、1もしくはそれ以上のビュー(view)から論理テーブル中にジェネレイトされる。ビューは1つの抽出ファイルを生成するために論理ファイルに基づくパラメータの特定の組として定義される。このように、ビューは、あるデータもしくはデータのある種類が、論理ファイルの論理レコードから回収され、特定された方法で処理され、抽出ファイルに特定されたフォーマットで書かれることを定義する。典型的な応用において、1つの論理ファイルおよびユーザの関心のある多くの相違する論理ファイルに関連して定義される多くのビューが存在するかもしれない。
本発明によれば、異なる論理ファイルおよび異なる物理ファイルに関連して定義されるであろうすべてのビューは、合成論理テーブル中に組み込まれる。論理テーブルは、それぞれの組が異なる物理ファイル、したがって異なるスレッドに対応する複数の“組”中に配置される。1つの所定の組は、その組に対応する物理ファイルから情報を要求するそれぞれのビューを含むであろう。
本発明によれば、論理テーブルは機械コードに変換され、したがって、機械コードは各スレッドに対応する探索アルゴリズムを形成し、各スレッドは対応する物理ファイル上で動作する。したがって、スレッドは、論理レコードを含む物理ファイルをトラバースするために対応する機械コードに従って並列に実行される。さらに、各スレッドに対して機械コードで組み込まれる探索アルゴリズムは全ビューで必要とされる全情報を対応する物理ファイルから抽出するので、定義されたビューの数もしくは探索される論理ファイルの数にかかわらず、各物理ファイルはただ一回だけトラバースされる。その結果、複数の物理ファイルを並列に探索し、ビューの数にかかわらず各物理ファイルをただ一回探索することによって、大規模データベースをトラバースする処理時間が、本発明によって大幅に低減される。これは、集計ファイルよりもむしろ元のイベントもしくはトランザクションファイルから情報を引き出すことを可能とする。
例えば、ユーザが、上述の購入履歴論理ファイル中に含まれる情報に基づいて、品番によって0年から−2年までのJohn Smith個人の購入品すべてを記載した#1レポート、顧客名によって0年から−1年までの$500以上のすべての購入品を記載した#2レポート、および各顧客ごとの0年に購入されたクレジットの累計を記載した#3レポートの3つの別個のリポートを作成することを望んだと仮定しよう。
本発明によれば、購入履歴論理ファイルである3つの物理ファイルのそれぞれの1つが3つの組に分割された論理テーブルがジェネレイトされる。
#1レポートは3つの物理ファイルのそれぞれから情報を要求するので、#1レポートに対するビュー定義は3つの組のそれぞれに生成され記憶される。3つの組のそれぞれに複写されるであろう#1レポートに対するビュー定義は、以下のパラメータを含んでいる。
“顧客フィールド”がJohn Smithである物理ファイル中の全エントリーを回収する。
回収された全エントリーの顧客フィールドの内容をビュー1にための抽出ファイルの第1列へ記入する。
回収された全エントリーの“品番フィールド”の内容を第2列へ記入する。
回収された全部のエントリーの“価格フィールド”の内容を第3列へ記入する。
“品番フィールド”の内容により回収されたエントリーを分類する。
#2レポートは、物理ファイル1(0年)および物理ファイル2(−1年)からだけ情報を要求するので、#2レポートに対するビュー定義は第1および第2の組の中だけで生成、記憶される。最初の2つの組のそれぞれに複写される#2レポートに対するビュー定義は、以下のパラメータを含んでいる。
$500以上の“価格フィールド”を有する物理ファイルへの全エントリーを回収する。
回収された全エントリーの“顧客フィールド”の内容をビュー2のための抽出ファイルの第1列へ記入する。
回収された全エントリーの“品番フィールド”の内容を第2列へ記入する。
回収された全部のエントリーの“価格フィールド”の内容を第3列へ記入する。
“顧客フィールド”の内容により回収されたエントリーを分類する。
#3レポートは、物理ファイル1(0年)からだけデータを要求するので、#3レポートに対するビュー定義は第1の組の中だけで生成、記憶される。第1の組中にだけ存在する#3レポートに対するビュー定義は、以下のパラメータを含んでいる。
物理ファイルに対する全エントリーを回収する。
回収された全エントリーの“顧客フィールド”の内容をビュー3のための抽出ファイルの第1列へ記入する。
回収された全エントリーの“品番フィールド”の内容を抽出ファイルの第2列へ記入する。
回収された全部のエントリーの“価格フィールド”の内容を抽出ファイルの第3列へ記入する。
上述された現在の合計を計算する準備として、第4列に“0”を記入する。
“顧客フィールド”の内容により回収されたエントリーを分類する。
その入力の“価格フィールド”(第3列)の内容とエントリーの第1列で識別される顧客に対する前回の入力の第4列の内容との和を抽出ファイルの各エントリーの第4列に記入する。
したがって、論理テーブルにおける上述のビュー定義は、それぞれが論理テーブルの組に対応する3つのスレッドのそれぞれに対する機械コード命令に変換されるであろう。3つのスレッドのそれぞれは、対応する物理ファイルを以下のようにトラバースするであろう。
スレッド1は物理ファイル1をトラバースするであろう。スレッド1は物理ファイル1の第1エントリーにアクセスして、以下のステップを実行するであろう。
1.もし顧客名フィールドがJohn Smithであれば、抽出エントリーの第1列に顧客フィールドの内容を記入し、“品番フィールド”の内容を第2列に記入し、“価格フィールド”の内容を第3列へ記入し、“品番フィールド”の内容によって前回エントリーを有するエントリーを分類するための準備として分類フィールドを収集し、ビュー1に対する抽出ファイル上に抽出エントリーを書き出す。
2.もし“価格フィールド”が500より大であれば、抽出エントリーの第1列に顧客フィールドの内容を記入し、“品番フィールド”の内容を第2列に記入し、“価格フィールド”の内容を第3列へ記入し、ビュー2に対する前回エントリーを有するエントリーを“顧客フィールド”の内容によって分類し、ビュー2に対する抽出ファイル上に抽出されたエントリーを書き出す。
3.抽出ファイルの第1列に“顧客フィールド”の内容を記入し、“品番フィールド”の内容を第2列に記入し、“価格フィールド”の内容を第3列へ記入し、ビュー3に対する前回エントリーを有するエントリーを“顧客フィールド”の内容によって分類するための準備として分類フィールドを収集し、上述した最新の合計を計算するための準備として第4列に“0”を記入し、ビュー3に対する抽出ファイルに対して抽出されたエントリーを書き出す。
4.物理ファイル1中の全残り入力に対してステップ1から3を繰り返す。
スレッド2は物理ファイル2をトラバースするであろう。スレッド2は物理ファイル2の第1エントリーにアクセスして、以下のステップを実行するであろう。
1.もし顧客フィールドがJohn Smithであれば、抽出エントリーの第1列に顧客フィールドの内容を記入し、“品番フィールド”の内容を第2列に記入し、“価格フィールド”の内容を第3列へ記入し、“品番フィールド”の内容によって前回入力を有するエントリーを分類するための準備として分類フィールドを収集し、ビュー1に対する抽出ファイル上に抽出されたエントリーを書き出す。
2.もし“価格フィールド”が500より大であれば、抽出エントリーの第1列に顧客フィールドの内容を記入し、“品番フィールド”の内容を第2列に記入し、“価格フィールド”の内容を第3列へ記入し、“顧客フィールド”の内容によってビュー2に対する前回入力を有するエントリーを分類するための準備として分類フィールドを収集し、ビュー2に対する抽出ファイル上に抽出されたエントリーを書き出す。
3.物理ファイル2中の全残りエントリーに対してステップ1から2を繰り返す。
スレッド3は物理ファイル3をトラバースするであろう。スレッド3は物理ファイル3の第1エントリーにアクセスして、以下のステップを実行するであろう。
1.もし顧客フィールドがJohn Smithであれば、抽出エントリーの第1列に顧客フィールドの内容を記入し、“品番フィールド”の内容を第2列に記入し、“価格フィールド”の内容を第3列へ記入し、“品番フィールド”の内容によって前回エントリーを有するエントリーを分類するための準備として分類フィールドを収集し、ビュー1に対する抽出ファイル上に抽出されたエントリーを書き出す。
2.物理ファイル2中の全残りエントリーに対してステップ1を繰り返す。
いったんスレッドが上述の手続きを完了すると、各抽出ファイルは各ビュー定義によって特定された分類フィールドに従って分類される。したがって、ビュー3に対する抽出ファイル中の各エントリーに対して、前回エントリーの第4列の内容にエントリーの第3列の内容を加算する。そして、エントリーが、エントリーの第1列中に識別される顧客に対する抽出ファイル中の第1のエントリーであるまでエントリーの第4列に記憶する。
上記の3つのスレッドのそれぞれは他と独立に動作し、もしシステムが少なくとも3つのプロセッサを含んでいれば、3つのスレッドのそれぞれは並列に動作する。上記に示したように、例えばスレッド1は3つの別個のレポートを生成する事実にかかわらず、各物理ファイルの各エントリーは1回だけアクセスされる。
物理ファイルはテープ記憶装置、ディスク記憶装置のような外部記憶装置上に記憶されるので、物理ファイル上の所定のエントリーにアクセスするために要求される時間は、スレッドがいったん回収されたデータを処理するために要する時間を大幅に超過する。このように物理ファイルの各エントリーに1回だけアクセスし、物理ファイルに関して定義されるビューの数にかかわらずそれらが物理的に記録されている順序でエントリーにアクセスすることによって、処理時間は低減される。さらに、ファイルを並列に処理することによって、処理時間はさらに低減される。
本発明によれば、入力バッファセットが各スレッドに対して具備されるが、それぞれの入力バッファセットは1以上の入力バッファを含み、各入力バッファは1つのデータブロックを保持し、物理媒体から入力バッファへのデータブロックの転送は、1つのブロックから他のブロックへの切替えに起因する遅れを最小にするようにブロックが物理媒体に記憶されるのと同じ順序で発生する。本発明の1つの実施例によれば、データブロックの大きさは物理ファイルが存在する物理媒体の性質の関数として選択される。データブロックの大きさは、もしデータがディスク上に記憶されるならば、対応する物理媒体からアクセスアームの機械的移動なしで回収され得る最大の大きさと等しく設定される。
このようにデータブロックの大きさを選択することによって、本発明に係るシステムは、最小の処理時間で入力バッファ中にデータの最大量を回収する。
本発明のさらなる実施例によれば、さらにデータ抽出時間を最小化するために各入力バッファセット中に複数の入力バッファが具備される。本発明に係るこの実施例によれば、第1の入力バッファにそのデータブロックが転送された後、データの他のブロックが次の入力バッファ中に転送されている間に、その入力バッファセットに対する物理ファイルに対応するスレッドはその処理アルゴリズムに従って第1の入力バッファをトラバースするので、データブロックの抽出は探索と重なる。最高には、入力バッファセット中の入力バッファの数は、スレッドが最後の入力バッファをトラバースするときまでに第1の入力バッファが物理ファイルから新たなデータブロックをすでに再転送しているように選択される。その結果、スレッドは、データブロックの処理を開始する前に、バッファ中に転送されるべきデータブロックを待つ必要がない。
本発明のさらなる実施例によれば、論理テーブルによって参照される各抽出ファイルに対して1つの出力バッファセットが具備される。各出力バッファセットは順番に1以上の出力バッファを含み、出力バッファのそれぞれは1つのデータブロックを保持する。データブロックの大きさは、入力バッファに関しては上述したように対応する抽出ファイルが存在する物理媒体の性質の関数として選択される。複数の出力バッファが、他のバッファが満たされている間に1つのバッファが書かれることを許容することによってさらに処理速度を速めるために具備されるであろう。
【図面の簡単な説明】
図1は、本発明の1つの実施例に係るプロセッサシステムの図である。
図2は、本発明の1つの実施例に係る論理ファイルの図である。
図2Aは、図2の論理ファイルの論理レコードの詳細図である。
図2Bは、本発明に係る参照テーブルの図である。
図3は、本発明に係る論理テーブルの図である。
図4は、本発明に係る抽出ファイルの図である。
図5は、本発明の1つの実施例に係るビュー定義標準パラメータ画面を示す。
図6は、本発明の1つの実施例に係るビュー定義一般列パラメータ画面を示す。
図7は、本発明の1つの実施例に係るビュー定義列計算パラメータ画面を示す。
図8は、本発明の1つの実施例に係るビュー定義一般分類パラメータ画面を示す。
図9は、本発明の1つの実施例に係るビュー定義一般選択パラメータ画面を示す。
図10は、本発明の1つの実施例に係るビュー定義列選択パラメータ画面を示す。
図11A−Dは、図3の論理テーブルをより詳細に示す図である。
図11Eは、参照テーブルに対する参照を含む図3の論理テーブルの一部を示す図である。
図12は、本発明の1つの実施例に係る入力バッファリングを示す図である。
図13は、本発明の1つの実施例に係る出力バッファリングを示す図である。
図14は、本発明の参照テーブルのサブセットの一部を示す図である。
図15は、図14のサブセットの一部をより詳細に示す図である。
図16は、論理テーブルからの機械コードの生成を示す図である。
発明の詳細な説明
図1において、本発明によるプロセッサシステムは、ディスク記憶装置2、ハードディスク記憶装置3、及びテープ記憶装置4,5の如き、各種の外部記憶装置に結合されたIBMメインフレーム・コンピュータ1(例えば、3つのプロセッサA,B,Cを含む)を含む。
本発明によれば、プロセッサは、論理テーブルに含まれる1つ又はそれ以上のビュー定義に従って、イベント(トランザクション)・データベースをサーチする。
上述のように、イベント・データベースは、事象に関する情報を格納するファイルを含むデータベースである。イベント・データベースは、各々に複数の論理レコードを含む複数の論理ファイルを包含する。また、論理ファイルには複数の物理ファイルが存在する。論理ファイルの一例は購入履歴記録を含むファイルである。図2において、購入履歴論理ファイル10には物理ファイル11、物理ファイル12、及び物理ファイル13が存在する。図2Aにおいて、購入履歴論理ファイル10は、顧客名20、店名21、個数22、品番23及び価格24の列を持つ。論理ファイルの各行は異なる購入履歴論理レコードである。一方、図2及び図2Aに図示されていないが、各物理ファイルは数個の異なる論理ファイルに属する論理レコードを含むことは理解されるべきである。
物理ファイル11には、例えば、現在の暦年(0年)に対する購入履歴論理ファイルの全ての論理レコード(エントリー)を含み、物理ファイル12には、前の暦年(−1年)に対する購入履歴論理ファイルの全てのエントリーを含み、物理ファイル13には、その前の暦年(−2年)に対する購入履歴論理ファイルの全てのエントリーを含む。
イベント及びトランザクション・データベースに加えて、参照テーブルもまた本発明に従ってサーチされる。参照テーブルは、事象又は取引情報よりもむしろ参照情報を含む。例えば、イベント・データベースがチェーン店に対する顧客取引上の情報を含むが、参照テーブルはチェーン店における各店の所在地と、各店の支配人の名前を示す。図2Bにおいて、参照テーブル記憶15は店番号25、所在地26及び支配人27の列を含む。
上述したように、イベント・データベースは一連の論理ファイルを備え、各論理ファイルは1つ又はそれ以上の物理ファイルに格納される。本発明によれば、イベント・データベースの物理ファイルは効率を向上させるために並列にサーチされる。特定の物理ファイルのサーチに従って、当該物理ファイルに関連するビュー定義の各々は、1つのサーチアルゴリズムを形成するために論理テーブルを使用することによって結合される。このアルゴリズムは、物理ファイルに対する全てのビュー定義についてのサーチ結果を得るために、一度物理ファイルに与えられ、サーチ結果はビュー定義に従って処理され、指令された抽出ファイルに書き込まれる。
本発明によれば、論理テーブルは、1つ又は複数の論理ファイルを処理する方法を制御するように作成される。論理テーブルは非手続き型言語の具体例で示される。しかしながら、本発明との一致をとるために、論理テーブルは「パスカル」や「C」の如き手続き言語で表される。論理ファイルに加えて、論理テーブルもまた複数の参照テーブルをサーチする。上述したように、論理ファイルと異なり、参照テーブルは事象記録を含まない。その代わりに、参照テーブルは、論理レコードからイベント・ファイルデータの表示や解釈を容易にするために有用な参照情報を含む。
図3において、論理テーブル30は幾つかのエントリーで構成される。各エントリーは機能コード欄34を含み、一般に、論理テーブルのエントリー又は行はこの機能コード欄により参照される。
論理テーブルは複数の「組」に分割される。機能コード欄「ES」(ES行)は組の終了を示す。図3は、例えば、3つの組を持つ「非手続き型言語」の説明図であり、第1の組31は購入履歴論理ファイルの物理ファイル11に対応し、第2の組32はその物理ファイル12に対応し、第3の組33はその物理ファイル13に対応する。以下により詳細に説明するように、各組は並列処理システムにおける個々のスレッドに対応する。
機能コードエントリー「NR」(New Request)は新しいビューの開始を示す。以下に述べるように、2つのNR行の間にある一連のエントリーは当該ビューをさらに細分化するものである。論理テーブルにおける各ニューリクエスト(NR)は対応するビュー定義を持つ。
ビュー定義は特定の論理ファイルを処理する方法を規定する。加えて、ビュー定義はサーチ結果をユーザに対してフォーマット化する方法を制御する。本発明の実施例によれば、ユーザは一連の表示画面を使用してビュー定義を作成する。一度ビュー定義が作成されると、論理テーブルのNR行及び1つ又はそれ以上の他の行に併合される。
本発明の実施例によれば、ビュー定義メニューによって、ユーザは以前のビュー定義リストや現在の特定のビュー定義を表示することができ、又は新たなビュー定義を作成することができる。ビュー定義メニューは以下の図5乃至図10で説明する複数の表示画面を持つ。これらの表示画面はメインメニュー(図示せず)又は他の表示画面内からアクセスされる。例えば、図6に示す「ビュー定義一般列パラメータ表示画面」は、図5の下段にあるメニュー46から番号21をエンターすることにより図5に示す「ビュー定義標準パラメータ表示画面」からアクセスされる。
新しいビュー定義を作成するとき、又は現在のビュー定義を編集するときに、ユーザはビュー定義に与えられる標準パラメータを示す「ビュー定義標準パラメータ表示画面」をエンターする。図5において、「ビュー定義標準パラメータ表示画面」は、「論理レコード」40、サーチのデータ範囲41及び「抽出ファイル」42を示す。
列が抽出ファイルに含まれるように特定するために、「ビュー定義一般列パラメータ表示画面」がアクセスされる。ビュー定義の各列には識別された一連の番号が与えられる。図6において、列識別(COLUMN ID)欄50は、その属性が表示画面の他の部分で規定される列番号(例えば1−999)を識別する。欄番号(FIELD NUMBER)51は、列に現れる論理レコード又は参照テーブルから欄を指定する。さらに、列見出し(COLUMN HEADING)52、列幅(COLUMN WIDTH)53、等は、この表示画面から特定される。
図7において、「ビュー定義列演算表示画面」により、「ビュー定義一般列パラメータ表示画面」にて特定された列に割り当てられるべき演算が可能となる。列識別欄(COLUMN ID FIELD)60は、演算値が表れる列を指定し、さらに演算子(OPERATOR)61、コード(CODE)62、値(VALUE)63の各欄は、実行されるべき演算を規定する。演算子欄(OPERATOR)61は、加算、減算、乗算、除算の指定を与える。コード欄(CODE)62は、現在の列値(CL)、以前の列値(PL)、又は一定値(CO)に対する指定を与える。値欄(VALUE)63はコード欄(CODE)62で規定する一定値を特定する。例えば、ユーザが列4において列3の実行合計を保持したいとする。図7において、これは次のようにインプリメントされる。列識別(COLUMN ID)は列4(COLUMN ID:004)であり、第1のエントリーにおいて、演算子は「+」であり、コードは「CL03」であり、そして、第2のエントリーにおいて、演算子は「+」であり、コードは「PL04」である。
図8において、「ビュー定義一般分類パラメータ表示画面」はビュー定義に対する分類レベルを制御するために使用される。ビュー定義の「分類レベル」はサーチ結果が分類された論理レコード又は参照ファイルからの列を示す。例えば、図8の分類欄(SORT FIELD)70が「顧客名」であれば、サーチ結果は、抽出ファイルに書き込まれる時に「顧客名」で分類される。第2の分類欄70が店番号で規定されていたならば、サーチ結果は最初は顧客名で分類され、次に店番号で分類される。
抽出ファイルからの所定情報を除外するために、ユーザは「ビュー定義一般選択パラメータ」(図9)をエンターする。この表示画面によって、ユーザは、抽出ファイルから、選択されたデータを含む欄を持つ論理レコードを包含又は除外することができる。例えば、もしユーザが$200より少ない如何なる取引にも興味を示さないときは、取引記録の「合計」欄(AMOUNT FIELD)に対する欄番号は、FLD NUM 90欄にエンターされ、「から選択」欄(SELECTION FORM)91は「0」に設定され、「に選択」欄(SELECTION TO)92は「200」に設定され、「包含/除外」欄(INCL EXCL)93は除外の「E」に設定される。ここで、1つ以上の選択基準は1つの「欄番号」(FIELD NUMBER)に対して設定され、「OR」論理がサーチ結果に与えられる。ここで異なる欄番号が設定され、「AND」論理が与えられる。例えば、ユーザが、店93における販売品番が$10又は$1050に価格設定された取引にのみ興味があったとする。欄Z04が店欄を示し、欄H22が価格欄を示し、図9において、上記の例が次のようにインプリメントされているとする。即ち、論理レコード(エントリー)の欄H22のデータが10又は1050、及びそのエントリーの欄Z04のデータが93であり、そしてそのエントリーが抽出ファイルに含まれているとする。
図10において、「列選択パラメータ表示画面」は、「列選択パラメータ表示画面」によりユーザが列識別(COLUMN ID)85を特定することで特定の列からデータを包含又は除外することができることを除いて、「一般選択パラメータ表示画面」と同じ方法で動作する。
簡単な例によって上述の特徴を説明する。例えばユーザが、過去3年における、購入店の各顧客、各購入品番、購入量、及び店住所及び店番号、をリストにした文書を作成したいとする。
ユーザは「ビュー定義標準パラメータメニュー」をエンターし、「購入履歴論理ファイル」の識別子をエンターする。(図2A)テーブル(LR)番号欄40。現実のデータ範囲欄41において、ユーザは「01011991-99999999」(1991年1月1日現在)を入力する。残りのエントリーは示されたデフォルト値で存続する。
そしてユーザは「ビュー定義列パラメータ表示画面」(図6)をエンターする。列識別(COLUMN ID):001(列1)及び「顧客」(CUSTOMER)のコードに対して、PH20(購入履歴論理レコード(L.R.20))が欄番号(FIELD NUMBER)51にエンターされる。そして、列見出し欄(COLUMN HEADING)52において、ユーザは“CUSTOMER”を入力する。ユーザは“NEW COLUMN”に対して「1」を押し、列2(ID:002):欄51=PH23(品番を示す)、欄52=“ITEM”をエンターし、そして列3(ID:003),欄51=PH24(価格を示す)、欄52=“PRICE”をエンターするために「1」を再度エンターする。そして列4(ID:004),欄51=PH21(店を示す)、欄52=“STORE NO”をエンターするために「1」を再度エンターする。ユーザは列5(ID:005)の情報をエンターするために「1」を押す。第5列は店住所であるから、欄番号51は参照テーブル記憶15(RS26)の列2(位置26)を参照し、参照経路(LOOKUP PATH)54はPH21であり、店番号(PH21)に対する店住所又は位置」」6)を第5列に置く。欄53の列見出しは例えば“STORE LOCATION”である。
そしてユーザは「一般分類パラメータ表示画面」(図8)をエンターする。分類欄(SORT FIELD)70は、抽出ファイルが顧客名で分類されることを示すためにPH20(顧客)として規定される。
上述の例により結果的に抽出ファイルは5つの列、即ち、CUSTOMER,ITEM,PRICE,STORE NO,及びSTORE LOCATIONを持つ。「購入履歴論理ファイル」及び「参照テーブル記憶」から検索された結果的なエントリーは図4に示すように顧客名でリストされる。
上述で規定されたビュー定義は自動的に論理テーブルにおいて種々のエントリーに変換される。上述しかつ図3乃至図10に示した例を再度使用して、ビュー表示画面に入力された情報の論理テーブルへの変換を説明する。図11は図3の論理テーブルをより詳細に説明したものである。
図11に従って、各論理テーブル行は複数の欄を持つ。第1欄100は論理テーブルの行番号である。第2欄はビューに対する論理レコードの元になる物理ファイルを特定するDD名(DDNAME)101である。この欄の値は「標準パラメータ表示画面」(図5)からのテーブル番号40から作成される。この欄は論理テーブルにおける組の各行に対して同じ値を持つ。第3欄はプロセッサシステムにより各ビューに一連に割り当てられたビュー番号(図5の品番45)を含むビュー番号103である。
図5において、「標準パラメータメニュー」上のエントリーは次のようにして論理テーブルエントリーに変換される。ニューリクエスト(NEW REQUEST)行は“NR”を機能コード欄104にエンターすることにより作成される。自動的に作成される「ビュー定義番号」は当該ビューが属する各行のビュー番号欄103にエンターされる。テーブル(LR)番号欄40の値は、物理ファイルを示す欄101と共に論理テーブルの各行の欄101及び107に変換され、ここで論理レコードは論理レコード形式を示す欄107に位置される。現実のデータ範囲欄41の値は、論理レコードの物理ファイルがこのビューに必要であるように決定するために使用される。もし1つ以上の物理ファイルがビューに対して必要であれば、ビューに対する全ての行は以下に説明するように他の組にコピーされる。抽出ファイル識別欄42は、NR行の値欄120における対応する抽出ファイル番号欄にコピーされる。
図6の「標準列パラメータ表示画面」において、各列識別欄(COLUMN ID)50は論理テーブルの個々の行にコピーされる。図11において、行2は、このラインはその内容が論理レコードから検索されるべき列を規定することを示すために、DT機能コードを含む。分類列#欄105は行3が抽出ファイルの第1列を規定することを示す(図6の欄50からのCOLUMN ID 001)。欄番号欄108は「一般列パラメータ画面表示」の「欄番号」欄51から導き出される。行3はまた、値欄120における列のフォーマットに関する情報、例えば、列幅欄53からの列1の列幅、を含む。行3から5は抽出ファイルの列2、3及び4の内容を同様に特定する。
行6は図8の「一般分類パラメータメニュー」にて特定された分類基準に関する情報を含む。機能コードKTは、抽出ファイルが論理レコードからの欄により分類されることを示す。分類列欄105は分類番号(最初の分類であるからこの場合「1」)を示し、欄番号108は抽出ファイルにより分類される論理レコードの欄を示す。このエントリーは図8の「一般分類パラメータ表示画面」の分類欄70から得られる。
行7は書き込み記録ライン(WR)である。WRラインは、以前のNRライン(行1)にて識別された抽出ファイルにデータのラインを書き込むようにシステムに指令する。
行8は第2ビュー(VIEW # 2)のNRラインである。このビュー定義は行8-20に含まれる。行21は組の終了(ES)を示す。これは物理ファイル11の論理テーブルエントリーの終了を示す。
行22は論理ファイル10の物理ファイル12に対応する第2の組の開始である。
図11の例において、ビュー1の標準パラメータメニューの欄41にてエンターされた現実のデータ範囲は、論理レコードの第2の物理ファイルがサーチのために必要であることを示した。その結果、組1の行1-7のビュー定義は組2のライン22-28に自動的にコピーされる。しかしながら、DD名欄101は物理ファイル11の代わりに物理ファイル12を識別するために変えられる。ビュー2の現実のデータ範囲は物理ファイル2からの情報を要求しないので、行8-20は組2の中にコピーされない。同様に、ビュー3の現実のデータ範囲は、物理ファイル1からではなく物理ファイル2からの情報を要求するので、ビュー3は第2の組のみに現れる。行40は論理テーブルライン(EN)の終了(EN)を示し、これは論理テーブルが終端に来たことを示す。
上述した以外の機能の幾つかについて図5乃至図10に沿ってインプリメントするために、追加機能欄を設ける。例えば、「一般選択パラメータ」又は「列選択パラメータ表示画面」にて特定され1つの値を選択する選択値は、SE機能コードを利用し、欄番号108にて欄番号80又は90(図9又は図10の)をエンターし、値欄120にて選択されるべき値をエンターすることによりインプリメントされる。同様に、「一般選択パラメータ」又は「列選択パラメータ表示画面」にて特定され値の範囲を特定する選択値は、ST機能コードを利用し、欄番号108にて欄番号80をエンターし、値欄120にて選択されるか除外されるべき値の範囲をエンターすることによりインプリメントされる。「一般選択パラメータ」をインプリメントするために、ST又はSEラインは直ちにNRラインに従う。「列選択パラメータ」をインプリメントするために、ST又はSEラインは直ちに列を作成するDTラインに先行する。
「一般及び列選択パラメータメニュー」の包含/除外欄(83、93)は、GO-TO-TRUE欄140及びGO-TO-FALSE欄141を使用してインプリメントされる。例えば、もし我々が上述したST又はSEラインを使用して論理レコード(エントリー)を除外したいならば、除外機能は、GO-TO-FALSEから引き続くラインと共に、及びGO-TO-TRUEから次のNR行(次のビュー)と共にインプリメントされる。その結果、もし論理レコードがST又はSEラインで規定された選択基準を満たすならば、スレッドは次のNR行にジャンプし、エントリーは除外される。一方、スレッドは論理テーブルの次の行に進む。同様に、包含機能は、GO-TO-FALSEから次のNR行と共に、及びGO-TO-TRUEから引き続くラインと共にインプリメントされる。
上述した機能が、論理レコードよりも参照テーブルからの情報を利用することによりインプリメントされるときは手順は同様である。しかしながら、参照テーブルを利用する以前に、1つ又はそれ以上のルックアップ機能が、参照テーブルのデータを論理レコードデータと関係付けるために実行されねばならない。
例えば、ユーザが購入履歴論理ファイル10から抽出された各店番号にそって列5の店の対応する位置の表示を希望するとする。店位置情報は参照テーブル記憶15に含まれる。図11Aにおいて、行2(列100で示すように)において、“BC”機能コード(列104)は店住所を得るべく参照テーブルへのアクセスを指定するために使用される。参照テーブル記憶の参照テーブル番号は値欄120にエンターされ、ルックアップ欄109は“Y”に設定される。そして、行3において、欄108に記載された欄番号と共にとられた“BT”機能コード(列104)は、キー、即ち、コード20で表された店番号列、が確立される論理レコードの列を識別する。そして店番号列の現在の内容は参照テーブル記憶にてエントリーをルックアップするために使用される。例えば、もし店番号列の内容が番号9の店と識別されたならば、行4において、RL機能コード(列104)は、店9のエントリーのための参照テーブル記憶のサーチをトリガーし、参照テーブル記憶から店9の全てのエントリーを読み出すために使用される。
最後に、ライン5において、DL機能コード(論理レコードから検索されたデータに関して上述したDT機能コードに対応する)は、列5(分類列105=5)の内容として検索された参照テーブルエントリーから選択された欄を格納するために、システムに指示する。検索されたエントリーからの選択欄は列108にて識別される。本例において、参照テーブルエントリーの欄20は店位置情報を含む。DL機能コードは参照テーブルデータから作成された列のみに与えるので、システムは、列108の内容が検索された参照テーブルエントリーの選択欄を識別することを知る。
再び図3において、論理テーブルは複数の組を含む。各組は複数のビューを含むことができる。複数のビューの各々は組により参照された物理ファイルに対応しなければならない。図5に関して上述したように、ビュー定義はデータ制限を含む。例えば、もし特定のビュー定義が、現在の年に対するファイルのみがサーチされるよう要求するように日付け制限を含むときは、そのビュー定義は第1の組にのみ現れる。もし第2のビュー定義が日付け制限を持たないときは、そのビュー定義は、ビュー定義に対する全ての一連のエントリーと同様に、第2及び第3の組(論理ファイルが3つの物理ファイルを持つとして)に自動的にコピーされる。
本発明によれば、論理テーブルの各組は個々の「スレッド」に対応する。スレッドは制御における1つの一連の流れである。1つのスレッドは、いかなる特定の瞬間においても、実行において1つのポイントのみを持つ。即ち、いかなる時間的なポイントにおいても、1つのスレッドは、高々、1つの指令を実行する。しかしながら、多重スレッドを提供することにより、1つのプログラムは、実行に際して各スレッドに対して1つで、多重のポイントを持つ。本発明によれば、複数のスレッドは、論理テーブルの各組に1つで、並列に実行する。
例えば、論理テーブルが3つのスレッド(即ち、3組)を持ち、コンピュータ内に3つのプロセッサがあるとすると、各プロセッサは各スレッドを実行する。各スレッドは論理ファイル10の各物理ファイル11-13に対応するので、各スレッドは、他のスレッドと並列に各物理ファイル11-13を処理することができ、それにより著しく効率が向上する。
論理テーブルが一度作成されると、これは本質的にソースプログラムとして動作し、ソースプログラムでは、その一貫性はシステムがデータベースを処理する方法で制御し、システムは論理テーブル行がシステムによりインプリメントされるシーケンスを制御することでGO-TO-TRUE及びGO-TRUE-FALSE欄と共にデータベースを処理する。
より特定的には、論理テーブルエントリーは次のようにマシンコードに翻訳される。図16において、論理テーブル30の各論理テーブルライン31はアドレスプリフィックス32を持ち、アドレスプリフィックス32は論理テーブルラインをインプリメントする指令を備えたマシンコードのセグメントの開始アドレス320に対応するように付加される。各論理テーブルラインのプリフィックス32によって、コードセグメント300が論理テーブルをアクセスし、データとして論理テーブルライン31の欄を使用することを可能にする。
論理テーブルの各組から作成されたマシンコード指令を備えた各スレッドに対して、1つのパスが、上述した論理テーブルにて作成された一連の指令に従って各物理ファイルを経て作られる。この1つのパスの間に、対応する組における全てのビューは、論理テーブルエントリー、特に論理テーブル行のGO-TO-TRUE/FALSE 140-141欄により書き取られた1つのシーケンスにて処理される。
例えば、図11の論理テーブルにおいて、組31において、行1-6はビュー1を構成し、行8-20はビュー2を構成する。組32において、行22-28は行1-6からコピーされビュー1を規定し、行29-38はビュー3を規定する。行1-40の各々は図16に示すようにマシンコード300のセグメントに変換される。
スレッド1は物理ファイル11に関連し、ビュー1及び2を含む組31に対応する。スレッド1は物理ファイル11の第1のエントリーをアクセスし、以下のステップを実行する。
1.ビュー1(行1“NR”)に対して抽出ファイル番号01を指定し、ビュー1に対して抽出エントリーを以下のステップで作成する。即ち、抽出エントリー(行2“DT”)の列1にて顧客欄20をおき、抽出エントリー(行3“DT”)の列2にて品番欄23をおき、抽出エントリー(行4“DT”)の列3にて価格欄24をおき、抽出エントリー(行4“DT”)の列4にて店番号欄21をおき、抽出ファイルに以前に書かれた抽出エントリーと共に、抽出エントリーを分類する準備として分類キーに顧客名20(行5“KT”)をおき、指定された抽出ファイル(行6“WR”)にて本来の位置に抽出エントリーを書き込む。
2.ビュー2(行8“HR”)に対して抽出ファイル番号02を指定し、ビュー2に対して抽出エントリーを以下のステップで作成する。即ち、行8-19(図示せず)の指令を実行し、抽出ファイル02(行20“WR”)にて本来の位置に抽出エントリーを書き込む。
3.物理ファイル11にて次のエントリーに対してステップ1-2を繰り返す。
スレッド2は物理ファイル12に関連し、ビュー1及び3を含む組32に対応する。スレッド2はスレッド1と並列に動作し、物理ファイル12の第1のエントリーをアクセスし、以下のステップを実行する。
1.ビュー1(行22“NR”)に対して抽出ファイル番号01を指定し、ビュー1に対して抽出エントリーを以下のステップで作成する。即ち、抽出エントリー(行23“DT”)の列1にて顧客欄20をおき、抽出エントリー(行24“DT”)の列2にて品番欄23をおき、抽出エントリー(行25“DT”)の列3にて価格欄24をおき、抽出エントリー(行26“DT”)の列4にて店番号欄21をおき、抽出ファイルに以前に書かれた抽出エントリーと共に、抽出エントリーを分類する準備として分類キーに顧客名20(行27“KT”)をおき、指定された抽出ファイル(行28“WR”)にて本来の位置に抽出エントリーを書き込む。
2.ビュー3(行29“HR”)に対して抽出ファイル番号03を指定し、ビュー3に対して抽出エントリーを以下のステップで作成する。即ち、行30-38(図示せず)の指令を実行し、抽出ファイル03(行38“WR”)にて本来の位置に抽出エントリーを書き込む。
3.物理ファイル12にて次のエントリーに対してステップ1-2を繰り返す。
スレッドが上述の手順で一度完了すると、各抽出ファイルは各ビュー定義により特定された分類欄に従って分類される。
その結果として、本発明は、イベントデータベースの論理ファイルをトラバースするカスタムプログラムを作成する。さらに、論理レコード内でサーチされた各個の物理ファイルに対して個々のスレッドを作成することにより、物理ファイルの幾つか又は全ては個々のスレッドで同時に処理され、それによりデータベースをサーチする速度を増大させることができる。さらに、処理時間は、各物理ファイルがこの各物理ファイルに関連して特定されたビューの数とは無関係に一度だけトラバースされるので、さらに減少する。
処理時間は、入力バッファ、出力バッファ、参照ファイル等の情報を効率的に管理することにより、本発明に従ってさらに減少する。特に、本発明の実施例によるオーバーラップしたI/Oの特徴を利用することにより、論理ファイルをトラバースするための全体的な処理時間は、論理ファイルの物理ファイルが格納された物理媒体の性質に基づいて入力及び出力バッファのサイズを選択することにより減少する。さらに、メインメモリにおいて論理テーブルにより要求された参照テーブルの選択された部分のみ含む参照テーブルサブセットを作成することにより、外部記憶装置から参照テーブルをアクセスする必要性は大幅に減少し、ある場合には完全に除去される。
一度論理テーブルが作成され(但し、マシンコードの作成又は論理レコードの処理の前に)、入力及び出力バッファは処理のために割り当てられる。
論理レコード10を処理するために、物理ファイル11-13に含まれる事象データは、外部媒体(例えば、ディスク又はテープ記憶装置)からメインメモリの入力バッファにロードされる。
本発明の実施例によれば、処理時間は入力バッファにオーバーラップしたI/O機能を提供することによりさらに減少する。図12において、入力バッファ組200は論理テーブル30の各組31-33に割り当てられ、その結果、各スレッドは個々の入力バッファの組にて動作する。本発明の実施例によれば、複数のバッファ220,230,240,250は各スレッドに割り当てられ、各バッファ220-240はデータ300nの1つのブロックを保持する。
データ300nのブロックのサイズは、処理時間をさらに減少させるために、物理ファイル11の物理特性の機能として選択される。処理に関連して最も時間を消費するタスクの1つとして、大きなファイルは外部装置への、又はからのデータ転送である。さらに、ディスク又はテープ転送に関連して最も時間を消費するタスクは、記憶装置それ自身の機械的な構成要素の移動である。
レコードされた同じシーケンスにて物理ファイルから入力バッファにデータブロックを転送することにより、1つのブロックから次のブロックへの切り換えによる遅延は最小化される。
一度スレッドがブロック3001をバッファ220にロードすると、バッファ220の処理が開始される。しかし、スレッド1はバッファ220を処理し、システムの他のプロセッサはバッファ230でブロック3002を満たす。適切には、スレッド1がブロック3004の処理を終了する時間により、バッファ220はブロック5で再ロードされる。処理速度は、本発明の実施例によりオーバーラップしたI/O特徴の結果としてさらに拡大される。
入力バッファの割当てに加えて、出力バッファ組400は、図13に示すように論理テーブルに基づいて割り当てられる。各出力バッファ組500は個々の抽出ファイルに対応する。前述したように、各ビューはそのビューに対する処理の結果を保持するために抽出ファイルを指定する。抽出ファイル番号は「ビュー定義標準パラメータ表示画面」から選択され、論理テーブルの対応するNRラインの値欄120の「抽出ファイル番号」欄に現れる。出力バッファ組500は論理テーブルにて指定された各抽出ファイルに対して割り当てられる。
出力バッファ500はスレッド番号ばかりか抽出ファイル番号により分離されないので、抽出ファイルに対する出力バッファ500は異なるスレッド及び異なるビューからのデータを保持する。しかしながら、いずれか特定のビューに対する全てのデータは、そのデータが結局は1つの出力ファイルに書き込まれるので、好適には1つの抽出ファイルの出力バッファ組500に書き込まれる。
図13において、抽出ファイル1000は出力バッファ組500を含む。一方、出力バッファ組500は複数のバッファ520,530,540,550を含む。図12のバッファ220-250と共に、バッファ520-550の各々は1つのデータブロックを保持し、データのブロックのサイズは、抽出ファイル1000が書き込まれた物理媒体の性質の機能として設定される。
抽出ファイル1000は次のように処理される。ポインター560は最初、例えば、バッファ520をポイントする。ポインター560がバッファ520をポイントすると、抽出ファイル1000に対して書込み機能(論理テーブルのWRライン)を実行するいずれかのスレッドは、バッファ520の次の利用可能な位置にデータを書き込む。もしそのスレッドがバッファ520が満たされていると判断すると、スレッドはポインターをバッファ530に移し、バッファ520のデータブロックを指定された外部媒体に転送することを開始する。
その結果、バッファ520の内容は外部媒体580に書き込まれ、データはバッファ530に書き込まれる。さらにバッファ520-550のサイズは外部媒体の580の物理特性の機能として設定され、バッファ520-550からデータを転送するために要する時間は最小化される。
上述のように、本発明の他の実施例によれば、処理時間は、メインメモリにおいて論理テーブルにより要求される参照テーブルの選択された部分のみを含む参照テーブルサブセットを作成することによりさらに減少し、それにより外部記憶装置から参照テーブルをアクセスする必要性を減少しかつ除去し、そして処理時間を減少させる。
上述のように、入力及び出力バッファが割り当てられた後(及びマシンコードの作成及びサーチの前)に、システムは参照テーブルからメインメモリに、必要なデータの幾つか及び全てをロードする。論理レコードと同様に、参照テーブルは、ハードディスク又はテープのような外部媒体に格納される。一度論理テーブルが作成されると、システムは、参照テーブルが処理を完了するために必要とする列であると決定する。一度この決定がなされると、システムはメインメモリにて、処理のために必要な参照テーブルの列のみを含む参照テーブルサブセットを形成する。
図14において、論理テーブル600は、参照テーブル区域700及び参照テーブル記憶800を参照するラインを含むとする。参照テーブル区域700は“STORE”,“REGION”,“MEDIAN INCOME”及び“MEDIAN AGE”の列を含む。参照テーブル記憶800は“STORE”,“LOCATION”及び“MANAGER”の列を含む。論理テーブル600は、参照テーブル記憶の“STORE”,“MANAGER”を参照する列のみを含み、さらに参照テーブル区域の“STORE”,“REGION”,“INCOME”を参照する列のみを含むとする。
上述した本発明の実施例によれば、参照テーブルサブセット900はメモリに作成され、参照テーブルサブセット900は店テーブル部分910及び区域テーブル部分920を含み、参照テーブル記憶800の“STORE”,“MANAGER”欄は店テーブル部分910に格納され、参照テーブル区域700の“STORE”,“REGION”,“INCOME”欄は区域テーブル部分920に格納される。必要な参照テーブルは参照テーブルサブセット900に割り当てられたスペースに適合することができず、そしてその参照テーブルはサーチの間、物理記憶からアクセスされる。
参照テーブルサブセット900にて出来るだけ多くの必要な参照テーブルを格納することにより、処理時間は、サーチの間、外部媒体からの情報を検索する必要性を除去することによりさらに減少する。
一度参照テーブルサブセット900が作成されると、処理パラメータポインターの組は各スレッドに形成される。各スレッド950は、そのスレッドがサーチを完了するに必要な参照テーブルサブセット900において各参照テーブル(910、920)に対する処理パラメータポインター960を含む。図14に示す例において、論理テーブルは、3つの組、即ち、スレッド1-950に対応し参照テーブル区域を必要とする組1-610と、スレッド2-950に対応し参照テーブル記憶と参照テーブル区域を必要とする組2-620と、スレッド3-950に対応し参照テーブルサブセット900にていかなる参照テーブルをも必要としない組3-630と、を含む。
処理パラメータポインター960は、参照テーブルサブセットにおいて、各テーブルの中間ポイントに設定される。参照テーブルがアクセスされたサーチの第1のポイントにおいて、即ち、論理テーブルにおける組の第1RLラインにおいて、中間ポイントのエントリーがアクセスされる。エントリーが要求に整合しないときは、処理パラメータポインター960は、以前の位置が低すぎるなら以前の位置と参照テーブル部分(910又は920)の開始との間の中間ポイントに移され、以前の位置が高すぎるなら、以前の位置と参照テーブル部分(910又は920)の終了との間の中間ポイントに、本来のエントリーに到達するまで移される。このような方法により、バイナリ・サーチが、要求されたエントリーに位置するように参照テーブルサブセットの部分を経て行われる。
図15において、参照テーブル記憶800は、外部媒体1000のアドレス位置OFF-103 HEXに位置され、参照テーブル区域700は外部媒体1001のアドレス位置9FF-A07 HEXに位置される。参照テーブル記憶800及び参照テーブル区域700は、参照テーブル位置985にて参照テーブルサブセット900にコピーされ、上述したバイナリ・サーチの結果はその位置985の第1及び第2プリフェックス981、982にプリコード(PRE-CODE)される。
例えば、参照テーブル位置101と店テーブル部分910の開始の間の中間位置の参照テーブル位置は位置100であり、参照テーブル位置101の第1のプリフェックス981は100である。同様に、参照テーブル位置101と店テーブル部分910の終了の間の中間位置の参照テーブル位置は位置102であり、参照テーブル位置101の第2のプリフェックス981は102である。
最初に、処理パラメータポインター960は各参照テーブルポインター910,920の中間ポイント、即ち、参照テーブル記憶の101-HEX及び参照テーブル区域のA03に設定される。
最初にスレッド2が店テーブルの参照テーブルサブセットをアクセスし、位置101-HEXをアクセスする。例えば、論理テーブルの第2の組のエントリーに従って、スレッド2が店番号94に対応する店住所を探すとする。
位置101-HEXが店94のエントリーを持つならば、店の位置は検索され、店テーブル部分910のポインター960は101-HEXに残る。しかしながら、もし位置101-HEXが、例えば、店74のエントリーを持つとすると、ポインター960は位置101-HEXの第2のプリフィックスに格納された値に設定され(上述したように、101-HEXと103-HEXの間の中間ポイントに対応する)、処理は店94のエントリーが位置されるまで繰り返される。
結果として、第1及び第2のプリフィックスを参照テーブルサブセットに追加することはシステムの処理速度をさらに増大する。これは、サーチ処理の間、バイナリ・サーチに従ってアクセスされるべき参照テーブルサブセットの次の位置を計算する必要性を除去できるからである。
また、本発明は1つの論理ファイルからのビューの作成に関して説明したが、本発明に従って、複数の論理ファイルからの情報を含むスーパービューを作成することも可能である。本発明のこの見地に立って、論理テーブルは、各論理レコードの情報を指定しフォーマットにし個々のビューを含む各論理テーブルと共に、各論理ファイルに対して作成される。スーパービューの各ビューは出力に対して同じ抽出ファイルを指定し、さらに、スーパービューの各ビューは、スーパービューの他のビューと共通に少なくとも1つの欄を持つ。
各論理テーブルはマシンコードで処理され、サーチアルゴリズムとして前述したように各論理ファイルに与えられる。スーパービューにて指定された全ての論理ファイルがトラバースされた後、スーパービューの指定された抽出ファイルはビュー番号で分類され、スーパービューのビューの共通欄により分類され、さらに指定された出力ファイルに格納される。例えば、スーパービューのビューの共通欄が顧客名欄とし、出力ファイルは次のフォーマットを持つとする。
上述の方法において、出力ファイルは、複数のビューからの情報を含むように作成される。一般に、一度この出力ファイル(又は前述したように作成された抽出ファイル)が作成されると、ファイルの内容は、いかなる所望のフォーマットにおいてもレポート又はその他の文書を作成するために、従来の方法で処理される。
Claims (11)
- 2以上のプロセッサを含むシステムにおいて、コンピュータを使用して複数のビュー定義に基づいて1以上の論理ファイルに対応する2以上の物理ファイルをトラバースする方法であって、
a)それぞれが2以上の物理ファイルを処理するために該処理のデータ範囲を含む処理パラメータの組を定義する複数のビュー定義を生成する段階と、
b)2以上の物理ファイルのそれぞれに対する論理テーブルセットを含む論理テーブルを生成する段階と、
c)複数のビュー定義のそれぞれについてデータ範囲に応じて2以上の物理ファイルのうちの必要なものを決定し、各ビュー定義に対する処理パラメータの組を、ビュー定義によって定義されるパラメータの組に対応する2以上の物理ファイルのデータ範囲に応じて選択されたものに対応する論理テーブルセット中に複写して、対応する複数の論理テーブルエントリーに変換する段階と、
d)それぞれが2以上のプロセッサのいずれかで実行される複数のスレッドの対応する1つを各論理テーブルセットと関連付け、各スレッドを2以上の物理ファイルのそれぞれに割り当てる段階と、
e)複数のスレッドのそれぞれと関連付けられたそれぞれのビュー定義に対応する複数のスレッドのそれぞれの論理テーブルエントリーを各スレッドに対する命令のセットに変換する段階と、
f)2以上の物理ファイルの対応する1つのそれぞれのエントリーにアクセスし、
スレッドに関連付けられたビュー定義に基づいて前記エントリーから情報を回収し、
複数のスレッドの少なくとも2つの並列動作で、前記スレッドに関連付けられたビュー定義に基づいて1以上の抽出ファイル中に回収された情報を記憶するように、
その命令のセットに基づいて各スレッドを作動する段階であって、
それぞれが2以上の入力バッファを含む入力バッファセットを2以上の物理ファイルのそれぞれに関連付ける段階と、
データブロックを2以上の物理ファイルのそれぞれから2以上の入力バッファの対応するものに、前記データブロックが物理ファイルに記憶されるのと同じ順番で回収する段階とを含む、前記作動する段階と
を含む方法。 - 2以上の物理ファイルが1以上の外部媒体に存在する請求項1に記載の方法。
- 1以上の外部媒体が1以上のテープ記憶装置、ディスク記憶装置、ハードディスク記憶装置、バブルメモリ、およびフラッシュメモリを含む請求項2に記載の方法。
- a)それぞれが1以上の出力バッファを含むバッファセットを1以上の抽出ファイルと関連付ける段階と、
b)1以上の抽出ファイルと関連付けられた1以上の出力バッファの動作中の1つに各スレッドで回収された情報を記録する段階と、
c)1以上の出力バッファの動作中の1つが満たされているかを判断し、1以上の出力バッファの動作中の1つが満たされているときには、
1)関連する抽出ファイルへの1以上の出力バッファの動作中の1つの転送を開始し、
2)出力バッファの他の1つを1以上の出力バッファの動作中の1つとして指定する段階を、さらに含む請求項1に記載の方法。 - 2以上のプロセッサを含み、データベースの2以上の物理ファイルを含む1以上の論理ファイルをトラバースするための並列処理システムであって、
それぞれが2以上の物理ファイルそれぞれから回収されたデータブロックを記憶するための2以上の入力バッファを含む入力バッファセットと、
それぞれが1以上の抽出ファイルそれぞれの中にデータブロックを記憶するための1以上の出力バッファを含む出力バッファセットと、
それぞれが1つのビュー定義(各ビュー定義は抽出ファイルの指定された1つのフォーマットとして定義される。)に対応する複数の処理パラメータの組を記憶し、2以上の論理テーブルセット(各論理テーブルセットは、2以上の物理ファイルの対応する1つに割り当てられて関連付けられ、2以上の物理ファイルを処理するために定義され該処理のデータ範囲を含む処理パラメータの複数の組のそれぞれについてデータ範囲に応じて2以上の物理ファイルのうちの必要なものを決定することにより選択された処理パラメータの組であって、論理テーブルセットに関連付けられる対応する物理ファイルから情報を回収するための基準を定義する各ビュー定義に関連する該処理パラメータの組を含む。)を含む論理テーブルと、
それぞれが、対応する論理テーブルセットと関連した処理パラメータの組を使用し、対応する論理テーブルセットと関連付けられる物理ファイルからのエントリーをデータブロックが物理ファイルに記憶されるのと同じ順序で順次アクセスし、処理パラメータの組のそれぞれを、各エントリーが1回だけアクセスされるように各エントリーに対して適用し、処理パラメータの組に応じてアクセスされたエントリーから情報を回収し、処理パラメータの組に対応するビュー定義によって定義されるフォーマットで出力バッファを介して指定された抽出ファイルに回収された情報を記憶するように命令セットに基づいて2以上のプロセッサのいずれかでそれぞれ並列動作して実行される各論理テーブルセットのそれぞれに対応するスレッドと、を具備する並列処理システム。 - 各データブロックの大きさがデータブロックが回収される物理媒体の関数として選択される請求項5に記載のシステム。
- 各データブロックの大きさが抽出ファイルの存在する物理媒体の関数として選択される請求項5に記載のシステム。
- 各入力バッファセットの2以上の入力バッファと関連するスレッドが、他のプロセッサがスレッドと関連する2以上の物理ファイルの1つから次のデータブロックを回収している間に、2以上の入力バッファの動作中のもの上の処理パラメータの組を使用する請求項6に記載のシステム。
- 各スレッドが、指定された抽出ファイルに対応した出力バッファセット中に回収された情報を記憶する前に、指定された抽出ファイルに対応した出力バッファセットの動作中の出力バッファが満たされているかを決定し、
もし動作中の出力バッファが満たされていなければ、抽出された情報を動作中の出力バッファに記憶し、
もし動作中の出力バッファが満たされていれば、1以上の出力バッファの動作中の1つの指定された抽出ファイルへの転送を開始し、他の出力バッファの1つを1以上の出力バッファの動作中の1つに指定する請求項7に記載のシステム。 - 物理媒体が1以上のテープ記憶装置、ディスク記憶装置、ハードディスク記憶装置、バブルメモリ、およびフラッシュメモリを含む請求項6に記載のシステム。
- 物理媒体が1以上のテープ記憶装置、ディスク記憶装置、ハードディスク記憶装置、バブルメモリ、およびフラッシュメモリを含む請求項7に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/299,225 US5666524A (en) | 1994-08-31 | 1994-08-31 | Parallel processing system for traversing a transactional database |
US08/299,225 | 1994-08-31 | ||
PCT/US1995/010946 WO1996007149A1 (en) | 1994-08-31 | 1995-08-30 | Parallel processing system for traversing a data base |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10509816A JPH10509816A (ja) | 1998-09-22 |
JP4160632B2 true JP4160632B2 (ja) | 2008-10-01 |
Family
ID=23153865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50892796A Expired - Fee Related JP4160632B2 (ja) | 1994-08-31 | 1995-08-30 | データベースをトラバースするための並列処理装置 |
Country Status (10)
Country | Link |
---|---|
US (1) | US5666524A (ja) |
EP (1) | EP0777884B1 (ja) |
JP (1) | JP4160632B2 (ja) |
KR (1) | KR100402913B1 (ja) |
AT (1) | ATE269992T1 (ja) |
AU (1) | AU698148B2 (ja) |
CA (1) | CA2198735C (ja) |
DE (1) | DE69533193T2 (ja) |
RU (1) | RU2182357C2 (ja) |
WO (1) | WO1996007149A1 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5842200A (en) * | 1995-03-31 | 1998-11-24 | International Business Machines Corporation | System and method for parallel mining of association rules in databases |
JP3842319B2 (ja) * | 1995-11-08 | 2006-11-08 | 富士通株式会社 | 情報検索システム |
US5768532A (en) * | 1996-06-17 | 1998-06-16 | International Business Machines Corporation | Method and distributed database file system for implementing self-describing distributed file objects |
US5930791A (en) * | 1996-12-09 | 1999-07-27 | Leu; Sean | Computerized blood analyzer system for storing and retrieving blood sample test results from symmetrical type databases |
AU6586898A (en) * | 1997-03-21 | 1998-10-20 | University Of Maryland | Spawn-join instruction set architecture for providing explicit multithreading |
US6539388B1 (en) * | 1997-10-22 | 2003-03-25 | Kabushika Kaisha Toshiba | Object-oriented data storage and retrieval system using index table |
US6601058B2 (en) | 1998-10-05 | 2003-07-29 | Michael Forster | Data exploration system and method |
US6327587B1 (en) | 1998-10-05 | 2001-12-04 | Digital Archaeology, Inc. | Caching optimization with disk and/or memory cache management |
AU1991400A (en) * | 1999-01-19 | 2000-08-07 | British Telecommunications Public Limited Company | Data selection system and method therefor |
GB2349961A (en) * | 1999-05-08 | 2000-11-15 | Int Computers Ltd | Analysing data files to produce summaries therefrom |
US8428996B2 (en) * | 2001-06-11 | 2013-04-23 | Ebay Inc. | Method and system automatically to support multiple transaction types, and to display seller-specific transactions of various transaction types in an integrated, commingled listing |
US20050261914A1 (en) * | 2002-07-19 | 2005-11-24 | Microsoft Corporation | Method and system for managing long running transactions |
US7555540B2 (en) | 2003-06-25 | 2009-06-30 | Microsoft Corporation | Media foundation media processor |
US20050108021A1 (en) * | 2003-07-31 | 2005-05-19 | Greg Anderson | System and method for routing and managing service requests |
US7289974B2 (en) * | 2003-09-05 | 2007-10-30 | Sap Ag | System and method for data reconciliation |
WO2005086003A1 (ja) * | 2004-03-08 | 2005-09-15 | Annex Systems Incorporated | データベース・システム |
US20060004846A1 (en) * | 2004-06-16 | 2006-01-05 | Bmc Software, Inc. | Low-overhead relational database backup and restore operations |
US7720751B2 (en) * | 2004-10-12 | 2010-05-18 | Natural Decision Systems, Inc. | System and method of continuous assurance for internal control |
US7676427B1 (en) | 2004-10-12 | 2010-03-09 | Natural Decision Systems, Inc. | System and method of continuous assurance |
US7827554B2 (en) * | 2005-06-20 | 2010-11-02 | Microsoft Corporation | Multi-thread multimedia processing |
US8244718B2 (en) | 2006-08-25 | 2012-08-14 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries |
US8458129B2 (en) | 2008-06-23 | 2013-06-04 | Teradata Us, Inc. | Methods and systems for real-time continuous updates |
US9424315B2 (en) | 2007-08-27 | 2016-08-23 | Teradata Us, Inc. | Methods and systems for run-time scheduling database operations that are executed in hardware |
US8862625B2 (en) | 2008-04-07 | 2014-10-14 | Teradata Us, Inc. | Accessing data in a column store database based on hardware compatible indexing and replicated reordered columns |
US7966343B2 (en) | 2008-04-07 | 2011-06-21 | Teradata Us, Inc. | Accessing data in a column store database based on hardware compatible data structures |
KR100938183B1 (ko) * | 2007-10-19 | 2010-01-21 | 한국과학기술정보연구원 | 병렬화를 이용한 스크래치 디스크의 파일 삭제 장치 및이를 이용한 파일 삭제 방법과 이를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 |
US20100153300A1 (en) * | 2008-07-11 | 2010-06-17 | Logical Information Machines, Inc. | Derivative trading strategy backtesting machine |
US8775398B2 (en) * | 2009-06-01 | 2014-07-08 | Ebay Inc. | Method and system for determining an order of presentation of search results |
US20120114256A1 (en) * | 2009-06-30 | 2012-05-10 | Koninklijke Philips Electronics N.V. | Relevance feedback for content-based image retrieval |
CN103473321A (zh) | 2013-09-12 | 2013-12-25 | 华为技术有限公司 | 数据库管理方法与系统 |
US20160292751A1 (en) * | 2015-03-31 | 2016-10-06 | Carrier Services Group, Inc. | Product valuation system and method |
KR200488297Y1 (ko) | 2017-10-18 | 2019-01-09 | 이혜경 | 볼 마커 겸용 골프 볼 라이너 |
US11132225B2 (en) * | 2019-03-29 | 2021-09-28 | Innoplexus Ag | System and method for management of processing task across plurality of processors |
KR20220120068A (ko) | 2021-02-22 | 2022-08-30 | 김태열 | 골프용 볼 마커 |
US11586621B1 (en) * | 2022-01-27 | 2023-02-21 | Snowflake Inc. | Parallel scan of single file using multiple threads |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4631673A (en) * | 1985-01-22 | 1986-12-23 | International Business Machines Corporation | Method for refreshing multicolumn tables in a relational data base using minimal information |
US4918593A (en) * | 1987-01-08 | 1990-04-17 | Wang Laboratories, Inc. | Relational database system |
US4805099A (en) * | 1987-04-17 | 1989-02-14 | Wang Laboratories, Inc. | Retrieval of related records from a relational database |
US4876643A (en) * | 1987-06-24 | 1989-10-24 | Kabushiki Kaisha Toshiba | Parallel searching system having a master processor for controlling plural slave processors for independently processing respective search requests |
JPH022459A (ja) * | 1987-12-11 | 1990-01-08 | Hewlett Packard Co <Hp> | 問合わせ処理方法 |
DE69032418T2 (de) * | 1989-09-08 | 1999-02-25 | Digital Equipment Corp., Maynard, Mass. | Privatspeicher für Fäden in einem multifaden digitalen Datenverarbeitungssystem |
JPH04335471A (ja) * | 1991-05-13 | 1992-11-24 | Nec Corp | データベース参照処理方式 |
JPH04364549A (ja) * | 1991-06-12 | 1992-12-16 | Hitachi Ltd | ファイル格納方式とアクセス方式 |
DE4133123A1 (de) * | 1991-10-05 | 1993-04-08 | Basf Ag | Verwendung von copolymerisaten aus langkettigen olefinen und maleinsaeureanhydrid in form der halbamide mit morpholin als leimungsmittel fuer papier |
JPH05307566A (ja) * | 1992-04-30 | 1993-11-19 | Nippon Telegr & Teleph Corp <Ntt> | 並列処理型内容検索装置 |
-
1994
- 1994-08-31 US US08/299,225 patent/US5666524A/en not_active Expired - Fee Related
-
1995
- 1995-08-30 EP EP95930999A patent/EP0777884B1/en not_active Expired - Lifetime
- 1995-08-30 AT AT95930999T patent/ATE269992T1/de not_active IP Right Cessation
- 1995-08-30 WO PCT/US1995/010946 patent/WO1996007149A1/en active IP Right Grant
- 1995-08-30 CA CA002198735A patent/CA2198735C/en not_active Expired - Fee Related
- 1995-08-30 JP JP50892796A patent/JP4160632B2/ja not_active Expired - Fee Related
- 1995-08-30 DE DE69533193T patent/DE69533193T2/de not_active Expired - Lifetime
- 1995-08-30 RU RU97104876/09A patent/RU2182357C2/ru not_active IP Right Cessation
- 1995-08-30 KR KR1019970701350A patent/KR100402913B1/ko not_active IP Right Cessation
- 1995-08-30 AU AU34187/95A patent/AU698148B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
AU698148B2 (en) | 1998-10-22 |
US5666524A (en) | 1997-09-09 |
KR100402913B1 (ko) | 2004-03-26 |
ATE269992T1 (de) | 2004-07-15 |
EP0777884A4 (en) | 1998-05-20 |
WO1996007149A1 (en) | 1996-03-07 |
JPH10509816A (ja) | 1998-09-22 |
KR970705795A (ko) | 1997-10-09 |
EP0777884A1 (en) | 1997-06-11 |
AU3418795A (en) | 1996-03-22 |
EP0777884B1 (en) | 2004-06-23 |
DE69533193T2 (de) | 2005-07-28 |
DE69533193D1 (de) | 2004-07-29 |
CA2198735A1 (en) | 1996-03-07 |
CA2198735C (en) | 2006-08-15 |
RU2182357C2 (ru) | 2002-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4160632B2 (ja) | データベースをトラバースするための並列処理装置 | |
US8799229B2 (en) | Searchable archive | |
US5826257A (en) | Method and structure for maintaining and utilizing a lookup value associated with a stored database value | |
US5761655A (en) | Image file storage and retrieval system | |
US7660753B2 (en) | Inventory control system, inventory control method, fee collection method utilized in inventory control system, inventory control program, and storage medium | |
JP3526595B2 (ja) | 情報管理機構 | |
US20030037058A1 (en) | Data management system for retriving data based on hierarchezed keywords associated with keyword names | |
JP2003500741A (ja) | 単一の集計プロセスで複数のデータマートを実装するための方法および装置 | |
US20040243485A1 (en) | Method and system for providing product catalog information for electronic stores | |
US20050171934A1 (en) | System and method for generating a parameterized query | |
JPH07296009A (ja) | データベース統合検索装置 | |
JP4056622B2 (ja) | データベース管理装置 | |
JPH01147621A (ja) | プログラム自動生成方法 | |
JP3521822B2 (ja) | 電子報告書装置及びプログラムを記録した機械読み取り可能な記録媒体 | |
US20040103392A1 (en) | Saving and retrieving archive data | |
JP2872734B2 (ja) | 品質データの検索・解析方法 | |
JPH06251051A (ja) | 取引情報管理装置 | |
JPH07110809A (ja) | 電子ファイル装置 | |
JP2748986B2 (ja) | バッファ管理方式 | |
JP2002055857A (ja) | 記録方法、情報処理装置、及び媒体 | |
JPH05265821A (ja) | データベースのインデックス管理方式 | |
JPS62257535A (ja) | デ−タ・ベ−ス・プロセツサ | |
JP3022402B2 (ja) | 図面データ管理方法及びシステム並びに記録媒体 | |
JPH117402A (ja) | データ処理方法 | |
JPH06175897A (ja) | データベース |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20031215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040323 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20040520 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040617 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040802 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040922 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050413 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050526 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20050714 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080603 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080625 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20080715 |
|
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: 20080718 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110725 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |