JP2005215869A - Data storage and retrieval system - Google Patents

Data storage and retrieval system Download PDF

Info

Publication number
JP2005215869A
JP2005215869A JP2004020006A JP2004020006A JP2005215869A JP 2005215869 A JP2005215869 A JP 2005215869A JP 2004020006 A JP2004020006 A JP 2004020006A JP 2004020006 A JP2004020006 A JP 2004020006A JP 2005215869 A JP2005215869 A JP 2005215869A
Authority
JP
Japan
Prior art keywords
block
overflow
key
overflow block
location table
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.)
Pending
Application number
JP2004020006A
Other languages
Japanese (ja)
Inventor
Masaharu Tamatsu
玉津雅晴
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.)
ANETSUKUSU SYST KK
Original Assignee
ANETSUKUSU SYST 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 ANETSUKUSU SYST KK filed Critical ANETSUKUSU SYST KK
Priority to JP2004020006A priority Critical patent/JP2005215869A/en
Publication of JP2005215869A publication Critical patent/JP2005215869A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a system capable of facilitating the management of an overflow block and realizing a high speed access. <P>SOLUTION: This data storage and retrieval system for storing data in a computer and retrieving the data is provided with: data records having data items including main key items; a primary block 11 and an overflow block 12 in which the data records are stored in the order of main keys, location table records for storing the address of the primary block 11; a location table 10 in which the location table records are stored in continuous regions in the order of the main keys; a final pointer showing the last of the use region of the location table 10; an overflow block management table 20 for managing the address of the overflow block; and an overflow block final pointer showing the last of the use region of the overflow block management table 20. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、コンピュータを使用してデータを格納し検索するシステムに関するものである。
The present invention relates to a system for storing and retrieving data using a computer.

従来のコンピュータによるデータベース格納検索方式は、「Jeffrey D.Ullman著、国井他1名訳、"データベース・システムの原理" 、第1版、日本コンピュータ協会、1985年5月25日、p45-71」、「Samuel Leffler他著/中村明他訳、”UNIX4.3BSDの設計と実装”、丸善株式会社、1991年6月30日、p193-191」及び「Michael J.Folk他著/楠本博之訳、"bit別冊 ファイル構造"、共立出版 株式会社、1997年6月5日、p169-191」に記載されているように、基本的には階層型のインデックスを使用するものであった。   The conventional database storage and retrieval method by computer is "Jeffrey D. Ullman, Kunii et al.," The Principle of Database System ", 1st edition, Japan Computer Association, May 25, 1985, p45-71. , “Samuel Leffler et al./Akira Nakamura et al.,“ Design and Implementation of UNIX4.3BSD ”, Maruzen Co., Ltd., June 30, 1991, p193-191” and “Michael J. Folk et al./Hiroyuki Enomoto, As described in "bit separate volume file structure", Kyoritsu Publishing Co., Ltd., June 5, 1997, p169-191 ", it basically used a hierarchical index.

本発明者は、従来の階層型インデックスに代えてロケーション・テーブルと代替キー・テーブルという概念を導入し、インデックスの処理に伴う複雑な処理を簡素化し、ロケーション・テーブル自体の検索をバイナリー・サーチなどの手法を用いることにより、高速化と、メンテナンスの容易性を確保できるようにした「データ格納検索方式」を発明した(日本国特許第3345628、米国特許第6654868号参照)。この「データ格納検索方式」では、プライマリー・ブロックにオーバーフロー・ブロックが連結され、更に、オーバーフロー・ブロックにオーバーフロー・ブロックが連結される、という形式になっていた。   The present inventor introduces the concept of a location table and an alternative key table in place of the conventional hierarchical index, simplifies complicated processing associated with index processing, and searches the location table itself by binary search, etc. By using this technique, a “data storage and retrieval method” has been invented (see Japanese Patent No. 3345628 and US Pat. No. 6,654,868), which can ensure high speed and easy maintenance. In this “data storage retrieval method”, an overflow block is connected to a primary block, and further, an overflow block is connected to an overflow block.

更に、本発明者は、「データベースの再編成システム、並びに、データベース」(以下「データベース再編システム」と呼ぶ。PCT/JP03/11592)を発明した。「データ検索格納方式」で発明したデータベースに対して、データベースを稼動させながら再編成が行える仕組を発明した。更に、代替キー・テーブルに対して代替キー・ロケーション・テーブルを付加することにより、効率的な再編成が可能となることを発明した。また、本発明に関連する既存の発明として、「データベースのアクセラレーター機能(PCT/JP03/13443)」を発明した。   Furthermore, the present inventor invented the “database reorganization system and database” (hereinafter referred to as “database reorganization system”, PCT / JP03 / 11592). We have invented a mechanism that allows reorganization of a database invented in the “data retrieval and storage system” while the database is in operation. Furthermore, it has been invented that an efficient reorganization is possible by adding an alternative key location table to an alternative key table. Further, as an existing invention related to the present invention, a “database accelerator function (PCT / JP03 / 13443)” was invented.

また、本発明者は「データベースのアクセラレーター機能(以下、「アクセラレーター機能」と呼ぶ。PCT/JP03/13443)」を発明した。これは、フランド・ロケーション・テーブルとフランド・代替キー・ロケーション・テーブルという、プライマリー・システムにおけるロケーション・テーブルと代替キー・ロケーション・テーブルと機能的に同一であるものを、アクセラレーター・システムに持たせることにより、データベースに対して並行的にアクセスが可能となるものである。
The inventor has also invented a “database accelerator function (hereinafter referred to as“ accelerator function ”; PCT / JP03 / 13443)”. This allows the accelerator system to have a functional location identical to the primary system's location table and alternate key location table, the Fland location table and the Fland alternate key location table. As a result, the database can be accessed in parallel.

<1>本発明は、効率の良い記憶領域の管理を計ることにある。
<2>本発明は、また、データベース・システムの性能向上を測ることにある。
<1> The present invention is to efficiently manage a storage area.
<2> Another object of the present invention is to measure the performance improvement of the database system.

本発明は、コンピュータにデータを格納し、検索するデータ格納検索システムにおいて、主キー項目を含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックとオーバーフロー・ブロックと、プライマリー・ブロックのアドレスを格納するロケーション・テーブル・レコードと、ロケーション・テーブル・レコードを主キーの順に連続領域に格納するロケーション・テーブルと、ロケーション・テーブルの使用領域の最後を示す最終ポインターと、オーバーフロー・ブロックのアドレスを管理するオーバーフロー・ブロック管理テーブルと、オーバーフロー・ブロック管理テーブルの使用領域の最後を示すオーバーフロー・ブロック最終ポインターとを備えている、データ格納検索システムにある。
The present invention relates to a data storage and retrieval system for storing and retrieving data in a computer, a data record having a data item including a primary key item, a primary block and an overflow block for storing the data record in the order of the primary key, A location table record that stores the address of the primary block, a location table that stores the location table record in a continuous area in the order of the primary key, a final pointer that indicates the end of the used area of the location table, and overflow A data storage / retrieval system comprising an overflow block management table for managing block addresses and an overflow block last pointer indicating the end of the area used by the overflow block management table A.

<1>データ格納検索システムの基本構成と問題の解決
データ格納検索システムは、コンピュータにデータを格納し、検索するものであり、例えば図1に示すように、主キー項目を含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロック11とオーバーフロー・ブロック12と、プライマリー・ブロック11のアドレスを格納するロケーション・テーブル・レコードと、ロケーション・テーブル・レコードを主キーの順に連続領域に格納するロケーション・テーブル10と、ロケーション・テーブル10の使用領域の最後を示す最終ポインターFPと、オーバーフロー・ブロック12のアドレスを管理するオーバーフロー・ブロック管理テーブル20と、オーバーフロー・ブロック管理テーブル20の使用領域の最後を示すオーバーフロー・ブロック最終ポインターOFとを備えている。
<1> Basic configuration of data storage and retrieval system and solution of problem The data storage and retrieval system stores and retrieves data in a computer. For example, as shown in FIG. A data record, a primary block 11 and an overflow block 12 that store the data records in the order of the primary key, a location table record that stores the address of the primary block 11, and a location table record in the order of the primary key The location table 10 stored in the continuous area, the final pointer FP indicating the end of the used area of the location table 10, the overflow block management table 20 for managing the address of the overflow block 12, and the overflow block management table And an overflow block last pointer OF indicating the end of the used area of the bull 20.

オーバーフロー・ブロック管理テーブル・レコード(またはオーバーフロー・ブロック管理テーブル・エントリー)は、当該レコードが管理しているオーバーフロー・ブロック12のアドレスと、当該オーバーフロー・ブロック12の主キー値の最小値と最大値の双方、または何れか一方、次のオーバーフロー・ブロック管理テーブル・レコードのアドレスからなる。更に、ロケーション・テーブル10にオーバーフロー・ブロック管理テーブル・レコードへのポインターを設ける。オーバーフロー・ブロック管理テーブル・レコードは、オーバーフロー・ブロック12が発生する都度、そのアドレスを記憶し、一つのプライマリー・ブロック11に対してオーバーフロー・ブロック12が2つ以上存在する場合には、1番目のオーバーフロー・ブロック管理テーブル・レコードが2番目のオーバーフロー・ブロックのオーバーフロー・ブロック管理テーブル・レコードを指し、2番目が3番目を指す、というようにチェーンする。使用しているオーバーフロー・ブロック管理テーブル20のレコードの最後を示すために、オーバーフロー・ブロック管理テーブル・ポインター20を設ける。以上の説明は、代替キー・オーバーフロー・ブロックに対しても同様である。   The overflow block management table record (or overflow block management table entry) includes the address of the overflow block 12 managed by the record and the minimum and maximum values of the primary key value of the overflow block 12. It consists of the address of the next overflow block management table record. Further, a pointer to the overflow block management table record is provided in the location table 10. The overflow block management table record stores the address each time an overflow block 12 occurs. If there are two or more overflow blocks 12 for one primary block 11, the overflow block management table record is the first one. Chain the overflow block management table record to the overflow block management table record of the second overflow block, the second to the third, and so on. In order to indicate the end of the record of the overflow block management table 20 being used, an overflow block management table pointer 20 is provided. The above description is the same for the substitute key overflow block.

データ格納検索システムは、以下のような問題点を解決できる。先ず、プライマリー・ブロック11にオーバーフロー・ブロック12が連結し、そのオーバーフロー・ブロック12に更にオーバーフロー・ブロック12が連結する、という形式であり、連結の方法は、直前のプライマリー・ブロック11またはオーバーフロー・ブロック12が、それに続くオーバーフロー・ブロック12のアドレスを保持する場合、目的のレコードを見つけるには、次々とオーバーフロー・ブロック12を探していかなければならない。その場合、ロケーション・テーブル10と代替キー・ロケーション・テーブルを高速なランダム・アクセス・メモリに配置し、ブロックと代替キー・ブロックをハード・ディスクなど相対的に安価であるがアクセス速度が比較的遅い媒体に格納する場合、オーバーフロー・ブロック12や代替キー・オーバーフロー・ブロックの数が多くなると、遅い記憶媒体内で、次々とオーバーフロー・ブロック12を探していかなければならず、目的のオーバーフロー・ブロック12を探す時間が長くなってしまう問題点がある。例えば、高速なランダム・メモリーが100nsでアクセスでき、一方で、オーバーフロー・ブロックが10msのアクセス速度が必要であるとすると、その差は10万倍となってしまう。この問題は、連結されたオーバーフロー・ブロック12の数が多くなればなるほど問題となる。   The data storage and retrieval system can solve the following problems. First, the overflow block 12 is connected to the primary block 11, and the overflow block 12 is further connected to the overflow block 12. The method of connection is the immediately preceding primary block 11 or overflow block. If 12 holds the address of the subsequent overflow block 12, it must search for the overflow block 12 one after another to find the desired record. In that case, the location table 10 and the alternative key location table are arranged in a high-speed random access memory, and the block and the alternative key block are relatively inexpensive such as a hard disk, but the access speed is relatively slow. When storing in the medium, if the number of overflow blocks 12 or alternative key overflow blocks increases, the overflow blocks 12 must be searched one after another in the slow storage medium, and the target overflow block 12 is stored. There is a problem that it takes a long time to search. For example, if a high-speed random memory can be accessed in 100 ns, while an overflow block requires an access speed of 10 ms, the difference is 100,000 times. This problem becomes more problematic as the number of connected overflow blocks 12 increases.

オーバーフロー・ブロック管理テーブル20を用いた場合には、オーバーフロー・ブロック管理テーブル20を検索するだけで、どのプライマリー・ブロック11またはオーバーフロー・ブロック12に目的のレコードが格納されているかを識別できるため、プライマリー・ブロック11またはオーバーフロー・ブロック12に対するアクセスは1回のみで良いことになる。   When the overflow block management table 20 is used, it is possible to identify which primary block 11 or overflow block 12 stores the target record simply by searching the overflow block management table 20. Access to block 11 or overflow block 12 is only required once.

次に、オーバーフロー・ブロック12が複数存在している場合に、比較的前方のオーバーフロー・ブロック12やプライマリー・ブロック11に対してレコード挿入が行われる場合に、そのレコードの後方のレコードを総て移動しなくてはならず、それに要する負荷が増大することになる。この問題に関しては、プライマリー・ブロック11とオーバーフロー・ブロック12、または、オーバーフロー・ブロック12とオーバーフロー・ブロック12の間に新たにオーバーフロー・ブロック12を挿入することにより、レコードの移動を最小にすることが可能となる。   Next, when there are a plurality of overflow blocks 12 and a record is inserted into a relatively forward overflow block 12 or primary block 11, all the records behind that record are moved. This must increase the load required. Regarding this problem, the movement of the record may be minimized by inserting a new overflow block 12 between the primary block 11 and the overflow block 12 or between the overflow block 12 and the overflow block 12. It becomes possible.

<2>データレコード
データレコードは、必ず1つのユニークな主キーとゼロ個若しくは1個以上のノンユニーク(結果的にユニークであっても問題はない)なキー(代替キー)を持つ。主キーは、従業員データベースの場合、従業員コードなど従業員を識別できるコードであり、代替キーは、氏名や生年月日などであり、データベースによっては、無くても良いし、複数あっても構わない。また、意味を持った主キーとなるべき項目が存在しないレコードに関しては、格納順の連番などを付与して、それを主キーとしても良い。
<2> Data record A data record always has one unique primary key and zero or one or more non-unique keys (which may be unique as a result) (substitute keys). In the case of an employee database, the primary key is a code that can identify the employee, such as an employee code, and the alternative key is the name, date of birth, etc. I do not care. In addition, for a record in which there is no item that has a meaningful primary key, a sequential number in the storage order may be assigned and used as the primary key.

<3>プライマリー・ブロック
プライマリー・ブロック11は、ロケーション・テーブル・エントリーによって管理されるブロックで、ロケーション・テーブル・エントリー1つに対して1つのみ存在する。これらのブロックは、データレコードを主キーの順に格納する。
<3> Primary Block The primary block 11 is a block managed by the location table entry, and there is only one primary block 11 for each location table entry. These blocks store data records in the order of primary keys.

<4>ロケーション・テーブル
ロケーション・テーブルLC10は、ロケーション・テーブル・レコード(又は、ロケーション・テーブル・エントリー)を連続した領域に予め確保する。ロケーション・テーブル・レコードは、例えば図2に示すように、プライマリー・ブロック11のアドレス、オーバーフロー・ブロックがある場合、プライマリー・ブロック11に連結するオーバーフロー・ブロック12を管理しているオーバーフロー・ブロック管理テーブル・エントリーのアドレスなどを有している。ここで連続した領域とは、論理的な順序であり、物理的な領域では、離れていても良い。物理的な領域が離れている場合には、アドレス変換テーブルを用いて、論理的に連続していると扱うことができる(以下、同様である)。ロケーション・テーブルの使用領域の最後を示すために、最終ポインターFP(図5の101)を用いる。最終ポインターFPにより、ロケーション・テーブル・レコードが記憶されている領域の最後のアドレスを知ることができる。
<4> Location Table The location table LC10 reserves location table records (or location table entries) in a continuous area in advance. For example, as shown in FIG. 2, the location table record includes an overflow block management table that manages an overflow block 12 connected to the primary block 11 when there is an address of the primary block 11 and an overflow block. -It has an entry address. Here, the continuous area is a logical order, and may be separated in a physical area. When the physical area is separated, it can be treated as logically continuous using the address conversion table (the same applies hereinafter). The last pointer FP (101 in FIG. 5) is used to indicate the end of the used area of the location table. The last pointer FP can be used to know the last address of the area where the location table record is stored.

最後のプライマリー・ブロック11にデータレコードが追加できない場合は、その後に新たなプライマリー・ブロック11を追加して、データレコードの格納を行う。その追加したプライマリー・ブロック11のアドレスロケーション・テーブル・レコードを、ロケーション・テーブルLC10に書き、最終ポインターFPの位置を1つ後方に動かす。   When a data record cannot be added to the last primary block 11, a new primary block 11 is added after that and the data record is stored. The address location table record of the added primary block 11 is written in the location table LC10, and the position of the final pointer FP is moved backward by one.

<5>オーバーフロー・ブロック
プライマリー・ブロック11にデータレコードを追加する場合に、プライマリー・ブロック11が満杯である場合に、オーバーフロー・ブロック12を、そのプライマリー・ブロック11に連結して、データレコードを格納する。オーバーフロー・ブロック12に、更にオーバーフロー・ブロック12を連結することが可能である。ここで、連結とは、物理的に連結されていることを意味するのではなく、各々がアドレス・ポインターによって指し示されていることをいう。「データ格納検索方式」では、プライマリー・ブロック11が一番目のオーバーフロー・ブロック12のアドレスを保持し、1番目のオーバーフロー・ブロック12が2番目のオーバーフロー・ブロック12のアドレスを保持する、としていた。また、この明細書では新たに、オーバーフロー・ブロック管理テーブル20を用いて連結する方式を記載している。
<5> Overflow block When a data record is added to the primary block 11, if the primary block 11 is full, the overflow block 12 is connected to the primary block 11 to store the data record. To do. It is possible to further connect the overflow block 12 to the overflow block 12. Here, concatenation does not mean that they are physically connected, but means that each is pointed by an address pointer. In the “data storage search method”, the primary block 11 holds the address of the first overflow block 12, and the first overflow block 12 holds the address of the second overflow block 12. Further, in this specification, a new method of connection using the overflow block management table 20 is described.

<6>主キーによるアクセス
或る主キーを持ったレコードを検索する方法は、ロケーション・テーブル10の最初のレコードと、最終ポインターが指しているロケーション・テーブル・レコードの間をバイナリー・サーチし、目的のプライマリー・ブロック11を見つけ、そのプライマリー・ブロック11の中を検索して、目的のレコードを見つける。そのプライマリー・ブロック11にオーバーフロー・ブロック12が連結されている場合には、オーバーフロー・ブロック12も検索の対象となる。
<6> Access by primary key A method for searching for a record having a primary key is to perform a binary search between the first record of the location table 10 and the location table record pointed to by the final pointer. The target primary block 11 is found, the inside of the primary block 11 is searched, and the target record is found. When the overflow block 12 is connected to the primary block 11, the overflow block 12 is also a search target.

<7>代替キー・テーブル
代替キー・テーブル(20A、20B、20C)は、例えば図5に示すように、代替キー・ロケーション・テーブル(AALC、ABLC、ACLC)と代替キー・ブロック(22A、22B、22C)を備えている。代替キー・ロケーション・テーブルと代替キー・ブロックは、主キーについてのロケーション・テーブルとプライマリー・ブロックに類似している。代替キー・ブロックは、代替キー値と主キー値からなる代替キー・レコード(または代替キー・エントリー)を代替キー値の順番に格納する。代替キー・ロケーション・テーブルは、各代替キー・ブロックのアドレスが記載された代替キー・ロケーション・テーブル・レコード(または、代替キー・ロケーション・テーブル・エントリー)を連続領域に有する。代替キー・ロケーション・テーブルは連続した領域に予め確保する。代替キー・ロケーション・テーブルの使用領域の最後を示すために、代替キー最終ポインターFP(29A、29B、29C)を用いる。代替キー・レコードの追加において、既存の代替キー・レコードの代替キー値より大きい代替キー値を持つ代替キー・レコードは、最後の代替キー・ブロックに格納し、その代替キー・ブロックに格納できない場合には新たに代替キー・ブロックを作成し、その代替キー・ブロックに当該代替キー・レコードを格納する。
<7> Alternative Key Table The alternative key table (20A, 20B, 20C) includes an alternative key location table (AALC, ABLC, ACLC) and an alternative key block (22A, 22B) as shown in FIG. 22C). The alternate key location table and alternate key block are similar to the location table and primary block for the primary key. The substitute key block stores substitute key records (or substitute key entries) composed of substitute key values and primary key values in the order of substitute key values. The alternative key location table has an alternative key location table record (or an alternative key location table entry) in which the address of each alternative key block is described in a continuous area. The substitute key location table is secured in a continuous area in advance. The substitute key final pointer FP (29A, 29B, 29C) is used to indicate the end of the used area of the substitute key location table. When adding an alternate key record, if an alternate key record with an alternate key value greater than the alternate key value of an existing alternate key record is stored in the last alternate key block and cannot be stored in that alternate key block A new substitute key block is created, and the substitute key record is stored in the substitute key block.

<8>代替キーによるアクセス
或る代替キーを持ったレコードを検索する方法は、代替キー・ロケーション・テーブルの最初のレコードと、代替キー最終ポインターが指している代替キー・ロケーション・テーブル・レコードの間をバイナリー・サーチし、目的の代替キー・ブロックを見つけ、その代替キー・ブロックの中を検索して、目的の代替キーを持つ代替キー・レコードを見つける。その代替キー・ブロックに代替キー・オーバーフロー・ブロックが連結されている場合には、代替キー・オーバーフロー・ブロックも検索の対象となる。
<8> Access by alternative key The method of searching for a record having a certain alternative key is to search for the first record of the alternative key location table and the alternative key location table record pointed to by the alternative key final pointer. Binary search between them, find the desired alternate key block, and search within the alternate key block to find the alternate key record with the desired alternate key. If an alternative key overflow block is concatenated to the alternative key block, the alternative key overflow block is also searched.

次に、その代替キー・レコードの主キーによって、ロケーション・テーブルLCをバイナリー・サーチし、目的のプライマリー・ブロックを見つけ、そのプライマリー・ブロックとそれに連結されたオーバーフロー・ブロックから目的のレコードを見つけ出す。ここでは、ロケーション・テーブルをバイナリー・サーチする、としたが、「データ格納検索方式」では、代替キー・エントリーにプライマリー・ブロックのアドレスまたは番号を持つことができるとしてある。このように、代替キー・エントリーにプライマリー・ブロックのアドレスまたは番号を持っている場合には、ロケーション・テーブルをバイナリー・サーチすることなく、直接、ブロックに対してアクセスすることが可能である。   Next, the location table LC is binary searched by the primary key of the alternative key record, the target primary block is found, and the target record is found from the primary block and the overflow block concatenated therewith. In this example, the location table is binary searched. However, in the “data storage search method”, the alternative key entry can have the address or number of the primary block. Thus, if the alternate key entry has the address or number of the primary block, it is possible to access the block directly without performing a binary search of the location table.

尚、代替キーはノンユニークであるので、同一の代替キー値を持ったデータレコードが複数存在する可能性がある。この場合は、代替キー・ブロック中の次の代替キー・レコードが同一の代替キー値である場合には、上記と同様な動作を繰り返す。複数の代替キーが存在する場合には、代替キーの種類と同じ数の代替キー・テーブルを作成し、使用することになる。   Since the substitute key is non-unique, there may be a plurality of data records having the same substitute key value. In this case, if the next substitute key record in the substitute key block has the same substitute key value, the same operation as described above is repeated. When a plurality of alternative keys exist, the same number of alternative key tables as the types of the alternative keys are created and used.

<9>オーバーフロー・ブロック管理テーブルを利用した格納
オーバーフロー・ブロック管理テーブル20は、オーバーフロー・ブロック管理テーブル・レコード(またはオーバーフロー・ブロック管理テーブル・エントリー)を有し、オーバーフロー・ブロック12の管理をするものである。オーバーフロー・ブロック管理テーブル・レコードは、例えば図3に示すように、そのエントリーが管理しているオーバーフロー・ブロック12のアドレスと、オーバーフロー・ブロック12の主キー値の最小値と最大値の何れか一方または双方と、次のオーバーフロー・ブロック12の管理テーブル・レコードのアドレスとを有する。ロケーション・テーブル10には、図2に示すように、オーバーフロー・ブロック管理テーブル・レコードのアドレスを格納する項目を設ける。なお、ロケーション・テーブル10において、オーバーフロー・ブロック管理テーブル・レコードのアドレスを格納する項目には、オーバーフロー・ブロック12が存在する場合は、そのレコードのアドレスを格納し、オーバーフロー・ブロックが存在しない場合には、存在しないことを識別できる特定の値を格納してオーバーフロー・ブロックが存在しないことを示す。オーバーフロー・ブロック管理テーブル・レコードの「次のオーバーフロー・ブロック管理テーブル・レコードのアドレス」は、次のオーバーフロー・ブロック12が連結されていない場合には、次のオーバーフロー・ブロックが存在しないことを識別できる特定の値を格納して存在しないことを示す。
<9> Storage Using Overflow Block Management Table The overflow block management table 20 has an overflow block management table record (or overflow block management table entry) and manages the overflow block 12. It is. For example, as shown in FIG. 3, the overflow block management table record is one of the address of the overflow block 12 managed by the entry and the minimum value and the maximum value of the primary key value of the overflow block 12. Or both and the address of the management table record of the next overflow block 12. As shown in FIG. 2, the location table 10 has an item for storing the address of the overflow block management table record. In the location table 10, if the overflow block 12 exists in the item for storing the address of the overflow block management table record, the address of the record is stored, and there is no overflow block. Stores a specific value that can be identified as non-existent to indicate that there is no overflow block. The “next overflow block management table record address” of the overflow block management table record can identify that the next overflow block does not exist when the next overflow block 12 is not concatenated. Indicates that a specific value is stored and does not exist.

オーバーフロー・ブロック管理テーブル20は、ロケーション・テーブル10と同様に、予め連続した領域に確保する。ここで連続した領域とは、論理的な順序であり、物理的な領域では、離れていても良い。このような場合には、アドレス変換テーブルを用いて、論理的に連続していると扱うことができる。これは、以下の説明でも同様である。このようにアドレス変換テーブルを用いて、物理的には連続していない領域を使用することができるので、最初に確保した領域が足りなくなった場合には、増分の領域を確保することが可能であり、領域不足により稼動しなくなることを避けることができる。即ち、オーバーフロー・ブロック12が発生する都度、領域を確保し、それらの領域を次々にポイントする、という方法をとることも可能である。オーバーフロー・ブロック管理テーブル20を使用していることを、データベース・システムに記述しておくことが好ましい。   As with the location table 10, the overflow block management table 20 is secured in a continuous area in advance. Here, the continuous area is a logical order, and may be separated in a physical area. In such a case, it can be treated as logically continuous using the address conversion table. The same applies to the following description. In this way, using the address translation table, it is possible to use physically non-contiguous areas, so it is possible to secure incremental areas when the area initially reserved is insufficient. Yes, it can be avoided that the system becomes inoperable due to insufficient area. That is, it is also possible to take a method in which areas are secured each time an overflow block 12 occurs and those areas are pointed to one after another. It is preferable to describe in the database system that the overflow block management table 20 is used.

オーバーフロー・ブロック管理テーブル・レコードの何処までを使用しているかを識別するために、オーバーフロー・ブロック管理テーブル・ポインター(OFP)を設け、最終オーバーフロー・ブロック管理テーブル・レコードの次のアドレスを指すようにする。図1を用いて説明する。OFPは、最初はオーバーフロー・ブロック管理テーブル20の先頭を指している。オーバーフロー・ブロック管理テーブル・レコード内の数字は、最初の数字が、オーバーフロー・ブロック管理テーブル・レコードの番号、括弧内が、そのレコードが管理しているオーバーフロー・ブロックの番号である。   In order to identify where the overflow block management table record is used, an overflow block management table pointer (OFP) is provided to point to the next address of the last overflow block management table record. To do. This will be described with reference to FIG. OFP indicates the beginning of the overflow block management table 20 at the beginning. For the numbers in the overflow block management table record, the first number is the number of the overflow block management table record, and the number in parentheses is the number of the overflow block managed by the record.

プライマリー・ブロック11のブロック1に対して、オーバーフロー・ブロックが発生すると、オーバーフロー・ブロック管理テーブルの最初のレコード0を、オーバーフロー・ブロック1−1用に確保する。ロケーション・テーブル・レコード1にオーバーフロー・ブロック管理テーブル・レコード0のアドレスを格納する。次に、オーバーフロー・ブロック1−1のアドレスを、オーバーフロー・ブロック管理テーブル・レコード0に格納する。図1では、上記のアドレス格納を点線で示している。実線は、従来どおり、ロケーション・テーブル10からプライマリー・ブロック11、プライマリー・ブロック11からオーバーフロー・ブロック12を指していることを示している。この実線で示したリンク、つまり、プライマリー・ブロック1がオーバーフロー・ブロック1−1のアドレスを保持することは、設けても設けなくてもよい。次に、オーバーフロー・ブロック12のブロック1−1に格納されているレコードの最大値と最小値の双方または何れか一方を、オーバーフロー・ブロック管理テーブル・レコード0に格納する。OFPは、オーバーフロー・ブロック管理テーブル・レコード1の先頭を指すように変更する。   When an overflow block occurs for block 1 of primary block 11, the first record 0 of the overflow block management table is reserved for overflow block 1-1. The address of overflow block management table record 0 is stored in location table record 1. Next, the address of the overflow block 1-1 is stored in the overflow block management table record 0. In FIG. 1, the above address storage is indicated by a dotted line. Solid lines indicate that the location table 10 points to the primary block 11 and the primary block 11 to the overflow block 12 as before. The link indicated by the solid line, that is, the primary block 1 holding the address of the overflow block 1-1 may or may not be provided. Next, the maximum value and / or minimum value of the record stored in the block 1-1 of the overflow block 12 is stored in the overflow block management table record 0. The OFP is changed to indicate the head of the overflow block management table record 1.

オーバーフロー・ブロック1−1に、次のオーバーフロー・ブロックは存在しないので、オーバーフロー・ブロック管理テーブル・レコード0の、「次のオーバーフロー・ブロックの管理テーブル・レコードのアドレス」は、特定の値を入れて、次のオーバーフロー・ブロックが存在しないことを識別できるようにする。   Since the next overflow block does not exist in the overflow block 1-1, a specific value is entered in the "address of the management table record of the next overflow block" of the overflow block management table record 0. , So that the next overflow block can be identified.

図1では、次にオーバーフロー・ブロック4−1が発生している。この発生に伴う動作は、上記と同様である。次にオーバーフロー・ブロック4−2が発生すると、オーバーフロー・ブロック4−2は、オーバーフロー・ブロック4−1の後続となるので、オーバーフロー・ブロック管理テーブル・レコード1の「次のオーバーフロー・ブロックの管理テーブル・レコードのアドレス」を、オーバーフロー・ブロック管理テーブル・レコード2のアドレスとし、オーバーフロー・ブロック管理テーブル・レコード2の、「次のオーバーフロー・ブロックの管理テーブル・レコードのアドレス」は、特定の値とする。その他の動作は、上記の説明と同様である。図1では、オーバーフロー・ブロック4−3までの追加が行われた時点を示している。   In FIG. 1, the overflow block 4-1 occurs next. The operation accompanying this generation is the same as described above. When the overflow block 4-2 occurs next, the overflow block 4-2 follows the overflow block 4-1, so that the "next overflow block management table" in the overflow block management table record 1 is displayed. “Address of record” is the address of overflow block management table • record 2 and overflow • Block management table • Record 2 “address of management table record of next overflow block” is a specific value . Other operations are the same as described above. FIG. 1 shows a point in time when the addition up to the overflow block 4-3 is performed.

<10>オーバーフロー・ブロック管理テーブルを使用したデータレコードのアクセス
次に、オーバーフロー・ブロック管理テーブル20を使用したアクセスに関して図1〜図3を用いて説明する。図2は、ロケーション・テーブル・レコードの例である。図3は、オーバーフロー・ブロック管理テーブル・レコードの例である。オーバーフロー・ブロック管理テーブルを使用しない場合は、ロケーション・テーブル10をバイナリー・サーチすることによって、目的のプライマリー・ブロック11を見つけ、そのプライマリー・ブロックとそれに連結されたオーバーフロー・ブロック12から、目的のデータレコードを探し出す。
<10> Data Record Access Using Overflow Block Management Table Next, access using the overflow block management table 20 will be described with reference to FIGS. FIG. 2 is an example of a location table record. FIG. 3 is an example of an overflow block management table record. When the overflow block management table is not used, the target primary block 11 is found by performing a binary search on the location table 10, and the target data is detected from the primary block and the overflow block 12 connected thereto. Find a record.

ロケーション・テーブルのバイナリー・サーチは、ロケーション・テーブルの最初のアドレスと最終ポインターが指すアドレスの中間のアドレスを読み、主キーがそのアドレスのロケーション・テーブル・レコードにあるか、又は上位アドレス、又は下位アドレスにあるかを調べる。上位アドレス、又は下位アドレスにある場合、更にその中間のアドレスをバイナリー・サーチで検索して、主キーを含んでいるプライマリー・ブロック11およびそれに連結されているオーバーフロー・ブロック12を見つける。   A binary search of the location table reads an address between the first address of the location table and the address pointed to by the last pointer, and the primary key is in the location table record for that address, or the higher address, or the lower address Check if it is at the address. If it is at the upper address or the lower address, the intermediate address is further searched by a binary search to find the primary block 11 containing the primary key and the overflow block 12 connected thereto.

オーバーフロー・ブロック管理テーブル20を使用している場合のアクセスは、次のようになる。目的のデータレコードの主キー値(ターゲットキー値)でロケーション・テーブルをバイナリー・サーチして、目的のレコードを格納しているプライマリー・ブロック11およびそれに連結しているオーバーフロー・ブロック12を見つける。ロケーション・テーブル・エントリーには、そのエントリーが管理しているプライマリー・ブロックとそれに連結されているオーバーフロー・ブロック全体に格納されているレコードの主キー値の最小値、最大値の双方または何れか一方が格納されているので、その値とターゲットキー値を比較することにより目的のプライマリー・ブロックおよびそれに連結しているオーバーフロー・ブロックを見つけることが可能である。例えば、図1のプライマリー・ブロック3が目的のプライマリー・ブロックであったとする。次に、ロケーション・テーブル・レコード3に記載のオーバーフロー・ブロックの存在の有無を示す記号を調べる。この場合はオーバーフロー・ブロックが無いので、プライマリー・ブロック3のアクセスを行い、目的のデータレコードを見つける。   Access when the overflow block management table 20 is used is as follows. The location table is binary searched with the primary key value (target key value) of the target data record to find the primary block 11 storing the target record and the overflow block 12 concatenated therewith. The location table entry contains the minimum and / or maximum primary key value of records stored in the primary block managed by the entry and the entire overflow block connected to the primary block. Is stored, it is possible to find the target primary block and the overflow block concatenated with it by comparing the value with the target key value. For example, it is assumed that the primary block 3 in FIG. 1 is the target primary block. Next, the symbol indicating the presence or absence of the overflow block described in the location table record 3 is examined. In this case, since there is no overflow block, the primary block 3 is accessed to find the target data record.

次に、目的のプライマリー・ブロックがブロック4だった場合について説明する。この場合、ロケーション・テーブル・レコード4を見るとオーバーフロー・ブロックが存在していることが識別できる。また、そのオーバーフロー・ブロック管理テーブル・レコードは、オーバーフロー・ブロック管理テーブル・レコード1となっている。よって、オーバーフロー・ブロック管理テーブル・レコード1(オーバーフロー・ブロック4−1)を参照する。そのレコードには、図3に示すように、オーバーフロー・ブロック4−1に格納されているレコードの主キー値の最小値と最大値の双方、又は、何れか一方が格納されている。この最小値と最大値と目的の主キー値とを比較し、そのオーバーフロー・ブロックにデータレコードが含まれているか否かを判別する。目的の主キー値が、オーバーフロー・ブロック4−1の最小値よりも小さい場合には、目的のレコードはプライマリー・ブロックに存在することになる。目的の主キー値が、オーバーフロー・ブロック管理レコード1の最小値と最大値と等しいかその間にある場合は、目的のレコードは、オーバーフロー・ブロック4−1に格納されていることになる。オーバーフロー・ブロック管理テーブル・レコードに、主キー値の最小値または最大値の一方のみが格納されている場合には、当該オーバーフロー・ブロック管理テーブル・レコードの論理的な前後のブロックの最小値または最大値をオーバーフロー・ブロック管理テーブル20上で参照することで、当該オーバーフロー・ブロックに目的のレコードが格納されているか否かが判別できる。   Next, a case where the target primary block is block 4 will be described. In this case, looking at the location table record 4, it can be identified that an overflow block exists. The overflow block management table record is an overflow block management table record 1. Therefore, the overflow block management table record 1 (overflow block 4-1) is referred to. As shown in FIG. 3, the record stores both the minimum value and the maximum value of the primary key value of the record stored in the overflow block 4-1, or one of them. The minimum value and the maximum value are compared with the target primary key value to determine whether or not a data record is included in the overflow block. If the target primary key value is smaller than the minimum value of the overflow block 4-1, the target record is present in the primary block. If the target primary key value is equal to or between the minimum and maximum values of the overflow block management record 1, the target record is stored in the overflow block 4-1. If only one of the minimum or maximum primary key values is stored in the overflow block management table record, the minimum or maximum logical block before or after the overflow block management table record By referring to the value on the overflow block management table 20, it is possible to determine whether or not the target record is stored in the overflow block.

オーバーフロー・ブロック4−1の最大値より、目的の主キー値が大きい場合は、オーバーフロー・ブロック管理テーブル・レコード2(オーバーフロー・ブロック4−2)を参照する。ここでも、目的のデータレコードがない場合は、オーバーフロー・ブロック管理テーブル・レコード4(オーバーフロー・ブロック4−3)を参照する。何れにも含まれない場合は、データレコードが存在しないことになる。主キー値がオーバーフロー・ブロック4−3に含まれているとすると、オーバーフロー・ブロック4−3にアクセスを行い、その中で目的のデータレコードを見つける。レコードがプライマリー・ブロックまたはオーバーフロー・ブロックに含まれるとされる場合であっても、目的のキー値の誤りなどによって、レコードが存在しない場合もある。このように、オーバーフロー・ブロックに対するアクセスは、オーバーフロー・ブロックの数に関係なく、1回のみとなる。オーバーフロー・ブロックが低速な装置に格納されている場合には、アクセスの高速化が実現できる。   When the target primary key value is larger than the maximum value of the overflow block 4-1, the overflow block management table record 2 (overflow block 4-2) is referred to. Again, if there is no target data record, the overflow block management table record 4 (overflow block 4-3) is referred to. If it is not included in any of them, there is no data record. If the primary key value is contained in the overflow block 4-3, the overflow block 4-3 is accessed and the target data record is found therein. Even if the record is included in the primary block or overflow block, the record may not exist due to an error in the target key value. Thus, the access to the overflow block is only once regardless of the number of overflow blocks. When the overflow block is stored in a low-speed device, high-speed access can be realized.

上記では、検索の場合に関して述べたが、データレコードの更新・追加・削除も全く同様に行える。データレコードの更新は、検索で見つけたデータレコードに対して更新を行う。削除は、検索で見つけたデータレコードの削除を行い、削除レコードより後方のデータレコードを、削除レコードの占めていた領域の分、前方に移動する。追加は、検索の方法を利用して追加するデータレコードを格納する場所を見つけ、格納場所より後のデータレコードを後方に移動した後に、データレコードの格納(追加)を行う。更新・追加・削除は、プライマリー・ブロックとそれに連結されているオーバーフロー・ブロックを排他して実行する。   In the above description, the case of search is described, but updating, adding, and deleting of data records can be performed in exactly the same manner. The data record is updated by updating the data record found by the search. In the deletion, the data record found by the search is deleted, and the data record behind the deletion record is moved forward by the area occupied by the deletion record. For the addition, a location for storing the data record to be added is found by using a search method, and after the data record after the storage location is moved backward, the data record is stored (added). Update, add, and delete are executed exclusively for the primary block and the overflow block connected to it.

以上の説明は、ロケーション・テーブル10とオーバーフロー・ブロック管理テーブル20を用いて、オーバーフロー・ブロックの管理とアクセスを効率的に行う方法に関して説明したが、代替キー・ロケーション・テーブルと代替キー・オーバーフロー・ブロック管理テーブルに対しても、代替キー・オーバーフロー・ブロック管理テーブルを用いることで、同様の効果を生むことができる。図10にあるように、各代替キー・ロケーション・テーブル(ALA0、ALB0、ALC0)に対して、オーバーフロー・ブロック管理テーブル(20A、20B、20c)を設ける。更に、各々のオーバーフロー・ブロック管理テーブルに対して、オーバーフロー・ブロック管理テーブル・ポインターOFP(20A1、20B1、20C1)を設ける。これらの使用法とアクセスの方法は、ロケーション・テーブルとブロックの場合の説明と同様であり、重畳するので省略する。   The above description has been given with respect to a method for efficiently managing and accessing the overflow block using the location table 10 and the overflow block management table 20, but the alternative key location table and the alternative key overflow table are described. The same effect can be produced by using the alternative key overflow block management table for the block management table. As shown in FIG. 10, an overflow block management table (20A, 20B, 20c) is provided for each alternative key location table (ALA0, ALB0, ALC0). Further, an overflow block management table pointer OFP (20A1, 20B1, 20C1) is provided for each overflow block management table. These usage and access methods are the same as those in the case of the location table and block, and will be omitted because they overlap.

<11>オーバーフロー・ブロックの途中挿入
オーバーフロー・ブロックが多数存在する場合に、比較的前方のオーバーフロー・ブロックやプライマリー・ブロックに対して、データレコード挿入が発生すると、そのレコード以降のレコードを総て後方に移動しなくてはならず、その移動が大きな負荷になるが、途中にオーバーフロー・ブロックを挿入することにより、そのデータレコード以降のデータレコードを後方に移動する必要がなくなく、データレコードを挿入することができる。そこで、途中にオーバーフロー・ブロックを挿入する場合の動作を図4で説明する。新たに、オーバーフロー・ブロック4−0を確保する。プライマリー・ブロック4がオーバーフロー・ブロック4−1を指していたが、これを、プライマリー・ブロック4がオーバーフロー・ブロック4−0を指すようにし、オーバーフロー・ブロック4−0がオーバーフロー・ブロック4−1を指すようにする。次に、プライマリー・ブロック4またはオーバーフロー・ブロック4−1の何れか、または双方に格納されているレコードのうち、必要なものをオーバーフロー・ブロック4−0に移動する。単純に行う場合には、挿入レコードを格納するための空間を空けるだけのレコードを移動すればよいが、前後のプライマリー・ブロックまたはオーバーフロー・ブロックの格納率が同じくらいになるように移動することが好ましいその場合は、そのレコードとロケーション・テーブル・レコードも書き換える。オーバーフロー・ブロック管理テーブル・レコード5を追加する。オーバーフロー・ブロック管理テーブル・レコード5がオーバーフロー・ブロック4−0を管理するようにする。ロケーション・テーブル・レコード4は、オーバーフロー・ブロック管理テーブル・レコード1(管理対象はオーバーフロー・ブロック4−1)を指していた。これを、ロケーション・テーブル・レコード4が、オーバーフロー・ブロック管理テーブル・レコード5(オーバーフロー・ブロック4−0)を指すように変更する。オーバーフロー・ブロック管理テーブル・レコード5が、オーバーフロー・ブロック管理テーブル・レコード1(オーバーフロー・ブロック4−1)を指すようにアドレスを書く。4−1から4−2、4−2から4−3は、変更が無い。また、オーバーフロー・ブロック管理テーブル・レコード5(オーバーフロー・ブロック4−0)には、4−0に格納されたレコードの主キー値の最小値、最大値の双方または何れか一方を格納する
<11> Inserting an overflow block in the middle If there are many overflow blocks and a data record is inserted into a relatively forward overflow block or primary block, all records after that record are moved backward. However, by inserting an overflow block in the middle, there is no need to move the data record after that data record and insert the data record. can do. The operation when an overflow block is inserted in the middle will be described with reference to FIG. A new overflow block 4-0 is secured. The primary block 4 points to the overflow block 4-1, but this is changed so that the primary block 4 points to the overflow block 4-0 and the overflow block 4-0 identifies the overflow block 4-1. Point to it. Next, among the records stored in either the primary block 4 or the overflow block 4-1, or both, necessary ones are moved to the overflow block 4-0. If it is simply done, it is sufficient to move the record to make room for storing the inserted record, but it is possible to move so that the storage ratio of the primary block and the overflow block before and after are the same. In that case, the record and the location table record are also rewritten. An overflow block management table record 5 is added. The overflow block management table record 5 manages the overflow block 4-0. The location table record 4 points to the overflow block management table record 1 (the management target is the overflow block 4-1). This is changed so that the location table record 4 points to the overflow block management table record 5 (overflow block 4-0). Write an address so that overflow block management table record 5 points to overflow block management table record 1 (overflow block 4-1). There is no change from 4-1 to 4-2 and from 4-2 to 4-3. Further, the overflow block management table record 5 (overflow block 4-0) stores the minimum value and / or maximum value of the primary key value of the record stored in 4-0.

