JP5287071B2 - Database management system and program - Google Patents
Database management system and program Download PDFInfo
- Publication number
- JP5287071B2 JP5287071B2 JP2008238086A JP2008238086A JP5287071B2 JP 5287071 B2 JP5287071 B2 JP 5287071B2 JP 2008238086 A JP2008238086 A JP 2008238086A JP 2008238086 A JP2008238086 A JP 2008238086A JP 5287071 B2 JP5287071 B2 JP 5287071B2
- Authority
- JP
- Japan
- Prior art keywords
- data structure
- value
- position information
- index
- entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、索引を用いて所望のレコードを検索するためのデータベース管理システムおよびプログラムに関するものである。 The present invention relates to a database management system and a program for searching for a desired record using an index.
データベース管理システムでよく使われる索引構造として、B木索引がある。たとえばB+木で例をあげると、その構造は、リーフと呼ばれる最下層のノードと、ルートと呼ばれるノードと、ブランチと呼ばれるそれらノード間のノードとからなり、リーフにはエントリとしてキーとバリューとのペアが格納され、ブランチにはエントリとしてリーフのエントリに子ノードへのポインタを付加したデータが格納される。ここで、キーとは、索引作成対象列のデータを指し、バリューとは、テーブルの行を一意に識別するための識別子(以下、ROWIDと称する)を指す。 As an index structure often used in a database management system, there is a B-tree index. For example, in the case of a B + tree, the structure is composed of a lowermost node called a leaf, a node called a root, and a node between these nodes called a branch, and the leaf has a key and a value as an entry. The pair is stored, and the branch stores data obtained by adding a pointer to a child node to a leaf entry. Here, the key refers to the data of the index creation target column, and the value refers to an identifier (hereinafter referred to as ROWID) for uniquely identifying a row of the table.
このような木構造は、キーがユニークである場合やキーの種類が多い場合に適している。しかし、キーの種類が少ない場合には、同じキーを複数格納してしまうため、ページの使用効率はよくない。 Such a tree structure is suitable when the key is unique or there are many types of keys. However, when the number of types of keys is small, a plurality of the same keys are stored, so the page usage efficiency is not good.
また、他の索引構造として、ビットマップ索引がある。ビットマップ索引では、キーごとにビットマップを作成し、バリューをその値に対応する位置にビットが立っているかどうかで表す。この索引は、B木索引に比べて高速に照合できる場合もあるが、更新処理の同時実行には適していないというデメリットもある。 Another index structure is a bitmap index. In the bitmap index, a bitmap is created for each key, and the value is represented by whether or not a bit is set at a position corresponding to the value. Although this index may be collated faster than the B-tree index, there is a demerit that it is not suitable for simultaneous execution of update processing.
また、ページの使用効率を高める別の方法として、階層化された複数のデータ構造体を組み合わせたり、キーを圧縮したりする方法も提案されている。例えば、特許文献1は、決定グラフと呼ばれる一段目のデータ構造体と結論セットと呼ばれる二段目のデータ構造体からなる階層化されたデータ構造体による索引を提案している。特に、この特許文献1では、「該ノードに関連するキーの全体を記憶しない」、「前記結論セット内の各エントリは、・・・前記結論セット内のエントリに関連するキーの厳密な値を保持するキーフィールドと、・・・とを備える」、「前記結論セットに記憶されるキーは圧縮形態で記憶される」などといった記述に見られるように、重なるキーを格納しないようにしたり、キーを圧縮して格納したりしている。
In addition, as another method for improving the use efficiency of a page, a method of combining a plurality of hierarchical data structures or compressing a key has been proposed. For example,
しかしながら、特許文献1に開示された方式によっても、二段目のデータ構造体にキーを格納していることに変わりはないので、ページの使用効率という点ではまだ不十分である。
However, even with the method disclosed in
また、従来のデータベース管理システムでは、NULLの扱いもページの仕様効率を低くする一因となっていた。あるデータがNULLであるかどうかを表すには二通りの方法がある。一つは、データの値域の中の特定の値を内部的にNULLとみなす方法であり、他の一つは、データがNULLかどうかのフラグを追加する方法である。 Further, in the conventional database management system, handling of NULL is also a factor for lowering the specification efficiency of the page. There are two ways to indicate whether a piece of data is NULL. One is a method in which a specific value in the data range is regarded as NULL internally, and the other is a method of adding a flag indicating whether the data is NULL.
しかしながら、前者の方法はその特定の値をユーザが使えなくなることを意味するので、常に利用できる方法ではない。また、後者の方法は、そのような制限がないものの、本来格納したいデータ以外にフラグのための領域も必要とするので、ページの使用効率を低下させる。 However, the former method means that the specific value cannot be used by the user, and is not always available. Although the latter method does not have such a restriction, it requires an area for a flag in addition to the data that is originally intended to be stored, so that the use efficiency of the page is lowered.
本発明は、上記に鑑みてなされたものであって、ページ使用効率およびキャッシュの効果を高めることのできるデータベース管理システムおよびプログラムを提供することを目的の一つとする。 The present invention has been made in view of the above, and an object of the present invention is to provide a database management system and a program capable of improving the page use efficiency and the cache effect.
また、本発明の別の態様にかかるデータベース管理システムは、複数のレコード間において所定のフィールドに登録されうる第1の値および第2の値と該第1の値および該第2の値を前記所定のフィールドにそれぞれ含んだレコードの位置情報とを対応付けた索引を作成するデータベース管理システムであって、前記第1の値と前記位置情報とが第1のデータ構造体と第2のデータ構造体との組み合わせによって対応付けられ、前記第2の値と前記位置情報とが前記第1のデータ構造体と第3のデータ構造体との組み合わせによって対応付けられるように該第1のデータ構造体と該第2のデータ構造体と該第3のデータ構造体を作成する索引作成手段と、前記索引作成手段によって作成された前記第1のデータ構造体と前記第2のデータ構造体と前記第3のデータ構造体とを索引として格納する記憶手段と、を備え、前記第1のデータ構造体は、前記第1の値と該第1の値に対応付けられた前記第2のデータ構造体の位置情報とをエントリとして含むとともに、前記第2の値に対応付けられた前記第3のデータ構造体の位置情報をエントリとして含み、前記第2のデータ構造体は、前記第1の値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該第1の値自体をエントリとして含まず、前記第3のデータ構造体は、前記第2の値と該第2の値を前記所定のフィールドに含んだレコードの位置情報とをエントリとして含むことを特徴とする。 The database management system according to another aspect of the present invention provides the first value, the second value, the first value, and the second value that can be registered in a predetermined field among a plurality of records. A database management system for creating an index in which position information of records included in predetermined fields is associated with each other, wherein the first value and the position information include a first data structure and a second data structure. The first data structure so that the second value and the position information are associated with each other by a combination of the first data structure and the third data structure. The second data structure, the index creating means for creating the third data structure, the first data structure and the second data structure created by the index creating means And storage means for storing the third data structure as an index, wherein the first data structure is the second value associated with the first value and the first value. The position information of the data structure is included as an entry, and the position information of the third data structure associated with the second value is included as an entry. The second data structure includes the first information The position information of the record including the value of the predetermined field in the predetermined field is included as an entry, and the first value itself is not included as an entry. The third data structure includes the second value and the second value. The position information of the record including the value in the predetermined field is included as an entry.
また、本発明のさらに別の態様にかかるデータベース管理システムは、複数のレコード間において所定のフィールドに登録されうるNULL値および非NULL値と該NULL値および該非NULL値を前記所定のフィールドにそれぞれ含んだレコードの位置情報とを対応付けた索引を作成するデータベース管理システムであって、前記NULL値と前記位置情報とが第1のデータ構造体と第2のデータ構造体との組み合わせによって対応付けられ、前記非NULL値と前記位置情報とが前記第1のデータ構造体と第3のデータ構造体との組み合わせによって対応付けられるように該第1のデータ構造体と該第2のデータ構造体と該第3のデータ構造体を作成する索引作成手段と、前記索引作成手段によって作成された前記第1のデータ構造体と前記第2のデータ構造体と前記第3のデータ構造体とを索引として格納する記憶手段と、を備え、前記第1のデータ構造体は、前記NULL値に対応付けられた前記第2のデータ構造体の位置情報をエントリとして含むとともに、前記非NULL値に対応付けられた前記第3のデータ構造体の位置情報をエントリとして含み、前記第2のデータ構造体は、前記NULL値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該NULL値自体をエントリとして含まず、前記第3のデータ構造体は、前記非NULL値と該非NULL値を前記所定のフィールドに含んだレコードの位置情報とをエントリとして含むことを特徴とする。 The database management system according to yet another aspect of the present invention includes a NULL value, a non-NULL value, a NULL value, and a non-NULL value that can be registered in a predetermined field among a plurality of records, respectively. A database management system for creating an index in which position information of records is associated with each other, wherein the NULL value and the position information are associated with each other by a combination of a first data structure and a second data structure. The first data structure and the second data structure such that the non-NULL value and the position information are associated with each other by a combination of the first data structure and the third data structure. Index creation means for creating the third data structure, and the first data structure created by the index creation means Storage means for storing the second data structure and the third data structure as an index, wherein the first data structure is associated with the NULL value. Position information of the data structure is included as an entry, and position information of the third data structure associated with the non-NULL value is included as an entry, and the second data structure includes the NULL value as the entry. The position information of the record included in the predetermined field is included as an entry and the NULL value itself is not included as an entry. The third data structure includes the non-NULL value and the non-NULL value in the predetermined field. The record position information is included as an entry.
また、本発明のさらに別の態様にかかるデータベース管理システムは、複数のレコード間において第1のフィールドに登録されうる第1の値と該第1の値を前記第1のフィールドに含んだレコードの第1の位置情報とを対応付け、且つ、前記複数のレコード間において第2のフィールドに登録されうる第2の値と該第2の値を前記第2のフィールドに含んだレコードの第2の位置情報とを対応付けた索引を作成するデータベース管理システムであって、前記第1の値と前記第1の位置情報とが第1のデータ構造体と第2のデータ構造体との組み合わせによって対応付けられるように該第1のデータ構造体と該第2のデータ構造体を作成する索引作成手段と、前記索引作成手段によって作成された前記第1のデータ構造体と前記第2のデータ構造体とを索引として格納する記憶手段と、を備え、前記第1のデータ構造体は、前記第1の値と該第1の値に対応付けられた前記第2のデータ構造体の位置情報とをエントリとして含み、前記第2のデータ構造体は、前記第2の値と該第2の値を前記第2のフィールドに含んだレコードの前記第2の位置情報とをエントリとして含み且つ前記第1の値自体をエントリとして含まないことを特徴とする。 A database management system according to yet another aspect of the present invention provides a first value that can be registered in a first field among a plurality of records and a record that includes the first value in the first field. A second value of the record that is associated with the first position information and that can be registered in the second field between the plurality of records and the second field includes the second value in the second field. A database management system for creating an index that associates position information with each other, wherein the first value and the first position information correspond to each other by a combination of a first data structure and a second data structure Index creating means for creating the first data structure and the second data structure, and the first data structure and the second data structure created by the index creating means. Storage means for storing a field as an index, wherein the first data structure includes the first value and position information of the second data structure associated with the first value. And the second data structure includes the second value and the second location information of the record including the second value in the second field as the entry, and The value of 1 itself is not included as an entry.
また、本発明のさらに別の態様にかかるプログラムは、複数のレコード間において所定のフィールドに登録されうる第1の値および第2の値と該第1の値および該第2の値を前記所定のフィールドにそれぞれ含んだレコードの位置情報とを対応付けた、記憶手段に格納された索引を用いて、コンピュータに所望のレコードを検索させるためのプログラムであって、所望のキーが前記第1の値を示す場合に、前記索引を構成する第1のデータ構造体から当該所望のキーを検索することによって、前記索引を構成し且つ該第1の値に対応付けられた第2のデータ構造体の位置情報を取得する工程と、前記所望のキーが前記第2の値を示す場合に、前記第1のデータ構造体から当該所望のキーを検索することによって、前記索引を構成し且つ該第2の値に対応付けられた第3のデータ構造体の位置情報を取得する工程と、前記所望のキーが前記第1の値を示す場合に、取得した前記位置情報に対応付けられた第2のデータ構造体から、前記第1の値を前記所定のフィールドに含んだレコードの位置情報を取得する工程と、前記所望のキーが前記第2の値を示す場合に、取得した前記位置情報に対応付けられた第3のデータ構造体から、前記第2の値を検索することによって、該第2の値を前記所定のフィールドに含んだレコードの位置情報を取得する工程と、を含み、前記第2のデータ構造体は、前記第1の値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該第1の値自体をエントリとして含まず、前記第3のデータ構造体は、前記第2の値と該第2の値を前記所定のフィールドに含んだレコードの位置情報とをエントリとして含むことを特徴とする。 According to still another aspect of the present invention, there is provided a program that stores the first value, the second value, the first value, and the second value that can be registered in a predetermined field between a plurality of records. A program for causing a computer to search for a desired record using an index stored in storage means in association with position information of a record included in each of the fields, wherein a desired key is the first key A second data structure that comprises the index and is associated with the first value by retrieving the desired key from the first data structure that comprises the index when indicating a value Obtaining the position information, and, if the desired key indicates the second value, retrieving the desired key from the first data structure to construct the index and the first key 2 A step of acquiring position information of a third data structure associated with the value, and second data associated with the acquired position information when the desired key indicates the first value. A step of acquiring position information of a record including the first value in the predetermined field from a structure, and when the desired key indicates the second value, the position information is associated with the acquired position information Obtaining the positional information of the record including the second value in the predetermined field by retrieving the second value from the third data structure provided, and including the second The data structure includes the position information of the record including the first value in the predetermined field as an entry and does not include the first value itself as an entry. The third data structure includes The second value and the second value Characterized in that it comprises a position information of the records that contain the predetermined field as an entry.
また、本発明のさらに別の態様にかかるプログラムは、複数のレコード間において所定のフィールドに登録されうるNULL値および非NULL値と該NULL値および該非NULL値を前記所定のフィールドにそれぞれ含んだレコードの位置情報とを対応付けた、記憶手段に格納された索引を用いて、コンピュータに所望のレコードを検索させるためのプログラムであって、所望のキーがNULL値を示す場合に、前記索引を構成する第1のデータ構造体から、該NULL値を前記所定のフィールドに含んだレコードの位置情報を取得する第1工程と、所望のキーが非NULL値を示す場合に、前記索引を構成する第2のデータ構造体から当該非NULL値を検索することによって、該非NULL値を前記所定のフィールドに含んだレコードの位置情報を取得する第2工程と、を含み、前記第1のデータ構造体は、前記NULL値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該NULL値自体をエントリとして含まないことを特徴とする。 According to still another aspect of the present invention, there is provided a program including a NULL value, a non-NULL value, a NULL value, and a non-NULL value that can be registered in a predetermined field among a plurality of records. A program for causing a computer to search for a desired record using an index stored in the storage means in association with the position information of the information, and forming the index when the desired key indicates a NULL value A first step of acquiring position information of a record including the NULL value in the predetermined field from the first data structure, and a first key constituting the index when a desired key indicates a non-NULL value. 2 by retrieving the non-NULL value from the data structure of 2 and including the non-NULL value in the predetermined field. A second step of acquiring the position information of the first data structure, wherein the first data structure includes the position information of the record including the NULL value in the predetermined field as an entry, and the NULL value itself as an entry. It is not included.
また、本発明のさらに別の態様にかかるプログラムは、複数のレコード間において第1のフィールドに登録されうる第1の値と該第1の値を前記第1のフィールドに含んだレコードの第1の位置情報とを対応付け、且つ、前記複数のレコード間において第2のフィールドに登録されうる第2の値と該第2の値を前記第2のフィールドに含んだレコードの第2の位置情報とを対応付けた、記憶手段に格納された索引を用いて、コンピュータに所望のレコードを検索させるためのプログラムであって、前記索引を構成する第1のデータ構造体から前記第1の値を示す第1のキーを検索することによって、前記索引を構成し且つ該第1の値に対応付けられた第2のデータ構造体の位置情報を取得する第1工程と、取得した前記位置情報に対応付けられた前記第2のデータ構造体から、前記第2の値を示す第2のキーを検索することによって、前記第2の値を前記所定のフィールドに含んだレコードの位置情報を取得する第2工程と、を含み、前記第2のデータ構造体は、前記第1の値をエントリとして含まないことを特徴とする。 A program according to still another aspect of the present invention provides a first value that can be registered in a first field among a plurality of records, and a first value of a record that includes the first value in the first field. And the second position information of the record including the second value in the second field that can be registered in the second field between the plurality of records. Is a program for causing a computer to search for a desired record using an index stored in the storage means, wherein the first value is obtained from a first data structure constituting the index. A first step of acquiring position information of a second data structure that constitutes the index and is associated with the first value by searching for a first key to be shown; and the acquired position information Associated A second step of acquiring position information of a record including the second value in the predetermined field by searching a second key indicating the second value from the second data structure; And the second data structure does not include the first value as an entry.
本発明によれば、同一のフィールドにおいて取りうる各値(キー)で特定されるレコードの索引を、少なくとも二段構造で構成し、かつ後段の索引が前段の索引のキーをエントリとして含まないので、ページ使用効率およびキャッシュの効果を高めることができ、さらに、後段のデータ構造体にビットマップ索引で使われるようなデータ構造体の使用を避けることによって、更新処理の同時実行性能をも落とさないことができるという効果を奏する。 According to the present invention, the index of the record specified by each value (key) that can be taken in the same field is configured in at least a two-stage structure, and the subsequent index does not include the key of the previous index as an entry. In addition, the page usage efficiency and cache effect can be increased, and the concurrent execution performance of update processing is not reduced by avoiding the use of data structures such as those used in bitmap indexes for subsequent data structures. There is an effect that can be.
以下に添付図面を参照して、この発明にかかるデータベース管理システムおよびプログラムの最良な実施の形態を詳細に説明する。 Exemplary embodiments of a database management system and a program according to the present invention will be explained below in detail with reference to the accompanying drawings.
図1は、後述する実施の形態間で共通するデータベース管理システムの構成を示す概略図である。図1に示すように、データベース管理システム100は、PC(Personal Computer)などのコンピュータによって実現することができる。具体的には、データベース管理システム100は、データベース管理システム100の各部を集中的に制御するCPU(Central Processing Unit)102と、CPU102を動作させるプログラムやCPU102の処理対象となる種々のデータを格納する一次記憶装置105と、データベースを格納した二次記憶装置106と、を備えて構成され、これらの各部間は、データバス114を介してデータを送受信する。なお、一次記憶装置105は、ROM(Read Only Memory)103及びRAM(Random Access Memory)104等のアクセス速度の高速な半導体記憶装置からなり、二次記憶装置106は、高容量の磁気記憶装置であるHDD(Hard Disk Drive)107からなる。
FIG. 1 is a schematic diagram showing a configuration of a database management system that is common among embodiments to be described later. As shown in FIG. 1, the
また、本発明の実施の形態にかかるデータベース管理システム100は、データベース管理を行うに際して必要な処理要求の受け付けや処理結果の出力を可能にするための入出力手段を備える。その入出力手段は、ネットワークインターフェース110によって実現しても良いし、汎用的なPCが備えた構成、すなわち、CD−ROMやFD等の可搬性を有する記憶媒体108aを駆動するリムーバブルディスク装置108、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)等の表示装置111、操作者がCPU102に命令や情報等を入力するためのキーボード112やポインティングデバイス113によって実現しても良い。また、図示するように、データベース管理システム100は、これらすべてをデータバス114に接続して備えても良い。なお、ネットワークインターフェース110によって入出力手段を実現する場合には、データベース管理システム100は、データウェアハウスのサーバのように機能させることができる。
In addition, the
上記した構成のように、データベース管理システム100が行う種々の処理は、CPU102によって実行される。より具体的には、それは、一次記憶装置105のRAM104上に展開されたデータベース管理プログラムが担う。該データベース管理プログラムは、機能分担された複数のモジュールからなり、これらモジュールはデータベース管理システム100の構成要素とも言える。なお、そのデータベース管理プログラムは、ROM103やHDD107に予め格納されていても良いし、記憶媒体108aによって提供されても良いし、ネットワークインターフェース110によって外部装置からネットワーク109を介して提供されてもよい。
As described above, various processes performed by the
図2は、上記したモジュール構成の観点で示したデータベース管理システム100の概略構成図である。図2に示すように、データベース管理システム100は、HDD107等に格納されたデータベース25と、SQL命令等の処理要求を受け付けて該処理要求の構文解析や最適化などを行う処理解析部21と、処理解析部21によって解析された処理要求に応じてデータベース25を検索してその検索結果を得る検索部22と、処理解析部21によって解析された処理要求に応じてデータベース25を更新する更新部23と、検索部22による検索結果や更新部23による更新結果等の処理結果を出力する出力部24と、を備える。なお、図2示したモジュール構成は、データベース管理システム100に検索処理および更新処理を実行させるための最小の構成を指すが、データベース管理システム100は、後述する各実施の形態の特徴と言える多段構造の索引を作成するための手段(例えば、索引作成部)をも備える。
FIG. 2 is a schematic configuration diagram of the
以下に説明する各実施の形態は、上記構成を有するデータベース管理システム100の処理を示すものであるが、各実施の形態の特徴の理解を容易にするために、データベース25に、図3に示すようなテーブルが格納されていることを想定し、データベース管理システム100はそのテーブルに対して各種の処理を行うこととする。
Each embodiment described below shows processing of the
図3に示すテーブルは、8つのレコードからなり、各レコードは、「ROWID」、「文書名」、「状況」、「作業者」の4つのフィールドからなる。このテーブルは、種々の文書について作成から最終的に承認を受けるまでの作業進捗状況を表すものである。 The table shown in FIG. 3 includes eight records, and each record includes four fields of “ROWID”, “document name”, “situation”, and “worker”. This table represents the progress of work from creation to final approval for various documents.
図3に示すテーブルにおいて、「文書名」フィールドは、作業対象となる文書の名前を格納する欄である。「状況」フィールドは、文書の作業進捗に応じて、その値が作成中→審査中→承認中→承認済と変化する限られたデータの欄であり、比較的更新が頻繁に発生する。「作業者」フィールドは、その文書に対する現在の作業者が格納される欄であり、その値として、たとえば、作成中なら作成者、審査中なら審査者、承認中なら承認者が格納される。この「作業者」フィールドもまた、「状況」フィールドと同様に、更新が頻繁に発生する。 In the table shown in FIG. 3, the “document name” field is a column for storing the name of the document to be worked. The “situation” field is a limited data column whose value changes in accordance with the progress of the work of the document, such as creating, reviewing, approving, and approved, and relatively frequently updated. The “worker” field is a column in which the current worker for the document is stored. As the value, for example, the creator is created, the examiner is being reviewed, and the approver is being approved. The “operator” field is also frequently updated in the same manner as the “status” field.
特に、「作業者」フィールドのデータは、以下の特徴を有する。
・作業者は社員の数だけありえるのでデータの種類が多い。
・承認済の文書に対しては、作業者は存在しないので「無名」が格納されているとする。
・作業者には偏りがある。例:管理職の社員は作業者になることが多い。承認済文書は多数存在するので「無名」の作業者も多い。
In particular, the data in the “operator” field has the following characteristics.
-Since there can be as many workers as there are workers, there are many types of data.
-Since there is no worker for an approved document, "unnamed" is stored.
・ Workers are biased. Example: Manager employees are often workers. Since there are many approved documents, there are many “unnamed” workers.
以下に、データベース管理システム100が、図3に示すテーブルに対して実行するデータベース管理方法について、異なる実施の形態毎に説明する。
Hereinafter, a database management method executed by the
(第1の実施の形態)
図4は、第1の実施の形態にかかるデータベース管理システム100によって予め作成される索引の概念図である。図4に示すように、索引は二段に階層化されている。1段目の索引は、複数の異なるキーと、各キーに対応付けられた別のデータ構造体の位置情報(ポインタ)とをエントリとしたデータ構造体を示す。一方、2段目の索引は、1段目のデータ構造体の各キーに対応付けられたポインタによって特定されるデータ構造体であり、対応したキーを含んだレコードのROWIDをエントリとしている。特に、2段目のデータ構造体には、キー情報がなく、ROWIDの情報のみからなる。
(First embodiment)
FIG. 4 is a conceptual diagram of indexes created in advance by the
この二段の索引は、「状況」フィールドのように頻繁に更新され且つその取りうる値の種類の少ない値をキーとする場合に特に有効である。図4の例で言えば、1段目の索引は、「状況」フィールドのすべての取りうる値のうち実際にそれを含んだレコードが存在する値と各値の位置情報であるポインタとのペアをエントリとしたデータ構造体を示す。そのデータ構造体は、具体的には、「作成中」とポインタ0x0a01とのペアと、「審査中」とポインタ0x0b01とのペアと、「承認済」とポインタ0x0e01とのペアとを含んでいる。また、図4の例では、2段目の索引は、「作成中」を値として含むレコードのROWID1,7,8をエントリとしたデータ構造体(ポインタ0x0a01で識別される)と、「審査中」を値として含むレコードのROWID2をエントリとしたデータ構造体(ポインタ0x0b01で識別される)と、「承認済」を値として含むレコードのROWID4,5をエントリとしたデータ構造体(ポインタ0x0e01で識別される)と、を含んでいる。 This two-level index is particularly effective when the key is a value that is frequently updated and has a small number of possible values, such as the “status” field. In the example of FIG. 4, the first-level index is a pair of a value in which a record that actually includes all possible values in the “status” field and a pointer that is position information of each value. A data structure with the entry as. Specifically, the data structure includes a pair of “being created” and pointer 0x0a01, a pair of “under review” and pointer 0x0b01, and a pair of “approved” and pointer 0x0e01. . In the example of FIG. 4, the second-level index includes a data structure (identified by pointer 0x0a01) having ROWID1, 7, and 8 of the record including “being created” as a value and “under review”. A data structure (identified by the pointer 0x0b01) whose entry is ROWID2 of the record including “value” and a data structure (identified by the pointer 0x0e01) whose entry is ROWID4, 5 of the record including “approved” as the value Is included).
このような索引は、データベース管理システム100によって作成され、HDD107やリムーバブルディスク装置108などの所定の記憶手段に格納される。なお、ネットワークインターフェース110を介して接続される外部装置をその索引を格納する記憶手段として利用しても良い。
Such an index is created by the
次に、第1の実施の形態にかかるデータベース管理方法に従った検索処理について説明する。図5は、その検索処理を示すフローチャートである。まず、処理解析部21は、SQL文等の処理要求を受け付けて、その解析および最適化を行う。ここでは、その解析および最適化の結果、検索部22が、頻繁に更新され且つその取りうる値の種類の少ない値であるキーを、図4に示した構造の索引から検索することとする。そこで、そのキーが属するフィールドをエントリとした1段目のデータ構造体のポインタを取得する(ステップS101)。つぎに、検索部22は、その1段目のデータ構造体から、指定されたキーを検索し(ステップS102)、検索されたキーに対応する2段目のデータ構造体のポインタを取得する(ステップS103)。続いて、取得したポインタに格納されるデータ構造体のすべてのROWIDを取得する(ステップS104)。これにより、目的としたキーを含んだすべてのレコード、すなわち検索結果を取得することができ、その検索結果は出力部24から出力される。
Next, search processing according to the database management method according to the first embodiment will be described. FIG. 5 is a flowchart showing the search process. First, the
この検索は、図4の例で言えば、「審査中」がキーとして指定されているとすると、最終的に、ROWID2が取得され、ROWID2で特定されるレコードが検索結果として出力されるという工程を辿る。 In the example of FIG. 4, in this search, if “under review” is designated as a key, ROWID2 is finally acquired, and a record specified by ROWID2 is output as a search result. Follow.
このように、2段目の各データ構造体は、同じキーに対するROWID情報を保持しているので、それら各データ構造体にキーを格納する必要がない。 In this way, each data structure in the second stage holds ROWID information for the same key, so there is no need to store the key in each data structure.
なお、各データ構造体に適用される構造には特に制限はなく、B木索引構造でもハッシュテーブル構造でも構わない。ただし、更新処理の同時実行性能を落とさないために、ビットマップ索引で使われるようなデータ構造体を使用しないことが好ましい。 The structure applied to each data structure is not particularly limited, and may be a B-tree index structure or a hash table structure. However, it is preferable not to use a data structure such as that used in a bitmap index in order not to degrade the concurrent execution performance of the update process.
また、データの追加は、検索時と同様に1段目のデータ構造体に対して、追加先になる2段目のデータ構造体のポインタを取得し、取得したデータ構造体に対して新たなデータを追加することにより行う。データの削除も同様で、1段目のデータ構造体に対して、削除されるデータが格納されている2段目のデータ構造体のポインタを取得し、取得したデータ構造体からデータを削除する。 In addition, the addition of data is performed by acquiring a pointer of the second-stage data structure to be added to the first-stage data structure as in the search, and adding a new data structure to the acquired data structure. Do this by adding data. The same applies to data deletion. For the first data structure, the pointer of the second data structure storing the data to be deleted is acquired, and the data is deleted from the acquired data structure. .
以上に説明したように、第1の実施の形態にかかるデータベース管理方法によれば、2段目のデータ構造体において、キーを重ねて登録しないことで、ページ使用効率を高めることが可能になり、また、キャッシュの効果を高めることも可能になる。さらに、2段目のデータ構造体としてビットマップ索引で使われるようなデータ構造体を使用しないことで、更新処理の同時実行性能を落とさないこともできる。 As described above, according to the database management method according to the first embodiment, it is possible to improve the page usage efficiency by not registering the key in the second stage data structure. It is also possible to increase the effectiveness of the cache. Furthermore, by not using a data structure that is used in a bitmap index as the second-stage data structure, it is possible to prevent the simultaneous execution performance of update processing from being degraded.
(第2の実施の形態)
図6は、第2の実施の形態にかかるデータベース管理システム100によって予め作成される索引の概念図である。図6に示すように、索引は第1の実施の形態と同様に二段に階層化されている。1段目の索引は、2種類のエントリからなるデータ構造体を示す。その2種類のうちの一つ(第1の種類)は、第1の実施の形態にかかるデータベース管理方法にかかる1段目の索引と同様なエントリである。すなわち、それは、複数の異なるキーと、各キーに対応付けられた別のデータ構造体の位置情報(ポインタ)とをペアとしたエントリである。特に、このエントリに含めるキーは、複数のキーのうち実際に登録されることの多いキーであることが好ましい。図3に示すテーブルの例で言えば、「作業者」フィールドの「無名」や管理職社員の名前などがそのようなキーに該当する。もう一つの種類(第2の種類)は、第1の種類以外のすべてのキーとそれらに対応付けられた別のデータ構造体の位置情報(ポインタ)とをペアとしたエントリである。なお、複数のキーに対していずれを第1の種類または第2の種類に属させるかは例えば決定木に従う。
(Second Embodiment)
FIG. 6 is a conceptual diagram of indexes created in advance by the
一方、2段目の索引は、1段目の第1の種類のエントリの各キーに対応付けられたポインタによって特定されるデータ構造体と、第2の種類のエントリの各キーに対応付けられたポインタによって特定されるデータ構造体とからなる。第1の種類のエントリに対応するデータ構造体は、第1の実施の形態の2段目のデータ構造体と同様に、対応したキーを含んだレコードのROWIDをエントリとしている。一方、第2の種類のエントリに対応するデータ構造体は、各キーとそれに対応するROWIDとのペアをエントリとしている。 On the other hand, the second-level index is associated with the data structure specified by the pointer associated with each key of the first-type entry in the first-level and each key of the second-type entry. And a data structure specified by the pointer. The data structure corresponding to the first type entry uses the ROWID of the record including the corresponding key as an entry, as in the second-stage data structure of the first embodiment. On the other hand, the data structure corresponding to the second type entry has a pair of each key and the corresponding ROWID as an entry.
図6の例で言えば、1段目の索引は、第1の種類のデータ構造体として、「作業者」フィールドの値のうち、値が登録されていないことを示す「無名」とポインタ0x0901とのペアと、「鈴木」とポインタ0x0011とのペアなどを含んでおり、第2の種類のデータ構造体として、第1の種類に含まれないその他の値に対応付けられた別の構造体の位置情報(ポインタ)のみを含んでいる。また、図6の例では、2段目の索引は、1段目の第1の種類のエントリに対応するデータ構造体として、「無名」の登録を意味するレコードのROWID4,5をエントリとしたデータ構造体(ポインタ0x0901で識別される)と、「鈴木」を値として含むレコードのROWID3,6をエントリとしたデータ構造体(ポインタ0x0011で識別される)と、を含んでいる。さらに、図6の例では、2段目の索引は、1段目の第2の種類のエントリ(その他)に対応するデータ構造体として、「作業者」フィールドの「佐藤」とその値を含むレコードのROWID8とのペアと、「作業者」フィールドの「山田」とその値を含むレコードのROWID1とのペアと、「作業者」フィールドの「山田」とその値を含むレコードのROWID7とのペアと、をエントリとしたデータ構造体(ポインタ0x0f01で識別される)を含んでいる。
In the example of FIG. 6, the first-level index is the first type of data structure, among the values of the “worker” field, “unnamed” indicating that no value is registered, and a pointer 0x0901. , A pair of “Suzuki” and pointer 0x0011, etc., and another structure associated with other values not included in the first type as the second type data structure Only position information (pointer). In the example of FIG. 6, the second-level index is a data structure corresponding to the first-type entry of the first level, and the ROWIDs 4 and 5 of the record meaning “unnamed” registration are the entries. A data structure (identified by pointer 0x0901) and a data structure (identified by pointer 0x0011) having
この第2の実施の形態において使用される索引もまた、第1の実施の形態と同様に、データベース管理システム100によって作成され、所定の記憶手段に格納される。
Similarly to the first embodiment, the index used in the second embodiment is created by the
次に、第2の実施の形態にかかるデータベース管理方法に従った検索処理について説明する。図7は、その検索処理を示すフローチャートである。まず、処理解析部21は、SQL文等の処理要求を受け付けて、その解析および最適化を行う。ここでは、その解析および最適化の結果、検索部22が、決定木から得られるように値に偏りが存在するようなキーを、図6に示した構造の索引から検索することとする。そこで、そのキーが属するフィールドをエントリとした1段目のデータ構造体のポインタを取得する(ステップS201)。つぎに、検索部22は、1段目の第1の種類のデータ構造体から、指定されたキーを検索する(ステップS202)。指定されたキーが1段目の第1の種類のデータ構造体において見つかれば(ステップS203,Yes)、そのキーに対応する2段目のデータ構造体のポインタを取得し(ステップS204)、取得したポインタに格納されるデータ構造体のすべてのROWIDを取得する(ステップS205)。
Next, search processing according to the database management method according to the second embodiment will be described. FIG. 7 is a flowchart showing the search process. First, the
一方、ステップS203において、指定されたキーが1段目の第1の種類のデータ構造体において見つからなければ(ステップS203,No)、その他のエントリに対応する2段目のデータ構造体のポインタを取得し(ステップS206)、そのデータ構造体から、指定されたキーを検索する(ステップS207)。そして、その検索の結果、キーと一致したエントリのROWIDを取得する(ステップS208)。以上のようにして、目的としたキーを含んだすべてのレコード、すなわち検索結果を取得することができ、その検索結果は出力部24から出力される。
On the other hand, if the designated key is not found in the first type data structure in the first level in step S203 (No in step S203), the pointer of the second level data structure corresponding to the other entry is set. Obtain (step S206), and search the designated key from the data structure (step S207). As a result of the search, the ROWID of the entry that matches the key is acquired (step S208). As described above, all records including the target key, that is, search results can be acquired, and the search results are output from the
この検索は、図6の例で言えば、「鈴木」がキーとして指定されているとすると、最終的に、ROWID3,6が取得され、それらROWID3,6で特定されるレコードが検索結果として出力されるという工程を辿る。他の例として、「山田」がキーとして指定されているとすると、最終的に、ROWID1,7が取得され、それらROWID1,7で特定されるレコードが検索結果として出力されるという工程を辿る。
In this search, in the example of FIG. 6, if “Suzuki” is designated as a key,
なお、第1の実施の形態と同様に、各データ構造体に適用される構造には特に制限はないが、ビットマップ索引で使われるようなデータ構造体を使用しないことが好ましい。また、データの追加および削除については、第1の実施の形態に説明した通りである。 As in the first embodiment, there is no particular limitation on the structure applied to each data structure, but it is preferable not to use a data structure used in a bitmap index. Further, addition and deletion of data are as described in the first embodiment.
2段目の各構造体を、そこに格納されるエントリ数を無視して作成すると、ページの使用効率がかえって悪くなることがある。たとえば、構造体に一件しかエントリが入っていなくとも、その構造体のために1ページが確保されてしまうので、そのような構造体が多数存在すると、2段目においてキーを格納しないことによる効果が薄くなってしまう。このような場合でも、以上に説明したように、第2の実施の形態にかかるデータベース管理方法によれば、1段目の第2の種類のエントリに対応する2段目のデータ構造体のように、少数のエントリしか入らない構造体をまとめることで、ページ使用効率を高くすることができる。 If each second-level structure is created ignoring the number of entries stored therein, the page usage efficiency may be deteriorated. For example, even if there is only one entry in the structure, one page is reserved for the structure. If there are many such structures, the key is not stored in the second row. The effect will be diminished. Even in such a case, as described above, according to the database management method according to the second embodiment, the second level data structure corresponding to the second type entry in the first level By combining structures that contain only a few entries, page usage efficiency can be increased.
また、キーの種類が多い場合、全てのキーに対してエントリを作成していると、1段目の構造体での検索コストは無視できなくなる。このような場合でも、第2の実施の形態にかかるデータベース管理方法によれば、1段目において、使用頻度の低いキーに対して逐一エントリを格納しないことで、1段目のデータ構造体のエントリ数を抑え、検索コストも抑えることができる。 In addition, when there are many types of keys, if the entries are created for all the keys, the search cost in the first-stage structure cannot be ignored. Even in such a case, according to the database management method according to the second embodiment, in the first stage, the entries of the data structure in the first stage are not stored one by one for the less frequently used keys. The number of entries can be reduced, and the search cost can be reduced.
(第3の実施の形態)
図8は、第3の実施の形態にかかるデータベース管理システム100によって作成される索引の概念図である。図8に示すように、索引は第1の実施の形態と同様に二段に階層化されている。1段目の索引は、2種類のエントリからなるデータ構造体を示す。その2種類とは、NULLを示すキーに対応付けられた別のデータ構造体の位置情報(ポインタ)のエントリと、非NULLを示すキーに対応付けられたさらに別のデータ構造体の位置情報(ポインタ)のエントリである。
(Third embodiment)
FIG. 8 is a conceptual diagram of an index created by the
一方、2段目の索引は、1段目のNULLのエントリに対応付けられたポインタによって特定されるデータ構造体と、非NULLに対応付けられたポインタによって特定されるデータ構造体とからなる。前者のデータ構造体は、第1の実施の形態の2段目のデータ構造体と同様に、対応したキーを含んだレコードのROWIDをエントリとしている。一方、後者のデータ構造体は、各キーとそれに対応するROWIDとのペアをエントリとしている。 On the other hand, the second-stage index is composed of a data structure specified by a pointer associated with the first-stage NULL entry and a data structure identified by a pointer associated with non-NULL. In the former data structure, the ROWID of the record including the corresponding key is used as an entry, as in the second-stage data structure of the first embodiment. On the other hand, the latter data structure has a pair of each key and the corresponding ROWID as an entry.
この索引は、図3に示すテーブルにおいて、「状況」フィールドが「承認済」の値を示す場合に、「作業者」フィールドに値としてNULLを格納するような場合に適している。 This index is suitable for the case where NULL is stored as a value in the “worker” field when the “situation” field indicates a value of “approved” in the table shown in FIG. 3.
図8の例で言えば、1段目の索引は、データ構造体として、NULLのエントリに対応付けられた別の構造体のポインタ0x0201と、非NULLのエントリに対応付けられた別の構造体のポインタ0x0801とを含んでいる。また、図8の例では、2段目の索引は、1段目のNULLのエントリに対応するデータ構造体として、ROWID4,5をエントリとしたデータ構造体(ポインタ0x0201で識別される)を含んでいる。さらに、図8の例では、2段目の索引は、1段目の非NULLのエントリに対応するデータ構造体として、「作業者」フィールドの「佐藤」とその値を含むレコードのROWID8とのペアと、「作業者」フィールドの「山田」とその値を含むレコードのROWID1とのペアと、「作業者」フィールドの「山田」とその値を含むレコードのROWID7とのペアと、をエントリとしたデータ構造体(ポインタ0x0801で識別される)を含んでいる。
In the example of FIG. 8, the first-level index includes, as data structures, another structure pointer 0x0201 associated with a NULL entry and another structure associated with a non-NULL entry. Pointer 0x0801. In the example of FIG. 8, the second-level index includes a data structure (identified by pointer 0x0201) having
この第3の実施の形態において使用される索引もまた、第1の実施の形態と同様に、データベース管理システム100によって作成され、所定の記憶手段に格納される。
Similarly to the first embodiment, the index used in the third embodiment is also created by the
次に、第3の実施の形態にかかるデータベース管理方法に従った検索処理について説明する。図9は、その検索処理を示すフローチャートである。まず、処理解析部21は、SQL文等の処理要求を受け付けて、その解析および最適化を行う。ここでは、その解析および最適化の結果、検索部22が、NULLと非NULLのいずれかに識別されるキーを、図8に示した構造の索引から検索することとする。そこで、そのキーが属するフィールドをエントリとした1段目のデータ構造体のポインタを取得する(ステップS301)。つぎに、検索部22は、指定されたキーがNULLか非NULLかを判断する(ステップS302)。指定されたキーがNULLであれば(ステップS302,Yes)、NULLに対応する2段目のデータ構造体のポインタを取得し(ステップS303)、取得したポインタに格納されるデータ構造体のすべてのROWIDを取得する(ステップS304)。
Next, a search process according to the database management method according to the third embodiment will be described. FIG. 9 is a flowchart showing the search process. First, the
一方、ステップS302において、指定されたキーが非NULLであれば(ステップS302,No)、非NULLに対応する2段目のデータ構造体のポインタを取得し(ステップS305)、そのデータ構造体から、指定されたキーを検索する(ステップS306)。そして、その検索の結果、キーと一致したエントリのROWIDを他のエントリに対応する2段目のデータ構造体のポインタを取得する(ステップS307)。以上のようにして、目的としたキーを含んだすべてのレコード、すなわち検索結果を取得することができ、その検索結果は出力部24から出力される。
On the other hand, if the specified key is non-NULL in step S302 (No in step S302), a pointer to the second-stage data structure corresponding to non-NULL is acquired (step S305), and the data structure is retrieved from the data structure. The designated key is searched (step S306). As a result of the search, the ROWID of the entry that matches the key is obtained as a pointer to the second-stage data structure corresponding to the other entry (step S307). As described above, all records including the target key, that is, search results can be acquired, and the search results are output from the
この検索は、図8の例で言えば、NULLがキーとして指定されているとすると、最終的に、ROWID4,5が取得され、それらROWID4,5で特定されるレコードが検索結果として出力されるという工程を辿る。他の例として、非NULLの「山田」がキーとして指定されているとすると、最終的に、ROWID1,7が取得され、それらROWID1,7で特定されるレコードが検索結果として出力されるという工程を辿る。
In this search, in the example of FIG. 8, if NULL is specified as a key,
なお、第1の実施の形態と同様に、各データ構造体に適用される構造には特に制限はないが、ビットマップ索引で使われるようなデータ構造体を使用しないことが好ましい。また、データの追加および削除については、第1の実施の形態に説明した通りである。 As in the first embodiment, there is no particular limitation on the structure applied to each data structure, but it is preferable not to use a data structure used in a bitmap index. Further, addition and deletion of data are as described in the first embodiment.
以上に説明したように、第3の実施の形態にかかるデータベース管理方法によれば、キーをNULLのキーを持つデータ構造体を非NULLのデータ構造体と分けて用意しているので、NULLの状態を示すフラグを格納せずに済み、結果的に、ページの使用効率を高くすることができる。 As described above, according to the database management method according to the third embodiment, a data structure having a NULL key is prepared separately from a non-NULL data structure. It is not necessary to store a flag indicating the state, and as a result, the use efficiency of the page can be increased.
(第4の実施の形態)
第4の実施の形態にかかるデータベース管理システム100は、第1の実施の形態に示した索引と第3の実施の形態に示した索引とを組み合わせた索引を作成し、それを用いた検索を行うことを特徴とする。具体的には、1段目の索引と2段目の索引を第3の実施の形態で示した1段目の索引と2段目の索引のように構成し、2段目の非NULLに対応する索引と3段目の索引を第1の実施の形態で示した1段目の索引と2段目の索引のように構成する。
(Fourth embodiment)
The
図10は、第4の実施の形態にかかるデータベース管理方法によって予め構築される索引の概念図である。図10において、1段目の索引と2段目の索引については、非NULLに対応するデータ構造体のエントリが、各キーに対してROWIDではなくポインタが対応付けられている点を除き、図8に示した二段の索引構造に対応するため、ここではその説明を省略する。また、図10において、2段目の索引の非NULLに対応する索引と3段目の索引についても、図4に示した二段の索引構造の概念と同じであるため、ここではその説明を省略する。 FIG. 10 is a conceptual diagram of an index built in advance by the database management method according to the fourth embodiment. In FIG. 10, with respect to the first and second tier indexes, except that the data structure entry corresponding to non-NULL is associated with a pointer instead of ROWID for each key. Since this corresponds to the two-level index structure shown in FIG. In FIG. 10, the index corresponding to the non-NULL of the second-level index and the third-level index are the same as the concept of the two-level index structure shown in FIG. Omitted.
次に、第4の実施の形態にかかるデータベース管理方法に従った検索処理について説明する。図11は、その検索処理を示すフローチャートである。まず、処理解析部21は、SQL文等の処理要求を受け付けて、その解析および最適化を行う。ここでは、その解析および最適化の結果、検索部22が、NULLと非NULLのいずれかに識別されるキーを、図10に示した構造の索引から検索することとする。そこで、そのキーが属するフィールドをエントリとした1段目のデータ構造体のポインタを取得する(ステップS401)。つぎに、検索部22は、指定されたキーがNULLか非NULLかを判断する(ステップS402)。指定されたキーがNULLであれば(ステップS402,Yes)、NULLに対応する2段目のデータ構造体のポインタを取得し(ステップS403)、取得したポインタに格納されるデータ構造体のすべてのROWIDを取得する(ステップS404)。
Next, a search process according to the database management method according to the fourth embodiment will be described. FIG. 11 is a flowchart showing the search process. First, the
一方、ステップS402において、指定されたキーが非NULLであれば(ステップS402,No)、非NULLに対応する2段目のデータ構造体のポインタを取得し(ステップS405)、そのデータ構造体から、指定されたキーを検索する(ステップS406)。そして、検索されたキーに対応する3段目のデータ構造体のポインタを取得し(ステップS407)、取得したポインタに格納されるデータ構造体のすべてのROWIDを取得する(ステップS408)。これにより、目的としたキーを含んだすべてのレコード、すなわち検索結果を取得することができ、その検索結果は出力部24から出力される。
On the other hand, if the specified key is non-NULL in step S402 (step S402, No), a pointer to the second-stage data structure corresponding to non-NULL is acquired (step S405), and the data structure is obtained. The designated key is searched (step S406). Then, the pointer of the third-stage data structure corresponding to the retrieved key is acquired (step S407), and all the ROWIDs of the data structure stored in the acquired pointer are acquired (step S408). Accordingly, all records including the target key, that is, search results can be acquired, and the search results are output from the
この検索は、図10の例で言えば、NULLがキーとして指定されているとすると、最終的に、ROWID4,5が取得され、それらROWID4,5で特定されるレコードが検索結果として出力されるという工程を辿る。他の例として、「山田」がキーとして指定されているとすると、最終的に、ROWID1,7が取得され、それらROWID1,7で特定されるレコードが検索結果として出力されるという工程を辿る。
In this search, in the example of FIG. 10, if NULL is designated as a key,
なお、第1の実施の形態と同様に、各データ構造体に適用される構造には特に制限はないが、ビットマップ索引で使われるようなデータ構造体を使用しないことが好ましい。また、データの追加および削除については、第1の実施の形態に説明した通りである。 As in the first embodiment, there is no particular limitation on the structure applied to each data structure, but it is preferable not to use a data structure used in a bitmap index. Further, addition and deletion of data are as described in the first embodiment.
以上に説明したように、第4の実施の形態にかかるデータベース管理方法によれば、第1の実施の形態で示した索引構造と第3の実施の形態で示したで示した索引構造とを組み合わせることにより、三段構造の索引を作成し、またそれを用いた検索を可能としたので居、両実施の形態にかかるデータベース管理方法の効果を享受することができる。 As described above, according to the database management method according to the fourth embodiment, the index structure shown in the first embodiment and the index structure shown in the third embodiment are the same. By combining them, an index having a three-stage structure is created and a search using the index is possible, so that the effects of the database management methods according to both embodiments can be enjoyed.
(第5の実施の形態)
第5の実施の形態にかかるデータベース管理システム100は、第2の実施の形態に示した索引と第3の実施の形態に示した索引とを組み合わせた索引を作成し、それを用いた検索を行うことを特徴とする。具体的には、1段目の索引と2段目の索引を第3の実施の形態で示した1段目の索引と2段目の索引のように構成し、2段目の非NULLに対応する索引と3段目の索引を第2の実施の形態で示した1段目の索引と2段目の索引のように構成する。
(Fifth embodiment)
The
図12は、第5の実施の形態にかかるデータベース管理方法によって予め構築される索引の概念図である。図12において、1段目の索引と2段目の索引については、非NULLに対応するデータ構造体のエントリが、各キーに対してROWIDではなくポインタが対応付けられている点と第2の実施の形態に示したように2種類のデータ構造体を有するという点を除き、図8に示した二段の索引構造に対応するため、ここではその説明を省略する。また、図12において、2段目の索引の非NULLに対応する索引と3段目の索引についても、図6に示した二段の索引構造の概念と同じであるため、ここではその説明を省略する。 FIG. 12 is a conceptual diagram of an index built in advance by the database management method according to the fifth embodiment. In FIG. 12, with respect to the first-level index and the second-level index, the second structure is that the entry of the data structure corresponding to non-NULL is associated with a pointer instead of ROWID for each key. Except for the fact that it has two types of data structures as shown in the embodiment, it corresponds to the two-level index structure shown in FIG. In FIG. 12, the index corresponding to non-NULL of the second-level index and the third-level index are the same as the concept of the two-level index structure shown in FIG. Omitted.
次に、第5の実施の形態にかかるデータベース管理方法に従った検索処理について説明する。図13は、その検索処理を示すフローチャートである。まず、処理解析部21は、SQL文等の処理要求を受け付けて、その解析および最適化を行う。ここでは、その解析および最適化の結果、検索部22が、NULLと非NULLのいずれかに識別されるキーを、図12に示した構造の索引から検索することとする。そこで、そのキーが属するフィールドをエントリとした1段目のデータ構造体のポインタを取得する(ステップS501)。つぎに、検索部22は、指定されたキーがNULLか非NULLかを判断する(ステップS502)。指定されたキーがNULLであれば(ステップS502,Yes)、NULLに対応する2段目のデータ構造体のポインタを取得し(ステップS503)、取得したポインタに格納されるデータ構造体のすべてのROWIDを取得する(ステップS504)。
Next, search processing according to the database management method according to the fifth embodiment will be described. FIG. 13 is a flowchart showing the search process. First, the
一方、ステップS502において、指定されたキーが非NULLであれば(ステップS502,No)、非NULLに対応する2段目のデータ構造体のポインタを取得し(ステップS505)、そのデータ構造体から、指定されたキーを検索する(ステップS506)。指定されたキーが非NULLに対応する2段目の第1の種類のデータ構造体において見つかれば(ステップS507,Yes)、そのキーに対応する3段目のデータ構造体のポインタを取得し(ステップS508)、取得したポインタに格納されるデータ構造体のすべてのROWIDを取得する(ステップS509)。 On the other hand, if the designated key is non-NULL in step S502 (No in step S502), a pointer to the second-stage data structure corresponding to non-NULL is acquired (step S505), and the data structure is obtained. The designated key is searched (step S506). If the specified key is found in the first type data structure of the second level corresponding to non-NULL (step S507, Yes), the pointer of the third level data structure corresponding to the key is acquired ( In step S508), all ROWIDs of the data structure stored in the acquired pointer are acquired (step S509).
一方、ステップS507において、指定されたキーが2段目の第1の種類のデータ構造体において見つからなければ(ステップS507,No)、その他のエントリに対応する3段目のデータ構造体のポインタを取得し(ステップS510)、そのデータ構造体から、指定されたキーを検索する(ステップS511)。そして、その検索の結果、キーと一致したエントリのROWIDを取得する(ステップS512)。以上のようにして、目的としたキーを含んだすべてのレコード、すなわち検索結果を取得することができ、その検索結果は出力部24から出力される。
On the other hand, if the designated key is not found in the first type data structure in the second level in step S507 (No in step S507), the pointer of the third level data structure corresponding to the other entry is set. Obtain (step S510), and search for the designated key from the data structure (step S511). As a result of the search, the ROWID of the entry that matches the key is acquired (step S512). As described above, all records including the target key, that is, search results can be acquired, and the search results are output from the
この検索は、図12の例で言えば、NULLがキーとして指定されているとすると、最終的に、ROWID4,5が取得され、それらROWID4,5で特定されるレコードが検索結果として出力されるという工程を辿る。他の例として、「山田」がキーとして指定されているとすると、最終的に、ROWID1,7が取得され、それらROWID1,7で特定されるレコードが検索結果として出力されるという工程を辿る。
In this search, in the example of FIG. 12, if NULL is specified as a key,
なお、第1の実施の形態と同様に、各データ構造体に適用される構造には特に制限はないが、ビットマップ索引で使われるようなデータ構造体を使用しないことが好ましい。また、データの追加および削除については、第1の実施の形態に説明した通りである。 As in the first embodiment, there is no particular limitation on the structure applied to each data structure, but it is preferable not to use a data structure used in a bitmap index. Further, addition and deletion of data are as described in the first embodiment.
以上に説明したように、第5の実施の形態にかかるデータベース管理方法によれば、第2の実施の形態で示した索引構造と第3の実施の形態で示したで示した索引構造とを組み合わせることにより、三段構造の索引を作成し、またそれを用いた検索を可能としたので居、両実施の形態にかかるデータベース管理方法の効果を享受することができる。 As described above, according to the database management method according to the fifth embodiment, the index structure shown in the second embodiment and the index structure shown in the third embodiment are the same. By combining them, an index having a three-stage structure is created and a search using the index is possible, so that the effects of the database management methods according to both embodiments can be enjoyed.
(第6の実施の形態)
第6の実施の形態にかかるデータベース管理システム100は、第1〜第5の実施の形態において、異なる複数のキーを用いて検索すること、いわゆる複合検索を可能にした索引を作成し、それを用いた検索を行うことを特徴とする。
(Sixth embodiment)
In the first to fifth embodiments, the
ここでは、説明を簡単にするため、第1の実施の形態において示した索引に対して、異なる2つのキーが与えられた場合の形態を説明する。 Here, in order to simplify the explanation, a mode in which two different keys are given to the index shown in the first embodiment will be described.
図14は、第6の実施の形態にかかるデータベース管理方法によって予め構築される索引の概念図である。図14に示すように、索引は二段に階層化されている。1段目の索引は、第1の実施の形態で示した図4の1段目と同じデータ構造体を示すが、2段目のデータ構造体は、1段目のキーとは異なるキーのそれぞれとROWIDとをペアとしたエントリを含んでいる。換言すれば、図4に示した2段目のデータ構造体の各エントリに、キーが対応付けられている。 FIG. 14 is a conceptual diagram of an index built in advance by the database management method according to the sixth embodiment. As shown in FIG. 14, the index is hierarchized in two stages. The first level index indicates the same data structure as the first level in FIG. 4 shown in the first embodiment, but the second level data structure has a key different from the first level key. Each entry includes a pair of ROWID. In other words, a key is associated with each entry of the second-stage data structure shown in FIG.
次に、第6の実施の形態にかかるデータベース管理方法に従った検索処理について説明する。図15は、その検索処理を示すフローチャートである。まず、処理解析部21は、SQL文等の処理要求を受け付けて、その解析および最適化を行う。ここでは、その解析および最適化の結果、検索部22が、頻繁に更新され且つその取りうる値の種類の少ない値である第1キーと、決定木から得られるように値に偏りが存在するような第2キーとり両方含むレコードを、図14に示した構造の索引から検索することとする。そこでまず、第1キーが属するフィールドをエントリとした1段目のデータ構造体のポインタを取得する(ステップS601)。つぎに、検索部22は、その1段目のデータ構造体から、指定された第1キーを検索し(ステップS602)、検索された第1キーに対応する2段目のデータ構造体のポインタを取得する(ステップS603)。続いて、そのデータ構造体から、指定された第2キーを検索し(ステップS604)、その検索の結果、第2キーと一致したエントリのROWIDを取得する(ステップS605)。これにより、目的とした第1キーおよび第2キーの両方を含んだすべてのレコード、すなわち検索結果を取得することができ、その検索結果は出力部24から出力される。
Next, search processing according to the database management method according to the sixth embodiment will be described. FIG. 15 is a flowchart showing the search process. First, the
この検索は、図14の例で言えば、第1キーとして「状況」フィールドの値である「作成中」が指定され、第2キーとして「作業者」フィールドの値である「山田」が指定されているとすると、最終的に、ROWID1,7が取得され、これらROWID1,7で特定されるレコードが検索結果として出力されるという工程を辿る。
In this search, in the example of FIG. 14, “Creating” as the value of the “situation” field is designated as the first key, and “Yamada” as the value of the “worker” field is designated as the second key. Assuming that the
このように、少なくとも、2段目の各データ構造体には、第1キーを格納する必要がない。 Thus, it is not necessary to store the first key at least in each data structure in the second stage.
なお、第1の実施の形態と同様に、各データ構造体に適用される構造には特に制限はないが、ビットマップ索引で使われるようなデータ構造体を使用しないことが好ましい。また、データの追加および削除については、第1の実施の形態に説明した通りである。 As in the first embodiment, there is no particular limitation on the structure applied to each data structure, but it is preferable not to use a data structure used in a bitmap index. Further, addition and deletion of data are as described in the first embodiment.
以上に説明したように、第6の実施の形態にかかるデータベース管理方法によれば、複合検索に対しても、第1の実施の形態による効果を享受することができる。 As described above, according to the database management method according to the sixth embodiment, it is possible to enjoy the effects of the first embodiment even for complex search.
(第7の実施の形態)
第7の実施の形態にかかるデータベース管理システム100は、第6の実施の形態の変形例である。具体的には、第6の実施の形態に示した2段目のデータ構造体にさらに第1の実施の形態に示した二段の索引構造を適用することによって三段の索引構造を作成し、その索引を用いた検索を行うことを特徴とする。換言すれば、第1キーの索引と第2キーの索引とにそれぞれ第1の実施の形態に示した二段の索引構造を適用する。
(Seventh embodiment)
A
図16は、第7の実施の形態にかかるデータベース管理方法によって予め構築される索引の概念図である。図16において、1段目の索引については、図14に示した1段目の索引に対応し、2段目の索引については、各データ構造体のエントリが、各キーに対してROWIDではなくポインタが対応付けられている点を除き、図14に示した2段目の索引に対応するため、ここではその説明を省略する。また、図16において、2段目の索引と3段目の索引との関係についても、図4に示した二段の索引構造と同じであるため、ここではその説明を省略する。 FIG. 16 is a conceptual diagram of an index built in advance by the database management method according to the seventh embodiment. In FIG. 16, the first level index corresponds to the first level index shown in FIG. 14, and for the second level index, each data structure entry is not ROWID for each key. Except for the fact that the pointer is associated, it corresponds to the second-level index shown in FIG. In FIG. 16, the relationship between the second-stage index and the third-stage index is also the same as the two-stage index structure shown in FIG.
次に、第7の実施の形態にかかるデータベース管理方法に従った検索処理について説明する。図17は、その検索処理を示すフローチャートである。まず、処理解析部21は、SQL文等の処理要求を受け付けて、その解析および最適化を行う。ここでは、その解析および最適化の結果、検索部22が、頻繁に更新され且つその取りうる値の種類の少ない値である第1キーと、決定木から得られるように値に偏りが存在するような第2キーとり両方含むレコードを、図16に示した構造の索引から検索することとする。そこでまず、第1キーが属するフィールドをエントリとした1段目のデータ構造体のポインタを取得する(ステップS701)。つぎに、検索部22は、その1段目のデータ構造体から、指定された第1キーを検索し(ステップS702)、検索された第1キーに対応する2段目のデータ構造体のポインタを取得する(ステップS703)。続いて、そのデータ構造体から、指定された第2キーを検索し(ステップS704)、検索された第2キーに対応する3段目のデータ構造体のポインタを取得する(ステップS705)。そして、取得したポインタに格納されるデータ構造体のすべてのROWIDを取得する(ステップS706)。これにより、目的とした第1キーおよび第2キーの両方を含んだすべてのレコード、すなわち検索結果を取得することができ、その検索結果は出力部24から出力される。
Next, a search process according to the database management method according to the seventh embodiment will be described. FIG. 17 is a flowchart showing the search process. First, the
この検索は、図16の例で言えば、第1キーとして「状況」フィールドの値である「作成中」が指定され、第2キーとして「作業者」フィールドの値である「佐藤」が指定されているとすると、最終的に、ROWID8が取得され、これらROWID8で特定されるレコードが検索結果として出力されるという工程を辿る。
In the example of FIG. 16, this search specifies “Creating” as the value of the “Status” field as the first key, and “Sato” as the value of the “Worker” field as the second key. Assuming that the
このように、少なくとも、2段目の各データ構造体には、第1キーを格納する必要がなく、また3段目の各データ構造についても第2キーを格納する必要がない。 Thus, it is not necessary to store the first key in each data structure in the second row, and it is not necessary to store the second key in each data structure in the third row.
なお、第1の実施の形態と同様に、各データ構造体に適用される構造には特に制限はないが、ビットマップ索引で使われるようなデータ構造体を使用しないことが好ましい。また、データの追加および削除については、第1の実施の形態に説明した通りである。 As in the first embodiment, there is no particular limitation on the structure applied to each data structure, but it is preferable not to use a data structure used in a bitmap index. Further, addition and deletion of data are as described in the first embodiment.
また、上述した説明では、2段目と3段目の索引に対して、第1の実施の形態の索引構造を適用したが、他の実施の形態の索引構造を適用しても良い。 In the above description, the index structure of the first embodiment is applied to the second and third stage indexes, but the index structure of another embodiment may be applied.
以上に説明したように、第7の実施の形態にかかるデータベース管理方法によれば、複合検索に対しても、第1〜第5の実施の形態にかかる索引構造を適用することができ、それら実施の形態による効果を享受することができる。 As described above, according to the database management method according to the seventh embodiment, the index structure according to the first to fifth embodiments can be applied to the compound search, and those The effect by embodiment can be enjoyed.
上述した第1〜第7の実施の形態にかかるデータベース管理システム100によって実行されるデータベース管理方法は、PC等のコンピュータにインストール可能な形式又は実行可能な形式のファイル形態のコンピュータプログラムとして、CD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供されることができる。
The database management method executed by the
また、そのようなコンピュータプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納されて、ネットワーク経由でPC等にダウンロードされることにより提供されても良い。 Further, such a computer program may be provided by being stored on a computer connected to a network such as the Internet and downloaded to a PC or the like via the network.
本発明の実施の形態にかかるデータベース管理システム、データベース管理方法およびプログラムは、荷物の配送状況のように状況データが頻繁に更新される荷物配送管理システム等の管理システムに適用するとより効果的である。 The database management system, the database management method, and the program according to the embodiment of the present invention are more effective when applied to a management system such as a package delivery management system in which status data is frequently updated, such as package delivery status. .
21 処理解析部
22 検索部
23 更新部
24 出力部
25 データベース
100 データベース管理システム
102 CPU
103 ROM
104 RAM
105 一次記憶装置
106 二次記憶装置
107 HDD
108 リムーバブルディスク装置
108a 記憶媒体
109 ネットワーク
110 ネットワークインターフェース
111 表示装置
112 キーボード
113 ポインティングデバイス
114 データバス
21
103 ROM
104 RAM
105
108
Claims (12)
前記第1の値と前記位置情報とが第1のデータ構造体と第2のデータ構造体との組み合わせによって対応付けられ、前記第2の値と前記位置情報とが前記第1のデータ構造体と第3のデータ構造体との組み合わせによって対応付けられるように該第1のデータ構造体と該第2のデータ構造体と該第3のデータ構造体を作成する索引作成手段と、
前記索引作成手段によって作成された前記第1のデータ構造体と前記第2のデータ構造体と前記第3のデータ構造体とを索引として格納する記憶手段と、
を備え、
前記第1のデータ構造体は、前記第1の値と該第1の値に対応付けられた前記第2のデータ構造体の位置情報とをエントリとして含むとともに、前記第2の値に対応付けられた前記第3のデータ構造体の位置情報をエントリとして含み、
前記第2のデータ構造体は、前記第1の値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該第1の値自体をエントリとして含まず、
前記第3のデータ構造体は、前記第2の値と該第2の値を前記所定のフィールドに含んだレコードの位置情報とをエントリとして含むことを特徴とするデータベース管理システム。 The first value and the second value that can be registered in a predetermined field between a plurality of records are associated with the position information of the records that respectively include the first value and the second value in the predetermined field A database management system for creating an index,
The first value and the position information are associated with each other by a combination of a first data structure and a second data structure, and the second value and the position information are the first data structure. Index generating means for creating the first data structure, the second data structure, and the third data structure so as to be associated with each other by a combination of the data structure and the third data structure;
Storage means for storing the first data structure, the second data structure, and the third data structure created by the index creation means as an index;
With
The first data structure includes the first value and position information of the second data structure associated with the first value as an entry, and is associated with the second value. Including the position information of the third data structure as an entry,
The second data structure includes, as an entry, position information of a record including the first value in the predetermined field, and does not include the first value itself as an entry.
The database management system according to claim 3, wherein the third data structure includes the second value and position information of a record including the second value in the predetermined field as entries.
前記NULL値と前記位置情報とが第1のデータ構造体と第2のデータ構造体との組み合わせによって対応付けられ、前記非NULL値と前記位置情報とが前記第1のデータ構造体と第3のデータ構造体との組み合わせによって対応付けられるように該第1のデータ構造体と該第2のデータ構造体と該第3のデータ構造体を作成する索引作成手段と、
前記索引作成手段によって作成された前記第1のデータ構造体と前記第2のデータ構造体と前記第3のデータ構造体とを索引として格納する記憶手段と、
を備え、
前記第1のデータ構造体は、前記NULL値に対応付けられた前記第2のデータ構造体の位置情報をエントリとして含むとともに、前記非NULL値に対応付けられた前記第3のデータ構造体の位置情報をエントリとして含み、
前記第2のデータ構造体は、前記NULL値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該NULL値自体をエントリとして含まず、
前記第3のデータ構造体は、前記非NULL値と該非NULL値を前記所定のフィールドに含んだレコードの位置情報とをエントリとして含むことを特徴とするデータベース管理システム。 Database management for creating an index that associates NULL values and non-NULL values that can be registered in a predetermined field among a plurality of records, and position information of records that respectively include the NULL values and the non-NULL values in the predetermined fields A system,
The NULL value and the position information are associated by a combination of a first data structure and a second data structure, and the non-NULL value and the position information are the first data structure and the third data structure. Index creating means for creating the first data structure, the second data structure, and the third data structure so as to be associated with each other by a combination with the data structure;
Storage means for storing the first data structure, the second data structure, and the third data structure created by the index creation means as an index;
With
The first data structure includes, as an entry, position information of the second data structure associated with the NULL value, and the third data structure associated with the non-NULL value. Including location information as an entry,
The second data structure includes position information of a record including the NULL value in the predetermined field as an entry, and does not include the NULL value itself as an entry.
The database management system according to claim 3, wherein the third data structure includes, as entries, the non-NULL value and position information of a record including the non-NULL value in the predetermined field.
前記記憶手段は、前記索引作成手段によって作成された前記第1のデータ構造体と前記第2のデータ構造体と前記第3のデータ構造体と前記第4のデータ構造体とを索引として格納し、
前記第3のデータ構造体は、前記非NULL値と該非NULL値に対応付けられた前記第4のデータ構造体の位置情報とをエントリとして含み、
前記第4のデータ構造体は、前記非NULL値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該非NULL値自体をエントリとして含まないことを特徴とする請求項2に記載のデータベース管理システム。 The index creating means is configured to associate the non-NULL value and the position information with a combination of the first data structure, the third data structure, and the fourth data structure. And a fourth data structure are created,
The storage means stores the first data structure, the second data structure, the third data structure, and the fourth data structure created by the index creation means as indexes. ,
The third data structure includes, as entries, the non-NULL value and position information of the fourth data structure associated with the non-NULL value,
Said fourth data structure according to claim 2, wherein the free of non NULL value as and entry non NULL value itself includes as an entry position information of records that contain the predetermined field Database management system.
前記索引作成手段は、前記第1の値と前記位置情報とが前記第3のデータ構造体と第4のデータ構造体との組み合わせによって対応付けられ、前記第2の値と前記位置情報とが前記第3のデータ構造体と第5のデータ構造体との組み合わせによって対応付けられるように該第3のデータ構造体と該第4のデータ構造体と該第5のデータ構造体を作成し、
前記記憶手段は、前記索引作成手段によって作成された前記第1のデータ構造体と前記第2のデータ構造体と前記第3のデータ構造体と前記第4のデータ構造体と前記第5のデータ構造体とを索引として格納し、
前記第3のデータ構造体は、前記第1の値と該第1の値に対応付けられた前記第4のデータ構造体の位置情報とをエントリとして含むとともに、前記第2の値に対応付けられた前記第5のデータ構造体の位置情報をエントリとして含み、
前記第4のデータ構造体は、前記第1の値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該第1の値自体をエントリとして含まず、
前記第5のデータ構造体は、前記第2の値と該第2の値を前記所定のフィールドに含んだレコードの位置情報とをエントリとして含むことを特徴とする請求項2に記載のデータベース管理システム。 The non-NULL value is classified into a first value and a second value,
The index creating means associates the first value and the position information by a combination of the third data structure and the fourth data structure, and the second value and the position information are Creating the third data structure, the fourth data structure, and the fifth data structure so as to be associated by a combination of the third data structure and the fifth data structure;
The storage means includes the first data structure, the second data structure, the third data structure, the fourth data structure, and the fifth data created by the index creating means. Store the structure as an index,
The third data structure includes the first value and position information of the fourth data structure associated with the first value as an entry, and is associated with the second value. Including the position information of the fifth data structure as an entry,
The fourth data structure includes, as an entry, position information of a record including the first value in the predetermined field, and does not include the first value itself as an entry.
3. The database management according to claim 2 , wherein the fifth data structure includes, as entries, the second value and position information of a record including the second value in the predetermined field. system.
前記第1の値と前記第1の位置情報とが第1のデータ構造体と第2のデータ構造体との組み合わせによって対応付けられるように該第1のデータ構造体と該第2のデータ構造体を作成する索引作成手段と、
前記索引作成手段によって作成された前記第1のデータ構造体と前記第2のデータ構造体とを索引として格納する記憶手段と、
を備え、
前記第1のデータ構造体は、前記第1の値と該第1の値に対応付けられた前記第2のデータ構造体の位置情報とをエントリとして含み、
前記第2のデータ構造体は、前記第2の値と該第2の値を前記第2のフィールドに含んだレコードの前記第2の位置情報とをエントリとして含み且つ前記第1の値自体をエントリとして含まないことを特徴とするデータベース管理システム。 A first value that can be registered in a first field among a plurality of records is associated with first position information of a record that includes the first value in the first field, and the plurality of records A database management system for creating an index that associates a second value that can be registered in a second field with the second position information of a record that includes the second value in the second field. And
The first data structure and the second data structure so that the first value and the first position information are associated with each other by a combination of the first data structure and the second data structure. Indexing means for creating a body;
Storage means for storing the first data structure and the second data structure created by the index creation means as an index;
With
The first data structure includes the first value and position information of the second data structure associated with the first value as an entry,
The second data structure includes the second value and the second position information of a record including the second value in the second field as an entry, and includes the first value itself. A database management system that is not included as an entry.
前記記憶手段は、前記索引作成手段によって作成された前記第1のデータ構造体と前記第2のデータ構造体と前記第3のデータ構造体とを索引として格納し、
前記第2のデータ構造体は、前記第2の値と該第2の値に対応付けられた前記第3のデータ構造体の位置情報とをエントリとして含み且つ前記第1の値をエントリとして含まず、
前記第3のデータ構造体は、前記第2の値を前記第2のフィールドに含んだレコードの位置情報をエントリとして含み且つ該第2の値自体をエントリとして含まないことを特徴とする請求項5に記載のデータベース管理システム。 The index creation means includes the second data structure so that the second value and the second position information are associated with each other by a combination of the second data structure and the third data structure. And the third data structure,
The storage means stores the first data structure, the second data structure, and the third data structure created by the index creation means as an index,
The second data structure includes the second value and position information of the third data structure associated with the second value as an entry, and includes the first value as an entry. Without
The third data structure includes, as an entry, position information of a record including the second value in the second field, and does not include the second value itself as an entry. 5. The database management system according to 5 .
所望のキーが前記第1の値を示す場合に、前記索引を構成する第1のデータ構造体から当該所望のキーを検索することによって、前記索引を構成し且つ該第1の値に対応付けられた第2のデータ構造体の位置情報を取得する工程と、
前記所望のキーが前記第2の値を示す場合に、前記第1のデータ構造体から当該所望のキーを検索することによって、前記索引を構成し且つ該第2の値に対応付けられた第3のデータ構造体の位置情報を取得する工程と、
前記所望のキーが前記第1の値を示す場合に、取得した前記位置情報に対応付けられた第2のデータ構造体から、前記第1の値を前記所定のフィールドに含んだレコードの位置情報を取得する工程と、
前記所望のキーが前記第2の値を示す場合に、取得した前記位置情報に対応付けられた第3のデータ構造体から、前記第2の値を検索することによって、該第2の値を前記所定のフィールドに含んだレコードの位置情報を取得する工程と、
を含み、
前記第2のデータ構造体は、前記第1の値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該第1の値自体をエントリとして含まず、
前記第3のデータ構造体は、前記第2の値と該第2の値を前記所定のフィールドに含んだレコードの位置情報とをエントリとして含むことを特徴とするプログラム。 The first value and the second value that can be registered in a predetermined field between a plurality of records are associated with the position information of the records that respectively include the first value and the second value in the predetermined field. A program for causing a computer to search for a desired record using an index stored in a storage means,
When the desired key indicates the first value, the index is constructed and associated with the first value by retrieving the desired key from the first data structure constituting the index. Obtaining the position information of the second data structure obtained;
When the desired key indicates the second value, the index is constructed and associated with the second value by retrieving the desired key from the first data structure. Obtaining the position information of the data structure of No. 3,
When the desired key indicates the first value, the position information of the record including the first value in the predetermined field from the second data structure associated with the acquired position information A process of obtaining
When the desired key indicates the second value, the second value is obtained by retrieving the second value from the third data structure associated with the acquired position information. Obtaining position information of a record included in the predetermined field;
Including
The second data structure includes, as an entry, position information of a record including the first value in the predetermined field, and does not include the first value itself as an entry.
The program according to claim 3, wherein the third data structure includes the second value and position information of a record including the second value in the predetermined field as an entry.
所望のキーがNULL値を示す場合に、前記索引を構成する第1のデータ構造体から、該NULL値を前記所定のフィールドに含んだレコードの位置情報を取得する第1工程と、
所望のキーが非NULL値を示す場合に、前記索引を構成する第2のデータ構造体から当該非NULL値を検索することによって、該非NULL値を前記所定のフィールドに含んだレコードの位置情報を取得する第2工程と、
を含み、
前記第1のデータ構造体は、前記NULL値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該NULL値自体をエントリとして含まないことを特徴とするプログラム。 Stored in storage means that associates NULL values and non-NULL values that can be registered in a predetermined field among a plurality of records, and position information of records that respectively include the NULL values and the non-NULL values in the predetermined fields. A program for causing a computer to search for a desired record using the index,
A first step of obtaining position information of a record including the NULL value in the predetermined field from a first data structure constituting the index when a desired key indicates a NULL value;
When the desired key indicates a non-NULL value, the position information of the record including the non-NULL value in the predetermined field is obtained by retrieving the non-NULL value from the second data structure constituting the index. A second step to acquire;
Including
The program according to claim 1, wherein the first data structure includes, as an entry, positional information of a record including the NULL value in the predetermined field, and does not include the NULL value itself as an entry.
前記第3のデータ構造体は、前記非NULL値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該非NULL値自体をエントリとして含まないことを特徴とする請求項8に記載のプログラム。 The second step constructs the index and sets the non-NULL value to the non-NULL value by retrieving the non-NULL value from a second data structure constituting the index when the desired key indicates a non-NULL value. The position information of the associated third data structure is obtained, and the position of the record including the non-NULL value in the predetermined field from the third data structure associated with the obtained position information. Including obtaining information,
9. The third data structure according to claim 8 , wherein the third data structure includes, as an entry, position information of a record including the non-NULL value in the predetermined field, and does not include the non-NULL value itself as an entry. program.
前記第2工程は、前記所望のキーが前記第1の値を示す場合に、取得した前記位置情報に対応付けられた第3のデータ構造体から、前記第1の値を前記所定のフィールドに含んだレコードの位置情報を取得し、前記所望のキーが前記第2の値を示す場合に、前記索引を構成し且つ取得した前記位置情報に対応付けられた第4のデータ構造体から、前記第2の値を検索することによって、該第2の値を前記所定のフィールドに含んだレコードの位置情報を取得することを含み、
前記第3のデータ構造体は、前記第1の値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該第1の値自体をエントリとして含まないことを特徴とする請求項8に記載のプログラム。 The non-NULL value is classified into a first value and a second value,
In the second step, when the desired key indicates the first value, the first value is stored in the predetermined field from the third data structure associated with the acquired position information. When the position information of the included record is acquired, and the desired key indicates the second value, the index is configured and the fourth data structure associated with the acquired position information is used. Retrieving position information of a record including the second value in the predetermined field by searching for a second value;
Said third data structure, according to claim, characterized in that does not include the first value as and entries first value itself includes the entry position information of records that contain the predetermined field 8 The program described in.
前記索引を構成する第1のデータ構造体から前記第1の値を示す第1のキーを検索することによって、前記索引を構成し且つ該第1の値に対応付けられた第2のデータ構造体の位置情報を取得する第1工程と、
取得した前記位置情報に対応付けられた前記第2のデータ構造体から、前記第2の値を示す第2のキーを検索することによって、前記第2の値を前記所定のフィールドに含んだレコードの位置情報を取得する第2工程と、
を含み、
前記第2のデータ構造体は、前記第1の値をエントリとして含まないことを特徴とするプログラム。 A first value that can be registered in a first field among a plurality of records is associated with first position information of a record that includes the first value in the first field, and the plurality of records An index stored in the storage means that associates the second value that can be registered in the second field with the second position information of the record that includes the second value in the second field. A program for using a computer to search for a desired record,
A second data structure constituting the index and associated with the first value by retrieving a first key indicating the first value from a first data structure constituting the index A first step of acquiring body position information;
A record including the second value in the predetermined field by searching a second key indicating the second value from the second data structure associated with the acquired position information. A second step of acquiring position information of
Including
The program according to claim 2, wherein the second data structure does not include the first value as an entry.
前記第3のデータ構造体は、前記第2の値を前記所定のフィールドに含んだレコードの位置情報をエントリとして含み且つ該第2の値自体をエントリとして含まないことを特徴とする請求項11に記載のプログラム。 The second step constructs the index and associates it with the second value by retrieving the second key from the second data structure associated with the acquired position information. Position information of the third data structure obtained, and the position of the record including the second value in the predetermined field from the third data structure associated with the obtained position information. Including obtaining information,
Said third data structure, according to claim, characterized in that does not contain the second value as and entries second value itself includes the entry position information of records that contain the predetermined field 11 The program described in.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008238086A JP5287071B2 (en) | 2008-09-17 | 2008-09-17 | Database management system and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008238086A JP5287071B2 (en) | 2008-09-17 | 2008-09-17 | Database management system and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010072823A JP2010072823A (en) | 2010-04-02 |
JP5287071B2 true JP5287071B2 (en) | 2013-09-11 |
Family
ID=42204558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008238086A Expired - Fee Related JP5287071B2 (en) | 2008-09-17 | 2008-09-17 | Database management system and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5287071B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012101706A1 (en) * | 2011-01-25 | 2012-08-02 | 日本電気株式会社 | Information search device |
US9323748B2 (en) | 2012-10-22 | 2016-04-26 | Ab Initio Technology Llc | Profiling data with location information |
KR101429046B1 (en) | 2012-11-26 | 2014-08-11 | 에스코어 주식회사 | Method for searching, inputting, deleting and garbage collecting of data in database having key-value structure |
EP3114578A1 (en) | 2014-03-07 | 2017-01-11 | AB Initio Technology LLC | Managing data profiling operations related to data type |
US11068540B2 (en) | 2018-01-25 | 2021-07-20 | Ab Initio Technology Llc | Techniques for integrating validation results in data profiling and related systems and methods |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62138924A (en) * | 1985-12-11 | 1987-06-22 | Nec Corp | Table search control system |
JPS6428726A (en) * | 1987-07-24 | 1989-01-31 | Hitachi Ltd | Index management method for data base |
JP3250544B2 (en) * | 1999-04-16 | 2002-01-28 | 日本電気株式会社 | Transfer destination search method, transfer destination search device, search table recording medium, and search program recording medium |
JP2002290447A (en) * | 2001-03-27 | 2002-10-04 | Mitsubishi Electric Corp | Address search method, address search circuit and address search program |
JP2004234108A (en) * | 2003-01-28 | 2004-08-19 | Fujitsu Ten Ltd | Data retrieving device and method and data retrieving program |
-
2008
- 2008-09-17 JP JP2008238086A patent/JP5287071B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010072823A (en) | 2010-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6028567B2 (en) | Data storage program, data search program, data storage device, data search device, data storage method, and data search method | |
US10180992B2 (en) | Atomic updating of graph database index structures | |
JP5626733B2 (en) | Personal information anonymization apparatus and method | |
CN105574093A (en) | Method for establishing index in HDFS based spark-sql big data processing system | |
CN106407360B (en) | Data processing method and device | |
US20130325900A1 (en) | Intra-block partitioning for database management | |
TWI549009B (en) | Database managing method, database managing system, and database tree structure | |
WO2018097846A1 (en) | Edge store designs for graph databases | |
US20170228468A1 (en) | Data searching method of database, apparatus and computer program for the same | |
JP5287071B2 (en) | Database management system and program | |
JPWO2010084754A1 (en) | Database system, database management method, and database structure | |
JP4237813B2 (en) | Structured document management system | |
US6826563B1 (en) | Supporting bitmap indexes on primary B+tree like structures | |
JP6828181B2 (en) | k-Anonymization devices, methods and programs | |
US20100030750A1 (en) | Methods and Apparatus for Performing Multi-Data-Source, Non-ETL Queries and Entity Resolution | |
CN115809268B (en) | Adaptive query method and device based on fragment index | |
WO2015129109A1 (en) | Index management device | |
KR101679011B1 (en) | Method and Apparatus for moving data in DBMS | |
KR100612376B1 (en) | A index system and method for xml documents using node-range of integration path | |
JP2007048318A (en) | Relational database processing method and relational database processor | |
US20100205197A1 (en) | Two-valued logic database management system with support for missing information | |
JP4091586B2 (en) | Structured document management system, index construction method and program | |
JP2004192657A (en) | Information retrieval system, and recording medium recording information retrieval method and program for information retrieval | |
JP4825504B2 (en) | Data registration / retrieval system and data registration / retrieval method | |
KR20090107145A (en) | The integrating and searching method of alien 2-dimension table |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110613 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130315 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130520 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5287071 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |