JP2969153B2 - レコード検索方法 - Google Patents

レコード検索方法

Info

Publication number
JP2969153B2
JP2969153B2 JP2173710A JP17371090A JP2969153B2 JP 2969153 B2 JP2969153 B2 JP 2969153B2 JP 2173710 A JP2173710 A JP 2173710A JP 17371090 A JP17371090 A JP 17371090A JP 2969153 B2 JP2969153 B2 JP 2969153B2
Authority
JP
Japan
Prior art keywords
condition
record
key
keyword
boundary
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 - Lifetime
Application number
JP2173710A
Other languages
English (en)
Other versions
JPH0462668A (ja
Inventor
聡 吉田
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.)
KASHIO KEISANKI KK
Original Assignee
KASHIO KEISANKI 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
Application filed by KASHIO KEISANKI KK filed Critical KASHIO KEISANKI KK
Priority to JP2173710A priority Critical patent/JP2969153B2/ja
Publication of JPH0462668A publication Critical patent/JPH0462668A/ja
Priority to US08/217,077 priority patent/US5398338A/en
Application granted granted Critical
Publication of JP2969153B2 publication Critical patent/JP2969153B2/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (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)

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、オフィスコンピュータ等のデータ処理装
置において、レコード検索条件が指定された際にこの条
件に該当するレコードをデータファイルから読み出すレ
コード検索方法に関する。
[従来の技術] 一般に、データ処理装置の外部記憶装置内には売上集
計ファイル、在庫ファイル等のデータファイルに対応し
てそれを間接アドレス指定する為のインデックスファイ
ルが格納されている。
ここで、データファイルおよびインデックスファイル
は次の如く構成されている。即ち、データファイルはユ
ーザが任意に作成したファイルで、各ファイルはインデ
ックスキーによって区別されている。そして、各レコー
ドは第17図に示す様にインデックスキーに続いて必要項
目数分のフィールドに例えば売上個数、売上金額等のデ
ータを有する構成となっている。なお、データファイル
内の各レコードはキー順ではなく、例えばユーザーが作
成したレコード順に並べられている。一方、インデック
スファイルは第17図に示す様にインデックスキーと、そ
のキーに対応するレコードが格納されているデータファ
イルの物理アドレスとから成るデータをキー順(昇順)
に並べた構成となっている。
[発明が解決しようとする課題] このように構成されたインデックスファイルを用いて
データファイルを検索するのは、周知の如くレコード検
索の高速化を図る為であるが、下記の様な条件でレコー
ド検索を行った場合、インデックスファイルを効率的に
利用できず、レコード検索の高速化を期待することがで
きないという問題があった。
いま、下記の様な論理和条件によってレコード検索を
行ったものとする。
条件1:0003≦インデックスキー<0200 かつフィールド3=0009 条件2:0100<インデックスキー≦0400 かつフィールド4=0007 条件3:インデックスキー=0402 条件4:0600≦インデックスキー≦0900 かつフィールド3=0006 条件5:0700≦インデックスキー<1000 かつフィールド4=0011 この場合、インデックスキー以外のフィールド条件が
設定されている為、インデックスファイルをアクセスし
てインデックスキーの条件にあてはまるレコードをデー
タファイルから読み出した後、そのレコード条件の中か
ら更に、インデックスキー以外のフィールド条件に該当
するレコードを選択することによってレコード検索が行
われる。
以下、第18図を参照して具体的に説明する。なお、第
18図はインデックスファイル内において昇順にソートさ
れたインデックスキーと、このインデックスキーに対応
するデータファイル内のレコード内容(各フィールド内
容)とを対応付けて示したデータの具体例である。
ここで、図中(A)、(B)、(C)、(D)、
(E)は上述したレコード検索条件の「条件1」、「条
件2」、「条件3」、「条件4」、「条件5」に対応
し、キー条件の成立によってデータファイルから読み出
されるレコードを示している。なお、「条件3」は1つ
のキー条件のみが指定された場合であるが、その他の条
件はキー条件の他にフィールド条件を含み、しかもキー
の条件範囲も異なっている。したがって、(A)、
(B)、(D)、(E)は対応する「条件1」、「条件
2」、「条件4」、「条件5」のキー条件が成立し、そ
の他の条件(フィールド条件)も成立するか否かを調べ
る為にデータファイルから読み出されたレコード群であ
る。
このようにしてデータファイルから読み出されたレコ
ード群(A)の中から「条件1」のフィールド条件に該
当するレコードはインデックスキー「0003」、「0103」
のレコードとなる。また、「条件2」のフィールド条件
に該当するレコードはインデックスキー「0103」、「03
02」のレコードとなる。更に「条件4」のフィールド条
件に該当するレコードはインデックスキー「0702」、
「0802」のレコードとなり、また「条件5」のフィール
ド条件に該当するレコードはインデックスキー「070
2」、「0901」のレコードとなる。
しかしながら、上述した「条件1」〜「条件5」によ
ってレコード検索を行った場合、「条件1」と「条件
2」、「条件4」と「条件5」はそのキー条件の範囲が
一部重複し合う為、図中破線で示した範囲内のレコード
は夫々異なる条件毎に2回読み出されたことになる。し
たがって、データファイルから読み出すレコード数が多
くなり、それだけ外部記憶装置へのアクセス回数も増
え、高速処理を図る上で大きな支障となっていた。
また、キー条件やフィールド条件の指定内容によって
は同一レコードが二重、三重にも検索される場合があ
る。例えば、図中◎印を付して示したインデックスキー
「0103」のレコードは「条件1」と「条件2」によって
二重に検索され、またインデックスキー「0702」のレコ
ードは「条件4」と「条件5」によって二重に検索され
る。この場合、従来においては検索されたレコード群の
中から同一レコードを捜し出して二重、三重に検索され
た不要レコードを削除する処理を行っていた為、それだ
け処理速度の低下を招くという欠点があった。
この原因はデータファイルを各条件毎に何回もアクセ
スすることによってレコードの検索を行うことにあると
考えられる。
この発明の課題は、複数の条件が指定されたとしても
データファイル内の各レコードに対し1回アクセスする
だけで所望するレコードを検索できるようにしたもので
ある。
[課題を解決するための手段] この発明の手段は次の通りである。
キーワードによって区別された複数レコードから成る
データファイルを有し、複数のキーワードの組み合わせ
による複数の検索条件が論理和として指定された際に、
この条件に該当するレコードを前記データファイルから
読み出すレコード検索方法において、 指定された複数のレコード検索条件の境界を示すキー
ワードを夫々抽出し、 抽出されたキーワードをキーワード順に並べ変えてキ
ーワード境界テーブルを作成し、 前記キーワード境界テーブルの1つのキーワードと次
のキーワードとで区分される境界範囲に対応して、前記
キーワード境界テーブルのキーワードに対応する行と前
記指定された検索条件に対応する列に前記指定された各
検索条件の有効範囲を示す始点と終点を含む識別情報を
配置した条件有効状態テーブルを作成し、 前記データファイルからキーワード順にレコードを読
み出し、 読み出したレコードが前記キーワード境界テーブルの
いずれかの境界範囲に含まれるかを判別し、 読み出したレコードがいずれかの境界範囲に含まれる
と判別された場合には、該境界範囲に対応する前記条件
有効状態テーブル内の行の識別情報に基づいて、前記指
定されたいずれか1つのレコード検索条件に該当するレ
コードとして出力する、ステップを備える。
なお、本発明において、データファイル内の各レコー
ドが上位のキーワードと下位のキーワードを有するもの
であって、レコード条件指定は上位キーワードと下位キ
ーワードの論理積条件よりなる指定を含み、 キーワード境界テーブルを作成する際には、上位キー
ワードのレコード検索条件と下位キーワードのレコード
検索条件から夫々キーワード境界テーブルを作成し、 条件有効状態テーブルを作成する際には、前記作成さ
れた夫々のキーワード境界テーブルに対応して、上位キ
ーワードのレコード検索条件に応じた識別情報を配置し
た上位キーワード用条件有効状態テーブルと下位キーワ
ードのレコード検索条件に応じた識別情報を配置した下
位キーワード用条件有効状態テーブルとを夫々作成し、 レコードを読み出す際には、上位キーワード用キーワ
ード境界テーブルの1つの境界範囲に対応する上位キー
ワード用条件有効状態テーブルに識別情報が有れば、更
に下位キーワード用条件有効状態テーブルの識別情報を
検出し、識別情報が有れば下位キーワード用境界テーブ
ルで示される境界範囲のレコードを読み出す、ステップ
を更に備える。
したがって、各発明にあっては複数の条件が指定され
たとしてもデータファイル内の各レコードに対し1回ア
クセスするだけで所望するレコードを検索することがで
きる。
[第1実施例] 以下、第1図〜第8図を参照して第1実施例を説明す
る。
第1図はデータ処理装置の基本構成を示したブロック
図である。
CPU1はプログラムメモリ2内に格納されている各種の
プログラム、例えばファイルの作成プログラムやレコー
ド検索プログラム等にしたがってこのデータ処理装置を
制御するもので、その周辺デバイスとしてCPU1にはキー
ボード3、CRT表示部4、ハードディスク5が接続され
ている。
キーボード3は各種のデータやコマンドを入力するキ
ー入力装置で、ファイル作成時にキーボード3から入力
されたレコードはハードディスク5内のデータファイル
6に格納される。このハードディスク5にはデータファ
イル6に対応してインデックスファイル7が設けられて
おり、データファイル6内にレコードが追加されたり、
削除されると、それに応じてインデックスファイル7の
内容が書き替えられる。なお、データファイル6、イン
デックスファイル7の基本構成は第17図で説明した従来
と同様で、データファイル6内の各レコードは作成順に
配列され、またインデックスファイル7内のデータはキ
ー順に配列されている。
また、CPU1はレコード検索条件がキーボード3から入
力されると、主記憶部(RAM)8内のワークエリア9に
それを一時格納したのちこのレコード検索条件を基にレ
コード検索用として主記憶部8内に各種のテーブル、即
ち、キー境界値テーブル10、条件有効ステータステーブ
ル11、フィールド条件バッファ12を作成する。そして、
CPU1はこのキー境界値テーブル10、条件有効ステータス
テーブル11、フィールド条件バッファ12を参照してレコ
ードの検索を行う。この場合、CPU1はキー境界値テーブ
ル10、条件有効ステータテーブル11を参照してインデッ
クスファイル7をアクセスし、データファイル6からキ
ー条件に該当するレコードを読み出したのち、フィール
ド条件バッファ12を参照してフィールド条件に該当する
レコードを選択して主記憶部8内の出力データメモリ13
に書き込み、CRT表示部4から表示出力させる。
次に、第2図を参照してキー境界値テーブル10、条件
有効ステータステーブル11、フィールド条件バッファ12
の構成を説明する。
ここで、検索対象となるファイル(データファイル6
およびインデックスファイル7)として従来で示した第
18図のものを使用し、またレコードの検索条件も従来と
同様に下記の論理和条件とする。
条件1:0003≦インデックスキー<0200 かつフィールド3=0009 条件2:0100<インデックスキー≦0400 かつフィールド4=0007 条件3:インデックスキー=0402 条件4:0600≦インデックスキー≦0900 かつフィールド3=0006 条件5:0700≦インデックスキー<1000 かつフィールド4=0011 以上の条件によって作成されたキー境界値テーブル1
0、条件有効ステータステーブル11、フィールド条件バ
ッファ12の内容は第2図に示す如くとなる。
キー境界値テーブル10の各行は3列構成で各行の1列
目には各検索条件に含まれているインデックスキーの境
界値(例えば、「条件1」の場合には「003」と「00
2」、「条件2」の場合には「0100」と「0400」)が昇
順に並べられて格納される。また各行の2列目には同一
行のインデックスキー境界値以上で次行のインデックス
キー境界値未満の境界範囲内に含まれるレコード、例え
ば1行目においては「0003」以上「0100」未満の境界範
囲内に属するレコードが検索の為の読み込み対象として
有効か否かを表すレコード有効フラグが格納される。こ
の場合、レコード有効フラグとしては次の3種類が用意
されている。
in……該当境界範囲内に存在するインデックスキーを持
つレコードは読み込み対象となる out……該当境界範囲内に存在するインデックスキーを
持つレコードは読み込み対象とならない EQ……該当境界範囲の下限値(境界値)と等しいインデ
ックスキーを持つレコードのみが読み込み対象となる 例をあげると、キー境界値テーブル10の1行目には
「in」のフラグが立っているので、「0003以上0100未
満」のインデックスキーを持つレコードは検索の為の読
み込みの対象となることを表わしている。また5行目の
場合は「EQ」のフラグが立っているので「0402」と等し
いインデックスキーを持つレコードのみが検索の為の読
み込みの対象となり、「0402を越え0600未満」のインデ
ックスキーを持つレコードは検索の為の読み込みの対象
とならないことを表わしている。
更に、キー境界値テーブル10においてその各行の3列
目には対応するレコード有効フラグの境界範囲内におい
て何件のレコード検索条件が指定されているかを表す有
効条件数が格納されている。例えば、「0003」以上「01
00」未満の境界範囲内には「条件1」のみが指定されて
いるので、その範囲内における有効条件数は「1」とな
るが、「0100」以上「0200」未満の境界範囲内には「条
件1」と「条件2」が指定されているので、その範囲内
における有効条件数は「2」となる。
次に、条件有効ステータステーブル11は次の如く構成
されている。
即ち、条件有効ステータステーブル11の行方向はキー
境界値テーブル10の各行に対応し、また、その列方向は
指定された検索条件、即ち、「条件1」、「条件2」、
「条件3」、「条件4」、「条件5」に対応するマトリ
ックス構成を成し、インデックスキーのどの境界範囲内
でどの検索条件が有効かを表わすフラグが格納される。
つまり、m行、n列(m、nは1以上の整数値)の交点
にある領域にはキー境界値テーブル10のm行目からm+
1行目までの境界範囲内において、n列目に対応する条
件がレコード検索を行う上で有効か否かを表わすフラグ
が格納される。ここで、条件有効ステータステーブル11
内に格納されるフラグとしては次の4種類が用意されて
いる。
START……該当境界範囲から条件式が有効になることを
表わす ただしその範囲の下限値は有効範囲には含めない START|EQ……該当境界範囲から条件式が有効になること
を表わす ただしその範囲の下限値も有効範囲に含める CONT……該当境界範囲内ではすでに条件式が有効になっ
ていることを表わす EQ……該当境界範囲の下限値のみで条件式が有効になる 例をあげると、条件有効ステータステーブル11の1列
目は1番目の条件の有効範囲を表わしており、有効範囲
はキー境界値テーブル10の1行目の値以上の3行目の値
未満「0003以上0200未満」となることを表わす。また3
列目は3番目の条件がキー境界値テーブル10の5行目の
値「0402」と等しいインデックスキーのレコードのみが
有効になることを表わしている。
フィールド条件バッファ12は、各検索条件のうちイン
デックスキーに関する条件を除いた条件(フィールド条
件)が格納されるテーブルで、条件有効ステータステー
ブル11の各列に対応してフィールド条件が格納されてい
る。
次に、本実施例の動作を第3図〜第8図を参照して説
明する。
テーブル作成処理 CPU1はレコードの検索に先だって主記憶部8内にキー
境界値テーブル10、条件有効ステータステーブル11、フ
ィールド条件バッファ12を作成するテーブル作成処理を
行う。
第3図はテーブル作成処理を示したフローチャート、
第4図はテーブル作成過程を示した図である。
いま、ワークエリア9には第4図(A)に示す様にキ
ーボード3から入力指定されたレコード検索条件(「条
件1」〜「条件5」)が記憶されているものとする。
この状態においてテーブル作成処理が開始されると、
先ず、ワークエリア9内に記憶されている条件式の数を
求め(ステップX1)、キー境界値テーブル10、条件有効
ステータステーブル11の行方向にはこの数の2倍に相当
する行領域を夫々確保し、また条件有効ステータステー
ブル11の列方向には条件式の数に相当する列領域を確保
する(ステップX2)。この場合、キー境界値テーブル10
の各行には列方向に境界値、有効フラグ、有効条件数が
配置される為、キー境界値テーブル10は10行3列のマト
リックス構成となり、また条件有効ステータステーブル
11は10行5列のマトリックス構成となる。
そして、各条件式の中からキーに関する条件を抽出
し、キー境界値テーブル10にはインデックスキーの境界
値を行単位に順次書き込み、また条件有効ステータステ
ーブル11には不等式記号等によって示される条件有効範
囲の始点・終点フラグを対応箇所に書き込む(ステップ
X3)。第4図(B)はこの場合におけるキー境界値テー
ブル10、条件有効ステータステーブル11の内容を示す。
なお、始点・終点フラグには「≦」を表わす始点フラグ
「START|EQ」、「<」を表わす終点フラグ「END」、
「<」を表わす始点フラグ「START」、「≦」を表わす
終点フラグ「END|EQ」、「=」を表わすフラグ「EQ」が
ある。
次に、ステップX4に進み、キー境界値テーブル10の内
容を昇順にソートすると共にそれに合せて条件有効ステ
ータステーブル11の内容をソートする。この状態を示し
たのが第4図(C)である。このようにしてキー境界値
テーブル10、条件有効ステータステーブル11の内容をソ
ートした後、条件有効ステータステーブル11内のフラグ
を次の規則にしたがって書き替える(ステップX5)。
即ち、条件有効ステータステーブル11を列単位にサー
チし、フラグ「START」又は「START|EQ」が検出された
のち、フラグ「END」又は「EQ」あるいは「END|EQ」が
検出されるまでの間の空き領域にフラグ「CONT」を書き
込む。これによって、例えば1列目においては2列目の
空き領域に、また2列目では3行目の空き領域にフラグ
「CONT」が書き込まれる。また、条件有効ステータステ
ーブル11を行単位でサーチした場合、フラグ「END」の
みであればそれを消去し、フラグ「END|EQ」のみであれ
ば「EQ」のフラグに変換される。この為、3行目、9行
目の「END」は消去され、また4行目、8行目の「END|E
Q」は「EQ」のフラグに変換される。
次に、ステップX6に進み、条件有効ステータステーブ
ル11の内容に基づいて、キー境界値テーブル10内にレコ
ード有効フラグを書き込む。この場合、条件有効ステー
タステーブル11を行単位にサーチし、以下の規則にした
がってレコード有効フラグの設定を行う。
即ち、キー境界値テーブル10の行方向において、フラ
グが1つも設定されていない場合にはその行に対応する
キー境界値テーブル10内にはレコード有効フラグとして
「out」が書き込まれる。また、条件有効ステータステ
ーブル11内の行方向にフラグ「EQ」のみが設定されてい
る場合にはその行に対応するキー境界値テーブル10内に
はレコード有効フラグ「EQ」が書き込まれる。更に条件
有効ステータステーブル11内の行方向にフラグ「EQ」、
「START|EQ」、「START」「CONT」が混在していたり、
あるいは「START|EQ」「CONT」がある場合にはその行に
対応するキー境界値テーブル10内にはレコード有効フラ
グ「in」が書き込まれる。この結果、第4図(D)に示
す如く、レコード有効フラグは1行目から「in」、「i
n」、「in」、「EQ」、「EQ」……「out」となる。
次に、キー境界値テーブル10内に有効条件数を書き込
む(ステップX7)。この場合、条件有効ステータステー
ブル11を行単位にサーチし、フラグがセットされている
数をカウントしてその値をその行に対応するキー境界値
テーブル10内に書き込む。この結果、第4図(D)に示
す如く、有効条件数は1行目から「1」、「2」、
「1」、「1」、「1」……「0」となる。
これによってキー境界値テーブル10、条件有効ステー
タステーブル11が作成され、今度はフィールド条件バッ
ファ12の作成に移る(ステップX8、X9)。先ず、条件式
の数に相当する領域をフィールド条件バッファ12に確保
する(ステップX8)。そして、各条件式の中からキー条
件を除く条件(フィールド条件)を抽出し、条件有効ス
テータステーブル11の各列に対応付けてフィールド条件
バッファ12内に書き込む(ステップX9)。
これによって、テーブル作成は全て完了する。第4図
(E)はテーブル完成時のキー境界値テーブル10、条件
有効ステータステーブル11、フィールド条件バッファ12
の内容を示している。
レコード検索処理 上述のようにして主記憶部8内に各種のテーブルを作
成するとCPU1は第5図〜第7図に示すフローチャートに
したがってレコード検索処理を実行する。なお、第6図
は第5図の結合子に続くフローチャート、第7図は第
5図の結合子に続くフローチャートで、両者は内容的
に略同様の処理を行う。また、第8図はインデックスフ
ァイル7内において昇順にソートされているインデック
スキーとこれに対応するデータファイル6内のレコード
内容(フィールド内容)とを対応付けて示したデータの
具体例である。
先ず、レコード検索処理が開始されると、キー境界値
テーブル10の1行目に格納されているインデックスキー
の値以上を条件にインデックスファイル7をサーチし、
その値以上のキー位置までシークする(ステップA1)。
つまり、キー境界値テーブル10内の1行目に格納されて
いるインデックスキー「0003」を読み出し、その値以上
のキーが格納されているキー位置までインデックスファ
イル7の読み出しポインタ値を移動させる。そして、指
定位置にインデックスキーが格納されているか否か、つ
まり、インデックスファイル7内の最終インデックスキ
ーまで処理が終ったかを調べ(ステップA2)、終ってい
なければ、インデックスファイル7内の指定位置から読
み出した物理アドレスでデータファイル6をアクセス
し、データファイル6から1レコード分のデータを読み
込む(ステップA3)。
これによって、キー境界値テーブル10の1行目に格納
されているインデックスキー「0003」を持ったレコード
がデータファイル6から読み出され、以下、そのレコー
ドに対して次の様な処理を行う。
先ず、読み込んだレコードのインデックスキーがキー
境界値テーブル10の何行目に属するかをチェックする
(ステップA4)。いまインデックスキー「0003」はキー
境界値テーブル10内に格納されている1行目の境界値と
等しい為、ステップA8に進み、そのn行目、つまり1行
目に対応するキー境界値テーブル10内のレコード有効フ
ラグを読み取り、レコード有効フラクが「in又はEQ」か
「out」かを調べる。
いま、キー境界値テーブル10内の1行目には、レコー
ド有効フラグ「in」、つまりインデックスキー「0003」
以上「0100」未満の境界範囲内に存在するインデックス
キーを持ったレコードは読み込み対象であることを表わ
している為、第6図に示す結合子の処理に進む。な
お、この第6図に示す処理は読み込んだレコードが「条
件1」〜「条件5」のいずれか一つを満すレコードか否
かをチェックし、条件成立レコードであれば、その出力
データメモリ13に該当レコードとして書き込む。
先ず、キー境界値テーブル10内のn行目に格納されて
いる有効条件数の値を取り込み、これをCPU1内のワーク
レジスタ(図示せず)にセットすると共に、CPU1内の他
のワークレジスタに条件番号の初期値として「1」をセ
ットしておく(ステップA11)。
そして、ステップA12に進み、条件有効ステータステ
ーブル11のn行目において上述したワークレジスタ内の
条件番号でその列方向を指定した際に、その指定領域内
にステータスフラグがセットされているか否かを調べ、
無ければステップA13に進み、CPU1内の条件番号に
「1」を加算してその更新を行ったのち、ステップA12
に戻り、以下、フラグ有りが検出されるまで条件番号の
更新を繰り返す。この場合、キー境界値テーブル10内の
レコード有効フラグが「out」でなければ条件有効ステ
ータステーブル11の対応する行には1以上のステータス
フラグがセットされており、また、第6図のフローはレ
コード有効フラグが「out」でないことを条件に実行さ
れる為、条件番号の更新を繰り返すことによってステッ
プA12では必ずフラグ有りが検出される。
いま、条件有効ステータステーブル11の1行1列目に
はフラグ「START|EQ」が格納されているので、ステップ
A12でフラグ有りが検出されるのは条件番号が「1」の
ときである。
このようにして条件有効ステータステーブル11内にフ
ラグが格納されている条件番号を検出すると、その条件
番号に対応するフィールド条件バッファ12内に条件が格
納されているかを調べる(ステップA18)。この場合、
フィールド条件が無ければ、条件番号に対応する条件式
はキー条件のみであるから、読み込んだレコードを条件
成立レコードとして出力データメモリ13に書き込むが
(ステップA17)、フィールド条件が有れば、読み込ん
だレコードがそのフィールド条件を満足するものか否か
のチェックを行う(ステップA16)。この結果、条件不
成立が検出されると、CPU1内の有効条件数から「1」を
減算するデクリメント処理(ステップA14)を行い、そ
の値が「0」でなければ、ステップA15でそのことが検
出されてステップA13に進み、CPU1内の条件番号をイン
クリメントしたのち、ステップA12に進み、以下、有効
条件数が「0」となるまで上述の動作を繰り返す。つま
り、フィールド条件が有ってもその条件を満たさなけれ
ば条件番号を更新し、次の条件式を指定し、その結果、
いずれの条件も不成立となればステップA15で有効条件
数「0」が検出されて第4図のフローから抜け、そのレ
コードは無視される。
いま、読み込みレコードは「条件1」のフィールド条
件満足する為、そのレコードは条件成立レコードとして
出力データメモリ13に書き込まれる(ステップA17)。
そして、このフローから抜け、第5図のステップA9に進
むる このようにして1レコード分の処理が終ると、インデ
ックスファイル7の次の位置を指定し、それが最終位置
でなければ(ステップA2)、その位置に対応する物理ア
ドレスをインデックスファイル7から読み出してデータ
ファイル6から1レコード分のデータを読み出す(ステ
ップA3)。
この結果、今度はデータファイル6からインデックス
キー「0004」を持ったレコードが読み出される。この場
合、キー境界値テーブル10内においてインデックスキー
「0004」は1行目の境界値「0003」から2行目の境界値
「0100」の間に存在する為、ステップA4で「n行目の境
界値<インデックスキー<n+1行目の境界値」が検出
されてステップA5に進み、キー境界値テーブル10のn行
目にセットされているレコード有効フラグが「in」か
「EQ又はout」かを調べる。いま、1行目のレコード有
効フラグは「in」であるから、第7図に示す結合子の
処理に進む。つまり、読み込んだレコードのインデック
スキーがキー境界値テーブル10に格納されている境界値
であれば上述した第6図のフローへ移行するが、境界値
でなければ第7図のフローへ移行する。
なお、第6図のフローはレコード有効フラグが「in又
はEQ」のときに実行され、第7図のフローはレコード有
効フラグが「in」のときのみ実行されるが、レコード有
効フラグ「EQ」がセットされるのはキー条件が1つでそ
の値は必ず境界値となる為に第7図のフローへ移行する
条件としてフラク「EQ」を除いてある。
ここで、第7図のステップA21〜ステップA28は第4図
のステップA11へステップA18に対応する為、その説明は
省略するが、第6図のステップA12では単にステータス
フラグの有無をチェックしたが、それに対応するステッ
プA22ではフラグの種類をチェックするようにしてい
る。このようにフラグの種類をチェックするのはステー
タスフラグ「EQ」を無視し、条件不成立と同様に取り扱
う為であり、両者は実質的に同一である。
しかして、いまインデックスキー「0004」のレコード
が読み込まれたので、CPU1のワークレジスタにはキー境
界値テーブル10の1行目の有効条件数「1」がセットさ
れる(ステップA21)。ここで、条件有効ステータステ
ーブル11の1行1列目にはフラグ「START|EQ」が格納さ
れているので、「条件1」のフィールド条件が成立する
かのチェックが行われるが、この場合、不成立が検出さ
れる為(ステップA26)、有効条件数をデクリメントす
る(ステップA24)。するとこの時点で有効条件数は
「0」となる為、このレコードは無視され、第3図のス
テップA9に進む。
すると、今度はデータファイル6からインデックスキ
ー「0100」を持ったレコードが読み出される。この場
合、インデックスキー「0100」はキー境界値テーブル10
の2行目に格納されている境界値と等しく、またその2
行目にレコード有効フラグ「in」が格納されているの
で、第6図のフローへ移行する。この場合、条件有効ス
テータステーブル11の2行1列目および2列目には夫々
ステータスフラグが格納されているが、「条件1」およ
び「条件2」のフィールド条件のいずれも不成立となる
(ステップA16)。したがって、CPU1内にセットされた
2行目の有効条件数(初期値「2」)はフィールド条件
の不成立が検出される毎にデクリメントされ、その値が
「0」となったとき、このフローから抜ける為、この場
合の読み込みレコードは無視される。
このような動作を1レコードずつ繰り返す結果、イン
デックスキー「0400」を持ったレコードまで1レコード
ずつ連続的に読み込まれる。なお、インデックスキー
「0103」を持ったレコードを読み込んだ際、そのレコー
ドは「条件1」、「条件2」のフィールド条件を夫々満
足するが、先の「条件1」が成立すれば、他の条件が成
立するか否かに拘らず、当該レコードは条件成立レコー
ドとして出力データメモリ13に書き込まれる。その他、
インデックスキー「0302」を持ったレコードも「条件
2」を満足する為、条件成立レコードとして出力データ
メモリ13に書き込まれる。
次に、データファイル6からインデックスキー「040
1」を持ったレコードを読み込んだ場合の動作を説明す
る。
この場合、インデックスキー「0401」を持ったレコー
ドはキー境界値テーブル10の4行目の境界値「0400」か
ら5行目の境界値「0402」の範囲内に属するが、キー境
界値テーブル10の4行目のレコード有効フラグは「EQ」
となっている。したがって、4行目の境界値と等しくな
いインデックスキー「0401」を持ったレコードは無効レ
コード、さらに現在持ち込んだレコードからキー境界値
テーブル10の次の行の境界値「0402」までの間のインデ
ックスキーの値を持つレコードも無効レコードとなる
為、ステップA5でレコード有効フラグ「EQ」が検出され
ると、ステップA6に進み、キー境界値テーブル10のn+
1行目に格納されているインデックスキーの値以上を条
件にシークする。そして、条件に合致するキーが存在す
るか否かを調べ(ステップA7)、存在すれば、ステップ
A3に戻る。
ここで、データファイル6からインデックスキー「04
02」を持ったレコードが読み出されると、このインデッ
クスキー「0402」はキー境界値テーブル10の5行目の境
界値と等しく、そのレコード有効フラグは「EQ」である
為、第6図のフローへ移行する。この場合、条件有効ス
テータステーブル11の5行3列目にフラグがセットされ
ているが、「条件3」にはフィールド条件が含まれてい
ないので、他の条件の成立有無に拘らず、そのレコード
は条件成立レコードとして出力データメモリ13に書き込
まれる。
次に、データファイル6からインデックスキー「040
3」を持つレコードが読み出されるが、このインデック
スキーは5行目の境界値から6行目の境界値の範囲内に
あり、しかも5行目のレコード有効フラグが「EQ」であ
る為、上述と同様に当該レコードを含めて次行の境界値
「0600」以上の値を持つレコードを全て無効レコードと
する為に、ステップA6でその値以上を持つインデックス
キーの位置までシークする。この結果、第8図に示す様
にインデックスキー「0700」の位置まで読み飛ばされ
る。
以下、上述の動作をステップA2でインデックスファイ
ル7の最終位置が検出されるまで繰り返される。
このように本実施例においては、上述の様に「条件
1」〜「条件5」の論理和によってレコード検索を指定
した場合、第8図に示す様に各条件のキー有効範囲が部
分的に重なり合ったとしてもその重複範囲内のレコード
は夫々1回読み出されるだけであり、またキーの有効範
囲から外れた範囲内のレコードは全て読み飛ばされる。
なお、図中口は上述のようにして読み込んだレコードの
うち「条件1」〜「条件5」のいずれかが成立し、出力
データメモリ13内に格納されたレコードを示す。この場
合、インデックスキー「0103」を持ったレコードは「条
件1」の他に「条件2」も満すが、同一レコードが重複
して出力データメモリ13に格納されることはない。
[第2実施例] 以下、第9図〜第16図を参照して第2実施例を説明す
る。
なお、上記第1実施例はインデックスキーを単一のフ
ィールドにより構成したが、本実施例は第9図に示す如
くインデックスキーを2つのフィールドにより構成し、
上位のインデックスキー(上位キー)と下位のインデッ
クスキー(下位キー)の論理積条件でレコードの検索を
行うようにしたものである。
即ち、第9図はこの場合におけるインデックスファイ
ル7、データファイル6の内容を示し、第8図と同様に
インデックスファイル7内において昇順にソートされて
いるインデックスキー(上位キー、下位キー)と、これ
に対応するデータファイル6内のレコード内容(フィー
ルド内容)とを対応付けて示したデータの具体例であ
る。ここで、インデックスファイル7内において昇順に
ソートされた上位キーに対し、同一上位キーに含まれる
下位キーもその範囲内において昇順にソートされてい
る。
このように2つのフィールドから成るインデックスキ
ーは上位キーと下位キーの論理積によって定義されてい
る。
この場合、下位キーをレコード内に含まれる通常のフ
ィールド条件とみなし、上位キーのみから成るインデッ
クスキーによってレコードの検索を行ったものとする
と、上記第1実施例と同様の処理でレコード検索が可能
であるか、上記第1実施例で示した様にフィールド条件
の成立、不成立はデータファイル6からレコードを読み
出した後でなければチェックすることかできず、上位キ
ーのみを対象にレコード読み出しを行うと上位キーと下
位キーの論理積を満さない不要なレコードまでも多数読
み込んでしまう。
そこで、本実施例ではインデックスキーを構成するフ
ィールドの数だけキー境界値テーブルと条件有効ステー
タステーブルを作成することにより、インデックスキー
を構成する上位キーと下位キーの論理積条件で対象レコ
ードの読み出しを制御するようにしている。
第10図は主記憶部8内に作成された各種テーブル構成
を示している。ここで、インデックスキーの上位キーに
対応してキー境界値テーブル10A、条件有効ステータス
テーブル11Aが作成され、またその下位キーに対応して
キー境界値テーブル10B、条件有効ステータステーブル1
1Bが作成される。なお、このキー境界値テーブル10A、1
0B、条件有効ステータステーブル11A、11B、フィールド
条件バッファ12の内容は下記のレコード検索条件の指定
に伴って作成されたものである。なお、この場合におい
てもレコード検索条件は上記第1実施例と同様に論理和
条件とする。
条件1:0004≦上位キー<0104かつ下位キー2=0004かつ
フィールド4=0014 条件2:0100≦上位キー<0200かつ下位キー2=0006かつ
フィールド4=0017 条件3:0208≦上位キー<0308かつ0005≦下位キー2<00
09かつフィールド5=0012 条件4:上位キー=0404かつ0001<下位キー2≦0007 ここで、下位のキー境界値テーブル10Bにおいて、レ
コード有効フラグと有効条件数はレコード検索処理を開
始する前に予め生成しておくことはできず、検索処理中
にそれらを必要に応じて生成し、キー境界値テーブル10
B内に格納するようにしている。これはキー境界値テー
ブル10B内に格納されるべきレコード有効フラグや有効
条件数は、上位キーに対するレコードの読み出し範囲が
確定された後でなければ確定することができない為、換
言すれば下位キーの条件を満さない不要なレコードの読
み出しを行わないようにする為、検索処理中にキー境界
値テーブル10Bのレコード有効フラグや有効条件数を生
成するようにしている。この場合、その内容は必要に応
じて書き換えられる。
この様に本実施例においては、 (1)インデックスキーを構成する上位キーと下位キー
の論理積でレコードの検索を行うこと。
(2)上位キーと下位キーに対応してキー境界値テーブ
ル10A、10B、条件有効ステータステーブル11A、11Bを作
成しておくこと。
(3)レコード検索時に上位のキー境界値テーブル10
A、条件有効ステータステーブル11Aを参照し上位キーに
対するレコードの読み出し範囲を確定してのち、それに
基づいて下位のキー境界値テーブル10B内に格納される
レコード有効フラグや有効条件数を生成すること。
(4)下位のキー境界値テーブル10B、条件有効ステー
タステーブル11Bを参照して更に下位キーに対するレコ
ードの読み出し範囲を確定し読み出し範囲の絞り込みを
行うこと。
を特徴とし、その他は上記第1実施例と基本的には同様
である。
第11図はテーブル作成処理、第12図、第13図はレコー
ド検索処理のフローチャートである。なお、本実施例は
上述した如く第1実施と基本的には変らない為、以下重
複説明を避け、相違点を中心に説明するものとする。
テーブル作成処理 第11図のフロチャートは上述した第3図と基本的には
同様であるが、本実施例においては上位キーに対応する
キー境界値テーブル10A、条件有効ステータステーブル1
1Aを作成したのち、下位に対応するキー境界値テーブル
10B、条件有効ステータステーブル11Bを作成し、最後に
フィールド条件バッファ12を作成するようにしている。
つまり、テーブル作成を最上位レベルから最下位レベル
まで順に作成するようにしている。
先ず、上位キーに対応するキー境界値テーブル10A、
条件有効ステータステーブル11Aを作成する処理を行う
(ステップY1〜Y5)。なお、ステップY1〜Y5は第3図の
ステップX1〜X5に対応している為、その説明は省略す
る。そして、ステップY6に進み、現在処理を行っている
キーは最上位レベルのキーかを調べるが、いま、上位キ
ーに対する処理を行っているので、キー境界値テーブル
10A内にレコード有効フラグ、有効条件数を書き込む処
理を行う(ステップY7、Y8)。なお、最上位レベルのキ
ーでなければ、つまり下位キーに対する処理を行ってい
る場合には下位のキー境界値テーブル10B内に格納され
るべきレコード有効フラグや有効条件数は上述した如く
レコード検索処理時に生成するようにしている為、ステ
ップY6で下位キーであることが検出された場合には、ス
テップY9に進み、レコード有効フラグや有効条件数の設
定処理(ステップY6、Y7)は行われない。
このようにして上位キーのキー境界値テーブル10A、
条件有効ステータステーブル11Aを作成すると、ステッ
プY9に進み、下位レベルのキーがあるかを調べるが、い
ま下位キー有りが検出されるので、ステップY1に戻り、
以下、下位キーのキー境界値テーブル10B、条件有効ス
テータステーブル11Bの作成を行う(ステップY2〜Y
5)。
そして、最後にフィールド条件バッファ12を作成する
(ステップY8、Y9)。
なお、第11図はインデックスキーが3以上のフィール
ドによって構成された場合も対応できる様にしたもの
で、この場合、フィールドの数だけキー境界値テーブル
と条件有効ステータステーブルが作成される。
レコード検索処理 先ず、ステップB1の前レコード行とは1つ前に読み込
まれたレコードの上位キーかキー境界値テーブル10A上
の何行目の境界範囲に属していたかを表わすもので、ス
テップB11、B14において前レコード行と現在の着目行n
との不一致が検出された際、キー境界値テーブル10B内
の有効フラグや有効条件数を書き替える(ステップB1
2、B15)。つまり、前レコード行は下位のキー境界値テ
ーブル10Bの有効フラグや有効条件数を書き替えるタイ
ミングを検出する為に使用するもので、ステップB1では
前レコード行として初期値「0」をセットしておく。
そして、ステップB2に進み、上位のキー境界値テーブ
ル10Aの1行目の格納されている境界値以上で下位キー
が最も小さい値を条件にインデックスファイル7をシー
クする。これによって例えば、キー境界値テーブル10A
の1行目に格納されている境界値「0004」を上位キーと
して持つインデックスキーをうち下位キーが最も小さい
値「0000」を持つキー位置まで読み出しポインタ値を移
動させる。
このように本実施例はシーク条件が上記第1実施例と
異なり、第12図中のその他の処理(ステップB3〜B9)は
第5図中のステップA2〜A8に対応し、基本的には変わら
ないが、本実施例におけるステップB3〜B9は上位キーに
対して処理を行う。
即ち、読み込んだレコードの上位キーがキー境界値テ
ーブル10Aの何行目に属するかを調べる(ステップB
5)。その結果、上位キーがn行目の境界値で、n行目
の有効フラクが「in又はEQ」であれば(ステップB9)、
それを条件にステップB14へ進み、また上位キーが境界
値ではなく、n行目の有効フラグが「in」であれば(ス
テップB6)、それを条件にステップB11に進む。なお、
ステップB11、B14へ移行する時点において、上位キーに
対するレコードの読み出し範囲は確定されている。しか
して、ステップB11またはステップB14で不一致が検出さ
れると、下位のキー境界値テーブル10B内に格納される
べき有効フラグと有効条件数の生成を行う(ステップB1
2、B15)。この点が上記第1実施例と異なるところであ
る。
いま、ステップB2のシーク条件に合致する先頭レコー
ドが読み込まれたものとする。この場合、上位キーに
「0004」、下位キーに「0000」を持つレコードが読み込
まれる。ここで、上位キーはキー境界値テーブル10A内
の1行目の境界値と等しくまた1行目の有効フラグは
「in」であるから、ステップB14に進むが、いま、nは
「1」、前レコード行は「0」、したがって両者の不一
致が検出される。すると、ステップB15に進み、上位キ
ーに対応する条件有効ステータステーブル11Aのn行目
で「START」、「START|EQ」、「CONT」、「EQ」のフラ
グが格納されている条件番号を有効とし、下位キーに対
応する条件有効ステータステーブル11Bからキー境界値
テーブル10B内に格納されるべきレコード有効フラグと
有効条件数を生成し、キー境界値テーブル10B内の対応
する領域へ格納する。
第14図はこの場合のテーブル内容を示している。即
ち、条件有効ステータステーブル11Aの1行目には「条
件1」の対応箇所のみにフラグがセットされている為、
図中太線で示した様に条件番号「1」のみが有効とな
る。そして、この条件番号「1」に対応する下位の条件
有効ステータステーブル11Bにセットされているフラグ
を参照し、キー境界値テーブル10B内のレコード有効フ
ラグ、有効条件数を生成して対応する領域へ格納する。
この場合、条件有効ステータステーブル11Bの2行目だ
けにフラグ「EQ」がセットされているので、キー境界値
テーブル10Bの2行目にはそれに対応してレコード有効
フラグ「EQ」、有効条件数「1」が生成され格納される
が、キー境界値テーブル10Bのその他の行には全て「ou
t」のフラグが格納され、また有効条件数も全て「0」
となる。
同様に、第15図は上位のキー境界値テーブル10Aの2
行目、第16図はその3行目に着目行が移動した際、つま
り読み込んだレコードの上位キーがキー境界値テーブル
10Aの2行目、3行目の範囲に属することが検出された
際に書き替えられた下位のキー境界値テーブル10Bの内
容を示している。
なお、ステップB12は上述のステップB15と同様の処理
を行うものであるが、有効となる条件番号を条件有効ス
テータステーブル11Aでサーチする際に、フラグ「EQ」
が格納されている条件番号を除く点が相違する。これは
ステップB5、B6の条件を前提とする為であり、実質的は
ステップB15と同様である。
このようにして下位のキー境界値テーブル10Bの内容
を書き替える処理が終ると、ステップB13に進み、前レ
コード行の更新を行ったのち、第13図に示す結合子の
処理に進む。
なお、有効フラグが「out」の場合(ステップB9)、
あるいは「EQ又はout」の場合には(ステップB6)、キ
ー境界値テーブル10Aのn+1行目以上で「EQ又はin」
のフラグを持つキーの値以上で下位キーが最も小さい値
を条件にシークし(ステップB7)、この条件に合致する
キーが存在すればステップB4に戻る。
第13図は上述の様にして作成されたキー境界値テーブ
ル10Bを参照して下位キーに対する処理を行う。この場
合においても上記第1実施例で示した第5図のフローチ
ャートと基本的には変らないが、シーク条件が特に相違
する。
先ず、読み込んだレコードの下位キーがキー境界値テ
ーブル10B内に格納されている最小値よりも小さい場
合、例えば下位キーに「0000」を持ったレコードはキー
境界値テーブル10B内の最小値「0001」よりも小さい
為、その上位キーの値と等しく下位キーがキー境界値テ
ーブル10B内の最小値を持ったインデックスキーを条件
にシークし、その条件に合致したレコードを読み出す
(ステップB21)。
そして、読み込んだレコードの下位キーがキー境界値
テーブル10B内の何行目に属するかを判定し(ステップB
22)。n行目の境界値でその行の有効フラグが「in又は
EQ」であれば(ステップB28)、上記第1実施例の第6
図の処理へ移行し、また境界値ではなく有効フラグが
「in」であれば(ステップB23)、第7図の処理へ移行
し、第6図、または第7図の処理で条件式をレコードで
あることが検出された場合にはそれを出力データメモリ
13に書き込む。
一方、レコード有効フラグが「out」の場合(ステッ
プB28)あるいはレコード有効フラグが「EQ又はout」の
場合は(ステップB23)、下位キーのm行目以降におい
て、キー境界値テーブル10B内にレコード有効フラグ「E
Q又はIN」が有るかを調べる(ステップB24)。例えば、
第14図に示す下位のキー境界値テーブル10B内にはその
1行目にレコード有効フラク「out」が格納されている
ので、ステップB24に進む。この場合、その2行目には
有効フラグ「EQ」が格納されているので、ステップB25
に進み、上位キーの値と等しくキー境界値テーブル10B
のm+1行目以上で「EQ又はin」のフラグを持つキーの
値以上を条件にシークする。この結果、上位キーが同一
の範囲内で下位キーに「0004」を持つキー位置までシー
クされ、それに合致するキーが存在することを条件に
(ステップB26)そのキーを持つレコードを読み出し
(ステップB27)、以下、ステップB22に戻る。
また、第14図に示す様にキー境界値テーブル10Bの3
行目のレコード有効フラグが「out」で、それ以降の全
ての行のレコード有効フラグも「out」の場合には、3
行目以降の下位キーを持ったレコードを読み出す必要が
ない為、ステップB29に進み、読み込んだレコードの上
位キーの値より大きく下位下が最も小さい値を条件にシ
ークする。なお、このステップB29はステップB22で最大
境界値よりも大きいことが検出された場合やステップB2
6でシーク条件に合致するキーが存在しないことが検出
された場合にも実行される。ここで、シーク条件に合致
するキーがあれば(ステップS30)、第9図のステップB
4に進み、そのキーを持ったレコードの読み出しを行
う。
このようにしてレコード検索処理を行った結果、第9
図に示す様に、上位キーのみから成るインデックスキー
によってレコードの読み出しを行った場合(第9図
(A)参照)と、上位キーおよび下位キーとから成るイ
ンデックスキーによってレコードの読み出しを行った場
合(第9図(B)参照)とでは、後者の方が明らかにレ
コード読み出し量は少なくなる。
なお、上述した第2実施例のレコード検索処理は、イ
ンデックスキーが2つのフィールドによって構成された
場合を示したが、3以上のフィールドによって構成され
た場合のレコード検索処理も基本的には上記第2実施例
と同様である。この場合には階層的な処理、即ち上位レ
ベルのキー境界値テーブルの内容を書き替えたら、それ
に続く下位レベルのキー境界値テーブルの内容を書き替
えてゆき、最後に最下位レベルのキー境界値テーブルの
内容を書き替えた時点で、フィールド条件のチェック処
理に移行すればよい。
なお、上記各実施例においては、キー境界値テーブル
内にレコード有効フラグや有効条件数を含む構成とした
が、必ずしもこれらを含める構成でなくてもよい。この
場合、レコード有効フラグや有効条件数は必要に応じて
条件有効ステータステーブルを検索してレコード有効フ
ラグや有効条件数を求めればよい。
また、上記各実施例ではフィールド条件バッファを設
けたが、検索条件にフィールド条件が含まれていなけれ
ば、当然このバッファを設ける必要はない。この場合、
条件有効ステータステーブルは条件毎に区分する必要は
なく、一元化して1列の領域内に集める様にフラグを配
置してもよい。
更に、上記実施例はインデックスファイルを用いてデ
ータファイルを間接アクセスする様にしたが、データフ
ァイル内のレコードが予めキー順にソートされていれ
ば、インデックスファイルを必要としないことは勿論で
ある。
[発明の効果] この発明は複数の条件が指定されたとしてもデータフ
ァイルを条件毎に何回もアクセスせず、各レコードに対
して1回アクセスするだけで足り、しかもレコードの読
み出し範囲も極めて限定された範囲となる為、データフ
ァイルから読み込むレコード数を大幅に減らすことがで
きる。その結果、外部記憶装置へのアクセス回数が減少
し、レコード検索を高速に処理することが可能となる。
【図面の簡単な説明】
第1図〜第8図は第1実施例を示し、第1図はデータ処
理装置のブロック構成図、第2図はキー境界値テーブル
10、条件有効ステータステーブル11、フィールド条件バ
ッファ12の構成を示した図、第3図はキー境界値テーブ
ル10、条件有効ステータステーブル11、フィールド条件
バッファ12を作成するテーブル作成処理を示したフロー
チャート、第4図はキー境界値テーブル10、条件有効ス
テータステーブル11、フィールド条件バッファ12が作成
される過程を示した図、第5図〜第7図はレコード検索
処理を示したフローチャートで、第6図は第5図の結合
子に続くフローチャート、第7図は第5図の結合子
に続くフローチャート、第8図はインデックスファイル
とデータファイルの一部を対応付けて示すと共にデータ
ファイルから検索対象レコードとして読み出されるレコ
ード範囲を説明する為の図、第9図〜第16図は第2実施
例を示し、第9図は第8図と同様にインデックスファイ
ルとデータファイルの一部を対応付けて示すと共に、デ
ータファイルから検索対象レコードとして読み出される
レコード範囲を説明する為の図、第10図はキー境界値テ
ーブル10A、10B、条件有効ステータステーブル11A、11
B、フィールド条件バッファ12の構成を示すテーブル構
成図、第11図はテーブル作成処理を示したフローチャー
ト、第12図および第13図はレコード検索処理を示したフ
ローチャートで、第13図は第12図の結合子に続くフロ
ーチャート、第14図〜第16図はレコード検索時にテーブ
ル内容の一部が書き替えられる状態を各タイミング毎に
示した図、第17図、第18図は従来例を説明する為の図
で、第17図はインデックスファイル、データファイルを
説明する為の図、第18図はインデックスファイルとデー
タファイルの一部を対応付けて示すと共に、データファ
イルから検索対象レコードとして読み出されるレコード
範囲を説明する為の図である。 1……CPU、2……プログラムメモリ、3……キーボー
ド、6……データファイル、8……主記憶部、10、10
A、10B……キー境界値テーブル、11、11A、11B……条件
有効ステータステーブル、12……フィールド条件バッフ
ァ。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 17/30 JICST科学技術文献ファイル

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】キーワードによって区別された複数レコー
    ドから成るデータファイルを有し、 複数のキーワードの組み合わせによる複数の検索条件が
    論理和として指定された際に、この条件に該当するレコ
    ードを前記データファイルから読み出すレコード検索方
    法において、 指定された複数のレコード検索条件の境界を示すキーワ
    ードを夫々抽出し、 抽出されたキーワードをキーワード順に並べ変えてキー
    ワード境界テーブルを作成し、 前記キーワード境界テーブルの1つのキーワードと次の
    キーワードとで区分される境界範囲に対応付けて、前記
    キーワード境界テーブルのキーワードに対応する行と前
    記指定された検索条件に対応する列に前記指定された各
    検索条件の有効範囲を示す始点と終点を含む識別情報を
    配置した条件有効状態テーブルを作成し、 前記データファイルからキーワード順にレコードを読み
    出し、 読み出したレコードが前記キーワード境界テーブルのい
    ずれかの境界範囲に含まれるかを判別し、 読み出したレコードがいずれかの境界範囲に含まれると
    判別された場合には、該境界範囲に対応する前記条件有
    効状態テーブル内の行の識別情報に基づいて、前記指定
    されたいずれか1つのレコード検索条件に該当するレコ
    ードとして出力する、 ことを特徴とするレコード検索方法。
  2. 【請求項2】前記データファイル内の各レコードが上位
    のキーワードと下位のキーワードを有するものであっ
    て、前記レコード条件指定は上位キーワードと下位キー
    ワードの論理積条件よりなる指定を含み、 前記キーワード境界テーブルを作成する際には、上位キ
    ーワードのレコード検索条件と下位キーワードのレコー
    ド検索条件からキーワード境界テーブルを夫々作成し、 前記条件有効状態テーブルを作成する際には、前記作成
    された夫々のキーワード境界テーブルに対応して、上位
    キーワードのレコード検索条件に応じた識別情報を配置
    した上位キーワード用条件有効状態テーブルと下位キー
    ワードのレコード検索条件に応じた識別情報を配置した
    下位キーワード用条件有効状態テーブルとを夫々作成
    し、 前記レコードを読み出す際には、前記上位キーワード用
    キーワード境界テーブルの1つの境界範囲に対応する前
    記上位キーワード用条件有効状態テーブルに識別情報が
    有れば、更に下位キーワード用条件有効状態テーブルの
    識別情報を検出し、識別情報が有れば下位キーワード用
    境界テーブルで示される境界範囲のレコードを読み出
    す、 ことを特徴とする特許請求の範囲第1項記載のレコード
    検索方法。