以上の説明は、ロケーション・テーブル10とオーバーフロー・ブロック管理テーブル20を用いて、オーバーフロー・ブロック12の挿入を効率的に行う方法に関して説明したが、代替キー・ロケーション・テーブルと代替キー・オーバーフロー・ブロック管理テーブルを用いて、代替キー・レコードの挿入を行う場合にも同様の方法を用いることが可能である。つまり、代替キー・レコードの挿入に伴う代替キー・オーバーフロー・ブロックの追加を、代替キー・ブロックと代替キー・オーバーフロー・ブロック、または、代替キー・オーバーフロー・ブロックと代替キー・オーバーフロー・ブロックの間に行うことにより、代替キー・レコードの挿入を効率的に行うことが可能となる。
Although the above description has been given with respect to a method for efficiently inserting the overflow block 12 using the location table 10 and the overflow block management table 20, the alternative key location table and the alternative key overflow block are described. A similar method can also be used when an alternative key record is inserted using the management table. This means that an alternate key overflow block is added when an alternate key record is inserted, between the alternate key block and the alternate key overflow block, or between the alternate key overflow block and the alternate key overflow block. By doing so, it is possible to efficiently insert an alternative key record.

以下に、データ格納検索システムの再編成システムへの適用例を説明する。   Below, the example of application to the reorganization system of a data storage search system is demonstrated.

<1>データベース再編成システム
「データベース再編成システム」に関して、図7を用いて説明する。再編成とは、オーバーフロー・ブロックの解消、適正な初期格納率の確保、フラグメンテーションの解消の3つを行うことである。オーバーフロー・ブロックの解消とは、次のようなことである。プライマリー・ブロック11にオーバーフロー・ブロック12、13が多数連結されると、それらのブロックに対して、レコードを挿入しようとしたときに、プライマリー・ブロック11とオーバーフロー・ブロック12、13にまたがってデータレコードが主キー値の順に並んでいなければならないので、移動すべきデータレコードの数が多くなってしまう。データレコードの検索をする場合でも、複数のブロックにまたがって検索を行わなければならないので、効率が低下してしまう。このようなことを避けるために、オーバーフロー・ブロック12、13を無くして、プライマリー・ブロック11にする。
<1> Database Reorganization System The “database reorganization system” will be described with reference to FIG. The reorganization is to eliminate the overflow block, secure an appropriate initial storage rate, and eliminate fragmentation. The elimination of the overflow block is as follows. When a large number of overflow blocks 12 and 13 are connected to the primary block 11, when attempting to insert a record into these blocks, a data record straddling the primary block 11 and the overflow blocks 12 and 13 Must be arranged in the order of primary key values, which increases the number of data records to be moved. Even when a data record is searched, the search must be performed across a plurality of blocks, resulting in a decrease in efficiency. In order to avoid this, the overflow blocks 12 and 13 are eliminated and the primary block 11 is made.

適正な初期格納率の確保とは次のようなことである。プライマリー・ブロック内に予め適当な割合の空き空間を設けておくと、データレコードの挿入が発生した場合でも、直ちにオーバーフロー・ブロック12を追加することなくデータレコードの挿入が行える。ところがデータレコードの挿入が幾度も繰り返されると、適正な初期格納率から外れた空き空間になってしまう。これを初期の状態に戻すものである。フラグメンテーションの解消は、適正な初期格納率の確保と似ているが、不要になったプライマリー・ブロック11やオーバーフロー・ブロック12を削ったり、格納率が少ないプライマリー・ブロックまたはオーバーフロー・ブロックは、統合するなどして、プライマリー・ブロックやオーバーフロー・ブロックが均一に使用された状態にすることである。ここでは、プライマリー・ブロック11とオーバーフロー・ブロック12に関して述べたが、代替キー・ブロックと代替キー・オーバーフロー・ブロックに関しても全く同様である。   Ensuring an appropriate initial storage rate is as follows. If an appropriate free space is provided in the primary block in advance, even if a data record is inserted, the data record can be inserted without immediately adding the overflow block 12. However, if data record insertion is repeated many times, it becomes a free space that deviates from the appropriate initial storage rate. This is returned to the initial state. Defragmentation is similar to ensuring an appropriate initial storage ratio, but primary blocks 11 and overflow blocks 12 that are no longer needed are deleted, or primary blocks or overflow blocks that have a low storage ratio are integrated. For example, the primary block and the overflow block are uniformly used. Although the primary block 11 and the overflow block 12 have been described here, the same applies to the alternative key block and the alternative key overflow block.

ロケーション・テーブルとプライマリー・ブロック、オーバーフロー・ブロックの再編成においては、ロケーション・テーブル10を現用ロケーション・テーブルLCと新規ロケーション・テーブルLNの2つ用意する。更に、各々のロケーション・テーブルに対して、再編成がどこまで終了しているかを示すための再編成ポインターRPLCを現用ロケーション・テーブルに対して1つ設ける。新規ロケーション・テーブルに対して1つの再編成ポインターRPLNを設ける。また、新規ロケーション・テーブル用の再編成ポインターRPLNは、最終ポインターFPで代用することも可能である。   In the reorganization of the location table, the primary block, and the overflow block, two location tables 10 are prepared, that is, a working location table LC and a new location table LN. Further, for each location table, one reorganization pointer RPLC is provided for the working location table to indicate how far the reorganization has been completed. One reorganization pointer RPLN is provided for the new location table. Further, the reorganization pointer RPLN for the new location table can be replaced by the final pointer FP.

図7では、オーバーフロー・ブロックの解消に関して図示している。現用ロケーション・テーブルLCが指しているブロックは、プライマリー・ブロック11と、オーバーフロー・ブロック12、13からなる。現用ロケーション・テーブルLCの最初のブロックは、プライマリー・ブロック0のみからなるので、新規ロケーション・テーブルLNの最初のロケーション・テーブル・レコード0に書き移す。次に、プライマリー・ブロック1を見ると、オーバーフロー・ブロック1−2、1−3が連結されている。プライマリー・ブロック1を、新規ロケーション・テーブルLNのロケーション・テーブル・レコード1に書き移す。次に、オーバーフロー・ブロック1−2の連結を切り離し、新規ロケーション・テーブルLNのレコード2にオーバーフロー・ブロック1−2のアドレスを書き、プライマリー・ブロックとする。同様に、オーバーフロー・ブロック1−3も、新規ロケーション・テーブルLNのレコード3にオーバーフロー・ブロック1−3のアドレスを書き、プライマリー・ブロックとする。   FIG. 7 illustrates the elimination of the overflow block. The block pointed to by the working location table LC includes a primary block 11 and overflow blocks 12 and 13. Since the first block of the working location table LC consists only of the primary block 0, it is transferred to the first location table record 0 of the new location table LN. Next, when the primary block 1 is seen, the overflow blocks 1-2 and 1-3 are connected. The primary block 1 is transferred to the location table record 1 of the new location table LN. Next, the connection of the overflow block 1-2 is cut off, and the address of the overflow block 1-2 is written in the record 2 of the new location table LN to make it the primary block. Similarly, the overflow block 1-3 also writes the address of the overflow block 1-3 to the record 3 of the new location table LN to make it the primary block.

同様に、次々とオーバーフロー・ブロックの切り離しを行い、現用ロケーション・テーブルLCのレコード3が管理していたプライマリー・ブロック3までのオーバーフロー・ブロック解消が終了した時点を、図7は示している。現用ロケーション・テーブルの再編成ポインターRPLCは、現用ロケーション・テーブルLCのレコード3の次のアドレスを指している。また、新規ロケーション・テーブルの再編成ポインターRPLNは、新規ロケーション・テーブルのレコード6の次のアドレスを指している。   Similarly, FIG. 7 shows a point in time when overflow blocks are separated one after another and the overflow block resolution up to the primary block 3 managed by the record 3 of the working location table LC is completed. The reorganization pointer RPLC of the working location table points to the next address of the record 3 of the working location table LC. The relocation pointer RPLN of the new location table points to the next address of the record 6 of the new location table.

次に適正な初期格納率の確保と、フラグメンテーションの解消は、1時点で複数のブロックを対象にし、それらのプライマリー・ブロック、オーバーフロー・ブロック間で、適正な初期格納率になっていないブロック間でデータレコードの移動を行い、ブロック内に適正にデータレコードが格納されるようにするもので、状況によって、ブロックを削除したり、追加したりする。ここでは、プライマリー・ブロックとオーバーフロー・ブロックに関して述べたが、代替キー・ブロックと代替キー・オーバーフロー・ブロックに関しても全く同様である。   Next, to secure an appropriate initial storage ratio and to eliminate fragmentation, target multiple blocks at one time. Between those primary blocks and overflow blocks, between blocks that do not have an appropriate initial storage ratio. The data record is moved so that the data record is properly stored in the block. Depending on the situation, the block is deleted or added. Here, the primary block and the overflow block have been described, but the same applies to the alternative key block and the alternative key overflow block.

再編成中にデータベースをアクセスすることか可能である。まず検索に関して述べる。検索は、再編成ポインターRPLCが指しているレコードが指しているブロックに格納されているレコードの主キー値が、目的の主キー値より大きいか小さいかの判定を行う。小さい場合には、新規のロケーション・テーブルLNを用いて、先頭と再編成ポインターRPLNが指している間に対してバイナリー・サーチを行うことにより、目的のレコードの検索を行う。大きいか等しい場合は、現用のロケーション・テーブルLCを用いて、再編成ポインターRPLCと最終ポインターFPが指している間に対してバイナリー・サーチを行うことにより、目的のレコードの検索を行う。ここでは検索の場合を説明したが、更新、追加、削除も同様に行える。代替キー・テーブルにおける再編成やアクセスも、ロケーション・テーブルとブロックの場合と、ほぼ同様な方式で実行可能である。   It is possible to access the database during reorganization. First, search is described. The search determines whether the primary key value of the record stored in the block pointed to by the record pointed to by the reorganization pointer RPLC is larger or smaller than the target primary key value. If it is smaller, a new location table LN is used to search for the target record by performing a binary search between the head and the reorganization pointer RPLN. If it is larger or equal, the target record is searched by performing a binary search using the current location table LC while the reorganization pointer RPLC and the final pointer FP are pointing. Although the case of search has been described here, update, addition, and deletion can be performed in the same manner. Reorganization and access in the alternate key table can be performed in almost the same manner as in the location table and block.

<2>データベース再編成システムの適用方法
「データベース再編成システム」で再編成を行う場合に、オーバーフロー・ブロック管理テーブルのレコードを解消する方法に関して説明する。「データベース再編成システム」では、オーバーフロー・ブロックの解消、フラグメンテーションの解消、適正な初期格納率の確保の3つを同時に行う方法に関して記載している。この中で、オーバーフロー・ブロックの解消を行うに際して、オーバーフロー・ブロック管理テーブル20が本発明で追加されているため、この組み合わせにおいて、再編成を行う方法を図8を用いて説明する。この説明では、オーバーフロー・ブロックの解消に関して説明を行うが、実際に再編成を実行する場合には、フラグメンテーションの解消と適正な初期格納率の確保を同時に行うことが好ましい。
<2> Application Method of Database Reorganization System A method for eliminating the record in the overflow block management table when reorganization is performed by the “database reorganization system” will be described. The “database reorganization system” describes a method of simultaneously performing three methods of eliminating an overflow block, eliminating fragmentation, and ensuring an appropriate initial storage rate. Among them, since the overflow block management table 20 is added in the present invention when the overflow block is eliminated, a method of performing reorganization in this combination will be described with reference to FIG. In this description, the elimination of the overflow block will be described. However, when the reorganization is actually executed, it is preferable to simultaneously eliminate the fragmentation and ensure an appropriate initial storage ratio.

