(57)【要約】【課題】高速で高価なコンピュータ等を用いることなく、検索に多大の時間を要しないで検索することが可能なデータベース構築方法及びデータベース装置を提供する。【解決手段】登録データの並びを数値化し、前記数値化により得られた数値をインデックス参照メモリのアドレスとし、前記インデックス参照メモリの当該アドレスに登録データを格納しているデータ登録メモリのアドレスを格納する。これによって、検索時には、インデックス参照メモリの前記アドレスを参照することにより、直ちに検索対象（登録データ）を格納しているデータ登録メモリのアドレスを知ることが可能になる。【選択図】      図１
2004318349.tif 000002
【特許請求の範囲】
【請求項１】
登録データをデータ登録メモリに格納する第１のステップと、
前記登録データの並びを数値化する第２のステップと、
第１のステップにおいて得られた数値をインデックス参照メモリのアドレスとする第３のステップと、
前記インデックス参照メモリのアドレスに前記登録データを格納しているデータ登録メモリのアドレスを格納する第４のステップと
から構成されることを特徴とするデータベース構築方法。
【請求項２】
請求項１記載のデータベース構築方法において、
前記データ登録メモリにデータを登録するとき、データ登録メモリのカレントアドレスを記憶することを特徴とするデータベース構築方法。
【請求項３】
請求項１又は請求項２記載のデータベース構築方法において、
前記インデックス参照メモリのアドレスに、前記データ登録メモリにおいて登録データが削除されたり、データが未登録であることを識別するための特定のデータを格納することを特徴とするデータベース構築方法。
【請求項４】
請求項３記載のデータベース構築方法において、
前記削除されたデータ登録メモリのアドレスを記憶することを特徴とするデータベース構築方法。
【請求項５】
請求項１乃至請求項４の何れか一つに記載のデータベース構築方法において、
登録データが長い文字列のデータである場合、前記インデックス参照メモリを複数個設け、前記長い文字列を数値化して得た数値を分割し、分割された各数値を各インデックス参照メモリのアドレスとして用いて、前記登録データを格納しているアドレスを特定することを特徴とするデータベース構築方法。
【請求項６】
登録データの並びを数値化する演算部と、
前記登録データを格納するデータ登録メモリと、
前記数値化して得られた数値をアドレスとし、該アドレスに前記登録データを格納しているデータ登録メモリのアドレスを格納しているインデックス参照メモリと
から構成されることを特徴とするデータベース装置。
【請求項７】
請求項６記載のデータベース装置において、
前記データ登録メモリにデータを登録するとき、データ登録メモリのカレントアドレスを記憶することを特徴とするデータベース装置。
【請求項８】
請求項６又は請求項７記載のデータベース装置において、
前記インデックス参照メモリのアドレスに、前記データ登録メモリにおいて登録データが削除されたり、データが未登録であることを識別するための特定のデータを格納することを特徴とするデータベース装置。
【請求項９】
請求項８記載のデータベース装置において、
前記削除されたデータ登録メモリのアドレスを記憶することを特徴とするデータベース装置。
【請求項１０】
請求項６乃至請求項９の何れか一つに記載のデータベース装置において、
登録データが長い文字列のデータである場合、前記インデックス参照メモリを複数個設け、前記長い文字列を数値化して得た数値を分割し、分割された各数値を各インデックス参照メモリのアドレスとして用いて、前記登録データを格納しているアドレスを特定することを特徴とするデータベース装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータベース構築方法及びデータベースに関するものであり、特に膨大なデータをデータベース化した場合でも、高速にデータ検索するのに好適なデータベース構築方法及びデータベース装置に関する。
【０００２】
【従来の技術】
従来のデータ検索処理について説明する。図８は、従来のデータ検索処理の一例を示す説明図である。この従来例は、ＡＢＣの３文字種を用いて３文字数で文字列表現したものを検索するものである。この場合、最大組合せ数は２７（最大組合せ数＝文字種文字数＝３３）となる。
【０００３】
例えば、文字列「ＢＣＡ」が図８に示すテーブルに存在しているかを検索するとき、文字列の最大組合せ数２７（ＡＡＡ，ＡＡＢ，ＡＡＣ，……，ＣＣＢ，ＣＣＣ）の全てがテーブルに設定されているとする。この場合、テーブルの先頭から設定されている文字列を順次読み出して、読出された文字列と検索する文字列「ＢＣＡ」の比較動作を行う（特許文献１参照）。
【０００４】
図８に示す従来例では、１６番目に文字列「ＢＣＡ」が設定されているので、比較結果が真となり、１６回の比較で検索が完了する。しかし、文字列「ＢＣＡ」が設定されていない場合には、最後の２７番目まで読出処理と比較処理が実行される。
図８に示す従来例では、最大検索処理回数＝最大組合せ数となる。この例では前記したように、最大組合せ数＝文字種文字数＝３３＝２７である。
【０００５】
そのため、文字種が１種増えた場合（Ａ〜Ｄ）には、文字種文字数＝４３＝６４と最大検索処理回数が増加する。
また、文字数が１文字増えた（３桁から４桁）場合には、文字種文字数＝３４＝８１と最大検索処理回数が増加する。この場合、前記した文字種が１種増えた場合（Ａ〜Ｄ）より増加分が大きい。
【０００６】
従来例において、０〜９までの数字で１０桁の数字列の検索を実施する場合の最大処理回数は、文字種文字数＝１０１０＝１０，０００，０００，０００回（１００億回）となる。
また、Ａ〜Ｚまでの英字１０桁の場合には、文字種文字数＝２６１０＝１４１，１６７，０９５，６５３，３７６回（約１４１兆回）となり、膨大な回数の検索処理を必要とする。
【０００７】
【特許文献１】
特開昭６３−３０９３５号公報（第１頁右下欄）
【０００８】
【発明が解決しようとする課題】
前記したように、従来技術においては、文字種と文字数が増えるほど、検索に多大の時間がかかる。特に、最近では、ハードディスク装置の大容量化とともに、膨大なデータをデータベース化するケースが増えている。
【０００９】
しかし、データベースが大きくなれば検索するために多大の時間を要し、従来技術による検索では数時間かかる場合もある。
そのため、高速演算が可能な高価なコンピュータ等を用いて、検索時間の短縮を図っている。
本発明では、高速で高価なコンピュータ等を用いることなく、検索に多大の時間を要しないで検索することが可能なデータベース構築方法及びデータベース装置を提供することを目的としている。
【００１０】
【課題を解決するための手段】
請求項１記載のデータベース構築方法は、登録データをデータ登録メモリに格納する第１のステップと、前記登録データの並びを数値化する第２のステップと、第１のステップにおいて得られた数値をインデックス参照メモリのアドレスとする第３のステップと、前記インデックス参照メモリのアドレスに前記登録データを格納しているデータ登録メモリのアドレスを格納する第４のステップとから構成されることを特徴とする。
【００１１】
請求項２記載のデータベース構築方法は、請求項１記載のデータベース構築方法において、前記データ登録メモリにデータを登録するとき、データ登録メモリのカレントアドレスを記憶することを特徴とする。
請求項３記載のデータベース構築方法は、請求項１又は請求項２記載のデータベース構築方法において、前記インデックス参照メモリのアドレスに、前記データ登録メモリにおいて登録データが削除されたり、データが未登録であることを識別するための特定のデータを格納することを特徴とする。
【００１２】
請求項４記載のデータベース構築方法は、請求項３記載のデータベース構築方法において、前記削除されたデータ登録メモリのアドレスを記憶することを特徴とする。
請求項５記載のデータベース構築方法は、請求項１乃至請求項４の何れか一つに記載のデータベース構築方法において、登録データが長い文字列のデータである場合、前記インデックス参照メモリを複数個設け、前記長い文字列を数値化して得た数値を分割し、分割された各数値を各インデックス参照メモリのアドレスとして用いて、前記登録データを格納しているアドレスを特定することを特徴とする。
【００１３】
請求項６記載のデータベース装置は、登録データの並びを数値化する演算部と、前記登録データを格納しているデータ登録メモリと、前記数値化して得られた数値をアドレスとし、該アドレスに前記登録データを格納しているデータ登録メモリのアドレスを格納しているインデックス参照メモリとから構成されることを特徴とする。
【００１４】
請求項７記載のデータベース装置は、請求項６記載のデータベース装置において、前記データ登録メモリにデータを登録するとき、データ登録メモリのカレントアドレスを記憶することを特徴とする。
請求項８記載のデータベース装置は、請求項６又は請求項７記載のデータベース装置において、前記インデックス参照メモリのアドレスに、前記データ登録メモリにおいて登録データが削除されたり、データが未登録であることを識別するための特定のデータを格納することを特徴とする。
【００１５】
請求項９記載のデータベース装置は、請求項８記載のデータベース装置において、前記削除されたデータ登録メモリのアドレスを記憶することを特徴とする。請求項１０記載のデータベース装置は、請求項６乃至請求項９の何れか一つに記載のデータベース装置において、登録データが長い文字列のデータである場合、前記インデックス参照メモリを複数個設け、前記長い文字列を数値化して得た数値を分割し、分割された各数値を各インデックス参照メモリのアドレスとして用いて、前記登録データを格納しているアドレスを特定することを特徴とする。
【００１６】
本発明では、データの検索に従来のように、テーブルの先頭から登録データを読み出して、検索データと比較しながら探す必要がなく、インデックス参照メモリによって登録データの有無を判断して、登録データ有りと判断されたとき、読出しを行うため、検索に要する時間を大幅に短縮することを可能にする。
【００１７】
【発明の実施の形態】
以下、添付の図面を用いて本発明の実施の形態について説明する。
【００１８】
図１〜図５は、本発明の第１の実施の形態を示す図である。この実施の形態は、請求項１〜請求項５に記載する発明に対応する。第１の実施の形態においては、Ａ、Ｂ、Ｃの３文字種、３文字数で文字列表現する場合を例にして説明する。この場合、従来技術において述べたように、最大組合せ数＝文字種文字数＝３３＝２７となる。
【００１９】
図１に示すテーブルは、データ登録時の文字種Ａ、Ｂ、Ｃの並びを文字列番号１〜２７に変えてに番号化する例を示している。
以下、図１に示すＡ、Ｂ、Ｃの３文字種、３文字数を文字列１〜２７で表現する手法について説明する。
最初に、文字Ａ〜Ｃの並びを数値化するために、Ａ〜Ｃの各文字に値を割り付けている。この例では、Ａ＝１、Ｂ＝２、Ｃ＝３が割り付けられている。
【００２０】
次に、図１に示すテーブルの１桁目のグループ（Ａ、Ｂ、Ｃ）に対して、２桁目、３桁目を組み合わせた時、文字列番号の基点となる数の求め方を説明する。したがって、図１に示すテーブルの１桁目のグループに対して、２桁目、３桁目を組み合わせた時の基点となる数は、次のようになる。
【００２１】
１桁目の式＝文字種（文字数−１）×（Ｘ−１）………（１）
ここで、Ｘは１桁目のグループの文字に割り付けられた文字を表し、Ａ〜Ｃの文字に割り付けられた数値（Ａ＝１、Ｂ＝２、Ｃ＝３）が代入される。
１桁目がＡの場合は、文字種は３、（文字数−１）は２であり、Ｘ＝Ａ＝１であるから、次のようになる。
【００２２】
１桁目の式（Ａ）＝文字種（文字数−１）×（１−１）＝３２×０＝０
Ｘ＝Ｂ＝２の場合は、
１桁目の式（Ｂ）＝文字種（文字数−１）×（２−１）＝３２×１＝９
Ｘ＝Ｃ＝３の場合は、
１桁目の式（Ｃ）＝文字種（文字数−１）×（３−１）＝３２×２＝１８
となる。
【００２３】
したがって、１桁目のグループがＡの場合、基点として０が求められる。
また、１桁目のグループがＢの場合、基点として９が求められる。
また、１桁目のグループがＣの場合、基点として１８が求められる。
次に、図１に示すテーブルの２桁目のグループ（３組の（Ａ、Ｂ、Ｃ））に対して、３桁目を組み合わせた時、文字列番号の基点となる数の求め方を説明する。
【００２４】
図１に示すテーブルの２桁目のグループ（３組の（Ａ、Ｂ、Ｃ））に対して、３桁目を組み合わせた時の基点となる数は、次のようになる。
２桁目の式＝文字種（文字数−２）×（Ｙ−１）………（２）
ここで、Ｙは２桁目のグループの文字に割り付けられた文字を表し、Ａ〜Ｃの文字に割り付けられた数値（Ａ＝１、Ｂ＝２、Ｃ＝３）が代入される。
【００２５】
２桁目がＡの場合は、文字種は３、（文字数−２）は１であり、Ｙ＝Ａ＝１であるから、次のようになる。
２桁目の式（Ａ）＝文字種（文字数−２）×（１−１）＝３１×０＝０
Ｙ＝Ｂ＝２の場合は、
２桁目の式（Ｂ）＝文字種（文字数−２）×（２−１）＝３１×１＝３
Ｙ＝Ｃ＝３の場合は、
２桁目の式（Ｃ）＝文字種（文字数−２）×（３−１）＝３１×２＝６
となる。
【００２６】
したがって、２桁目のグループがＡの場合、基点として０が求められる。
また、２桁目のグループがＢの場合、基点として３が求められる。
また、２桁目のグループがＣの場合、基点として６が求められる。
次に、図１に示すテーブルの３桁目のグループ（９組の（Ａ、Ｂ、Ｃ））に対して、文字列番号の基点となる数の求め方を説明する。
【００２７】
したがって、図１に示すテーブルの３桁目のグループ（９組の（Ａ、Ｂ、Ｃ））において、基点となる文字列番号は、次のようになる。
３桁目の式＝文字種（文字数−３）×（Ｚ−１）………（３）
ここで、Ｚは３桁目のグループに割り付けられた文字を表し、Ａ〜Ｃの文字に割り付けられた数値（Ａ＝１、Ｂ＝２、Ｃ＝３）が代入される。
【００２８】
３桁目がＡの場合は、文字種は３、（文字数−３）は０であり、Ｚ＝Ａ＝１であるから、次のようになる。
３桁目の式（Ａ）＝文字種（文字数−３）×（１−１）＝３０×０＝０
Ｚ＝Ｂ＝２の場合は、
３桁目の式（Ｂ）＝文字種（文字数−３）×（２−１）＝３０×１＝１
Ｚ＝Ｃ＝３の場合は、
３桁目の式（Ｃ）＝文字種（文字数−３）×（３−１）＝３０×２＝２
となる。
【００２９】
したがって、３桁目のグループがＡの場合、基点として０が求められる。
また、３桁目のグループがＢの場合、基点として１が求められる。
また、３桁目のグループがＣの場合、基点として２が求められる。
以上の説明から明らかなように、Ａ、Ｂ、Ｃの３文字種、３文字数に、Ａ＝１、Ｂ＝２、Ｃ＝３を割り付けると、前記式（１）〜式（３）を加算した次の式（４）によって文字列番号が得られる。
【００３０】
文字列番号＝文字種（文字数−１）×（Ｘ−１）＋文字種（文字数−２）×（Ｙ−１）
＋文字種（文字数−３）×（Ｚ−１）＋１……（４）
式（４）において、「１」を加算しているのは、文字列番号（文字の並びを番号化）のベース値を１にするためである。
式（４）を用いて文字列番号を算出すると、算出結果は図１に示すように、１（ＡＡＡ），２（ＡＡＢ），……、２７（ＣＣＣ）となる。
【００３１】
図２は、インデックス参照メモリ４とデータ登録メモリ８を示す図であり、前記式（４）で算出された文字列番号（０００１、０００２……）をインデックス参照メモリ４のアドレスとして使用し、さらに当該アドレス（０００１、０００２……）が示すインデックス参照メモリ４の記憶エリアに、当該データ（ＢＢＢ等）を登録したデータ登録メモリ８のアドレスを書き込んだ状態を示している。なお、図１においては、文字列番号（０００１、０００２……）を１０進数として表示したが、図２においては前記文字列番号をＨＥＸ（１６進数）として表示している。
【００３２】
また、データ登録メモリ８にデータ（ＢＢＢ等）を書き込む際には、書込み後にデータ登録メモリ８のカレントアドレスを更新して、次に書き込むデータのアドレスをセットする。すなわち、図２において、カレントアドレスは、次にデータを書き込むデータ登録メモリ８のアドレスを記憶する。これにより、データ登録メモリ８の未使用（未登録）領域を効率的に使用することが可能になる。
【００３３】
図２は、インデックス参照メモリ４とデータ登録メモリ８の関係を示す図である。
図２に示すインデックス参照メモリ４において、記録エリアの「０」は当該記録エリアが未使用領域であることを示し、同じく図２に示すデータ登録メモリ８において、記録エリアの「０」は当該記録エリアが未使用領域（未登録）であることを示す。なお、この明細書では、未使用領域（未登録）であることを示すのに「０」を用いるが、言うまでもなく、他の特定のデータを用いてもよい。
【００３４】
図３は、登録されたデータがある場合のインデックス参照メモリとデータ登録メモリの関係と、未登録のデータがある場合のインデックス参照メモリとデータ登録メモリの関係を示す図である。図３に示すように、本実施の形態では、アドレスが示すインデックス参照メモリ４の記録エリアに、データ登録メモリ８のアドレスが無いことで、未登録状態または登録されたデータが削除されたことを示す。
【００３５】
図４は、データが削除されたデータ登録メモリのアドレスを格納する削除アドレス参照メモリを示す図である。
図４は、データ登録メモリ８からデータが削除された場合、データが削除されたデータ登録メモリ８のアドレスを削除アドレス参照メモリに記憶して、次にデータを登録する場合、削除アドレス参照メモリから記憶されたアドレスを読み出し、読出されたアドレスに登録するデータを書き込む状態を示す図である。
【００３６】
データ登録メモリ８において、削除したアドレスにデータを登録した時には、削除アドレス参照メモリにおいて、削除したデータ登録メモリ８のアドレスをクリアして、削除アドレスカレント位置のアドレスをマイナス１する。
図５は、文字数が増加した場合の対処法を示す説明図であり、文字数が３個から６個に増加した例を示している。図５に示すように、この場合、インデックス参照メモリ４１とインデックス参照メモリ４２とデータ登録メモリ８の３種類のメモリを必要とする。ただし、１つのメモリのアドレスを３つに区分して、前記３つのメモリの役割を各アドレス区分に負わせてもよい。
【００３７】
ここでは、データ登録メモリ８のアドレス０００４に格納されている文字列「ＢＢＢＡＢＣ」を検査する手順について説明する。
最初に、前半の文字列「ＢＢＢ」が、データ登録メモリ８に登録されているか否かをインデックス参照メモリ４１を用いて検索する。「ＢＢＢ」は、式（４）を用いて文字列番号を求めると、０００Ｅ（００１４）となる。したがって、インデックス参照メモリ４１のアドレス０００Ｅを参照する。インデックス参照メモリ４１のアドレス０００Ｅには、０００Ｘが格納されている。インデックス参照メモリ４１に格納されているデータはインデックス参照メモリ４２のポインタである。したがって、次にインデックス参照メモリ４２のアドレス０００Ｘを参照する。インデックス参照メモリ４２のアドレス０００Ｘには、インデックス参照メモリ４２の先頭アドレス０００１が格納されている。
【００３８】
次に、文字列「ＢＢＢＡＢＣ」の後半の文字列「ＡＢＣ」が、データ登録メモリ８に登録されているか否かをインデックス参照メモリ４２を用いて検索する。文字列「ＡＢＣ」は、式（４）を用いて文字列番号を求めると０００６になる。前記したように、インデックス参照メモリ４２の先頭アドレスは０００１であるから、文字列「ＡＢＣ」の文字列番号０００６に対応するインデックス参照メモリ４２のアドレスは０００６となる。そこで、インデックス参照メモリ４２のアドレス０００６を参照すると、データ登録メモリ８のアドレス０００４が格納されている。そこで、データ登録メモリ８のアドレス０００４を参照すると文字列「ＢＢＢＡＢＣ」が格納されていることが判明する。
【００３９】
以上に記載した具体例では、文字数が３個から６個に増加した例について説明した。しかし、本発明はこれに限定されるものではなく、増加した文字の個数を３で割ったときに余りがでた場合、更に一つ余分にインデックス参照メモリを用意し、それぞれのアドレス関係を保つ。すなわち、最初のインデックス参照メモリに対して２番目、３番目のインデックス参照メモリを設け、各インデックス参照メモリを階層化することにより、文字数が増加した場合にも対応することができる。
【００４０】
また、以上に記載した具体例では、文字種が３、文字数が３個であるとして説明したが、本発明はこれに限定されるものではなく、文字数が増えても扱えるようにすることも可能である。
図６及び図７は、本発明の第２の実施の形態を示すブロック図である。この実施の形態は、請求項６〜請求項１０に記載する発明に対応する。
【００４１】
図６はデータ登録メモリ８にデータ（Ａ、Ｂ、Ｃ）を登録処理するときのブロック図であり、図７はデータ登録メモリ８に登録されたデータ（Ａ、Ｂ、Ｃ）を検索処理するときのブロック図である。
最初に、図６を用いてデータを登録する場合の動作について説明する。
図６に示すように、「書込み指示」が入力されると同時に、「書込みキーワード」が「文字列（例えば、ＡＢＣ）」（符号１参照）として入力される。また、書込みデータがデータ登録メモリ８のデータ部に与えられる。ここで、書込みデータは、登録データとなるものであり、書込みキーワード（例えば、ＡＢＣ）と同一でもよい。
【００４２】
演算部２は、文字列（例えば、ＡＢＣ）を文字列番号（例えば、０００６）に変換する。
変換された「文字列番号（０００６）」（符号３参照）は、インデックス参照メモリ４のアドレス部に与えられる。
また、書込み指示された書込み制御部５は、アドレス生成部６に対して、データ登録メモリ８に出力するアドレスの生成を指示する。これと同時に、書込み制御部５は、インデックス参照メモリ４とデータ登録メモリ８に対して、データを書き込むタイミングを生成する。
【００４３】
アドレス生成部６は、書込み制御部５からの指示に応じて、カレントアドレス記憶部７から書込みアドレス読出して、書込みアドレスを生成する。
次に、書込み制御部５が生成したタイミングにおいて、インデックス参照メモリ４に対しては書込みアドレスを書込み、データ登録メモリ８に対しては書込みデータを書き込む。以上の動作を繰り返して行うことにより、データベースが構築される。
【００４４】
次に、図７を用いてデータ検索を行う場合の動作について説明する。図７において、図６に示す部分と同一部分には、同一符号を付している。
図７に示すように、「検索指示」が入力されると同時に、「検索キーワード」が「文字列（例えば、ＡＢＣ）」（符号１参照）として入力される。
演算部２は、文字列（例えば、ＡＢＣ）を文字列番号（例えば、０００６）に変換する。
【００４５】
変換された「文字列番号（０００６）」（符号３参照）は、インデックス参照メモリ４のアドレス部に与えられる。
検索指示された読出制御部１５は、インデックス参照メモリ４とデータ登録メモリ８からデータの読出しタイミングを生成する。
インデックス参照メモリ４から読出されたデータは、アドレス生成／チェック部６において、検索キーワード（文字列ＡＢＣ等）がデータ登録メモリ８に登録されているか否かを判定する。この判定は、インデックス参照メモリ４から読出されたデータが「０」か否かによって行われる。
【００４６】
インデックス参照メモリ４から読出されたデータが「０」ではなく、登録されていると判定された場合、アドレス生成／チェック部６はデータ登録メモリ８のアドレス部にアドレスを与える。読出制御部１５は、アドレス生成／チェック部６が登録されていると判定した場合、前記生成した読出しタイミングにおいて、アドレス生成／チェック部６から与えられたアドレスに格納されている登録データを読出データとしてデータ登録メモリ８から出力する。
【００４７】
また、アドレス生成／チェック部６は、インデックス参照メモリ４から読出されたデータが「０」であり、登録されていないと判定した場合、未登録を出力する。以上の動作を繰り返すことにより、データ検索が実行される。
なお、前記第２の実施の形態において、第１の実施の形態と同様に、インデックス参照メモリ４のアドレスに、前記データ登録メモリ８において登録データが削除されたり、データが未登録であることを識別するための特定のデータ（例えば、０）を格納するようにしてもよい。
【００４８】
また、前記第２の実施の形態において、第１の実施の形態（図４参照）と同様に、前記削除されたデータ登録メモリのアドレスを記憶するようにしてもよい。また、前記第２の実施の形態において、第１の実施の形態の図５に示すように、登録データが長い文字列のデータである場合、前記インデックス参照メモリを複数個設け、前記長い文字列を数値化して得た数値を分割し、分割された各数値を各インデックス参照メモリのアドレスとして用いて、前記登録データを格納しているアドレスを特定するようにしてもよい。
【００４９】
以上の説明から明らかなように、前記した第１、第２の実施の形態によれば、次の効果を得ることができる。
第１に、文字の並びを数値に変換することにより、文字の並びを連続したメモリ上の相対値として扱うことが可能となる。
第２に、前記数値をインデックス参照メモリのアドレスとすることで、文字の並びとインデックス参照メモリの位置関係（アドレス関係）を保つことができ、検索時に即時にインデックス参照メモリの該当アドレスをアクセスすることが可能となる。
【００５０】
第３に、インデックス参照メモリの指定されたアドレスに、データを書き込んだデータ登録メモリのアドレスを書き込むことにより、インデックス参照メモリを介して文字の並びとデータ登録メモリの位置関係（アドレス関係）を保つことができ、検索時に即時に登録したデータを読み出すことが可能となる。
第４に、データ登録メモリのカレントアドレスに、データを書き込んだデータ登録メモリの位置（アドレス）を書き込むことにより、データを登録する際に、連続したメモリ領域ヘシーケンシャルにデータを書き込むことが可能となる。
【００５１】
第５に、インデックス参照メモリのアドレスにデータ登録メモリのアドレスが書き込まれていないことで、未登録／削除状態の判別が可能となる。そのため、検索時にデータ登録メモリヘのアクセスが必要なくなり、更に高速な検索処理が可能となる。
第６に、登録データをデータ登録メモリから削除した時、データを削除したデータ登録メモリのアドレスを書き込むことにより、新たにデータを登録する際に、削除したデータ登録メモリのアドレスを利用することで、データ登録エリアの容量を保つことが可能となる。
【００５２】
第７に、インデックス参照メモリを階層化することで、文字数が増えた場合でも全ての文字列を分割して数値化することができる。したがって、複数のインデックス参照メモリを持つことで、データ登録メモリのアドレスと位置関係（アドレス関係）を保つことができ、文字の個数が多くなった場合にも適用することができる。その結果、すべての場合のデータ登録処理及び検索処理に対応することができる。
【００５３】
【発明の効果】
以上の説明から明らかなように、本発明によれば、高速で高価なコンピュータ等を用いることなく、検索に多大の時間を要しないで検索することが可能なデータベース構築方法及びデータベース装置を提供することができる。
【図面の簡単な説明】
【図１】データ登録時の文字種Ａ、Ｂ、Ｃの並びを文字列番号１〜２７に変えて番号化するためのテーブルである。
【図２】インデックス参照メモリとデータ登録メモリの関係を示す図である。
【図３】登録されたデータがある場合のインデックス参照メモリとデータ登録メモリの関係と、未登録のデータがある場合のインデックス参照メモリとデータ登録メモリの関係を示す図である。
【図４】データが削除されたデータ登録メモリのアドレス格納する削除アドレス参照メモリを示す図である。
【図５】データ登録メモリに登録する文字数が増加した場合、２つのインデックス参照メモリとデータ登録メモリを用いて検索する状態を示す図である。
【図６】データ登録メモリにデータ（Ａ、Ｂ、Ｃ）を登録処理するときのブロック図である。
【図７】データ登録メモリに登録されたデータ（Ａ、Ｂ、Ｃ）を検索処理するときのブロック図である。
【図８】従来のデータ検索処理の一例を示す説明図である。
【符号の説明】
１  文字列（ＡＢＣ等）
２  演算部
３  文字列番号（０００６等）
４、４１、４２  インデックス参照メモリ
５  書込制御部
６  アドレス生成部
７  カレントアドレス記憶部
８  データ登録メモリ
１５  読出制御部
【図１】
2004318349.tif 000003
【図２】
2004318349.tif 000004
【図３】
2004318349.tif 000005
【図４】
2004318349.tif 000006
【図５】
2004318349.tif 000007
【図６】
2004318349.tif 000008
【図７】
2004318349.tif 000009
【図８】
2004318349.tif 000010