JP2173710A 1990-06-29 1990-06-29 レコード検索方法 Expired - Lifetime JP2969153B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2173710A JP2969153B2 (ja) 1990-06-29 1990-06-29 レコード検索方法
US08/217,077 US5398338A (en) 1990-06-29 1994-03-23 Record retrieval method using key bondary value table and condition valid status table

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2173710A JP2969153B2 (ja) 1990-06-29 1990-06-29 レコード検索方法

Publications (2)

Publication Number Publication Date
JPH0462668A JPH0462668A (ja) 1992-02-27
JP2969153B2 true JP2969153B2 (ja) 1999-11-02

Family

ID=15965701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2173710A Expired - Lifetime JP2969153B2 (ja) 1990-06-29 1990-06-29 レコード検索方法

Country Status (2)

Country Link
US (1) US5398338A (ja)
JP (1) JP2969153B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649183A (en) * 1992-12-08 1997-07-15 Microsoft Corporation Method for compressing full text indexes with document identifiers and location offsets
JPH07319918A (ja) * 1994-05-24 1995-12-08 Fuji Xerox Co Ltd 文書検索対象指示装置
US5745745A (en) * 1994-06-29 1998-04-28 Hitachi, Ltd. Text search method and apparatus for structured documents
JP2687882B2 (ja) * 1994-07-05 1997-12-08 日本電気株式会社 検索条件統合装置
JPH0969107A (ja) * 1995-06-20 1997-03-11 Casio Comput Co Ltd レコード検索方法、抽出方法及びレコード抽出装置
JPH09311861A (ja) * 1996-05-21 1997-12-02 Sharp Corp データ処理装置
US5878410A (en) * 1996-09-13 1999-03-02 Microsoft Corporation File system sort order indexes
US6061677A (en) * 1997-06-09 2000-05-09 Microsoft Corporation Database query system and method
US6185552B1 (en) * 1998-03-19 2001-02-06 3Com Corporation Method and apparatus using a binary search engine for searching and maintaining a distributed data structure
US6671681B1 (en) 2000-05-31 2003-12-30 International Business Machines Corporation System and technique for suggesting alternate query expressions based on prior user selections and their query strings
US6735582B2 (en) * 2000-12-15 2004-05-11 International Business Machines Corporation Pre-load cursor in a database method and system
WO2014168199A1 (ja) * 2013-04-12 2014-10-16 株式会社ターボデータラボラトリー 論理演算方法および情報処理装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3670310A (en) * 1970-09-16 1972-06-13 Infodata Systems Inc Method for information storage and retrieval
JPS5235264B2 (ja) * 1971-09-29 1977-09-08
JPS5413306B2 (ja) * 1974-01-24 1979-05-30
CA1071332A (en) * 1974-05-01 1980-02-05 Toshio Kashio Data processing system
JPS5522821B2 (ja) * 1974-11-15 1980-06-19
JPS586979B2 (ja) * 1974-11-15 1983-02-07 カシオケイサンキ カブシキガイシヤ ジヨウホウヨミダシソウチ
JPS5524134B2 (ja) * 1974-11-15 1980-06-27
JPS5250132A (en) * 1975-10-21 1977-04-21 Casio Comput Co Ltd Information processing control unit
JPS5272125A (en) * 1975-12-12 1977-06-16 Casio Comput Co Ltd Manual input device for information
JPS5279628A (en) * 1975-12-25 1977-07-04 Casio Comput Co Ltd Information reading processing equipment
JPS5350953A (en) * 1976-10-20 1978-05-09 Casio Comput Co Ltd Comparison/array system for variable length information
FR2486926A1 (fr) * 1980-07-21 1982-01-22 Saint Gobain Vitrage Four pour le chauffage de feuilles de verre suspendues en position verticale
JPS5845920B2 (ja) * 1980-09-19 1983-10-13 荏原インフイルコ株式会社 有機性廃液の生物化学的処理方法
JPS5846735A (ja) * 1981-09-15 1983-03-18 Anritsu Corp 2チヤネル波形記憶装置
JPS5853384A (ja) * 1981-09-25 1983-03-29 Toshiba Corp レ−ザシ−ム溶接機
US5062074A (en) * 1986-12-04 1991-10-29 Tnet, Inc. Information retrieval system and method
JPH05346689A (ja) * 1992-06-15 1993-12-27 Kyocera Corp 現像剤用磁性樹脂キャリアおよび画像形成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鳥居,外5名「リレーショナル・データベースの処理速度向上を図るCPU内蔵型データベース・プロセサ」日経エレクトロニクス,1987.2.9(No.414)p.185−206

