【発明の詳細な説明】【0001】
【産業上の利用分野】本発明は、可変長データの格納方
法及び検索装置に関し、より詳細には、書式化されたテ
キストファイルをデータファイルとして利用するデータ
の格納方法及び検索装置に関する。
【0002】
【従来の技術】可変長データを取り扱うデータの格納方
法及び検索装置として挙げる第1の従来例を図29に示
す。図29において、191は、データ数と項目数と各
項目の項目長と項目名からなるデータベースの形式を定
義する項目定義ファイル、192は、実際のデータを格
納するデータファイルである。図29においては、可変
長データの最大長を項目長とする固定長データ領域をデ
ータファイルに確保することで、疑似的に可変長データ
を扱えるようになる。しかし、この方法においては、常
に可変長データの最大長の大きさの記憶領域が確保され
るために、記憶領域に無駄が生じるという問題点と、項
目長を保持するために、多くの場合には255バイト=
127文字という項目長の制限が存在し、それ以上の長
さの可変長データを格納することができないという問題
点がある。
【0003】図29に示す従来例の問題点を回避した例
(特開昭59−90142号公報の変形例)を第2の従
来例として図30に示す。図30において、201,2
02は図29同様の形式を持つ項目定義ファイルとデー
タファイルであるが、項目長が、例えば0である場合に
は、その項は可変長データとして特殊な扱いをするもの
とする。この例においては、項目xのみが可変長データ
である。203は、可変長データを格納する可変長デー
タ格納ファイルである。図30において、項目xが参照
された場合、その項目長が0であるので、可変長データ
であると認識される。その場合、データファイル202
の項目xには、可変長データ格納ファイル203中の対
応する可変長データの先頭位置が格納されているので、
それを元に可変長データ格納ファイル203より実際の
データが取り出される。
【0004】前記第1の従来例及び第2の従来例に共通
している点は、可変長データをあたかも固定長データと
して扱うという点であり、その目的は各データ各項目の
記憶領域中での位置を、下記(1)式により求められる
ように単純化することであるといえる。 [データ全体の先頭番地]+[一件のデータの大きさ]×[データの番号]+ [項目番号までの大きさ] …(1)
【0005】一方、別の手法で可変長データの検索を行
う例として、一般に「ストリームエディタ」と呼ばれ
る、SEDあるいはAWKの様な動作制御の可能なフィ
ルタプログラムを用いる例を図31に示す。図31にお
いて、211はユーザの設定する検索条件を格納する検
索式記述ファイル、212は検索式記述ファイル211
より変換される検索スクリプト、213は検索式記述フ
ァイル211を検索スクリプト212に変換するストリ
ームエディタA、214は検索式記述ファイル211よ
り検索スクリプト212への変換動作を記述した検索式
変換スクリプト、215は可変長データの集合体である
データファイル、216は検索結果、217はデータフ
ァイル215より検索スクリプト214に従って216
を検索するストリームエディタBである。なお、ストリ
ームエディタA213とストリームエディタB217が
同一のプログラムである場合も考えられる。
【0006】第3の従来例においては、前述した第1の
従来例及び第2の従来例に比較して、データの新規作
成,追加,更新,消除,閲覧,出力のために特別なプロ
グラムを用意する必要がなく、データ検索方法及び装置
の構築の負担が軽減されると同時に、利用者側において
も、データの編集あるいはデータベースの定義の変更の
ために使用するプログラムは、ユーザがふだん使いなれ
ているテキストエディタのみでよく、新しいデータの編
集装置の操作法を憶える必要がないという利点がある。
【0007】
【発明が解決しようとする課題】前述のように、従来の
可変長データを取り扱うデータの格納方法及び検索装置
においては、以下のような問題点がある。すなわち、第
1及び第2の従来例においては、先にも述べたように、
データの新規作成,追加,更新,削除,閲覧,出力のた
めに、それぞれ特別なプログラムを用意する必要があ
り、利用者が新しいデータの編集及び検索装置の操作法
を憶える必要があるという問題点がある。また、第3の
従来例においては、前述したフィルタプログラムの基本
的な動作が、検索しようとするテキストファイルを先頭
から順次走査する動作であるために、検索対象項目に関
するテキストファイルの部分以外の本来検索する必要の
無い他の項目以外の部分も検索するために、検索時間が
かかるという問題点、及びデータ自体を複製するため
に、データを記憶する図示しない外部記憶装置の記憶領
域を圧迫し、なおかつ元のデータ/複製されたデータに
対する更新事項が複製されたデータ/元のデータに反映
されないという問題点がある。
【0008】本発明は、このような実情に鑑みてなされ
たもので、可変長データを含むテキストファイルよりデ
ータ形式の定義情報に従って、索引情報あるいは検索情
報を保持する補助ファイル群を予め生成することで、検
索時間の大幅な短縮を図ること、それと同時に、補助フ
ァイルの使用による弊害の1つである保守性の悪さを可
能な限り回避し、その結果として、利用者の使い勝手の
向上を図るようにした可変長データの格納方法及び検索
装置を提供することを目的としている。
【0009】
【課題を解決するための手段】本発明は、上記目的を達
成するために、(1)複数の可変長項目の集合体である
可変長データを格納する少なくとも1つのデータファイ
ルと、該データファイルと1対1の対応関係を持ち、各
データの各項目のファイル中の位置情報を保持する索引
情報ファイルと、可変長データの存在場所を示す検索情
報を保持する少なくとも1つの検索情報ファイルと、デ
ータの項目の定義を含むデータベースの定義を保持する
1つのデータベース定義ファイルと、データベースの検
索,出力手段であって、前記可変長項目が、可変長項目
本体と、該可変長項目本体の直前に位置し、該可変長項
目本体の属性を規定する項目識別子と、前記可変長項目
本体の直後に位置し、該可変長項目本体の終了位置を規
定する項目終了識別子より構成され、前記可変長項目を
構成する個々の文字が通常のテキストファイルにみられ
る文字であること、更には、(2)前記可変長項目の構
成に加えて、データファイルの先頭あるいは末尾あるい
は各項目の項目終了識別子と項目識別子の間に位置する
検索の対象とならない不定長の付属データを含むこと、
更には、(3)前記(1)又は(2)において、前記索
引情報ファイルは、データファイル中の各項目の位置情
報に加えて、各データのファイル中での行番号であるフ
ァイル先頭からの改行コードの数を保持すること、更に
は、(4)前記(1),(2)又は(3)において、前
記検索情報ファイルは、各データファイル及び索引情報
ファイルと1対1に対応するデータ集合ファイルと、登
録されている全データの情報を保持する母集合ファイル
と、主要な検索テーマに応じて設定される不特定多数の
中間集合ファイルと、ユーザの問い合わせにつれて生
成,消滅をするユーザ集合ファイルからなること、更に
は、(5)前記(1)〜(4)のいずれかにおいて、前
記データベース定義ファイルは、データの項目の定義に
加えて、母集合ファイルより前記中間集合ファイルを生
成する中間集合生成式を保持すること、或いは、(6)
複数の可変長項目の集合体である可変長データを格納す
る少なくとも1つのデータファイルと、前記データファ
イルと1対1の対応関係を持ち、各データの各項目のフ
ァイル中の位置情報を保持する索引情報ファイルと、可
変長データの存在場所を示す検索情報を保持する少なく
とも1つの検索情報ファイルと、データの項目の定義を
含むデータベースの定義を保持する1つのデータベース
定義ファイルとからなるファイル群を格納する外部記憶
装置と、検索動作を行う中央処理装置と、ユーザからの
質問を受け付けあるいは回答を出力する端末より構成さ
れる可変長データの検索装置において、前記中央処理装
置内に規定の書式に整形されたテキストファイルから対
応する索引情報ファイルと検索集合ファイルを生成する
補助ファイル生成手段を備えること、更には、(7)前
記(6)において、前記補助ファイル生成手段に加え
て、母集合ファイルを更新する母集合ファイル更新手段
を備えること、更には、(8)前記(6)又は(7)に
おいて、前記データベース定義ファイルの中間集合生成
式に従い、中間集合より中間集合ファイルを更新する中
間集合更新手段を備えること、更には、(9)前記
(6),(7)又は(8)において、前記検索情報ファ
イル中の任意のデータに関する情報をもとに、対応する
データファイル中の可変長データの更新を行い、さらに
更新されたデータファイルより索引情報ファイルを再構
成するデータファイル更新手段を備えること、更には、
(10)前記(6)〜(9)のいずれかにおいて、前記
データベース定義ファイルを更新し、更新されたデータ
ベース定義ファイルより索引情報ファイルを再構成する
データベース定義更新手段を備えることを特徴とするも
のである。
【0010】
【作用】可変長データを格納するデータファイルより、
各項目の索引情報を予め抽出しておくことで、検索対象
のデータを直接取り出すことができる。また、各データ
及びその索引情報と検索情報を分離して管理することに
より、母集合,中間集合,データ集合,ユーザ集合を同
一のプログラムで生成,編集,消滅の処理をすることが
できる一方、データベースの定義が変更された場合で
も、索引情報の再構築のみでデータベースの再使用が可
能となる。また、データベース定義ファイルに中間集合
ファイルの検索式を保持するようにしたので、データの
登録時に中間集合ファイルを自動的に更新することが可
能になる。さらに、索引情報ファイルに各データの行番
号を保持するようにしたので、データの更新時に迅先に
目的データを呼び出すことができる。
【0011】
【実施例】実施例について、図面を参照して以下に説明
する。図1は、本発明による可変長データの検索装置の
一実施例を説明するための構成図で、図中、1は外部記
憶装置、2は中央処理装置、3は端末、4は印字装置で
ある。外部記憶装置1は、図2に示すデータベースの諸
ファイルを格納する。中央処理装置2は、図8に示す内
部構造を有しており、外部記憶装置1の各ファイルを参
照して実際に検索を行う。端末3は、少なくともテキス
ト画面とキーボードを備え、ユーザからの質問を受け付
け、あるいは前記中央処理装置2で行った検索結果をユ
ーザに知らせる。印字装置4は、最終的に検索結果を印
字する。
【0012】外部記憶装置1に格納される可変長データ
及びその検索のための補助ファイル群の構成を図2に示
す。図2において、11はk個の項目名をl(小文字の
エル)個のマクロ置換式とm個の中間ファイル生成式を
格納するデータベース定義ファイル、12は1中の全登
録データの検索情報を保持する母集合ファイル、13l
〜13nは複数の書式化されたテキストファイルである
n個のデータファイル群、14l〜14nは13l〜13n
と1対1に対応するn個の索引情報ファイル、15l〜
15nは14l〜14nと同様の対応関係を持つn個のデ
ータ集合ファイル、16l〜16nは11中の中間集合生
成式により12から導かれた中間集合ファイル、17o
〜17xはユーザの質問により生成,消滅し、検索履歴
を保持するユーザ集合ファイルである。以下、図3〜図
7を用いて前記ファイル群の構造及び「書籍データベー
ス」として実施した場合の1例を示す。
【0013】図3(a),(b)は、データベース定義
ファイルの書式(図(a))及び例(図(b))である書籍
データベース定義ファイル“SHOSEKI.RAT”である。デ
ータベース定義ファイルはテキストファイルである。例
の場合には、第1行“#RAT”が項目定義開始マーク、第
9行“#MCR”がマクロ定義開始マーク、第18行“#TD
B”が中間集合定義開始マーク、第20行“#END”が定
義終了マークとなっている。すなわち、項目数は7項
目、マクロ定義数は8、中間集合定義数は1となってい
る。
【0014】図4(a),(b)は、データファイル1
3nの書式(図(a))及び例(図(b))“OHX_9205.DA
T”のダンプリスト(抜粋)である。なお、ダンプリス
トとは、表示不可能な文字コードを含むファイルの内容
を可視的に表示する場合に用いられる表示形式の代表的
なものであると同時に、ファイルに含まれる各文字の位
置を明確に記述し得る数少ない表示形式でもある。各行
の左端の8桁の英数字がファイル中の位置を16進表記
で、中間の16個の2桁の英数字が各文字の文字コード
を16進表記で、それに続く文字列の切れ端が、先の1
6文字のうち、表示可能な文字を表示した場合の文字列
を表す形式である。例においては、位置00000000(以
後、末尾4桁のみ記載)から0029までが注釈、002C〜00
3lがデータ1の項目名1、0032〜004Bがデータ1の項目
1、0050〜0055がデータ1の項目名2、0056〜005Bがデ
ータ1の項目2、(中略)、00D0〜00D5がデータ2の項目
名1、00D6〜00EFがデータ2の項目1、(以下略)を示し
ている。
【0015】図5(a),(b)は、索引情報ファイル
14nの書式(図(a))及び例(図(b))“OHX_9205.
IDX”のダンプリスト(抜粋)である。例において、000
0〜0071がデータベース名照合用のデータベース定義フ
ァイル名、0081〜001Bが対応するデータファイル“OHX
_9205.DAT”中に存在するデータの総数、001C〜001F
がデータ1の項目1の位置情報、(中略)、0034〜0037が
データ1の項目7の位置情報、0038〜003Bがデータ1の
項目7の行番号、003C〜003Fがデータ2の項目1の位置
情報、(以下略)となっている。
【0016】図6(a),(b)は、母集合ファイル1
2,データ集合ファイル15n,中間集合ファイル16
m,ユーザ集合ファイル17xとして、外部記憶装置中に
存在する検索情報ファイルの書式(図(a))及び例(図
(b))“KAGEYAMA.TDB”のダンプリストである。例に
おいて、0000〜0017がデータベース名照合用のデータベ
ース定義ファイル名、0018〜001Bが本検索情報ファイル
中に存在する情索情報の総数、001C〜0033が検索情報1
の索引情報ファイル名、0034〜0037が前記索引情報ファ
イル中でのデータ番号であり、001C〜0037で可変長デー
タの存在場所を明確に示すことが可能になる。0038〜00
4Fが検索情報2の索引情報ファイル名、0050〜0053が同
データ番号、(以下略)である。なお、検索情報3(0070
〜008B)に見られるように、複数のデータファイルにま
たがる検索情報ファイルが存在することも可能である。
【0017】図7(a)〜(c)は、前記図4〜図6の
もとめとして、中間集合ファイル“KAGEYAMA.TDB”の
最初の検索情報から対応する可変長データを参照するま
での様子を示したものである。図7において、矢印は参
照(検索情報ファイルから索引情報ファイルへはデータ
番号による、索引情報ファイルからデータファイルへは
位置情報による)を、白枠はデータ番号あるいは位置情
報を、黒枠は参照されるファイルの位置を示している。
【0018】図8は、中央処理装置の内部構造を示す図
で、図中、201は中央処理装置2内部の各回路からさ
まざまなデータの1時保管用として使用される内部記憶
装置、202は各回路からの内部記憶装置201に対す
る記憶領域の要求を調停し、記憶領域の確保と開放を行
うメモリマネージャ、203は外部記憶装置1中に格納
されるファイルを読み書きするために使用される外部記
憶装置インターフェース、204は通常表記の論理式に
対してマクロ展開及び逆ポーランド変換を行う式変換回
路、205は一般に「クイックソート」として知られる
高速な整列アルゴリズムを用いて、外付けの比較回路と
整列対象の1データあたりの長さとデータ数に従って任
意データの整列を行う汎用整列回路、206は2つのI
D行の大きさを比較する汎用整列回路205の外付け比
較回路として使用されるID行比較回路、210は適正
な書式のテキストファイルより対応する索引情報ファイ
ルとデータ集合ファイルを生成する補助ファイル生成回
路、211は内部記憶装置201上のデータ集合に対し
て、そのID項目である第1項目をキーとして整列を行
う集合整列回路である。
【0019】また、212は指定されたデータ集合ファ
イルより母集合ファイルと中間集合ファイルを更新する
集合ファイル更新回路、213は内部記憶装置201上
のデータ集合及び式変換回路204により変換処理の済
んだキーワード検索式よりキーワード検索を行い、内部
記憶装置201上の第2のデータ集合に結果を残すキー
ワード検索回路、214〜216は内部記憶装置201
上の第1及び第2のデータ集合の論理和/論理積/論理
否定を求め、第3のデータ集合にその結果を残す集合間
論理(和/積/否定)回路、217はユーザの入力した
録理式に従って集合間演算を行う集合間演算回路、21
8は指定された検索情報を含むデータファイルを関連す
る索引情報ファイル及び検索集合ファイル群を含めて更
新するデータファイル更新回路、219はデータベース
定義ファイルと関連するファイル群の更新を行うデータ
ベース定義更新回路、297は201〜299を相互に
接続するデータバス、299は中央処理装置2全体を制
御する制御回路である。
【0020】内部記憶装置201〜ID行比較回路20
6については本発明の主要な部分ではないので、これ以
上は説明しないが、以下の補助ファイル生成回路210
〜データベース定義更新回路219の説明において、内
部記憶装置201中の各記憶領域は適当なタイミングで
メモリマネージャ202により確保され、使用後廃棄さ
れる性質のものであり、又、ファイルに対する読み書き
を伴う場合には、適当なタイミングで外部記憶装置イン
ターフェース203が使用されており、さらに、検索式
はすでに式変換回路204によるマクロ展開,エラーチ
ェック,逆ポーランド変換を済ませているものとする。
【0021】図9は、補助ファイル生成回路の内部構成
を示す図で、図10は、その動作手順を示すフローチャ
ートである。図9において、内部記憶装置201中に
は、処理を行う適当な書式を持つテキストファイルの名
前を表す文字列であるテキストファイル名M1と、テキ
ストファイルよりデータを1行ずつ読み込むのに使用さ
れる行メモリM2と、データ1件分の索引情報を保持す
る索引情報メモリM3と、データ1件分の検索情報ある
いは索引情報/検索情報ファイルの先頭に付加されるヘ
ッダ部を保持するヘッダメモリM4と、項目識別子とし
て作用する項目名を保持する文字列型配列である項目名
メモリM5と、一度生成した検索情報ファイル全体を整
列のために読み込むときに使用される検索情報メモリM
6が確保される。又、補助ファイル生成回路210の内
部には、テキストファイルの現在までの位置情報を保持
する位置レジスタ,物理行番号を保持する行カウンタ,
現在探している項目の番号を保持する項目カウンタ,現
在までに発見したデータの数を保持する登録件数カウン
タからなるレジスタ群が存在する。
【0022】図10は、補助ファイル生成回路の動作手
順を示すフローチャートである。最初にM1より対応す
る索引情報ファイル名及びデータ集合ファイル名が生成
され、その名前でファイルが作られる。次に、図示しな
いデータベース定義ファイル名とデータ番号0からなる
ダミーヘッダがM4に生成され、索引情報ファイル及び
データ集合ファイルに書き込まれる(S1)。次に、補助
ファイル生成回路210内部のレジスタ群を0で初期化
する(S2)。次に、テキストファイルが終わりに達する
まで、以下の作業を行う(S3)。最初にファイルの現在
位置を位置レジスタに代入し、M2に1行読み込み、行
カウンタを1増やす(S4)。次に、M2の先頭部分と項
目カウンタ番目の項目名を比較し(S5)、一致した場合
には、項目カウンタ番目の索引情報メモリに位置レジス
タの内容を格納し、項目カウンタを1増やし(S6)、項
目カウンタが図示しない最大項目数と一致した場合には
(S7)、行カウンタをM6の行情報記憶領域に、索引情
報ファイル名と登録件数カウンタをM4にそれぞれ格納
し、M6を索引情報ファイルに、M4をデータ集合ファ
イルに追加し、登録件数カウンタを1増やし、項目カウ
ンタを0に初期化する(S8)。テキストファイルが終わ
りに達していた場合には(S3)、データベース定義ファ
イル名と登録件数カウンタからなる実ヘッダをM4に生
成し、索引情報ファイル,データ集合ファイルの先頭部
分に書き込む(S9)。次に、M3にデータ集合ファイル
全体を読み込み(S10)、図11に示す集合整列回路2
11によりID項目である第1項目をキーとして、昇順
に整列した上でデータ集合ファイルに書き戻す(S1
1,S12)。以上で、補助ファイル生成回路210の
動作は終了する。
【0023】図11は、集合整列回路の内部構成を示す
図で、図12は、その動作手順を示すフローチャートで
ある。図11において、内部記憶装置201中には、整
列対象の検索情報配列を格納する検索情報メモリM1
と、M1の各検索情報の第1項目と、通し番号からなる
ID行の配列を格納するID行メモリM2が確保され
る。又、集合整列回路211の内部には、整列対象の検
索情報の件数を保持する件数レジスタが存在する。
【0024】図12は、集合整列回路の動作手順を示す
フローチャートである。最初にM1のヘッダ部に記録さ
れている件数を件数レジスタ代入する(S1)。次に、M
1の各検索情報の第1項目をM2に読みだし(S2)、M
2の各要素に対して通し番号を付ける(S3)。次に、比
較回路としてID行比較回路206を、整列件数として
件数レジスタの内容を1件の大きさとしてID行の大き
さを指定して、汎用整列回路205をM2に対して作用
させ、整列させる(S4)。最後に、M1中の検索情報を
M2に付与した通し番号によってM2と同じ順序に整列
する(S5)。以上で、集合整列回路211の動作は終了
する。
【0025】図13は、集合ファイル更新回路の内部構
成を示す図で、図14は、その動作手順を示すフローチ
ャートである。図13において、内部記憶装置201中
には、更新対象の検索情報ファイル全体を読み込む更新
集合メモリM1と、更新後の検索情報を格納する更新結
果メモリM2と、母集合/中間集合に新たに追加される
検索情報を保持するデータ集合メモリM3と、中間集合
の定義情報の配列である中間集合定義M4と、中間集合
ファイル名の配列である中間集合名M5と、M4の各定
義によってM3により導かれる各中間集合ファイルの追
加分を格納する部分集合メモリM6が確保される。又、
集合ファイル更新回路212の内部には、現在更新中の
中間集合ファイルの番号を保持する中間集合カウンタが
存在する。
【0026】図14は、集合ファイル更新回路の動作手
順を示すフローチャートである。最初にM1に母集合フ
ァイルを読み込み(S1)、図17に示す集合間論理和回
路によりM1とM3の論理和をM2に求め(S2)、M2
を母集合ファイルに書き戻し、母集合ファイルの更新を
行う(S3)。次に、中間集合カウンタを0で初期化し
(S4)、中間集合カウンタが中間集合の定義数より小さ
い間、次の動作を繰り返す(S5,S6)。最初に図15
に示すキーワード検索回路を用いて、M3の中で中間集
合カウンタ番目のM4とマッチする検索情報をM6に抽
出する。次に、中間集合カウンタ番目のM5の全検索情
報をM1に読み込み(S7)、図17に示す集合間論理和
回路によりM1とM6の論理和をM2に求め(S8)、M
2を中間集合カウンタ番目のM5に書き戻す(S9,S
10)。以上で、集合ファイル更新回路212の動作は
終了する。
【0027】図15は、キーワード検索回路213の内
部構成を示す図で、図16は、その動作手順を示すフロ
ーチャートである。図15において、内部記憶装置20
1中には、検索元の検索情報の配列を保持する検索元メ
モリM1と、検索後の検索情報の配列を保持する検索後
メモリM2と、検索中のデータの索引情報を格納する索
引情報メモリM3と、検索中のデータの各項目のうち、
必要な物を格納するデータ格納メモリM4と、個々のキ
ーワードのデータの中の有無を保持する中間結果スタッ
クM5と、検索すべきキーワードの逆ポーランド記法の
式を保持するキーワードリストM6が確保される。又、
キーワード検索回路213の内部には、検索元の件数を
保持する件数レジスタ1と、検索に成功した件数を格納
する件数レジスタ2と、現在検索中の検索情報の番号を
格納する件数カウンタと、現在検索中のキーワードある
いは演算子を格納する検索項目レジスタからなるレジス
タ群が存在する。
【0028】図16は、キーワード検索回路の動作手順
を示すフローチャートである。最初に、M1の件数を件
数レジスタ1に取り出し(S1)、M2を消去し、件数レ
ジスタ2を0で初期化する(S2)。次に、件数カウンタ
を0から件数レジスタl−l(小文字のエル)まで変化
させながら(S3)、各検索情報について以下の処理を行
う。最初に、現在の検索情報に対応する索引情報をM3
に読み込む(S4)。次に、M4及びM5を消去し、検索
項目レジスタをM6の先頭に再設定する(S5)。次に、
検索項目レジスタを検索項目あるいは演算子単位でM6
を走査させ、M6の終わりに達するまで次の処理を行う
(S6,S7)。現在の検索項目レジスタの内容が演算
子だった場合には(S8)、M5より中間結果を2つ取り
出して、その2つに対して規定の演算(論理和/論理積
/論理否定)を行い、その結果をM5に積む(S9,S
10)。
【0029】現在の検索項目レジスタの内容がキーワー
ドと項目からなる検索項目だった場合には(S8)、必要
に応じてその項目をM4に読み込み、項目中のキーワー
ドの有無に応じた結果をM5に積む(S11,S12)。
M6の終わりに達した場合には、M5の結果に応じて検
索成功の場合には(S13)、M2に現在の検索情報を追
加し(S14)、件数レジスタを1増やす(S15)。M1
に含まれる全検索情報についての処理が終了後、件数レ
ジスタ2をM2内の件数保持部に書き込み(S16)、キ
ーワード検索回路213の動作は終了する。
【0030】図17は、集合間論理和回路の内部構成を
示す図で、図18は、その動作手順を示すフローチャー
トである。図17において、内部記憶装置201中に
は、演算元の2つの検索情報配列を保持する検索情報メ
モリA/B M1/2と、M2のID行全部を格納するID行
メモリM3と、M1のある1行を読み込む行メモリM4
と、結果を格納する検索情報メモリC M5が確保され
る。又、集合間論理和回路214の内部には、M1/M2/
M5 の件数を保持する件数レジスタA/B/Cと、現在
処理中の検索情報の番号を保持する件数カウンタからな
るレジスタ群が存在する。
【0031】図18は、集合間論理和回路の動作手順を
示すフローチャートである。最初に、M1及びM2の件
数を件数レジスタA/Bに取り出し(S1)、件数レジス
タA<件数レジスタB の場合には(S2)、M1とM2
および件数レジスタAと同Bを入れ替える(S3)。次
に、M2をM5に、件数レジスタBを同Cに複写し(S
4)、M2の全検索情報の第1項目をM3に読み込む(S
5)。次に、件数カウンタを0から件数レジスタA−1
まで変化させながら、M1の各検索情報について、以下
の処理を行う(S6)。最初に、処理中の検索情報の第
1項目をM4に読み込む(S7)。次に、M3中にM4と
同一の項目があるかどうかを調べ(S8)、無かった場合
には、処理中の検索情報をM5に加え(S9)、件数カウ
ンタCを1増やす(S10)。M1中の全検索情報の処理
の終了後、件数レジスタCをM5内の件数保持部に書き
込み(S11)、図11の集合整列回路を用いてM5を整
列する(S12)。以上で、集合間論理和回路214の動
作は終了する。
【0032】図19は、集合間論理積回路の内部構成を
示す図で、図20は、その動作手味を示すフローチャー
トである。図19において、内部記憶装置201中に
は、演算元の2つの検索情報配列を保持する検索情報メ
モリA/B M1/2と、M2のID行全部を格納するID行
メモリM3と、M1のある1行を読み込む行メモリM4
と、結果を格納する検索情報メモリC M5が確保され
る。又、集合間論理積回路215の内部には、M1/M
2/M5の件数を保持する件数レジスタA/B/Cと、
現在処理中の検索情報の番号を保持する件数カウンタか
らなるレジスタ群が存在する。
【0033】図20は、集合間論理積回路の動作手順を
示すフローチャートである。最初に、M1及びM2の件
数を件数レジスタA/Bに取り出し(S1,S2)、件数
レジスタA<件数レジスタB の場合には(S3)、M1
とM2および件数レジスタAと同Bを入れ替える(S
4)。次に、M5を消去し、件数レジスタ同Cを0で初
期化し(S5)、M2の全検索情報の第1項目をM3に読
み込む(S6)。ここで、件数レジスタBが0の場合に
は、集合間論理積回路215の動作を終了する。次に、
件数カウンタを0から件数レジスタA−1まで変化させ
ながら(S7)、M1の各検索情報について以下の処理を
行う。最初に、処理中の検索情報の第1項目をM4に読
み込む(S8)。次に、M3中にM4と同一の項目がある
かどうかを調べ(S9)、あった場合には、処理中の検索
情報をM5に加え(S10)、件数カウンタCを1増やす
(S11)。M1中の全検索情報の処理の終了後、件数レ
ジスタCをM5内の件数保持部に書き込む(S12)。以
上で、集合間論理積回路215の動作は終了する。
【0034】図21は、集合間論理否定回路の内部構成
を示す図で、図22は、その動作手順を示すフローチャ
ートである。図21において、内部記憶装置201中に
は、演算元の2つの検索情報配列を保持する検索情報メ
モリA/B M1/2と、M2のID行全部を格納するID行
メモリM3と、M1のある1行を読み込む行メモリM4
と、結果を格納する検索情報メモリC M5が確保される。
又、集合間録理否定回路216の内部には、M1/M2
/M5の件数を保持する件数レジスタA/B/Cと、現
在処理中の検索情報の番号を保持する件数カウンタから
なるレジスタ群が存在する。
【0035】図22は、集合論理否定回路の動作手順を
示すフローチャートである。最初にM1及びM2の件数
を件数レジスタA/Bに取り出し(S1,S2)、件数レ
ジスタB=0の場合には(S3)、M1をM5に複写し
(S4)、動作を終了する。件数レジスタB>0であった
場合には(S3)M5を消去し、件数レジスタCを0で初
期化し、M2の全検索情報の第1項目をM3に読み込む
(S5)。次に、件数カウンタを0から件数レジスタA−
1まで変化させながら(S6)、M1の各検索情報につい
て、以下の処理を行う。最初に、処理中の検索情報の第
1項目をM4に読み込む(S7)。次に、M3中にM4と
同一の項目があるかどうかを調べ(S8)、なかった場合
には、処理中の検索情報をM5に加え(S9)、件数カウ
ンタCを1増やす(S10)。M1中の全検索情報の処理
の終了後、件数レジスタCをM5内の件数保持部に書き
込む(S11)。以上で、集合間論理否定回路216の動
作は終了する。
【0036】図23は、集合間演算回路の内部構成を示
す図で、図24は、その動作手順を示すフローチャート
である。図23において、内部記憶装置201中には、
複数の検索情報の配列先入れ後だし(LIFO)方式で格納
する検索情報スタックM1と、逆ポーランド記法で記述
された演算式を保持する検索式M2が確保される。又、
集合間演算回路217の内部には、現在処理中の検索項
目あるいは演算子を保持する検索項目レジスタが存在す
る。
【0037】図24は、集合間演算回路の動作手順を示
すフローチャートである。最初に、M1を消去し(S
1)、M2の各項目あるいは演算子について検索項目レ
ジスタを用いて順次走査し、以下の処理を行う(S2)。
最初に、M2より項目あるいは演算子を検索項目レジス
タに1つ取り出し(S3)、それが演算子であった場合に
は(S4)、M1より検索集合を2つ取り出し、演算子に
対応する集合間論理(和/積/否定)回路(図17/図19
/図21)を用いて論理演算を行い、結果をM1に積み
(S5)、検索項目レジスタが演算子でなかった場合に
は、それを検索情報ファイル名とする検索情報を読み込
み、M1に積む(S6)。M2の走査の終了をもって、集
合間演算回路217の動作は終了する。
【0038】図25は、データファイル更新回路の内部
構成を示す図で、図26(a),(b)は、その動作手
順を示すフローチャートである。図25において、内部
記憶装置201中には、更新するデータファイルと対応
する検索情報を含む検索情報の配列である検索情報メモ
リM1と、更新前後のデータファイルと対応する索引情
報ファイルを読み込む索引情報メモリM2と、更新前の
データファイルの各データの第1項目の配列を格納する
ID行メモリA M3と、更新後のデータファイルの各デー
タの第1項目の配列を格納するID行メモリB M4が確保
される。又、データファイル更新回路218の内部に
は、M1での更新するデータに対応する検索情報の番号
を保持するデータ番号レジスタと、更新するデータに対
応する索引情報中の行番号情報を保持する行番号レジス
タからなるレジスタ群が存在する。
【0039】図26(a),(b)は、データファイル
更新回路の動作手順を示すフローチャートである。最初
に、M2に更新するデータに対応する索引情報ファイル
を読み込み(S1)、更新するデータに対応する索引情報
よりデータの行番号を行番号レジスタに取り出す(S
2)。次に、M2に格納されている第1項目の索引情報
をもとに更新するデータファイルの全データの第1項目
をM3に読み込む(S3)。次に、データファイルを適当
な名前の一時ファイルに複写し、行番号レジスタの内容
を編集開始行番号として、一時ファイルをテキストエデ
ィタで編集する(S4)。次に、編集後の一時ファイルよ
り対応する索引情報ファイル及びデータ集合ファイルを
補助ファイル生成回路(図9)を用いて生成する(S5)。
【0040】次に、一時ファイルより生成した索引情報
ファイルをM2に読み込み(S6)、M2に従って一時フ
ァイルの全データの第1項目をM4に読み込む(S7)。
次に、M3とM4を比較し(S8)、まったく同一である
場合、すなわち、データファイルの更新前後でデータの
追加,削除,順序変更あるいは第1項目の更新が行われ
ていない場合に限って、更新前のデータファイルと索引
情報ファイルを削除し(S9)、一時ファイルと対応する
索引情報ファイルの名前を先に削除したデータファイル
と対応する索引情報ファイルの名前に変更することで、
データの更新を反映させる(S10)。最後に、一時ファ
イルより生成したデータ集合ファイルを削除して(S1
1)、データファイル更新回路218の動作は終了す
る。
【0041】図27は、データベース定義更新回路の内
部構成を示す図で、図28は、その動作手順を示すフロ
ーチャートである。図27において、内部記憶装置20
1中には、項目名文字列の配列である項目定義メモリM
1と、マクロ定義文字列の配列であるマクロ定義メモリ
M2と、更新前の中間集合の定義式を保持する中間集合
定義メモリA M3と、更新後の中間集合の定義式を保持す
る中間集合定義メモリA M4が確保される。又、データベ
ース定義更新回路219の内部には、中間集合ファイル
群の更新の必要性の有無を保持する更新フラグが存在す
る。
【0042】図28は、データベース定義更新回路の動
作手順を示すフローチャートである。最初に、データベ
ース定義ファイルを一時ファイルに複写し(S1)、それ
をテキストエディタで編集する(S2)。次に、一時ファ
イルの項目定義部/マクロ定義部/中間集合定義部 を
それぞれ M1/M2/M4 に読み込む(S3)。次に、
M3とM4比較し(S4)、定義内容が同一であった場合
には、更新フラグを「否」に、そうでなければ「是」に
設定する。次に、外部記憶装置1に存在する全てのデー
タファイルに対して、補助ファイル生成回路(図9)を用
いて、索引情報ファイル及びデータ集合ファイルを生成
する(S5,S6)。次に、更新フラグが「是」であった
場合には(S7)、M3で定義されている中間集合ファイ
ルを削除し(S8)、M4をM3に複写し、集合ファイル
更新回路(図13)を用いて母集合ファイル及びM4に記述
されている中間集合ファイルを生成する(S9,S1
0)。以上で、データベース定義更新回路219の動作
は終了する。
【0043】
【発明の効果】本発明は、以上説明したように構成され
ているので、以下のような効果を奏する。すなわち、可
変長データの検索装置において、可変長データを書式化
されたテキストファイルであるデータファイルに格納
し、加えてそれと1対1に対応する索引情報ファイル
と、必ずしも1対1には対応しない検索情報ファイルの
2種類の補助ファイルを用いることにより、データの検
索速度を大きく短縮することが可能となり、しかも補助
ファイル群の保守を自動化する手段が検索装置に完備さ
れているために、ユーザが煩雑な保守を行う必要がな
い。
【図面の簡単な説明】【図1】本発明による可変長データの検索装置の一実施
例を説明するための構成図である。
【図2】図1の外部記憶装置に格納されるデータベース
を構成するファイル群を示す図である。
【図3】図2におけるデータベース定義ファイルの書式
及び実施例を示す図である。
【図4】図2におけるデータファイルの書式及び実施例
を示す図である。
【図5】図2における索引情報ファイルの書式及び実施
例を示す図である。
【図6】図2における検索情報ファイルの書式及び実施
例を示す図である。
【図7】図2における検索情報ファイル,索引情報ファ
イル及びデータファイルの参照状態の例を示す図であ
る。
【図8】図1の中央処理装置の構成図である。
【図9】図8における補助ファイル生成回路の構成図で
ある。
【図10】図8における補助ファイル生成回路の動作手
順を示すフローチャートである。
【図11】図8における集合整列回路の構成図である。
【図12】図8における集合整列回路の動作手順を示す
フローチャートである。
【図13】図8における集合ファイル更新回路の構成図
である。
【図14】図8における集合ファイル更新回路の動作手
順を示すフローチャートである。
【図15】図8におけるキーワード検索回路の構成図で
ある。
【図16】図8におけるキーワード検索回路の動作手順
を示すフローチャートである。
【図17】図8における集合間論理和回路の構成図であ
る。
【図18】図8における集合間論理和回路の動作手順を
示すフローチャートである。
【図19】図8における集合間論理和回路の構成及び動
作手順の構成図である。
【図20】図8における集合間論理和回路の構成及び動
作手順を示すフローチャートである。
【図21】図8における集合間論理否定回路の構成及び
動作手順の構成図である。
【図22】図8における集合間論理否定回路の構成及び
動作手順を示すフローチャートである。
【図23】図8における集合間論理演算回路の構成及び
動作手順の構成図である。
【図24】図8における集合間論理演算回路の構成及び
動作手順を示すフローチャートである。
【図25】図8におけるデータファイル更新回路の構成
及び動作手順の構成図である。
【図26】図8におけるデータファイル更新回路の構成
及び動作手順を示すフローチャートである。
【図27】図8におけるデータベース定義更新回路の構
成及び動作手順の構成図である。
【図28】図8におけるデータベース定義更新回路の構
成及び動作手順を示すフローチャートである。
【図29】従来例1を説明するための図である。
【図30】従来例2を説明するための図である。
【図31】従来例3を説明するための図である。
【符号の説明】 1…外部記憶装置、2…中央処理装置、3…端末、4…
印字装置。