再編成を行うには、現用ロケーション・テーブルLCに対して、新規ロケーション・テーブルLNを設けて、ロケーション・テーブル・レコードを、現用ロケーション・テーブルから新規ロケーション・テーブルに書き移していく。その際に、オーバーフロー・ブロックが存在すると、そのオーバーフロー・ブロックをプライマリー・ブロックとし、新規ロケーション・テーブルに新しいロケーション・テーブル・レコードを作成する。その分だけ、新規ロケーション・テーブルのレコード数が、現用ロケーション・テーブルのレコード数より増加する。図8は、そのように、オーバーフロー・ブロックをプライマリー・ブロックにする再編成を実行して、現用ロケーション・テーブルLCのレコード4まで、新規ロケーション・テーブルLNのレコード9まで再編成が終了した時点の図である。   To perform the reorganization, a new location table LN is provided for the working location table LC, and the location table record is transferred from the working location table to the new location table. At this time, if an overflow block exists, the overflow block is made a primary block, and a new location table record is created in the new location table. Accordingly, the number of records in the new location table is increased from the number of records in the working location table. FIG. 8 shows a state in which the reorganization is performed so that the overflow block becomes the primary block, and the reorganization is completed up to the record 4 of the working location table LC and the record 9 of the new location table LN. FIG.

再編成は、現用ロケーション・テーブル・レコード0から開始する。ロケーション・テーブル・レコード1はオーバーフロー・ブロック1−1を連結していることが、現用ロケーション・テーブル・レコード1を参照することにより判別できる。ロケーション・テーブル・レコード1は、オーバーフロー・ブロック管理テーブル・レコード0を指しているので、オーバーフロー・ブロック管理テーブル・レコード0が指しているオーバーフロー・ブロック1−1のアドレスを、新規ロケーション・テーブルLNのレコード2に格納する。また、オーバーフロー・ブロック管理テーブル・レコード0が不要となる。   Reorganization starts at working location table record 0. It can be determined by referring to the working location table record 1 that the location table record 1 is connected to the overflow block 1-1. Since the location table record 1 points to the overflow block management table record 0, the address of the overflow block 1-1 pointed to by the overflow block management table record 0 is assigned to the new location table LN. Store in record 2. Further, the overflow block management table record 0 is not necessary.

次に、現用ロケーション・テーブル・レコード2を新規ロケーション・テーブル・レコード3に書き移す。以下同様に、現用ロケーション・テーブル・レコード3、4を、新規ロケーション・テーブル・レコード4、5に書き移す。現用ロケーション・テーブル・レコードが管理しているプライマリー・ブロック4には、オーバーフロー・ブロックが4つ連結されている。オーバーフロー・ブロック管理テーブルでは、オーバーフロー・ブロック管理テーブル・レコードの5、1、2、4の順に格納されている。前述のように、オーバーフロー・ブロック管理テーブル・レコードが指しているオーバーフロー・ブロックのアドレスを、新規ロケーション・テーブル・レコード6、7、8、9に格納する。それにより、オーバーフロー・ブロック管理テーブル・レコードの5、1、2、4は不要となる。前述のように、図8は、ここまで再編成が終了した時点を示している。   Next, the working location table record 2 is transferred to the new location table record 3. Similarly, the working location table records 3 and 4 are transferred to the new location table records 4 and 5. Four overflow blocks are connected to the primary block 4 managed by the working location table record. In the overflow block management table, the overflow block management table records are stored in the order of 5, 1, 2, and 4. As described above, the address of the overflow block pointed to by the overflow block management table record is stored in the new location table records 6, 7, 8, and 9. As a result, the overflow block management table records 5, 1, 2, and 4 become unnecessary. As described above, FIG. 8 shows a point in time when the reorganization is completed so far.

ここでは、新規ロケーション・テーブルの他に、現用オーバーフロー・ブロック管理テーブルに対して、新規オーバーフロー・ブロック管理テーブルを設けている。図8の現用オーバーフロー・ブロック管理テーブルのレコード(0、1、2、4、5)は、再編成によりオーバーフロー・ブロックが解消されているため、不要となったレコードである。オーバーフロー・ブロック管理テーブル・レコードは、再編に伴いこのように、ばらばらに不要となる。一方で、再編成が完了する前に、既に再編成が終了したオーバーフロー・ブロックに対して、更にオーバーフロー・ブロックが発生する可能性がある。   Here, in addition to the new location table, a new overflow block management table is provided for the working overflow block management table. The records (0, 1, 2, 4, 5) in the working overflow block management table in FIG. 8 are records that are no longer necessary because the overflow block has been eliminated by reorganization. As described above, the overflow block management table record is disseminated with the reorganization. On the other hand, before the reorganization is completed, an overflow block may further occur for the overflow block that has already been reorganized.

これらの新たに発生するオーバーフロー・ブロックを管理するために、新規オーバーフロー・ブロック管理テーブルを設ける。新規オーバーフロー・ブロック管理テーブルには、新規ロケーション・テーブルで管理しているプライマリー・ブロックに対してオーバーフロー・ブロックが発生した場合に、そのオーバーフロー・ブロックのアドレスや最大値、最小値を格納する。現用ロケーション・テーブルが管理しているプライマリー・ブロックに対して、オーバーフロー・ブロックが発生した場合には、現用オーバーフロー・ブロック管理テーブルを使用する。再編成が完了した場合には、現用ロケーション・テーブルと現用オーバーフロー・ブロック管理テーブルは不要となる。   In order to manage these newly generated overflow blocks, a new overflow block management table is provided. The new overflow block management table stores the address, maximum value, and minimum value of the overflow block when an overflow block occurs for the primary block managed by the new location table. If an overflow block occurs for the primary block managed by the working location table, the working overflow block management table is used. When the reorganization is completed, the working location table and the working overflow block management table become unnecessary.

以上で、ロケーション・テーブルとブロック、オーバーフロー・ブロックの再編成に関して説明を行ったが、この方法を用いることで、代替キー・ロケーション・テーブルと代替キー・ブロック、代替キー・オーバーフロー・ブロック、代替キー・オーバーフロー・ブロック管理テーブルの再編成を全く同様に実施できる。
In the above, reorganization of location table and block and overflow block was explained. By using this method, alternative key location table and alternative key block, alternative key overflow block, alternative key -Overflow block management table can be reorganized in exactly the same way.

以下に、データ格納検索システムのアクセラレーターへの適用例を説明する。   An example of application of the data storage / retrieval system to an accelerator will be described below.

<1>アクセラレーター・システム
図9を用いて、アクセラレーター・システムの説明を行う。アクセラレーター・システムの原理は次のようなものである。ロケーション・テーブルや代替キー・ロケーション・テーブルに対して、バイナリー・サーチを行って目的のレコードを見つける。ロケーション・テーブルに対してバイナリー・サーチを行う際には、二分割点を幾度も探すことになり、この回数は、プライマリー・ブロックまたはオーバーフロー・ブロック内でレコードを探すための回数よりも多くなることが一般的である。また、同時に複数のプロセスから、同じプライマリー・ブロックまたはオーバーフロー・ブロック内のレコードを要求する可能性は相当に低いものである。よって、ロケーション・テーブルと代替キー・ロケーション・テーブルのコピーを複数保有し、各々に対して並行してバイナリー・サーチが行えるようにすれば、レコードに対するアクセス要求を数多く実行することが可能となる。
<1> Accelerator System An accelerator system will be described with reference to FIG. The principle of the accelerator system is as follows. Perform a binary search on the location table or alternate key location table to find the desired record. When performing a binary search on the location table, you will find the bisection point many times, which is more than the number of times you search for a record in the primary block or overflow block. Is common. Also, the possibility of requesting records in the same primary block or overflow block from multiple processes at the same time is quite low. Therefore, if a plurality of copies of the location table and the alternative key location table are held and a binary search can be performed on each of them in parallel, a large number of access requests for records can be executed.

図10では、アクセラレーター・システムが1つの場合を示している。アクセラレーター・システム3では、ロケーション・テーブル(フランド・ロケーション・テーブル)、代替キー・ロケーション・テーブル(フランド・代替キー・ロケーション・テーブル)を保有しているが、プライマリー・ブロック、オーバーフロー・ブロック、代替キー・ブロック、代替キー・オーバーフロー・ブロックは保有していない。アクセラレーター・システムのフランド・ロケーション・テーブルは、プライマリー・システム1のロケーション・テーブルと機能的に同等のものである。同様にアクセラレーター・システム3のフランド・代替キー・ロケーション・テーブルALA1、ALB1、ALC1は、プライマリー・システム1の代替キー・ロケーション・テーブルALA0、ALB0、ALC0と機能的に同等なものである。アクセラレーター・システム3のフランド・ロケーション・テーブル16の各レコードは、プライマリー・システムの各ロケーション・テーブル10のレコードと同じブロックを指している。   FIG. 10 shows a case where there is one accelerator system. Accelerator system 3 has a location table (Fland location table) and an alternate key location table (Fland alternate key location table), but the primary block, overflow block, and alternate block Does not have a key block or alternate key overflow block. The accelerator system's Fland location table is functionally equivalent to the primary system 1 location table. Similarly, the alternate key location tables ALA1, ALB1, and ALC1 of the accelerator system 3 are functionally equivalent to the alternate key location tables ALA0, ALB0, and ALC0 of the primary system 1. Each record of the rand location table 16 of the accelerator system 3 points to the same block as the record of each location table 10 of the primary system.

アクセラレーター・システムでは、アクセス要求があると、主キーの場合はフランド・ロケーション・テーブルに対してバイナリー・サーチを行い、目的のプライマリー・ブロックとそれに連結されたオーバーフロー・ブロックを探し、そのブロック内のレコード検索をプライマリー・システムに依頼する。代替キーの場合は、フランド・代替キー・ロケーション・テーブルのバイナリー・サーチを行い、目的の代替キー・ブロックとそれに連結された代替キー・オーバーフロー・ブロックを見つけ、プライマリー・システムが保持している代替キー・ブロックから目的の代替キー・レコードを見つけ、その代替キー・レコードによって、フランド・ロケーション・テーブルのバイナリー・サーチを行って目的のレコードを見つける。ここでは検索の方法を述べたが、この方法を適用することで、レコードの更新、追加、削除が行える。また、代替キーの場合に、代替キー・レコードに基づいてフランド・ロケーション・テーブルのバイナリー・サーチを行う、としたが、代替キー・レコードに、プライマリー・ブロックのアドレスやブロック番号を保持している場合には不要である。このようにして、複数のアクセラレーター・システムで並行してレコードの検索や更新を行うことにより、処理量を増加させることが可能となる。   In the accelerator system, when there is an access request, in the case of the primary key, a binary search is performed on the land location table to find the target primary block and the overflow block concatenated with it, and within that block. Ask the primary system to retrieve the records for For alternate keys, perform a binary search of the alternate alternate key location table to find the desired alternate key block and its associated alternate key overflow block, and the alternate held by the primary system Find the desired alternate key record from the key block, and use that alternate key record to perform a binary search of the Fland location table to find the desired record. Although the search method has been described here, it is possible to update, add, and delete records by applying this method. Also, in the case of an alternate key, binary search of the land location table is performed based on the alternate key record, but the alternate key record holds the address and block number of the primary block. It is not necessary in some cases. In this way, it is possible to increase the amount of processing by searching and updating records in parallel with a plurality of accelerator systems.

図10では、アクセラレーター・システムはロケーション・テーブル1つと代替キー・ロケーション・テーブル3種を保持しており、プライマリー・システムと同じ数となっている。これを、「アクセラレーター」では対称システムと呼んでいる。これに対して、例えば、ロケーション・テーブルと代替キー・ロケーション・テーブルを2種類のみ保持しているようなアクセラレーター・システムを想定しており、ロケーション・テーブルのみ、代替キー・ロケーション・テーブルのみ、といったアクセラレーター・システムを作成することが可能である。これを非対称システムと呼んでいる。アクセラレーター・システムに関しても、プライマリー・ブロックとオーバーフロー・ブロック、代替キー・ブロックと代替キー・オーバーフロー・ブロックに関して、ほぼ同様に扱うことができる。   In FIG. 10, the accelerator system has one location table and three alternative key location tables, which is the same number as the primary system. This is called a symmetric system in "Accelerator". On the other hand, for example, an accelerator system that holds only two types of location table and alternate key location table is assumed, and only the location table, only the alternate key location table, It is possible to create an accelerator system such as This is called an asymmetric system. With respect to the accelerator system, the primary block and the overflow block, the alternative key block and the alternative key overflow block can be handled in substantially the same manner.

<2>アクセラレーター・システムへの適用
次に、「アクセラレーター機能」を用いたシステムへの適用に関して図10を用いて説明する。プライマリー・システム1では、ロケーション・テーブル10に対して、オーバーフロー・ブロック管理テーブル20を持ち、代替キー・ロケーション・テーブルALA0に対して、代替キー・オーバーフロー・ブロック管理テーブル20Aを持ち、同様に、代替キー・ロケーション・テーブルALB0に対して代替キー・オーバーフロー・ブロック管理テーブル20Bを持ち、代替キー・ロケーション・テーブルALC0に対して、代替キー・オーバーフロー・ブロック管理テーブル20Cを持っている。また、オーバーフロー・ブロック管理テーブルには、オーバーフロー・ブロック管理テーブル・ポインター201を設け、代替キー・オーバーフロー・ブロック管理テーブル20Aに対して、代替キー・オーバーフロー・ブロック管理テーブル・ポインター20A1を設け、同様に、代替キー・オーバーフロー・ブロック管理テーブル・ポインター20B1、20C1を設けている。更に、最終ポインター(101、10A1、10B1、10C1)を持っている。
<2> Application to Accelerator System Next, application to a system using the “accelerator function” will be described with reference to FIG. The primary system 1 has an overflow block management table 20 for the location table 10 and an alternative key overflow block management table 20A for the alternative key location table ALA0. The key location table ALB0 has an alternative key overflow block management table 20B, and the alternative key location table ALC0 has an alternative key overflow block management table 20C. In addition, the overflow block management table is provided with an overflow block management table pointer 201, and an alternative key overflow block management table pointer 20A1 is provided for the alternative key overflow block management table 20A. Alternate key overflow block management table pointers 20B1 and 20C1 are provided. Furthermore, it has final pointers (101, 10A1, 10B1, 10C1).

アクセラレーター・システム3では、フランド・ロケーション・テーブル16に対して、フランド・オーバーフロー・ブロック管理テーブル21を設け、ALA1、ALB1、ALC1の各フランド代替キー・ロケーション・テーブルに対して、それぞれフランド代替キー・オーバーフロー・ブロック管理テーブル21A、21B、21Cを設ける。21A、21B、21Cの各フランド代替キー・オーバーフロー・ブロック管理テーブルに対して、それぞれフランド代替キー・オーバーフロー・ブロック管理テーブル・ポインター21A1、21B1、21C1を設ける。更に、最終ポインター(161、16A1、16B1、16C1)を持っている。   In the accelerator system 3, a Fland overflow block management table 21 is provided for the Fland location table 16, and a Fland substitute key is provided for each of the ALA1, ALB1, and ALC1 Fland substitute key location tables. Provide overflow block management tables 21A, 21B, and 21C. For each of the alternative key / overflow / block management tables 21A, 21B, and 21C, the alternative key / overflow / block management table / pointer 21A1, 21B1, 21C1 is provided. Furthermore, it has a final pointer (161, 16A1, 16B1, 16C1).

アクセラレーター・システム3では、プライマリー・システム1で、ロケーション・テーブルまたは代替キー・ロケーション・テーブルに変更が発生した場合に、アクセラレーター・システム3に対して、その変更を通知し、アクセラレーター・システム3では、当該フランド・ロケーション・テーブルまたはフランド代替キー・ロケーション・テーブルの変更を行うことになっている。これを、次のように改めることにより、本発明のオーバーフロー・ブロック管理テーブル、代替キー・オーバーフロー・ブロック管理テーブルを用いてもアクセラレーター・システム3を動かすことが可能となる。プライマリー・システム1で、ロケーション・テーブル10、オーバーフロー・ブロック管理テーブル20、最終ポインター101、オーバーフロー・ブロック管理テーブル・ポインター201、代替キー・ロケーション・テーブル(ALA0、ALB0、ALC0)、代替キー・ロケーション・テーブルの最終ポインター(10A1、10B1、10C1)、代替キー・オーバーフロー・ブロック管理テーブル(20A、20B、20C)、代替キー・オーバーフロー・ブロック管理テーブル・ポインター(20A1、20B1、20C1)の何れかに変更が発生した場合に、その変更部分をアクセラレーター・システム3に通知する。アクセラレーター・システム3では、その通知に基づいて、当該フランド・ロケーション・テーブル16、フランド・オーバーフロー・ブロック管理テーブル21、フランド最終ポインター161、フランド・オーバーフロー・ブロック管理テーブル・ポインター211、フランド代替キー・ロケーション・テーブル(ALA1、ALB1、ALC1)、フランド代替キー・ロケーション・テーブルの最終ポインター(16A1、16B1、16C1)、フランド代替キー・オーバーフロー・ブロック管理テーブル(21A、21B、21C)、フランド代替キー・オーバーフロー・ブロック管理テーブル・ポインター(21A1、21B1、21C1)の何れかに対して、当該変更部分の変更を行う。   In the accelerator system 3, when a change occurs in the location table or the alternate key location table in the primary system 1, the change is notified to the accelerator system 3, and the accelerator system is notified. In step 3, the relevant location table or the alternative key location table is changed. By revising this as follows, the accelerator system 3 can be operated using the overflow block management table and the alternative key overflow block management table of the present invention. In primary system 1, location table 10, overflow block management table 20, final pointer 101, overflow block management table pointer 201, alternative key location table (ALA0, ALB0, ALC0), alternative key location Change to one of the last pointer (10A1, 10B1, 10C1) of the table, the alternative key overflow block management table (20A, 20B, 20C), or the alternative key overflow block management table pointer (20A1, 20B1, 20C1) When this occurs, the changed part is notified to the accelerator system 3. In the accelerator system 3, based on the notification, the Fland location table 16, the Frand overflow block management table 21, the Fland final pointer 161, the Frand overflow block management table pointer 211, the Fland alternative key, Location table (ALA1, ALB1, ALC1), Fland alternative key location table last pointer (16A1, 16B1, 16C1), Fland alternative key overflow block management table (21A, 21B, 21C), Fland alternative key The change portion is changed for any of the overflow block management table pointers (21A1, 21B1, 21C1).

このように、プライマリー・システム1から変更部分をアクセラレーター・システム3に通知し、アクセラレーター・システム3で直ちにその変更を適用することにより、アクセラレーター・システム3の、フランド・ロケーション・テーブル16、フランド・オーバーフロー・ブロック管理テーブル21、フランド最終ポインター161、フランド・オーバーフロー・ブロック管理テーブル・ポインター211、フランド代替キー・ロケーション・テーブル(21A、21B、21C)、フランド代替キー・ロケーション・テーブルの最終ポインター(21A1、21B1、21C1)、フランド代替キー・オーバーフロー・ブロック管理テーブル(21A、21B、21C)、フランド代替キー・オーバーフロー・ブロック管理テーブル・ポインター(20A1、20B1、20C1)は、プライマリー・システムと同等に保たれる。   In this way, the change part is notified from the primary system 1 to the accelerator system 3, and the change is immediately applied by the accelerator system 3, so that the accelerator location table 16 of the accelerator system 3, Fland overflow block management table 21, Fland last pointer 161, Fland overflow block management table pointer 211, Fland alternative key location table (21A, 21B, 21C), Fland alternative key location table final pointer (21A1, 21B1, 21C1), Fland alternative key overflow block management table (21A, 21B, 21C), Fland alternative key overflow block management table Pointer (20A1,20B1,20C1) is kept equal to the primary system.

アクセラレーター・システム3でのアクセスは、オーバーフロー・ブロック管理テーブルを用いたアクセスで説明したことと、アクセラレーター・システム3で説明した方法を組み合わせることで実現できる。   Access in the accelerator system 3 can be realized by combining the access described using the overflow block management table and the method described in the accelerator system 3.

上記では、アクセラレーター・システム3の対称システムを想定した説明を行ったが、非対称システムの場合には、プライマリー・システムで変更があった部分を保持するアクセラレーター・システムのみが、その変更を受け取り更新することになる。
In the above, explanation was made assuming a symmetric system of accelerator system 3. However, in the case of an asymmetric system, only the accelerator system holding the changed part in the primary system receives the change. Will be updated.

オーバーフロー・ブロック管理テーブルを使用したデータベースの説明図Illustration of the database using the overflow block management table ロケーション・テーブルのレコードの説明図Illustration of location table record オーバーフロー・ブロック管理テーブルのレコードの説明図Explanatory drawing of record in overflow block management table オーバーフロー・ブロック管理テーブルを使用したオーバーフロー・ブロック挿入の説明図Illustration of overflow block insertion using the overflow block management table 代替キーによる検索の説明図Explanatory diagram of search by alternative key 可変長のプライマリー・ブロックの説明図Illustration of variable-length primary block 再編成の説明図Illustration of reorganization オーバーフロー・ブロック管理テーブルを使用した再編成の説明図Illustration of reorganization using overflow block management table アクセラレーター・システムの原理を説明した図Diagram explaining the principle of accelerator system アクセラレーター・システムのオーバーフロー・ブロック管理テーブルの適用例の説明図Explanatory drawing of application example of overflow block management table of accelerator system

符号の説明Explanation of symbols

1・・・・プライマリー・システム
3・・・・アクセラレーター・システム
10・・・ロケーション・テーブル
11・・・プライマリー・ブロック
12・・・オーバーフロー・ブロック
13・・・オーバーフロー・ブロック
16・・・フランド・ロケーション・テーブル
20・・・オーバーフロー・ブロック管理テーブル
22A・・代替キー・ブロック
ALA0・代替キー・ロケーション・テーブル
ALA1・フランド代替キー・ロケーション・テーブル
LC・・・現用ロケーション・テーブル
LN・・・新規ロケーション・テーブル
FP・・・最終ポインター
OFP・・オーバーフロー・ブロック管理テーブル・ポインター
RPLC・現用ロケーション・テーブルの再編成ポインター
RPLN・新規ロケーション・テーブルの再編成ポインター
1 ... Primary system 3 ... Accelerator system 10 ... Location table 11 ... Primary block 12 ... Overflow block 13 ... Overflow block 16 ... Fland -Location table 20 ... Overflow-Block management table 22A-Alternative key block ALA0-Alternative key location table ALA1-Fland alternative key location table LC-Current location table LN-New Location table FP ... Last pointer OFP-Overflow-Block management table-Pointer RPLC-Current location table reorganization pointer RPLN-New location table reorganization point Over

Claims (6)

コンピュータにデータを格納し、検索するデータ格納検索システムにおいて、
主キー項目を含むデータ項目を持つデータレコードと、
データレコードを主キーの順に格納するプライマリー・ブロックとオーバーフロー・ブロックと、
プライマリー・ブロックのアドレスを格納するロケーション・テーブル・レコードと、
ロケーション・テーブル・レコードを主キーの順に格納するロケーション・テーブルと、
ロケーション・テーブルの使用領域の最後を示す最終ポインターと、
オーバーフロー・ブロックのアドレスを管理するオーバーフロー・ブロック管理テーブルと、
オーバーフロー・ブロック管理テーブルの使用領域の最後を示すオーバーフロー・ブロック最終ポインターとを備えていることを特徴とする、データ格納検索システム。
In a data storage and retrieval system for storing and retrieving data in a computer,
A data record with a data field containing a primary key field, and
A primary block that stores data records in primary key order and an overflow block;
A location table record that stores the address of the primary block;
A location table that stores location table records in primary key order;
A final pointer to indicate the end of the used area of the location table;
An overflow block management table for managing the address of the overflow block;
A data storage / retrieval system comprising an overflow block final pointer indicating the end of an area used by an overflow block management table.
コンピュータにデータを格納し、検索するデータ格納検索システムにおいて、
主キー項目を含むデータ項目を持つデータレコードと、
データレコードを主キーの順に格納するプライマリー・ブロックとオーバーフロー・ブロックと、
プライマリー・ブロックのアドレスを格納するロケーション・テーブル・レコードと、
ロケーション・テーブル・レコードを主キーの順に格納する現用ロケーション・テーブルと、
現用ロケーション・テーブルの使用領域の最後を示す現用最終ポインターと、
オーバーフロー・ブロックのアドレスを管理する現用オーバーフロー・ブロック管理テーブルと、
現用オーバーフロー・ブロック管理テーブルの使用領域の最後を示す現用オーバーフロー・ブロック最終ポインターと、を備え、
再編成の際、
現用ロケーション・テーブルの再編成位置の最後を示す現用再編成ポインターと、
プライマリー・ブロックのアドレスを格納する新規ロケーション・テーブルと、
新規ロケーション・テーブルの再編成位置の最後を示す新規再編成ポインターと、
オーバーフロー・ブロックのアドレスを管理する新規オーバーフロー・ブロック管理テーブルと、
新規オーバーフロー・ブロック管理テーブルの使用領域の最後を示す新規オーバーフロー・ブロック最終ポインターと、
を備えていることを特徴とする、データ格納検索システム。
In a data storage and retrieval system for storing and retrieving data in a computer,
A data record with a data field containing a primary key field, and
A primary block that stores data records in primary key order and an overflow block;
A location table record that stores the address of the primary block;
A working location table that stores location table records in primary key order;
A working last pointer that indicates the end of the used area of the working location table;
A working overflow block management table for managing the address of the overflow block;
A working overflow block last pointer indicating the end of the used area of the working overflow block management table, and
During reorganization
A working reorganization pointer that indicates the end of the reorganization position of the working location table;
A new location table to store the address of the primary block;
A new reorganization pointer that indicates the end of the reorganization position in the new location table;
A new overflow block management table that manages the address of the overflow block;
A new overflow block last pointer that indicates the end of the used area of the new overflow block management table;
A data storage / retrieval system comprising:
請求項1に記載のデータ格納検索システムにおいて、
プライマリー・ブロックのアドレスを格納するフランド・ロケーション・テーブルと、
オーバーフロー・ブロックのアドレスを管理するフランド・オーバーフロー・ブロック管理テーブルと、を備えていることを特徴とする、データ格納検索システム。
The data storage and retrieval system according to claim 1,
A land location table that stores the address of the primary block;
A data storage / retrieval system, comprising: a overflow overflow block management table for managing an address of an overflow block.
コンピュータにデータを格納し、検索するデータ格納検索システムにおいて、
代替キー・レコードを代替キーの順に格納する代替キー・ブロックと代替キー・オーバーフロー・ブロックと、
代替キー・ブロックのアドレスを格納する代替キー・ロケーション・テーブル・レコードと、
代替キー・ロケーション・テーブル・レコードを代替キーの順に格納する代替キー・ロケーション・テーブルと、
代替キー・ロケーション・テーブルの使用領域の最後を示す最終ポインターと、
代替キー・オーバーフロー・ブロックのアドレスを管理する代替キー・オーバーフロー・ブロック管理テーブルと、
代替キー・オーバーフロー・ブロック管理テーブルの使用領域の最後を示す代替キー・オーバーフロー・ブロック最終ポインターとを備えていることを特徴とする、データ格納検索システム。
In a data storage and retrieval system for storing and retrieving data in a computer,
An alternate key block and an alternate key overflow block that store alternate key records in the order of the alternate keys;
An alternate key location table record that stores the address of the alternate key block;
An alternate key location table that stores alternate key location table records in order of alternate keys; and
A final pointer to indicate the end of the used area of the alternate key location table;
An alternate key overflow block management table for managing the address of the alternate key overflow block;
A data storage / retrieval system comprising: an alternative key overflow block last pointer indicating the end of a used area of an alternative key overflow block management table.
コンピュータにデータを格納し、検索するデータ格納検索システムにおいて、
代替キー・レコードを代替キーの順に格納する代替キー・ブロックと代替キー・オーバーフロー・ブロックと、
代替キー・ブロックのアドレスを格納する代替キー・ロケーション・テーブル・レコードと、
代替キー・ロケーション・テーブル・レコードを代替キーの順に格納する現用代替キー・ロケーション・テーブルと、
現用代替キー・ロケーション・テーブルの使用領域の最後を示す現用代替キー最終ポインターと、
代替キー・オーバーフロー・ブロックのアドレスを管理する現用代替キー・オーバーフロー・ブロック管理テーブルと、
現用代替キー・オーバーフロー・ブロック管理テーブルの使用領域の最後を示す現用代替キー・オーバーフロー・ブロック最終ポインターと、を備え、
再編成の際、
現用代替キー・ロケーション・テーブルの再編成位置の最後を示す現用再編成ポインターと、
代替キー・ブロックのアドレスを格納する新規代替キー・ロケーション・テーブルと、
新規代替キー・ロケーション・テーブルの再編成位置の最後を示す新規再編成ポインターと、
代替キー・オーバーフロー・ブロックのアドレスを管理する新規代替キーオーバーフロー・ブロック管理テーブルと、
新規代替キー・オーバーフロー・ブロック管理テーブルの使用領域の最後を示す新規代替キー・オーバーフロー・ブロック最終ポインターと、
を備えていることを特徴とする、データ格納検索システム。
In a data storage and retrieval system for storing and retrieving data in a computer,
An alternate key block and an alternate key overflow block that store alternate key records in the order of the alternate keys;
An alternate key location table record that stores the address of the alternate key block;
A working alternate key location table that stores alternate key location table records in order of alternate keys; and
A working alternate key end pointer that indicates the end of the used area of the working alternate key location table;
A working alternate key overflow block management table for managing addresses of alternate key overflow blocks;
A working alternate key overflow block last pointer indicating the end of the used area of the working alternate key overflow block management table, and
During reorganization
A working reorganization pointer that indicates the end of the reorganization position in the working alternate key location table;
A new alternate key location table that stores the address of the alternate key block;
A new reorganization pointer that indicates the end of the reorganization position in the new alternate key location table;
A new alternate key overflow block management table that manages the address of the alternate key overflow block;
A new alternate key overflow block last pointer that indicates the end of the used area of the new alternate key overflow block management table, and
A data storage / retrieval system comprising:
請求項4に記載のデータ格納検索システムにおいて、
代替キー・ブロックのアドレスを格納するフランド・代替キー・ロケーション・テーブルと、
代替キー・オーバーフロー・ブロックのアドレスを管理するフランド・代替キー・オーバーフロー・ブロック管理テーブルと、を備えていることを特徴とする、データ格納検索システム。
The data storage and retrieval system according to claim 4,
The alternate key / location table that stores the address of the alternate key block, and
A data storage / retrieval system comprising: a fland for managing addresses of a substitute key, overflow block, a substitute key, overflow, and a block management table.
JP2004020006A 2004-01-28 2004-01-28 Data storage and retrieval system Pending JP2005215869A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004020006A JP2005215869A (en) 2004-01-28 2004-01-28 Data storage and retrieval system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004020006A JP2005215869A (en) 2004-01-28 2004-01-28 Data storage and retrieval system

Publications (1)

Publication Number Publication Date
JP2005215869A true JP2005215869A (en) 2005-08-11

Family

ID=34904060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004020006A Pending JP2005215869A (en) 2004-01-28 2004-01-28 Data storage and retrieval system

Country Status (1)

Country Link
JP (1) JP2005215869A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016045610A (en) * 2014-08-21 2016-04-04 日本電信電話株式会社 Database device and operation method thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181768A (en) * 1998-12-15 2000-06-30 Anetsukusu Syst Kk Data storage/retrieval system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181768A (en) * 1998-12-15 2000-06-30 Anetsukusu Syst Kk Data storage/retrieval system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016045610A (en) * 2014-08-21 2016-04-04 日本電信電話株式会社 Database device and operation method thereof

Similar Documents

Publication Publication Date Title
US11243911B2 (en) Method and apparatus for fault-tolerant memory management
US9858303B2 (en) In-memory latch-free index structure
US5204958A (en) System and method for efficiently indexing and storing a large database with high data insertion frequency
US6282605B1 (en) File system for non-volatile computer memory
US4611272A (en) Key-accessed file organization
KR100484147B1 (en) Flash memory management method
US8868926B2 (en) Cryptographic hash database
CN105117415B (en) A kind of SSD data-updating methods of optimization
US11580162B2 (en) Key value append
US20140258252A1 (en) Method and system for dynamically partitioning very large database indices on write-once tables
EP1548598A1 (en) Database re-organizing system and database
CN103229164B (en) Data access method and device
CN110119425A (en) Solid state drive, distributed data-storage system and the method using key assignments storage
US6415375B2 (en) Information storage and retrieval system
US9606746B2 (en) Shiftable memory supporting in-memory data structures
US8682872B2 (en) Index page split avoidance with mass insert processing
WO2015152830A1 (en) Method of maintaining data consistency
JP4825719B2 (en) Fast file attribute search
KR20210076828A (en) Key value device and block interface emulation method for the same
KR101806394B1 (en) A data processing method having a structure of the cache index specified to the transaction in a mobile environment dbms
KR100907477B1 (en) Apparatus and method for managing index of data stored in flash memory
JP2005215869A (en) Data storage and retrieval system
KR102287774B1 (en) Method for Processing Data in Database Based on Log Structured Merge Tree Using Non-Volatile Memory
RU2647648C1 (en) Method of organizing storage of historical deltas of records
JP2000181768A (en) Data storage/retrieval system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100406