Also Published As

Publication number Publication date
US5398338A (en) 1995-03-14
JPH0462668A (ja) 1992-02-27

Similar Documents

Publication Publication Date Title
US5706450A (en) Method and system for presenting alternatives for selection using adaptive learning
US6947928B2 (en) Graphical user interface for building queries with hierarchical conditions
JP2969153B2 (ja) レコード検索方法
US20100064258A1 (en) Method and apparatus for displaying a menu for accessing hierarchical content data including caching multiple menu states
JPH03266039A (ja) フリーフォーマットデータリンク処理方式
US20020147725A1 (en) Method and apparatus for database table definition
JP2006172446A (ja) 複合データアクセス
ZA200503578B (en) Adaptively interfacing with a data repository
EP1271342A1 (en) Method for accessing database table columns
JP2521036B2 (ja) デ―タ表示方法、システム及び実行方法
JPS62501243A (ja) スタツク指向のメモリに対するアクセスのためのアドレス環境記憶装置
JP2937521B2 (ja) 文書検索装置
JP2795317B2 (ja) 多段表処理方式
US6088713A (en) Data processor for retrieving sentence data corresponding to an input character string and one or more selected text handling options
JPH08137967A (ja) 表デ−タ処理方法
JP2837810B2 (ja) コンピュータ処理用操作ボタンによるデータ検索方法
JP2760755B2 (ja) コンピュータ処理用操作ボタン履歴を記憶し再表示する方法
Jesshope et al. An intelligent Pascal editor for a graphical oriented workstation
JP2000259303A (ja) データ表示装置およびデータ表示方法ならびに該方法を記録した記録媒体
JP2520941B2 (ja) デ―タベ―ス・テ―ブルを検索する方法
JP2831837B2 (ja) 文書検索装置
JPH07192005A (ja) 学習記憶制御装置
EP0569188A1 (en) Accessing a computer database
JP3456481B2 (ja) 情報処理装置
JP2636472B2 (ja) 階層データ配置装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080827

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090827

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100827

Year of fee payment: 11

EXPY Cancellation because of completion of term