JP2001331353A - データベースへのデータ入力システム及びそのプログラムを記憶した記録媒体 - Google Patents
データベースへのデータ入力システム及びそのプログラムを記憶した記録媒体Info
- Publication number
- JP2001331353A JP2001331353A JP2000149648A JP2000149648A JP2001331353A JP 2001331353 A JP2001331353 A JP 2001331353A JP 2000149648 A JP2000149648 A JP 2000149648A JP 2000149648 A JP2000149648 A JP 2000149648A JP 2001331353 A JP2001331353 A JP 2001331353A
- Authority
- JP
- Japan
- Prior art keywords
- data
- page
- input
- database
- value
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 インデックス値がキー項目の複数の項目から
演算を含む所定の方式により導出されるようなインデッ
クスのデータベースに対して、大量のデータであっても
高速にデータをロードできるデータベースの入力方法を
提供する。 【解決手段】 入力データ集合を同時に処理できるデー
タ数以下の部分集合に分割して、該部分集合について順
次その各データのインデックス値を前記所定の方式によ
り求め、各データをインデックス値順に並べ替えてその
インデックス値を付加して補助記憶装置に設けたテンポ
ラリファイルに一時記憶する部分ソート部と、得られた
テンポラリファイルから、各インデックス値付きデータ
を読み出してインデックス値順に出力するマージソート
部と、マージソート部からのデータをデータベースにペ
ージ毎に入力するロード部とからなることを特徴とする
データベースのデータ入力システム。
演算を含む所定の方式により導出されるようなインデッ
クスのデータベースに対して、大量のデータであっても
高速にデータをロードできるデータベースの入力方法を
提供する。 【解決手段】 入力データ集合を同時に処理できるデー
タ数以下の部分集合に分割して、該部分集合について順
次その各データのインデックス値を前記所定の方式によ
り求め、各データをインデックス値順に並べ替えてその
インデックス値を付加して補助記憶装置に設けたテンポ
ラリファイルに一時記憶する部分ソート部と、得られた
テンポラリファイルから、各インデックス値付きデータ
を読み出してインデックス値順に出力するマージソート
部と、マージソート部からのデータをデータベースにペ
ージ毎に入力するロード部とからなることを特徴とする
データベースのデータ入力システム。
Description
【0001】
【発明の属する技術分野】本発明は、データが複数の項
目からなり、これらデータを順序付けるインデックスが
所定の方式により該項目のうちの少なくとも二つの項目
から導き出されるインデックス値からなり、その範囲に
より管理単位のページに区分して管理するデータベース
へのデータ集合を入力するデータベースへのデータ入力
システムに関する。
目からなり、これらデータを順序付けるインデックスが
所定の方式により該項目のうちの少なくとも二つの項目
から導き出されるインデックス値からなり、その範囲に
より管理単位のページに区分して管理するデータベース
へのデータ集合を入力するデータベースへのデータ入力
システムに関する。
【0002】
【従来の技術】データベースとして最もよく利用されて
いる関係データベース(以下、「RDB」と略称す
る。)では、RDBが保持するデータに対する検索を高
速に行うため、インデックスが用いられる。インデック
スは、RDBのテーブルが持つ各種の属性に関する複数
の項目の組み合わせ(以下、キー項目と呼ぶ)に対し
て、キー項目の値からある決められた方式に従って求め
られる値(以下、インデックス値と呼ぶ)によって順序
付けを行い、このインデックス値によりデータへのアク
セスを直接行う方法を提供することにより、検索の高速
性をもたらす。
いる関係データベース(以下、「RDB」と略称す
る。)では、RDBが保持するデータに対する検索を高
速に行うため、インデックスが用いられる。インデック
スは、RDBのテーブルが持つ各種の属性に関する複数
の項目の組み合わせ(以下、キー項目と呼ぶ)に対し
て、キー項目の値からある決められた方式に従って求め
られる値(以下、インデックス値と呼ぶ)によって順序
付けを行い、このインデックス値によりデータへのアク
セスを直接行う方法を提供することにより、検索の高速
性をもたらす。
【0003】RDBでは、大量のデータを、ハードディ
スク、光ディスク等の補助記憶装置上のある特定の区画
(以下、ページと呼ぶ)に格納する。このとき、あるイ
ンデックスに対して、インデックス値を所定の範囲で区
切ってその範囲に収まるデータを一つのページに格納す
る(以下、データ編成と呼ぶ)方法が一般的に用いられ
ている。このようなインデックスをプライマリインデッ
クスと呼ぶ。プライマリインデックスを用いると、デー
タがそのインデックス値の順にそのままページに格納さ
れているため、より高速に検索を行うことができる。
スク、光ディスク等の補助記憶装置上のある特定の区画
(以下、ページと呼ぶ)に格納する。このとき、あるイ
ンデックスに対して、インデックス値を所定の範囲で区
切ってその範囲に収まるデータを一つのページに格納す
る(以下、データ編成と呼ぶ)方法が一般的に用いられ
ている。このようなインデックスをプライマリインデッ
クスと呼ぶ。プライマリインデックスを用いると、デー
タがそのインデックス値の順にそのままページに格納さ
れているため、より高速に検索を行うことができる。
【0004】また、各ページへアクセスするために、R
DB内では、各ページが持つインデックス値の範囲とそ
のページへの参照をひとつの組とする管理データも、同
じように保持される必要がある。このような各ページに
関するデータ全てを編成し、ページ内に格納することを
インデックス構築と呼ぶ。
DB内では、各ページが持つインデックス値の範囲とそ
のページへの参照をひとつの組とする管理データも、同
じように保持される必要がある。このような各ページに
関するデータ全てを編成し、ページ内に格納することを
インデックス構築と呼ぶ。
【0005】RDBにおいて、複数のデータに対してデ
ータ編成とインデックス構築を一度に行うことをデータ
のロードと呼び、そのための機能を提供するものをロー
ダと呼んでいる。
ータ編成とインデックス構築を一度に行うことをデータ
のロードと呼び、そのための機能を提供するものをロー
ダと呼んでいる。
【0006】インデックスは、インデックス値を求める
方式具体的にはその算出方式によって特徴づけられる。
例えば、キー項目の各項目の値をそのまま結合したもの
をインデックス値とするコンパウンドBツリーや、キー
項目の各項目の値から特定の演算式により算出して得ら
れる値をインデックス値とするUBツリーなどがある。
方式具体的にはその算出方式によって特徴づけられる。
例えば、キー項目の各項目の値をそのまま結合したもの
をインデックス値とするコンパウンドBツリーや、キー
項目の各項目の値から特定の演算式により算出して得ら
れる値をインデックス値とするUBツリーなどがある。
【0007】UBツリーで施される演算の一つとして、
各キー項目の値を2進数のビットで表現し、まず最上位
ビットをキー項目内の属性の順番に取得する。次に上か
ら2番目のビットをキー項目の属性の順番に取得して、
ということを全てのビットについて取得して作り上げた
2進数のビットの値をインデックス値とする、ビットイ
ンターリーブ方式がある。
各キー項目の値を2進数のビットで表現し、まず最上位
ビットをキー項目内の属性の順番に取得する。次に上か
ら2番目のビットをキー項目の属性の順番に取得して、
ということを全てのビットについて取得して作り上げた
2進数のビットの値をインデックス値とする、ビットイ
ンターリーブ方式がある。
【0008】一般に、このUBツリーのようにキー項目
の値から何らかの演算を施してインデックス値を得るよ
うなインデックスは、たとえその処理が多少複雑であっ
たとしても、それを補ってあまりある検索速度の優位性
をもたらすものであるため、規定する属性項目が多くな
り、データ自体が複雑な構成となる傾向にある近年は当
然そのようなインデックスも実用上よく使われる。
の値から何らかの演算を施してインデックス値を得るよ
うなインデックスは、たとえその処理が多少複雑であっ
たとしても、それを補ってあまりある検索速度の優位性
をもたらすものであるため、規定する属性項目が多くな
り、データ自体が複雑な構成となる傾向にある近年は当
然そのようなインデックスも実用上よく使われる。
【0009】
【発明が解決しようとする課題】ところで、大量のデー
タを扱うデータベースにおいては、上述のように検索に
より必要なデータが高速に得られることが重要であると
共に、データベースの立ち上げ、運用管理においてデー
タのロード自体も出来るだけ短時間で行うことができる
ことが重要であり、日常の運用では求められる。
タを扱うデータベースにおいては、上述のように検索に
より必要なデータが高速に得られることが重要であると
共に、データベースの立ち上げ、運用管理においてデー
タのロード自体も出来るだけ短時間で行うことができる
ことが重要であり、日常の運用では求められる。
【0010】この大量のデータに対してロードを行う際
には、データを一件一件読み込んでそのインデックス値
に応じてページに格納する逐次入力方法よりも、あらか
じめインデックス値の順番にデータを並べ替え、その並
べられた順にまとめてページに格納する並び替え入力方
法がきわめて高速にデータをロードでき、有利であると
考えられる。
には、データを一件一件読み込んでそのインデックス値
に応じてページに格納する逐次入力方法よりも、あらか
じめインデックス値の順番にデータを並べ替え、その並
べられた順にまとめてページに格納する並び替え入力方
法がきわめて高速にデータをロードでき、有利であると
考えられる。
【0011】しかしながら、インデックス値がキー項目
の複数の項目から演算を含む所定の方式により求められ
るUBツリーのようなインデックスのデータベースに対
しては、データ数が管理に使用する計算機で一度の処理
できる量を越えるような大量の場合データのインデック
ス値を算出しつつインデックス値順に順序付けて並べ替
えることができず、上述の並び替え入力方法は適用でき
なかった。
の複数の項目から演算を含む所定の方式により求められ
るUBツリーのようなインデックスのデータベースに対
しては、データ数が管理に使用する計算機で一度の処理
できる量を越えるような大量の場合データのインデック
ス値を算出しつつインデックス値順に順序付けて並べ替
えることができず、上述の並び替え入力方法は適用でき
なかった。
【0012】従って、従来はこのようなインデックスの
データベースに対してデータをロードする場合は、デー
タ一件ごとにインデックス値を演算により求め、得られ
たインデックス値に基づいてこれを格納する適切なペー
ジを探索してそれに格納するという逐次入力方法が用い
られていた。この従来法は、多大なる時間を要し、その
ため、たとえそのインデックスによって検索の高速性が
もたらされたとしても、データのロードに時間がかかり
すぎるため、実務上大きな問題となっていた。
データベースに対してデータをロードする場合は、デー
タ一件ごとにインデックス値を演算により求め、得られ
たインデックス値に基づいてこれを格納する適切なペー
ジを探索してそれに格納するという逐次入力方法が用い
られていた。この従来法は、多大なる時間を要し、その
ため、たとえそのインデックスによって検索の高速性が
もたらされたとしても、データのロードに時間がかかり
すぎるため、実務上大きな問題となっていた。
【0013】本発明は、かかる問題の解決を課題とした
もので、その目的は、インデックス値がキー項目の複数
の項目から演算を含む所定の方式により導出されるよう
なインデックスのデータベースに対して、大量のデータ
であっても高速にデータをロードできるデータベースの
入力方法を提供することにある。
もので、その目的は、インデックス値がキー項目の複数
の項目から演算を含む所定の方式により導出されるよう
なインデックスのデータベースに対して、大量のデータ
であっても高速にデータをロードできるデータベースの
入力方法を提供することにある。
【0014】
【課題を解決するための手段】上記課題は、以下の本発
明により解決される。すなわち、本発明は、データが複
数の項目からなり、これらデータを順序付けるインデッ
クスが所定の方式により該項目のうちの少なくとも二つ
の項目から導き出されるインデックス値からなり、その
範囲により管理単位のページに区分して管理するデータ
ベースへのデータ集合を入力するデータベースへのデー
タ入力システムにおいて、入力データ集合を計算機の利
用可能な主記憶装置で同時に処理できるデータ数以下の
部分集合に分割して、該部分集合について順次その各デ
ータのインデックス値を前記所定の方式により求めると
共に各データをインデックス値順に並べ替えてそのイン
デックス値を付加して補助記憶装置に設けたテンポラリ
ファイルに一時記憶する部分ソート部と、得られた全て
の部分集合のテンポラリファイルから、各インデックス
値付きデータを読み出してインデックス値順に出力する
マージソート部と、マージソート部からのデータをデー
タベースにページ毎に入力するロード部とからなること
を特徴とするデータベースのデータ入力システムであ
る。
明により解決される。すなわち、本発明は、データが複
数の項目からなり、これらデータを順序付けるインデッ
クスが所定の方式により該項目のうちの少なくとも二つ
の項目から導き出されるインデックス値からなり、その
範囲により管理単位のページに区分して管理するデータ
ベースへのデータ集合を入力するデータベースへのデー
タ入力システムにおいて、入力データ集合を計算機の利
用可能な主記憶装置で同時に処理できるデータ数以下の
部分集合に分割して、該部分集合について順次その各デ
ータのインデックス値を前記所定の方式により求めると
共に各データをインデックス値順に並べ替えてそのイン
デックス値を付加して補助記憶装置に設けたテンポラリ
ファイルに一時記憶する部分ソート部と、得られた全て
の部分集合のテンポラリファイルから、各インデックス
値付きデータを読み出してインデックス値順に出力する
マージソート部と、マージソート部からのデータをデー
タベースにページ毎に入力するロード部とからなること
を特徴とするデータベースのデータ入力システムであ
る。
【0015】上述の通り、本発明では、入力する入力デ
ータ集合を処理するシステムの処理に適したデータ数の
部分集合に分割して各部分集合においてインデックス値
を求めると共に求められたインデックス値順に並べ替え
ており、大量の入力データに対しても並べ替えができ、
前述の並べ替え入力方法が実現され、入力の高速化が達
成される。
ータ集合を処理するシステムの処理に適したデータ数の
部分集合に分割して各部分集合においてインデックス値
を求めると共に求められたインデックス値順に並べ替え
ており、大量の入力データに対しても並べ替えができ、
前述の並べ替え入力方法が実現され、入力の高速化が達
成される。
【0016】そして、上述の本発明において、マージソ
ート部が、テンポラリファイルのファイル数が補助記憶
装置から一度に読み込むことができるファイル処理数を
越えた場合に、該ファイル処理数のテンポラリファイル
を読み込み、このファイル処理数のテンポラリファイル
を一つの2次テンポラリファイルにマージするマージ処
理により、テンポラリファイルのファイル数を該ファイ
ル処理数以下にするマージ手段を備えることにより、小
型の計算機でも大量のデータ数の入力データ集合を処理
できる。
ート部が、テンポラリファイルのファイル数が補助記憶
装置から一度に読み込むことができるファイル処理数を
越えた場合に、該ファイル処理数のテンポラリファイル
を読み込み、このファイル処理数のテンポラリファイル
を一つの2次テンポラリファイルにマージするマージ処
理により、テンポラリファイルのファイル数を該ファイ
ル処理数以下にするマージ手段を備えることにより、小
型の計算機でも大量のデータ数の入力データ集合を処理
できる。
【0017】また、本発明の部分ソート部を、主記憶装
置に所定数のデータを記憶できるテンポラリ記憶領域を
設定し、入力データ集合から順次データを読み出してそ
のインデックス値を求めて該テンポラリ記憶領域にイン
デックス値を付加して記憶し、該テンポラリ記憶領域が
満たされると、記憶されたインデックス値付データをイ
ンデックス順に並べ替えてテンポラリファイルに出力す
ることにより、入力データ集合を所定数のデータからな
るテンポラリファイルに連続的に分割する構成とするこ
とにより、入力データ集合のデータ順に連続処理でき、
部分集合への分割処理が高速に処理できる。
置に所定数のデータを記憶できるテンポラリ記憶領域を
設定し、入力データ集合から順次データを読み出してそ
のインデックス値を求めて該テンポラリ記憶領域にイン
デックス値を付加して記憶し、該テンポラリ記憶領域が
満たされると、記憶されたインデックス値付データをイ
ンデックス順に並べ替えてテンポラリファイルに出力す
ることにより、入力データ集合を所定数のデータからな
るテンポラリファイルに連続的に分割する構成とするこ
とにより、入力データ集合のデータ順に連続処理でき、
部分集合への分割処理が高速に処理できる。
【0018】一方、本発明のロード部を、ロード部は、
主記憶装置にデータベースの管理単位の1ページ分のデ
ータが展開できるメモリページ領域を設定すると共に予
め設定された指定ページを読み出してメモリページ領域
に展開し、マージソート部からの入力データをメモリペ
ージ領域に展開された展開ページに順次挿入し、そのイ
ンデックス値が展開ページのインデックス値の範囲を越
えた入力データとなった場合に、データベースの指定ペ
ージを展開ページの内容に更新すると共に次のページを
メモリページ領域に読み出して展開して展開された展開
ページに入力データを入力することにより、入力データ
をインデックス値順に対応するデータベースの各ページ
にページ毎に一括して入力する構成とすることにより、
ページ展開は必要最小限で既存のデータと整合させつつ
入力データを高速に入力できる。
主記憶装置にデータベースの管理単位の1ページ分のデ
ータが展開できるメモリページ領域を設定すると共に予
め設定された指定ページを読み出してメモリページ領域
に展開し、マージソート部からの入力データをメモリペ
ージ領域に展開された展開ページに順次挿入し、そのイ
ンデックス値が展開ページのインデックス値の範囲を越
えた入力データとなった場合に、データベースの指定ペ
ージを展開ページの内容に更新すると共に次のページを
メモリページ領域に読み出して展開して展開された展開
ページに入力データを入力することにより、入力データ
をインデックス値順に対応するデータベースの各ページ
にページ毎に一括して入力する構成とすることにより、
ページ展開は必要最小限で既存のデータと整合させつつ
入力データを高速に入力できる。
【0019】さらに、このロード部に、データベースに
如何なる入力データも格納できるインデックス値の範囲
が無限大の無限値ページを設けて置き、指定ページとし
て無限値ページが展開された場合は、メモリページ領域
に展開された該無限値ページに入力データをインデック
ス順に順次入力し、入力したデータ数が予め設定した設
定値以上に達した場合若しくは入力終了の場合にメモリ
ページ領域に格納されているデータを無限値ページから
別のページとしてページ分割し、データーベースに新ペ
ージとして格納するイニシャルロード手段を備えること
により、データベースの立ち上げの際のインデックス構
築を伴う大量のデータの入力も前述のデータ入力と同様
に高速に実施できる。また、これを実施するプログラム
も簡単となる。
如何なる入力データも格納できるインデックス値の範囲
が無限大の無限値ページを設けて置き、指定ページとし
て無限値ページが展開された場合は、メモリページ領域
に展開された該無限値ページに入力データをインデック
ス順に順次入力し、入力したデータ数が予め設定した設
定値以上に達した場合若しくは入力終了の場合にメモリ
ページ領域に格納されているデータを無限値ページから
別のページとしてページ分割し、データーベースに新ペ
ージとして格納するイニシャルロード手段を備えること
により、データベースの立ち上げの際のインデックス構
築を伴う大量のデータの入力も前述のデータ入力と同様
に高速に実施できる。また、これを実施するプログラム
も簡単となる。
【0020】また、これらのロード部に、メモリページ
領域に展開したページのデータ数が入力データの追加に
より予め設定した設定個数に達すると、該ページをこれ
に収納したデータ数を二分するように2個のページに分
割する構成を加えることにより、対象のデータベースの
インデックスを保持したままで、簡単に大量のデータが
追加できる。
領域に展開したページのデータ数が入力データの追加に
より予め設定した設定個数に達すると、該ページをこれ
に収納したデータ数を二分するように2個のページに分
割する構成を加えることにより、対象のデータベースの
インデックスを保持したままで、簡単に大量のデータが
追加できる。
【0021】なお、本発明は、上述の本発明になるデー
タベースのデータ入力システムのプログラムを記憶した
機械読み取り可能な記録媒体を包含するものである。か
かる記録媒体としては、周知のフロッピディスク、ハー
ドディスク等に磁気記録媒体、CD−ROM、DVD、
MO等の光記録媒体、更には半導体メモリ等が挙げられ
る。
タベースのデータ入力システムのプログラムを記憶した
機械読み取り可能な記録媒体を包含するものである。か
かる記録媒体としては、周知のフロッピディスク、ハー
ドディスク等に磁気記録媒体、CD−ROM、DVD、
MO等の光記録媒体、更には半導体メモリ等が挙げられ
る。
【0022】
【発明の実施の形態】以下、本発明を関係データベース
(RDB)に適用した実施例に基づいて詳説する。とこ
ろで、RDBは、公知の通り、以下の構成となってい
る。すなわち、RDBは、データを論理的な方法と物理
的な方法で分けて保持している。論理的には、テーブル
と呼ばれる、一つ以上の属性からなる情報の集まりを一
つのデータ単位(以下、レコード)としたレコードの集
まりとして保持しており、物理的には、ページと呼ばれ
るRDBが管理する補助記憶装置上の特定の区画に、イ
ンデックス値が所定範囲のデータからなるレコード単位
で保持する。
(RDB)に適用した実施例に基づいて詳説する。とこ
ろで、RDBは、公知の通り、以下の構成となってい
る。すなわち、RDBは、データを論理的な方法と物理
的な方法で分けて保持している。論理的には、テーブル
と呼ばれる、一つ以上の属性からなる情報の集まりを一
つのデータ単位(以下、レコード)としたレコードの集
まりとして保持しており、物理的には、ページと呼ばれ
るRDBが管理する補助記憶装置上の特定の区画に、イ
ンデックス値が所定範囲のデータからなるレコード単位
で保持する。
【0023】そこで、データ編成とは、インデックス値
をある範囲で区切り、テーブル内のレコード集合のデー
タをそのインデックス値に応じてその範囲ごとに分類
し、一つの範囲に含まれるレコード集合を特定の各ペー
ジに格納することを指す。
をある範囲で区切り、テーブル内のレコード集合のデー
タをそのインデックス値に応じてその範囲ごとに分類
し、一つの範囲に含まれるレコード集合を特定の各ペー
ジに格納することを指す。
【0024】また、インデックス構築とは、インデック
ス値とそのインデックス値付データが収納されたページ
の関係を示すインデックス参照システムを構築すること
である。以下、UBツリーインデックスシステムを例に
説明する。
ス値とそのインデックス値付データが収納されたページ
の関係を示すインデックス参照システムを構築すること
である。以下、UBツリーインデックスシステムを例に
説明する。
【0025】先ず、RDBの物理上のデータの管理単位
となるページの補助記憶装置上の格納場所(以下、参照
という)と、そのページに割り当てられたインデックス
値の範囲の最大値(以下、ページ値という)を一組とし
て参照データを構成し、そのページ値の順に並べる。そ
して、一定数(以下、ノード容量という)ずつまとめて
一つのリーフノードにし、このリーフノード単位でペー
ジに格納する。
となるページの補助記憶装置上の格納場所(以下、参照
という)と、そのページに割り当てられたインデックス
値の範囲の最大値(以下、ページ値という)を一組とし
て参照データを構成し、そのページ値の順に並べる。そ
して、一定数(以下、ノード容量という)ずつまとめて
一つのリーフノードにし、このリーフノード単位でペー
ジに格納する。
【0026】次いで、このようにして得られたリーフノ
ードの数がノード容量を越えて存在するときには、それ
らリーフノードを格納したページの参照とリーフノード
に含まれるデータのページ値の最大値(以下、ノード
値)を一組にしてノードデータを構成してノード値順に
並べ、再びノード容量ずつまとめて一つのノードにし、
各ページに格納する。
ードの数がノード容量を越えて存在するときには、それ
らリーフノードを格納したページの参照とリーフノード
に含まれるデータのページ値の最大値(以下、ノード
値)を一組にしてノードデータを構成してノード値順に
並べ、再びノード容量ずつまとめて一つのノードにし、
各ページに格納する。
【0027】さらに、このようにして得られたノードが
ノード容量を越えて存在するときには、上述のノード構
築と同様にしてそれらのノードのページの参照とそのノ
ードに含まれるデータのノード値の最大値(これも、ノ
ード値という)を1組にしてノードデータを構成して並
べノード容量ずつまとめて新しくノードを作るという手
順を、新しくできたノードがノード容量以下に収まるま
で繰り返す。そして、出来上がった全てのノードを各ペ
ージに格納することによりインデックス参照システムを
構築することをいう。
ノード容量を越えて存在するときには、上述のノード構
築と同様にしてそれらのノードのページの参照とそのノ
ードに含まれるデータのノード値の最大値(これも、ノ
ード値という)を1組にしてノードデータを構成して並
べノード容量ずつまとめて新しくノードを作るという手
順を、新しくできたノードがノード容量以下に収まるま
で繰り返す。そして、出来上がった全てのノードを各ペ
ージに格納することによりインデックス参照システムを
構築することをいう。
【0028】次に、データのロードとは、複数のデータ
に対してインデックス構築を行いつつ、データ編成を行
うことをいう。
に対してインデックス構築を行いつつ、データ編成を行
うことをいう。
【0029】また、データをRDBに格納する前には、
データを保持するテーブルを作成しなければならない。
また、RDBは、最初にテーブルを作成する際、中身が
空で、如何なるデータも収納できるようにページ値が無
限大であるページを自動的に作成し、同時にそのページ
の参照とページ値を組にしたデータを格納したリーフノ
ードを1枚作成し、リーフノードをページに格納する。
データを保持するテーブルを作成しなければならない。
また、RDBは、最初にテーブルを作成する際、中身が
空で、如何なるデータも収納できるようにページ値が無
限大であるページを自動的に作成し、同時にそのページ
の参照とページ値を組にしたデータを格納したリーフノ
ードを1枚作成し、リーフノードをページに格納する。
【0030】以下、多数の入力すべきデータが記録され
たファイル(以下、入力データファイル)から全てのデ
ータを読み込んでロードする実施例について説明する。
なお、本例のインデックスシステムには上述したUBツ
リーインデックスを用い、各データのインデックス値の
算出方法には前述のビットインターリーブ方式を用い
る。
たファイル(以下、入力データファイル)から全てのデ
ータを読み込んでロードする実施例について説明する。
なお、本例のインデックスシステムには上述したUBツ
リーインデックスを用い、各データのインデックス値の
算出方法には前述のビットインターリーブ方式を用い
る。
【0031】図1は、本実施例におけるシステム構成で
ある。図示のように計算機とハードディスク等の補助記
憶装置で構成される。計算機には本入力システムのプロ
グラムが収納され、その実行に際して、その主記憶装置
には適当な大きさのメモリ領域として、テンポラリ領域
とメモリページ領域の2つが確保される。また、補助記
憶装置の一方には、入力すべきデータ集合が記録された
入力データファイルや、入力データをインデックス値順
に並べ替える過程で生じるテンポラリファイルが格納さ
れる。また、他方の補助記憶装置にRDBのデータがペ
ージを管理単位として格納される。以下、その詳細を説
明する。
ある。図示のように計算機とハードディスク等の補助記
憶装置で構成される。計算機には本入力システムのプロ
グラムが収納され、その実行に際して、その主記憶装置
には適当な大きさのメモリ領域として、テンポラリ領域
とメモリページ領域の2つが確保される。また、補助記
憶装置の一方には、入力すべきデータ集合が記録された
入力データファイルや、入力データをインデックス値順
に並べ替える過程で生じるテンポラリファイルが格納さ
れる。また、他方の補助記憶装置にRDBのデータがペ
ージを管理単位として格納される。以下、その詳細を説
明する。
【0032】図2は、本例の入力システムの機能構成の
説明図である。本システムは、大きく、入力データに対
しそのインデックス値を計算してデータをインデックス
値順に並べ直してインデックス順に出力するソート部
と、インデックス値順に入力されるデータを編成しRD
B内に格納する共に必要に応じてそのインデックスを構
築あるいは更新するロード部とからなる。
説明図である。本システムは、大きく、入力データに対
しそのインデックス値を計算してデータをインデックス
値順に並べ直してインデックス順に出力するソート部
と、インデックス値順に入力されるデータを編成しRD
B内に格納する共に必要に応じてそのインデックスを構
築あるいは更新するロード部とからなる。
【0033】さらに本例のソート部は、図示のように大
量のデータを限られた計算機資源で扱えるように、入力
データを主記憶装置上で扱える範囲のサイズの部分集合
に分割すると共に各部分集合のデータのインデックス値
を計算しその順にデータを並べ替えてデータとインデッ
クス値をファイル(以下、テンポラリファイル)に記憶
する作業を行い、最終的にテンポラリファイルの集合
(以下、テンポラリファイルリスト)を出力する部分ソ
ート部と、部分ソート部が出力したテンポラリファイル
リストを入力として、部分集合の全てをまとめてその全
データをインデックス値順に出力するマージソート部と
で構成し、マイコン等の小型計算機システムでも実行で
きるようにしている。
量のデータを限られた計算機資源で扱えるように、入力
データを主記憶装置上で扱える範囲のサイズの部分集合
に分割すると共に各部分集合のデータのインデックス値
を計算しその順にデータを並べ替えてデータとインデッ
クス値をファイル(以下、テンポラリファイル)に記憶
する作業を行い、最終的にテンポラリファイルの集合
(以下、テンポラリファイルリスト)を出力する部分ソ
ート部と、部分ソート部が出力したテンポラリファイル
リストを入力として、部分集合の全てをまとめてその全
データをインデックス値順に出力するマージソート部と
で構成し、マイコン等の小型計算機システムでも実行で
きるようにしている。
【0034】以下、部分ソート部、マージソート部、ロ
ード部の詳細を説明する。図3は、部分ソート部のフロ
ーチャートである。本例では、部分ソート部はスタート
すると、まずテンポラリ領域作成ステップで主記憶装置
上にテンポラリ領域を確保する。テンポラリ領域は、入
力されてきたデータそのものと、そのデータに対応する
インデックス値をセットで保持しておくための領域であ
る。
ード部の詳細を説明する。図3は、部分ソート部のフロ
ーチャートである。本例では、部分ソート部はスタート
すると、まずテンポラリ領域作成ステップで主記憶装置
上にテンポラリ領域を確保する。テンポラリ領域は、入
力されてきたデータそのものと、そのデータに対応する
インデックス値をセットで保持しておくための領域であ
る。
【0035】テンポラリ領域を確保後、部分ソート部は
入力データ取得ステップにおいて補助記憶装置上の入力
データファイルから、入力データを1件ずつ受け取り、
以下のように処理していく。
入力データ取得ステップにおいて補助記憶装置上の入力
データファイルから、入力データを1件ずつ受け取り、
以下のように処理していく。
【0036】ところで、テンポラリ領域は主記憶装置上
に確保されているため、その大きさには限界がある。そ
のため、巨大な入力データ集合に対してその全てのデー
タを格納することはできない。
に確保されているため、その大きさには限界がある。そ
のため、巨大な入力データ集合に対してその全てのデー
タを格納することはできない。
【0037】そこで、次の入力終了またはテンポラリ領
域満杯判別ステップにおいて、以下の処理を行ってい
る。もしテンポラリ領域に今入力したデータを格納する
スペースがある、すなわち満杯でない図で「NO」なら
ば、次の計算ステップに進み、入力データのインデック
ス値を計算する。そして、次の格納ステップで、テンポ
ラリ領域にデータと得られたインデックス値をテンポラ
リ領域に格納する。
域満杯判別ステップにおいて、以下の処理を行ってい
る。もしテンポラリ領域に今入力したデータを格納する
スペースがある、すなわち満杯でない図で「NO」なら
ば、次の計算ステップに進み、入力データのインデック
ス値を計算する。そして、次の格納ステップで、テンポ
ラリ領域にデータと得られたインデックス値をテンポラ
リ領域に格納する。
【0038】一方、もしテンポラリ領域が満杯で今入力
されたデータをテンポラリ領域に格納できない図で「Y
ES」の場合、先ず次のステップでテンポラリ領域に格
納されている全データをインデックス値順にソート具体
的には並べ替え、次のステップに進み、データとインデ
ックス値をテンポラリファイルに全て出力して保存す
る。
されたデータをテンポラリ領域に格納できない図で「Y
ES」の場合、先ず次のステップでテンポラリ領域に格
納されている全データをインデックス値順にソート具体
的には並べ替え、次のステップに進み、データとインデ
ックス値をテンポラリファイルに全て出力して保存す
る。
【0039】次の入力終了判別ステップでは、上述の場
合は入力終了でない図で「NO」に進む。従って、次の
ステップでテンポラリ領域をクリアしてから、前述の計
算ステップに進み、テンポラリ領域に入力できなかった
入力データに対して前述の通りそのインデックス値を計
算してテンポラリ領域にデータとインデックス値を格納
する。
合は入力終了でない図で「NO」に進む。従って、次の
ステップでテンポラリ領域をクリアしてから、前述の計
算ステップに進み、テンポラリ領域に入力できなかった
入力データに対して前述の通りそのインデックス値を計
算してテンポラリ領域にデータとインデックス値を格納
する。
【0040】また、前述の入力終了またはテンポラリ領
域満杯判別ステップにおいて、入力データがない、即ち
入力が終了した図で「YES」の時は、その時点で前述
の満杯の場合と同様に「YES」の方に進み、同じよう
にテンポラリ領域に格納されている全データをインデッ
クス値順に並べ替え、データとインデックス値をテンポ
ラリファイルにすべて保存する。
域満杯判別ステップにおいて、入力データがない、即ち
入力が終了した図で「YES」の時は、その時点で前述
の満杯の場合と同様に「YES」の方に進み、同じよう
にテンポラリ領域に格納されている全データをインデッ
クス値順に並べ替え、データとインデックス値をテンポ
ラリファイルにすべて保存する。
【0041】ところが、入力終了の場合は、次の入力終
了判別ステップにおいて「YES」となるので、「YE
S」の方に進み、終了処理として次のテンポラリ領域削
除ステップでテンポラリ領域自体を削除すると共に、そ
れまでに作成した全てのテンポラリファイルをテンポラ
リファイルリストとしてマージソート部への入力し、本
部分ソート部の処理を終わる。
了判別ステップにおいて「YES」となるので、「YE
S」の方に進み、終了処理として次のテンポラリ領域削
除ステップでテンポラリ領域自体を削除すると共に、そ
れまでに作成した全てのテンポラリファイルをテンポラ
リファイルリストとしてマージソート部への入力し、本
部分ソート部の処理を終わる。
【0042】部分ソート部からテンポラリファイルリス
トを与えられたマージソート部は、これら全てのテンポ
ラリファイルからその全てのデータについて、以下のよ
うに各データおよびそのインデックス値をインデックス
値の順にロード部に出力する。
トを与えられたマージソート部は、これら全てのテンポ
ラリファイルからその全てのデータについて、以下のよ
うに各データおよびそのインデックス値をインデックス
値の順にロード部に出力する。
【0043】ここで、テンポラリファイル内のデータ
は、部分ソート部により既にインデックス値の順に並べ
替えられた状態で保持されているから、マージソート部
は、与えられた全てのテンポラリファイルの先頭から一
件ずつ順番にデータを読み込んで、それらをインデック
ス値の順に出力するという簡単な処理で、全データをイ
ンデックス値順に出力することができる。
は、部分ソート部により既にインデックス値の順に並べ
替えられた状態で保持されているから、マージソート部
は、与えられた全てのテンポラリファイルの先頭から一
件ずつ順番にデータを読み込んで、それらをインデック
ス値の順に出力するという簡単な処理で、全データをイ
ンデックス値順に出力することができる。
【0044】ところで、一般的にディスク操作システム
には、一度に読み込むことの出来るファイルの上限が設
けられているため、大量データが入力で与えられるなど
してテンポラリファイルの数が増えた場合、全てのテン
ポラリファイルを同時に開いて読み込むことは出来な
い。
には、一度に読み込むことの出来るファイルの上限が設
けられているため、大量データが入力で与えられるなど
してテンポラリファイルの数が増えた場合、全てのテン
ポラリファイルを同時に開いて読み込むことは出来な
い。
【0045】そこで、本例では、以下の構成のテンポラ
リファイルを統合してファイル数を少なくするマージ手
段を備えている。このマージ手段は、テンポラリファイ
ルの内許される数のテンポラリファイルだけを開き、そ
れらのテンポラリファイルだけからデータおよびインデ
ックス値をインデックス値順に取り出して別のファイル
に出力してこれらのファイルを統合した統合したファイ
ルを作成し、読み出したテンポラリファイルを削除して
作成した統合ファイルをテンポラリファイルとしてテン
ポラリファイルリストに追加するという構成となってい
る。従ってこのマージ処理を繰り返すことにより、テン
ポラリファイルのファイル数を一度の処理できる所望の
ファイル数まで削減できる。
リファイルを統合してファイル数を少なくするマージ手
段を備えている。このマージ手段は、テンポラリファイ
ルの内許される数のテンポラリファイルだけを開き、そ
れらのテンポラリファイルだけからデータおよびインデ
ックス値をインデックス値順に取り出して別のファイル
に出力してこれらのファイルを統合した統合したファイ
ルを作成し、読み出したテンポラリファイルを削除して
作成した統合ファイルをテンポラリファイルとしてテン
ポラリファイルリストに追加するという構成となってい
る。従ってこのマージ処理を繰り返すことにより、テン
ポラリファイルのファイル数を一度の処理できる所望の
ファイル数まで削減できる。
【0046】なお、この処理過程においては、開いたフ
ァイル1つに対して、まだ読み込まれていないデータ1
件のみが処理される領域が主記憶上にあればよく、その
領域の大きさは、テンポラリ領域に比して圧倒的に小さ
い。したがって、マージソート部では、入力データの
量、すなわちテンポラリファイルの大きさは問題にはな
らない。
ァイル1つに対して、まだ読み込まれていないデータ1
件のみが処理される領域が主記憶上にあればよく、その
領域の大きさは、テンポラリ領域に比して圧倒的に小さ
い。したがって、マージソート部では、入力データの
量、すなわちテンポラリファイルの大きさは問題にはな
らない。
【0047】次に以上のマージ手段の処理を図4〜図7
により具体的に説明する。本説明では、テンポラリファ
イル数7つのテンポラリファイルリストが、マージソー
ト部に与えられ、また、一度に読み込めるファイル数を
3とする。
により具体的に説明する。本説明では、テンポラリファ
イル数7つのテンポラリファイルリストが、マージソー
ト部に与えられ、また、一度に読み込めるファイル数を
3とする。
【0048】この例のマージ処理前のテンポラリファイ
ルの初期状態を図4に示す。マージ手段は、まず図示の
ように統合ファイルとなる空のテンポラリファイル2−
1を設定し、テンポラリファイルリストの中から、テン
ポラリファイル1・2・3の3つのファイルを開き、こ
れらのファイルからインデックス値の順番にデータを取
得し、テンポラリファイル2−1にデータとインデック
ス値を書き出す。テンポラリファイル1・2・3全ての
ファイルから全てのデータを読み込んだら、開いていた
テンポラリファイル1・2・3を閉じて削除し、代わり
にこれらを統合したテンポラリファイル2−1をテンポ
ラリファイルリストに加える。その第1回マージ後のテ
ンポラリファイルの状態を図5に示す。図示のように、
まだ、処理すべきテンポラリファイルの数は5個であ
り、同時処理ができない。
ルの初期状態を図4に示す。マージ手段は、まず図示の
ように統合ファイルとなる空のテンポラリファイル2−
1を設定し、テンポラリファイルリストの中から、テン
ポラリファイル1・2・3の3つのファイルを開き、こ
れらのファイルからインデックス値の順番にデータを取
得し、テンポラリファイル2−1にデータとインデック
ス値を書き出す。テンポラリファイル1・2・3全ての
ファイルから全てのデータを読み込んだら、開いていた
テンポラリファイル1・2・3を閉じて削除し、代わり
にこれらを統合したテンポラリファイル2−1をテンポ
ラリファイルリストに加える。その第1回マージ後のテ
ンポラリファイルの状態を図5に示す。図示のように、
まだ、処理すべきテンポラリファイルの数は5個であ
り、同時処理ができない。
【0049】そこで、マージ手段は、次にテンポラリフ
ァイル4・5・6の3つのファイルを開き、前述と同様
にしてこれらを統合したテンポラリファイル2−2を作
成する。テンポラリファイル4・5・6内の全てのデー
タをテンポラリファイル2−2に書き出せたら、開いて
いたテンポラリファイル4・5・6を閉じて削除し、代
わりにこれらの統合ファイルのテンポラリファイル2−
2をテンポラリファイルリストに加える。この第2回の
マージ処理後のテンポラリファイルの状態を図6に示
す。図より、問題のテンポラリファイルリスト内のファ
イル数を、一度に読み込めるファイル数にまで減らすこ
とができた事がわかる。
ァイル4・5・6の3つのファイルを開き、前述と同様
にしてこれらを統合したテンポラリファイル2−2を作
成する。テンポラリファイル4・5・6内の全てのデー
タをテンポラリファイル2−2に書き出せたら、開いて
いたテンポラリファイル4・5・6を閉じて削除し、代
わりにこれらの統合ファイルのテンポラリファイル2−
2をテンポラリファイルリストに加える。この第2回の
マージ処理後のテンポラリファイルの状態を図6に示
す。図より、問題のテンポラリファイルリスト内のファ
イル数を、一度に読み込めるファイル数にまで減らすこ
とができた事がわかる。
【0050】マージ手段によりテンポラリファイルリス
ト内のファイル数を、一度に読み込める数にまで減らせ
れば、マージソート部はそれらのファイルを全て開い
て、インデックス値の順に全てのデータを順々に出力す
ることができる。そこで、インデックス値の順番にデー
タを取ってきて、インデックス値とともにそれをロード
部に入力として順々に引き渡す。
ト内のファイル数を、一度に読み込める数にまで減らせ
れば、マージソート部はそれらのファイルを全て開い
て、インデックス値の順に全てのデータを順々に出力す
ることができる。そこで、インデックス値の順番にデー
タを取ってきて、インデックス値とともにそれをロード
部に入力として順々に引き渡す。
【0051】ロード部は、マージソート部からの入力デ
ータをRDBに以下のようにしてロードする。図7は、
このロード部の動作を表すフローチャートである。本例
では、図示のように、ロード部はメモリページ領域(M
PA)作成ステップで先ず主記憶装置上に、RDBの1
つのページに保持される全データを格納するのに十分な
大きさのメモリページ領域を確保する。メモリページ領
域には、ページ値も保持される。
ータをRDBに以下のようにしてロードする。図7は、
このロード部の動作を表すフローチャートである。本例
では、図示のように、ロード部はメモリページ領域(M
PA)作成ステップで先ず主記憶装置上に、RDBの1
つのページに保持される全データを格納するのに十分な
大きさのメモリページ領域を確保する。メモリページ領
域には、ページ値も保持される。
【0052】次いで、最小ページ取得ステップで、入力
データを受け入れる準備として、予め指定された指定ペ
ージ本例では一番小さいページ値すなわち最小インデッ
クス値の範囲を持っているページの内容をRDBから取
得する。なお、この指定ページは、最初の入力データが
格納されるページ本例では具体的にはそのデータのイン
デックス値を含むページ値最小のページを取得するよう
にしてもよい。こうすると最初の入力データのインデッ
クス値が大きい場合には処理時間が短縮できる。
データを受け入れる準備として、予め指定された指定ペ
ージ本例では一番小さいページ値すなわち最小インデッ
クス値の範囲を持っているページの内容をRDBから取
得する。なお、この指定ページは、最初の入力データが
格納されるページ本例では具体的にはそのデータのイン
デックス値を含むページ値最小のページを取得するよう
にしてもよい。こうすると最初の入力データのインデッ
クス値が大きい場合には処理時間が短縮できる。
【0053】そして、判定ステップに進み、イニシャル
・インクリメンタル具体的には今回のデータ入力が既設
のページへのデータの追加か否かの判定を行う。すなわ
ち、取得したページを調べ、それがページ値が無限大の
無限値ページの場合は、イニシャルすなわち初めてのデ
ータ入力と判定してそのイニシャルフラグをセットす
る。一方、ページに既に何らかのデータが格納されてい
る場合、インクリメンタルすなわちデータの追加と判定
し、イニシャルフラグをリセットする。
・インクリメンタル具体的には今回のデータ入力が既設
のページへのデータの追加か否かの判定を行う。すなわ
ち、取得したページを調べ、それがページ値が無限大の
無限値ページの場合は、イニシャルすなわち初めてのデ
ータ入力と判定してそのイニシャルフラグをセットす
る。一方、ページに既に何らかのデータが格納されてい
る場合、インクリメンタルすなわちデータの追加と判定
し、イニシャルフラグをリセットする。
【0054】イニシャル・インクリメンタルの判定を行
った後、ページ内容取得ステップに進み、先ほど取得し
たページ内容をメモリページ領域に展開する。
った後、ページ内容取得ステップに進み、先ほど取得し
たページ内容をメモリページ領域に展開する。
【0055】この後入力データ取得ステップに進み、マ
ージソート部からインデックス値順に1件1件の入力デ
ータを受け取り、以下のように処理していく。
ージソート部からインデックス値順に1件1件の入力デ
ータを受け取り、以下のように処理していく。
【0056】先ずイニシャルロードの判定ステップにお
いて、前述のイニシャルかインクリメントかをイニシャ
ルフラグで判定する。そして、イニシャルの「YES」
の場合は、入力データが既にインデックス値順に並んで
いるため、その基本処理は入力データを順々にメモリペ
ージ領域に展開されたページ本例では無限値ページに格
納していけばよい。
いて、前述のイニシャルかインクリメントかをイニシャ
ルフラグで判定する。そして、イニシャルの「YES」
の場合は、入力データが既にインデックス値順に並んで
いるため、その基本処理は入力データを順々にメモリペ
ージ領域に展開されたページ本例では無限値ページに格
納していけばよい。
【0057】ところが、ページに格納できるデータ数は
予め管理に適した所定収納容量に定められており、一般
には対象とする全ての入力データを一つのページに収め
ることはできない場合が生ずる。そこで、本例ではこれ
に対処するため次の必要ならMPA内容をページに格納
のステップにおいて、以下の処理を行うようにしてい
る。すなわち、当該入力データを入力するとメモリペー
ジ領域に格納したデータ量がそのページの該所定収納容
量に対して予め定めた充足率を越える場合には、メモリ
ページ領域のその際の全データを別のページとして分割
しこれを収納する新ページをRDBに作成して該別のペ
ージを格納してページ分割すると共に、メモリページ領
域に展開された無限値ページから格納した全データを削
除して、当該入力データを入力するようにしている。
予め管理に適した所定収納容量に定められており、一般
には対象とする全ての入力データを一つのページに収め
ることはできない場合が生ずる。そこで、本例ではこれ
に対処するため次の必要ならMPA内容をページに格納
のステップにおいて、以下の処理を行うようにしてい
る。すなわち、当該入力データを入力するとメモリペー
ジ領域に格納したデータ量がそのページの該所定収納容
量に対して予め定めた充足率を越える場合には、メモリ
ページ領域のその際の全データを別のページとして分割
しこれを収納する新ページをRDBに作成して該別のペ
ージを格納してページ分割すると共に、メモリページ領
域に展開された無限値ページから格納した全データを削
除して、当該入力データを入力するようにしている。
【0058】本実施例では、このページ分割処理は以下
のようにしている。当該入力データを加えることで、メ
モリページ領域に格納されるデータ数が当該ページの所
定収納容量の75%(設定充足率)を越えるならば、今
メモリページ領域に格納されているデータを、新ページ
としてRDBに格納するようにしている。また、この
際、この新ページのページ値として、このページに含ま
れるデータの中でインデックス値が最大のデータのイン
デックス値と入力待機中の当該入力データのインデック
ス値との平均値を用いている。
のようにしている。当該入力データを加えることで、メ
モリページ領域に格納されるデータ数が当該ページの所
定収納容量の75%(設定充足率)を越えるならば、今
メモリページ領域に格納されているデータを、新ページ
としてRDBに格納するようにしている。また、この
際、この新ページのページ値として、このページに含ま
れるデータの中でインデックス値が最大のデータのイン
デックス値と入力待機中の当該入力データのインデック
ス値との平均値を用いている。
【0059】このページ分割処理の具体例を図8に示
す。図8の例では、説明を分かり易くするためにページ
の収納容量すなわち格納できるデータ量を5個とする。
なお、当該ページはイニシャルのためRDBのページ値
が如何なるインデックス値のデータも入力できるように
無限大に設定された無限値ページが展開されている。
す。図8の例では、説明を分かり易くするためにページ
の収納容量すなわち格納できるデータ量を5個とする。
なお、当該ページはイニシャルのためRDBのページ値
が如何なるインデックス値のデータも入力できるように
無限大に設定された無限値ページが展開されている。
【0060】図示のようにインデックス値が12, 1
3, 15である3つのデータが既にメモリページ領域
に格納されているとして、この状態で次に入力データと
してインデックス値が17のデータを入力する場合を説
明する。この入力データを格納すると、充足率が80%
となってその設定充足率の75%を越えるため、既に格
納されている3つのデータを、RDBに新しくページを
作成してそこに格納する。この際、作成された新ページ
のページ値は、15と17の平均値即ち16となる。そ
して、RDBに新ページを格納後、メモリページ領域に
展開された無限値ページから3つのデータを削除する共
に無限値ページに図示のように当該入力データ具体的に
は図でインデックス値17のデータを格納して、このペ
ージ分割処理を終了する。
3, 15である3つのデータが既にメモリページ領域
に格納されているとして、この状態で次に入力データと
してインデックス値が17のデータを入力する場合を説
明する。この入力データを格納すると、充足率が80%
となってその設定充足率の75%を越えるため、既に格
納されている3つのデータを、RDBに新しくページを
作成してそこに格納する。この際、作成された新ページ
のページ値は、15と17の平均値即ち16となる。そ
して、RDBに新ページを格納後、メモリページ領域に
展開された無限値ページから3つのデータを削除する共
に無限値ページに図示のように当該入力データ具体的に
は図でインデックス値17のデータを格納して、このペ
ージ分割処理を終了する。
【0061】ここで、メモリページ領域のページ分割の
際の設定充足率を75%にした理由について説明する。
一つのページにはできるだけ多数のデータが入っている
ことが検索効率上は望ましいが、全てのページに100
%データを入れると、次にデータを追加する際に必ず上
述のページ分割が発生する。ページ分割はそれ自体が相
応の時間を必要とするため、ページ分割の回数は少なく
するのが望ましい。そこで本実施例では75%を設定充
足率としてページ格納の判断基準としているが、この設
定充足率は個々のケースで最適値を求めるべきである
が、通常は50〜90%の範囲で選定する。
際の設定充足率を75%にした理由について説明する。
一つのページにはできるだけ多数のデータが入っている
ことが検索効率上は望ましいが、全てのページに100
%データを入れると、次にデータを追加する際に必ず上
述のページ分割が発生する。ページ分割はそれ自体が相
応の時間を必要とするため、ページ分割の回数は少なく
するのが望ましい。そこで本実施例では75%を設定充
足率としてページ格納の判断基準としているが、この設
定充足率は個々のケースで最適値を求めるべきである
が、通常は50〜90%の範囲で選定する。
【0062】そして、ページ分割処理終了後又はその必
要がない場合は直ちに次の入力終了の判定ステップに進
み、対象の全ての入力データの入力が終了したか否かを
判定する。そして、入力すべきデータがまだあり、入力
終了でない場合は、図の「NO」の方に進み、入力デー
タ取得ステップに戻り、次の入力データを取得する。一
方、入力すべきデータが無くなった入力終了の場合は、
図の「YES」の方に進み、次のMPA削除ステップに
おいて、メモリページ領域の内容をこれに展開されてい
るRDBの当該ページに格納した後、メモリページ領域
を主記憶装置から削除して、ロード処理を終了する。
要がない場合は直ちに次の入力終了の判定ステップに進
み、対象の全ての入力データの入力が終了したか否かを
判定する。そして、入力すべきデータがまだあり、入力
終了でない場合は、図の「NO」の方に進み、入力デー
タ取得ステップに戻り、次の入力データを取得する。一
方、入力すべきデータが無くなった入力終了の場合は、
図の「YES」の方に進み、次のMPA削除ステップに
おいて、メモリページ領域の内容をこれに展開されてい
るRDBの当該ページに格納した後、メモリページ領域
を主記憶装置から削除して、ロード処理を終了する。
【0063】一方、イニシャルロードの判定ステップに
おいて、データの追加のインクリメンタルすなわち図の
「NO」の場合は、まず図のMPAの範囲外の判定ステ
ップに進み、現在の入力対象の当該入力データがメモリ
ページ領域に展開されている当該ページに収納できる範
囲内は否かをそのインデックス値で判定する。
おいて、データの追加のインクリメンタルすなわち図の
「NO」の場合は、まず図のMPAの範囲外の判定ステ
ップに進み、現在の入力対象の当該入力データがメモリ
ページ領域に展開されている当該ページに収納できる範
囲内は否かをそのインデックス値で判定する。
【0064】そして、メモリページ領域のページ値が当
該入力データのインデックス値以下の場合は、MPAの
範囲内であり、図の「NO」の方に進み、以下のように
処理する.この場合の基本的処理は、当該入力データを
そのインデックス値に基づいてメモリページ領域に格納
済みのデータの間にインデックス値順になるように格納
することである。
該入力データのインデックス値以下の場合は、MPAの
範囲内であり、図の「NO」の方に進み、以下のように
処理する.この場合の基本的処理は、当該入力データを
そのインデックス値に基づいてメモリページ領域に格納
済みのデータの間にインデックス値順になるように格納
することである。
【0065】ところが、この格納により前述のイニシャ
ルロードの場合と同様にページ分割が必要となる場合が
あり、本例では図のMPA内容を分割しページに格納の
ステップを設け、以下のように処理している。すなわ
ち、当該入力データを入力するとメモリページ領域に格
納されたデータ数が予め設定した設定収納容量を越えて
メモリページ領域に格納できない場合は、まずメモリペ
ージ領域のデータに当該入力データを加えてその全デー
タを二分して展開された既設ページと新ページにページ
分割し、当該入力データを含まないページをRDBに格
納する共に該メモリページ領域に残りの当該入力データ
を含むページを展開して、次の入力データに備えるペー
ジ分割処理を行う。
ルロードの場合と同様にページ分割が必要となる場合が
あり、本例では図のMPA内容を分割しページに格納の
ステップを設け、以下のように処理している。すなわ
ち、当該入力データを入力するとメモリページ領域に格
納されたデータ数が予め設定した設定収納容量を越えて
メモリページ領域に格納できない場合は、まずメモリペ
ージ領域のデータに当該入力データを加えてその全デー
タを二分して展開された既設ページと新ページにページ
分割し、当該入力データを含まないページをRDBに格
納する共に該メモリページ領域に残りの当該入力データ
を含むページを展開して、次の入力データに備えるペー
ジ分割処理を行う。
【0066】この際、本例のページ分割処理では該設定
収納数をメモリページ領域に展開されているページの収
納容量に対する充足率で150%に設定し、当該入力デ
ータを格納することでメモリページ領域に格納されてい
るデータ数が当該ページの収納容量の150%を越える
場合に、ページ分割を行うようにしている。そして、こ
のページ分割は、メモリページ領域内の全データに当該
入力データを加えて、インデックス値の小さい集合と大
きい集合にほぼ二等分し、前者のデータのインデックス
値の最大値と、後者のデータのインデックス値の最小値
の平均を、前者のデータを格納するページのページ値と
して新たな新ページとする共に、メモリページ領域から
前者のデータを削除する。これにより、前者のデータか
らなる新ページと後者のデータからなる当該ページとの
2ページに分割される。そして、これらのページの内当
該入力データを含まない方のページをRDBに格納し、
残ったページの内容をメモリページ領域に展開する。な
お、展開済みの場合はそのままでよい。
収納数をメモリページ領域に展開されているページの収
納容量に対する充足率で150%に設定し、当該入力デ
ータを格納することでメモリページ領域に格納されてい
るデータ数が当該ページの収納容量の150%を越える
場合に、ページ分割を行うようにしている。そして、こ
のページ分割は、メモリページ領域内の全データに当該
入力データを加えて、インデックス値の小さい集合と大
きい集合にほぼ二等分し、前者のデータのインデックス
値の最大値と、後者のデータのインデックス値の最小値
の平均を、前者のデータを格納するページのページ値と
して新たな新ページとする共に、メモリページ領域から
前者のデータを削除する。これにより、前者のデータか
らなる新ページと後者のデータからなる当該ページとの
2ページに分割される。そして、これらのページの内当
該入力データを含まない方のページをRDBに格納し、
残ったページの内容をメモリページ領域に展開する。な
お、展開済みの場合はそのままでよい。
【0067】このページ分割処理の具体例を、図9、図
10により説明する。なお、図8同様、ページに格納で
きるデータ量を5とする。また、図示のようにメモリペ
ージ領域に展開されているページのページ値は27と
し、メモリページ領域にはインデックス値が12, 1
3, 15, 17, 19, 22, 23である7
個のデータ(充足率140%)が既に格納されていると
する。
10により説明する。なお、図8同様、ページに格納で
きるデータ量を5とする。また、図示のようにメモリペ
ージ領域に展開されているページのページ値は27と
し、メモリページ領域にはインデックス値が12, 1
3, 15, 17, 19, 22, 23である7
個のデータ(充足率140%)が既に格納されていると
する。
【0068】そして、図9ではインデックス値が21、
図10では14である入力データを入力する場合につい
て説明する。いずれのケースも、入力データをメモリペ
ージ領域に格納すると充足率が160%となって前述の
設定充足率150%を越えるため、メモリページ領域の
データの分割が必要で、以下のように分割される。図9
では入力データを加えるとデータ全体は12,13,1
5,17,19,21,22,23となり、これをイン
デックス値で二等分すると図示のように12,13,1
5,17のインデックス値のデータからなる新ページと
19,21,22,23のインデックス値のデータから
なる展開された当該ページに分けられ、同様に図10で
は12,13,14,15のインデックス値のデータか
らなる新ページと17,19,22,23のインデック
ス値のデータからなる展開された当該ページに二等分さ
れる。そして、図9では前者の入力データが含まれない
新ページを、図10では後者の当該ページをRDBに格
納し、メモリページ領域には図9では当該ページがその
まま、図10では新ページを新たに展開する。なお、こ
の際各新ページのページ値は、図9では17と19の平
均値18となり、図10では15と17の平均値16と
なる。
図10では14である入力データを入力する場合につい
て説明する。いずれのケースも、入力データをメモリペ
ージ領域に格納すると充足率が160%となって前述の
設定充足率150%を越えるため、メモリページ領域の
データの分割が必要で、以下のように分割される。図9
では入力データを加えるとデータ全体は12,13,1
5,17,19,21,22,23となり、これをイン
デックス値で二等分すると図示のように12,13,1
5,17のインデックス値のデータからなる新ページと
19,21,22,23のインデックス値のデータから
なる展開された当該ページに分けられ、同様に図10で
は12,13,14,15のインデックス値のデータか
らなる新ページと17,19,22,23のインデック
ス値のデータからなる展開された当該ページに二等分さ
れる。そして、図9では前者の入力データが含まれない
新ページを、図10では後者の当該ページをRDBに格
納し、メモリページ領域には図9では当該ページがその
まま、図10では新ページを新たに展開する。なお、こ
の際各新ページのページ値は、図9では17と19の平
均値18となり、図10では15と17の平均値16と
なる。
【0069】ここで、メモリページ領域の分割の際の判
断基準を充足率で150%にした理由について説明す
る。ページにはできるだけ多数のデータが入っているこ
とが望ましく、またページ分割回数はできるだけ減らす
ことが望ましい。もし100%未満の充足率でメモリペ
ージ領域を分割させると、分割後のページの充足率が下
がるため、充足率は100%以上が良い。また、充足率
200%以上で分割を発生させると、二分割ではページ
にデータを格納できなくなるため、分割処理が複雑にな
って処理時間の低下を招くので、望ましくはこの充足率
は実験等により最適値を決めるべきであるが、通常は分
割後の各ページの充足率が50〜90%になるように選
択する。本実施例では、メモリページ領域の節約および
イニシャルロードの時とページ平均的な充足率を合わせ
るために、150%の充足率を判断基準とした。
断基準を充足率で150%にした理由について説明す
る。ページにはできるだけ多数のデータが入っているこ
とが望ましく、またページ分割回数はできるだけ減らす
ことが望ましい。もし100%未満の充足率でメモリペ
ージ領域を分割させると、分割後のページの充足率が下
がるため、充足率は100%以上が良い。また、充足率
200%以上で分割を発生させると、二分割ではページ
にデータを格納できなくなるため、分割処理が複雑にな
って処理時間の低下を招くので、望ましくはこの充足率
は実験等により最適値を決めるべきであるが、通常は分
割後の各ページの充足率が50〜90%になるように選
択する。本実施例では、メモリページ領域の節約および
イニシャルロードの時とページ平均的な充足率を合わせ
るために、150%の充足率を判断基準とした。
【0070】本ページ分割処理の終了後またはこれが必
要ない場合は直ちにイニシャルロードで前述した入力終
了の判定ステップに進む。
要ない場合は直ちにイニシャルロードで前述した入力終
了の判定ステップに進む。
【0071】一方、メモリページ領域のページ値が当該
入力データのインデックス値よりも大きい場合、もしく
はもう入力データがない場合は、その入力データをもう
メモリページ領域に格納することはできないため、MP
A範囲外と判断して図の「YES」に進む。
入力データのインデックス値よりも大きい場合、もしく
はもう入力データがない場合は、その入力データをもう
メモリページ領域に格納することはできないため、MP
A範囲外と判断して図の「YES」に進む。
【0072】ところで、この範囲外の場合は、メモリペ
ージ領域を当該入力データを格納できるページに切り替
える必要があり、以下のページ切替処理を行うようにな
っている。すなわち、基本的な処理としては、メモリペ
ージ領域の現内容をRDBの当該ページに格納し、当該
入力データを入力できるページをRDBから取得してメ
モリページ領域に展開して、当該入力データを入力する
処理となる。
ージ領域を当該入力データを格納できるページに切り替
える必要があり、以下のページ切替処理を行うようにな
っている。すなわち、基本的な処理としては、メモリペ
ージ領域の現内容をRDBの当該ページに格納し、当該
入力データを入力できるページをRDBから取得してメ
モリページ領域に展開して、当該入力データを入力する
処理となる。
【0073】ところが、前述の通り、メモリページ領域
に格納できるデータ数はこれに展開した当該ページの収
納容量に対して充足率で100%以上本例では150%
に設定されおり、RDBの当該ページに格納できない場
合がある。そこで、本例では次のMPA分割ステップ
で、必要に応じて前述と同様の以下のページ分割処理を
行うようにしている。すなわち、メモリページ領域のデ
ータ数が当該ページの収納容量を越えていた場合には、
メモリページ領域の全データを二等分して、2つのペー
ジにページ分割する。
に格納できるデータ数はこれに展開した当該ページの収
納容量に対して充足率で100%以上本例では150%
に設定されおり、RDBの当該ページに格納できない場
合がある。そこで、本例では次のMPA分割ステップ
で、必要に応じて前述と同様の以下のページ分割処理を
行うようにしている。すなわち、メモリページ領域のデ
ータ数が当該ページの収納容量を越えていた場合には、
メモリページ領域の全データを二等分して、2つのペー
ジにページ分割する。
【0074】この分割処理は、本例では前述のページ分
割と同様にメモリページ領域内のデータをインデックス
値の大きさの小さい集合と大きい集合に二等分して、前
者のデータを格納する新ページは前者のデータのインデ
ックス値の最大値と後者のデータのインデックス値の最
小値の平均値をページ値とし、後者のデータを格納する
ページはメモリページ領域の当該ページのページ値をそ
のまま採用する。
割と同様にメモリページ領域内のデータをインデックス
値の大きさの小さい集合と大きい集合に二等分して、前
者のデータを格納する新ページは前者のデータのインデ
ックス値の最大値と後者のデータのインデックス値の最
小値の平均値をページ値とし、後者のデータを格納する
ページはメモリページ領域の当該ページのページ値をそ
のまま採用する。
【0075】このページ分割処理の終了後、またこの必
要のない場合直ちに、図のMPA内容をページに格納す
るステップに進む。このステップでは、メモリページ領
域の内容を、もしくは一つ前の分割ステップでメモリペ
ージ領域が二等分されていたならそれら2ページの内容
を、RDBのそれぞれのページに格納すると共に、当該
入力データを格納するRDBのページを取得してメモリ
ページ領域に展開して当該入力データをメモリページ領
域に格納する。なお、入力終了の場合は、このページ取
得以降の処理は行わない。
要のない場合直ちに、図のMPA内容をページに格納す
るステップに進む。このステップでは、メモリページ領
域の内容を、もしくは一つ前の分割ステップでメモリペ
ージ領域が二等分されていたならそれら2ページの内容
を、RDBのそれぞれのページに格納すると共に、当該
入力データを格納するRDBのページを取得してメモリ
ページ領域に展開して当該入力データをメモリページ領
域に格納する。なお、入力終了の場合は、このページ取
得以降の処理は行わない。
【0076】そして、いずれのケースでも次にイニシャ
ルロードで説明した入力終了の判定ステップに進み、以
下同じ処理を行う。すなわち、入力終了でない場合は、
図の「NO」の方に進み、入力データ取得ステップに戻
って次の入力データを読み込む。入力終了の場合は、図
の「YES」の方向に進み、MPA削除ステップで、メ
モリページ領域の内容をRDBの該当ページに格納後、
メモリページ領域を主記憶装置から削除して本処理を終
了する。
ルロードで説明した入力終了の判定ステップに進み、以
下同じ処理を行う。すなわち、入力終了でない場合は、
図の「NO」の方に進み、入力データ取得ステップに戻
って次の入力データを読み込む。入力終了の場合は、図
の「YES」の方向に進み、MPA削除ステップで、メ
モリページ領域の内容をRDBの該当ページに格納後、
メモリページ領域を主記憶装置から削除して本処理を終
了する。
【0077】なお、インデックス構築については、フロ
ーチャートは省略するが、ページを格納した段階で、そ
の参照およびページ値を組にしたデータを、ページ値の
順序に基づいて適切なリーフノードに挿入するようにし
ている。この際、このデータを挿入することでノード容
量をオーバーする場合は、前述したページ分割処理と基
本的に同様にして、このリーフノードに含まれるデータ
を、ページ値の小さいものの集合と大きいものの集合で
二等分してそれぞれに対応するリーフノードを作成し、
前者のページ値の最大値と後者のページ値の最小値の平
均を前者が含まれるリーフノードのノード値に決定し、
新しく出来たリーフノードの参照とノード値を組にした
データを追加していく作業を、より上位のノードに対し
て繰り返すことでインデックス構築を行うようにしてい
る。
ーチャートは省略するが、ページを格納した段階で、そ
の参照およびページ値を組にしたデータを、ページ値の
順序に基づいて適切なリーフノードに挿入するようにし
ている。この際、このデータを挿入することでノード容
量をオーバーする場合は、前述したページ分割処理と基
本的に同様にして、このリーフノードに含まれるデータ
を、ページ値の小さいものの集合と大きいものの集合で
二等分してそれぞれに対応するリーフノードを作成し、
前者のページ値の最大値と後者のページ値の最小値の平
均を前者が含まれるリーフノードのノード値に決定し、
新しく出来たリーフノードの参照とノード値を組にした
データを追加していく作業を、より上位のノードに対し
て繰り返すことでインデックス構築を行うようにしてい
る。
【0078】以上,本発明をRDBに適用した実施例に
基づいて説明したが、本発明はかかる実施例に限定され
ないことは、その趣旨から明らかである。
基づいて説明したが、本発明はかかる実施例に限定され
ないことは、その趣旨から明らかである。
【0079】
【発明の効果】本発明は、ソート部で入力すべきテータ
集合を部分集合に分けてインデックス順に並び換えたフ
ァイルを作成してインデックス順に連続してデータ出力
できるようにし、ロード部でこのデータをデータベース
に入力するようにしており、従ってデータ入力に際しデ
ータの複数の項目から求める複雑なインデックス値処理
が必要なデータベースに対して大量のデータをインデッ
クス順に連続的に並べ替えることができ、データ入力の
高速化が達成される。
集合を部分集合に分けてインデックス順に並び換えたフ
ァイルを作成してインデックス順に連続してデータ出力
できるようにし、ロード部でこのデータをデータベース
に入力するようにしており、従ってデータ入力に際しデ
ータの複数の項目から求める複雑なインデックス値処理
が必要なデータベースに対して大量のデータをインデッ
クス順に連続的に並べ替えることができ、データ入力の
高速化が達成される。
【0080】さらに、本発明では、ロード部への入力デ
ータはインデックス値の順に与えられるので、一度メモ
リページ領域に確保したデータベースから取得したペー
ジに、このページに収納できる入力データの全てを連続
的に主記憶装置のみで入力し、データベースにはページ
毎に一括して入力できる。従って、処理に時間を要する
ページの取得、ページへの格納処理が最小限具体的には
一度でデータ入力できるので、高速のデータ入力が達成
される。
ータはインデックス値の順に与えられるので、一度メモ
リページ領域に確保したデータベースから取得したペー
ジに、このページに収納できる入力データの全てを連続
的に主記憶装置のみで入力し、データベースにはページ
毎に一括して入力できる。従って、処理に時間を要する
ページの取得、ページへの格納処理が最小限具体的には
一度でデータ入力できるので、高速のデータ入力が達成
される。
【0081】このように、本発明はデータベースの維持
管理、立ち上げ等に必要なデータ入力を高速化するもの
で、インデックス値が高度化してその処理が複雑化する
傾向にある特に大容量のデータベースの運用の効率向上
に大きな寄与を為すものである。
管理、立ち上げ等に必要なデータ入力を高速化するもの
で、インデックス値が高度化してその処理が複雑化する
傾向にある特に大容量のデータベースの運用の効率向上
に大きな寄与を為すものである。
【図1】図1は、実施例におけるシステム構成の説明図
である。
である。
【図2】図2は、実施例における処理の流れを表す説明
図である。
図である。
【図3】図3は、部分ソート部での処理の流れを表すフ
ローチャートである。
ローチャートである。
【図4】図4は、マージ手段のテンポラリファイルの初
期状態の説明図である。
期状態の説明図である。
【図5】図5は、マージ手段の第1回マージ後のテンポ
ラリファイルの状態の説明図である。
ラリファイルの状態の説明図である。
【図6】図6は、マージ手段の第2回マージ後のテンポ
ラリファイルマージの状態の説明図である。
ラリファイルマージの状態の説明図である。
【図7】図7は、ロード部での処理の流れを表すフロー
チャートである。
チャートである。
【図8】図8は、ロード部のイニシャルロードでのペー
ジ分割の具体例の説明図である。
ジ分割の具体例の説明図である。
【図9】図9は、ロード部のインクリメンタルロードで
のページ分割の具体例の説明図である。
のページ分割の具体例の説明図である。
【図10】図10は、ロード部のインクリメンタルロー
ドでのページ分割の他の具体例の説明図である。
ドでのページ分割の他の具体例の説明図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マークル・フォルカー ドイツ連邦共和国 ミュンヘン ディー− 81667 オルレアンストラーセ 34 ババ リアン・リサーチ・センター・フォー・ナ レッジ・ベースド・システムズ内 (72)発明者 フェンク・ロバート ドイツ連邦共和国 ミュンヘン ディー− 81667 オルレアンストラーセ 34 ババ リアン・リサーチ・センター・フォー・ナ レッジ・ベースド・システムズ内 Fターム(参考) 5B082 CA18 GA03
Claims (11)
- 【請求項1】 データが複数の項目からなり、これらデ
ータを順序付けるインデックスが所定の方式により該項
目のうちの少なくとも二つの項目から導き出されるイン
デックス値からなり、その範囲により管理単位のページ
に区分して管理するデータベースへのデータ集合を入力
するデータベースへのデータ入力システムにおいて、入
力データ集合を計算機の利用可能な主記憶装置で同時に
処理できるデータ数以下の部分集合に分割して、該部分
集合について順次その各データのインデックス値を前記
所定の方式により求めると共に各データをインデックス
値順に並べ替えてそのインデックス値を付加して補助記
憶装置に設けたテンポラリファイルに一時記憶する部分
ソート部と、得られた全ての部分集合のテンポラリファ
イルから、各インデックス値付きデータを読み出してイ
ンデックス値順に出力するマージソート部と、マージソ
ート部からのデータをデータベースにページ毎に入力す
るロード部とからなることを特徴とするデータベースの
データ入力システム。 - 【請求項2】 マージソート部が、テンポラリファイル
のファイル数が補助記憶装置から一度に読み込むことが
できるファイル処理数を越えた場合に、該ファイル処理
数のテンポラリファイルを読み込み、このファイル処理
数のテンポラリファイルを一つの2次テンポラリファイ
ルにマージするマージ処理により、テンポラリファイル
のファイル数を該ファイル処理数以下にするマージ手段
を備えた請求項1記載のデータベースのデータ入力シス
テム。 - 【請求項3】 部分ソート部は、主記憶装置に所定数の
データを記憶できるテンポラリ記憶領域を設定し、入力
データ集合から順次データを読み出してそのインデック
ス値を求めて該テンポラリ記憶領域にインデックス値を
付加して記憶し、該テンポラリ記憶領域が満たされる
と、記憶されたインデックス値付データをインデックス
順に並べ替えてテンポラリファイルに出力することによ
り、入力データ集合を所定数のデータからなるテンポラ
リファイルに連続的に分割する請求項1又は2記載のデ
ータベースのデータ入力システム。 - 【請求項4】 ロード部は、主記憶装置にデータベース
の管理単位の1ページ分のデータが展開できるメモリペ
ージ領域を設定すると共に予め設定された指定ページを
読み出してメモリページ領域に展開し、マージソート部
からの入力データをメモリページ領域に展開された展開
ページに順次挿入し、そのインデックス値が展開ページ
のインデックス値の範囲を越えた入力データとなった場
合に、データベースの指定ページを展開ページの内容に
更新すると共に次のページをメモリページ領域に読み出
して展開して新しく展開された新展開ページに入力デー
タを入力することにより、入力データをインデックス値
順に対応するデータベースの各ページにページ毎に一括
して入力する請求項1〜3のいずれかに記載のデータベ
ースのデータ入力システム。 - 【請求項5】 指定ページがページを区分するインデッ
クス値の範囲の最大値が最小のページである請求項4記
載のデータベースのデータ入力システム。 - 【請求項6】 指定ページがマージソート部からの最初
の入力データを格納するページである請求項4記載のデ
ータベースのデータ入力システム。 - 【請求項7】 データベースは如何なる入力データも格
納できるインデックス値の範囲が無限大の無限値ページ
を備えており、ロード部は、指定ページとして無限値ペ
ージが展開された場合は、メモリページ領域に展開され
た該無限値ページに入力データをインデックス順に順次
入力し、入力したデータ数が予め設定した設定値以上に
達した場合若しくは入力終了の場合にメモリページ領域
に格納されているデータを無限値ページから別のページ
としてページ分割し、データーベースに新ページとして
格納するイニシャルロード手段を備えている請求項4〜
6記載のいずれかのデータベースのデータ入力システ
ム。 - 【請求項8】 ロード部は、メモリページ領域に展開し
たページのデータ数が入力データの追加により予め設定
した設定値以上に達すると、該ページをインデックス値
によりこれに収納したデータ数を二分するように2つの
ページに分割する請求項4〜6記載のいずれかのデータ
ベースのデータ入力システム。 - 【請求項9】 設定値がページ分割後のページのデータ
数がページの収納容量に対する充足率で50〜90%の
範囲である請求項7又は8記載のデータベースのデータ
入力システム。 - 【請求項10】 データベースがリレーショナルデータ
ベースである請求項1〜9記載のいずれかのデータベー
スのデータ入力システム。 - 【請求項11】 請求項1〜10記載のいずれかのデー
タベースのデータ入力システムのプログラムを記憶した
機械読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000149648A JP2001331353A (ja) | 2000-05-22 | 2000-05-22 | データベースへのデータ入力システム及びそのプログラムを記憶した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000149648A JP2001331353A (ja) | 2000-05-22 | 2000-05-22 | データベースへのデータ入力システム及びそのプログラムを記憶した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001331353A true JP2001331353A (ja) | 2001-11-30 |
Family
ID=18655474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000149648A Pending JP2001331353A (ja) | 2000-05-22 | 2000-05-22 | データベースへのデータ入力システム及びそのプログラムを記憶した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001331353A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6999968B1 (en) * | 2002-11-27 | 2006-02-14 | Microsoft Corporation | Fast merge into large ordered sets |
KR101311409B1 (ko) | 2011-08-04 | 2013-09-25 | 성균관대학교산학협력단 | 부분적인 인덱스 rid 정렬을 통한 파티션 스캔 방법 및 장치, 메모리 시스템, 및 데이터 정렬 방법 |
WO2014178544A1 (ko) * | 2013-04-29 | 2014-11-06 | 주식회사 실리콘아츠 | 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체 |
US9213782B2 (en) | 2010-06-23 | 2015-12-15 | International Business Machines Corporation | Sorting multiple records of data using ranges of key values |
US10642901B2 (en) | 2014-12-12 | 2020-05-05 | International Business Machines Corporation | Sorting an array consisting of a large number of elements |
CN112462366A (zh) * | 2020-10-10 | 2021-03-09 | 深圳大学 | 一种sar数据点可视化方法、智能终端及存储介质 |
-
2000
- 2000-05-22 JP JP2000149648A patent/JP2001331353A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6999968B1 (en) * | 2002-11-27 | 2006-02-14 | Microsoft Corporation | Fast merge into large ordered sets |
US9213782B2 (en) | 2010-06-23 | 2015-12-15 | International Business Machines Corporation | Sorting multiple records of data using ranges of key values |
US9658826B2 (en) | 2010-06-23 | 2017-05-23 | International Business Machines Corporation | Sorting multiple records of data using ranges of key values |
US9727308B2 (en) | 2010-06-23 | 2017-08-08 | International Business Machines Corporation | Sorting multiple records of data using ranges of key values |
KR101311409B1 (ko) | 2011-08-04 | 2013-09-25 | 성균관대학교산학협력단 | 부분적인 인덱스 rid 정렬을 통한 파티션 스캔 방법 및 장치, 메모리 시스템, 및 데이터 정렬 방법 |
WO2014178544A1 (ko) * | 2013-04-29 | 2014-11-06 | 주식회사 실리콘아츠 | 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체 |
US10642901B2 (en) | 2014-12-12 | 2020-05-05 | International Business Machines Corporation | Sorting an array consisting of a large number of elements |
US11372929B2 (en) | 2014-12-12 | 2022-06-28 | International Business Machines Corporation | Sorting an array consisting of a large number of elements |
CN112462366A (zh) * | 2020-10-10 | 2021-03-09 | 深圳大学 | 一种sar数据点可视化方法、智能终端及存储介质 |
CN112462366B (zh) * | 2020-10-10 | 2023-08-08 | 深圳大学 | 一种sar数据点可视化方法、智能终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5121493A (en) | Data sorting method | |
US4677550A (en) | Method of compacting and searching a data index | |
US5274805A (en) | Method of sorting and compressing data | |
US6532476B1 (en) | Software based methodology for the storage and retrieval of diverse information | |
US8255398B2 (en) | Compression of sorted value indexes using common prefixes | |
JP3771271B2 (ja) | コンパクト0完全木における順序付けられたキーの集まりの記憶と検索のための装置及び方法 | |
US5943683A (en) | Data processing method using record division storing scheme and apparatus therefor | |
US7523288B2 (en) | Dynamic fragment mapping | |
JPH1131096A (ja) | データ格納検索方式 | |
US7769781B1 (en) | Method for labeling data stored in sequential data structures with parameters which describe position in a hierarchy | |
JPH10260876A (ja) | データベースのデータ構造及びデータベースのデータ処理方法 | |
JP2001331353A (ja) | データベースへのデータ入力システム及びそのプログラムを記憶した記録媒体 | |
JP3515810B2 (ja) | ソート処理方法および装置 | |
US9235578B2 (en) | Data partitioning apparatus and data partitioning method | |
EP3940572A1 (en) | Data generalization device, data generalization method, and program | |
US7870138B2 (en) | File storage and retrieval method | |
JP2001229060A (ja) | ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体 | |
WO2001025962A1 (en) | Database organization for increasing performance by splitting tables | |
JP2675958B2 (ja) | 情報検索用計算機システム及びその記憶装置の動作方法 | |
JPH02116936A (ja) | 再編成方式 | |
RU2101762C1 (ru) | Устройство для хранения и поиска информации в памяти | |
JPH0239225A (ja) | ファイルシステム | |
JP2903941B2 (ja) | データ検索装置 | |
JPH11306183A (ja) | データベース検索システム | |
JPH02208751A (ja) | データ保存方式 |