JP3345628B2 - データ格納及び検索方法 - Google Patents

データ格納及び検索方法

Info

Publication number
JP3345628B2
JP3345628B2 JP21970097A JP21970097A JP3345628B2 JP 3345628 B2 JP3345628 B2 JP 3345628B2 JP 21970097 A JP21970097 A JP 21970097A JP 21970097 A JP21970097 A JP 21970097A JP 3345628 B2 JP3345628 B2 JP 3345628B2
Authority
JP
Japan
Prior art keywords
block
record
key
primary
stored
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 - Lifetime
Application number
JP21970097A
Other languages
English (en)
Other versions
JPH1131096A (ja
Inventor
雅晴 玉津
Original Assignee
アネックスシステムズ株式会社
雅晴 玉津
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アネックスシステムズ株式会社, 雅晴 玉津 filed Critical アネックスシステムズ株式会社
Priority to JP21970097A priority Critical patent/JP3345628B2/ja
Priority to PCT/JP1998/003067 priority patent/WO1999003039A1/ja
Priority to US09/254,437 priority patent/US6415375B2/en
Priority to EP98931014A priority patent/EP0923030A4/en
Publication of JPH1131096A publication Critical patent/JPH1131096A/ja
Priority to US10/119,145 priority patent/US6584555B2/en
Application granted granted Critical
Publication of JP3345628B2 publication Critical patent/JP3345628B2/ja
Priority to US10/390,815 priority patent/US6654868B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピューターのデ
ータ格納、読み出しに関連し、高速かつ高格納率でデー
タの格納及び検索が行なえ、メンテナンスの手間を大幅
に削減するデータ格納及び検索方法に関する。
【0002】
【従来の技術】従来のデータ格納方法は、ブロックの物
理的な位置が連続していることや、予め格納する為のブ
ロックを作成しておかなければならないなどという、使
用する上で制約が多い物であった。また、ランダムアク
セスに関しては、一部の方法を除くと、インデックスの
作成が必要で、創生の時間が長く、また、更新処理を行
なう場合には、インデックスの更新が発生し排他の範囲
が広くなる為、デッドロックが発生しやすい構造を持っ
ていた。インデックスを使用しない方法としてダイレク
トアクセス方法があるが、この方法は、レコードのキー
と格納場所をランダマイズルーチンという特殊なプログ
ラムで関連付ける方法であり、順次アクセスが実用上無
理であり、格納効率もインデックスを使用する方法に比
較すると、低いものであった。
【0003】
【発明が解決しようとする課題】このような方法は、磁
気ディスクを前提にした技術であった為、止むを得ない
面があった。一方、半導体の価格低下はめざましいもの
が有り、半導体を記憶装置として利用する条件が整いつ
つある。半導体は、物理的な移動や回転といった動作が
不要であり、アドレスが連続していなくても高速な格
納、読み出しが可能となる。この性質を利用し、半導体
のみまたは半導体とランダムアクセス型記憶媒体を用い
て記憶装置を構成すれば高速な格納・検索処理が行なえ
る。本発明は、半導体を主記憶装置を使用し、あるい
は、外部記憶装置として構成し、データの格納について
ブロックに順次に格納し、データの挿入によりあふれ
た場合はオーバーフローブロックを利用して格納し、ラ
ンダムアクセスに関しては、インデックスを使用せず格
納ブロックを管理するロケーションテーブルまたは代替
キーブロックを使用し、それに対して検索を行なう事に
より、高速な格納、読出しを可能とし、データの格納効
率も良くデッドロックの発生を最小限にとどめたデータ
格納及び検索方法を提供することを目的としている。
【0004】
【課題を解決為の手段】上記目的を達成するため、請求
項1記載の発明に係るデータ格納方法は、コンピュータ
ーにおける、データ格納方法において、一つのユニーク
キーとゼロ個もしくは1個以上のノンユニークな
代替キーとを持つレコードを主キーの順番で1個以上格
納できるブロックと、前記ブロックの記憶装置内での位
置を管理するため、前記ブロックに付与した番号と前記
記憶装置内の物理的位置を対応させたロケーションテー
ブルとを用い、各々のブロックの物理的な位置に関して
は何らの制限を受けず配置でき、各々のブロックは予め
作成しておく必要がなく、必要に応じて作成し、物理的
なデータ格納エリアが満杯になるまで作成でき、 前記ロ
ケーションテーブルは予めレコードの格納予定数とブロ
ックの大きさから計算して必要十分な領域を連続領域と
して確保しておき、 当初想定したデータレコードの格納
予定数を上回ってデータレコードの格納が行われる場合
に、ロケーションテーブルの連続領域が満杯になり、デ
ータレコードの格納が不可能になってしまうときは、更
に追加で連続領域を追加のロケーションテーブルとして
確保を行ない、複数の連続領域があたかも1つの連続領
域であるかのように扱うことにより、当初の想定レコー
ド数を超える数の格納を行うことができ、 レコードの追
加に対しては最終プライマリーブロックに格納できない
ときは、新たなプライマリーブロックを割り当ててレコ
ードを格納し、 前記ブロックは、プライマリーブロック
とオーバーフローブロックで構成し、 前記レコードの挿
入時には、前記レコードはまずプライマリーブロックに
格納し、前記レコードの格納によりプライマリーブロッ
ク中に格納できなくなったときに、そのプライマリーブ
ロックに対してオーバーフローブロックを1つ割り当
て、その1つのオーバーフローブロックでは格納できな
い場合は更に1つのオーバーフローブロックを割り当
て、各々のブロック中でレコードが主キーの順に並んで
おり、レコードの挿入時に、挿入レコードより大きい主
キーを持ったレコー ドの直前を挿入位置とし、挿入レコ
ードより後の位置にあるレコードを挿入レコードが入る
大きさだけ後方にずらして格納し、かつ、前記ロケーシ
ョンテーブルにより前記プライマリーブロックの記憶装
置内の位置管理を行うことを特徴とするものである。上
記目的を達成するため、請求項2記載の発明に係るデー
タ格納方法は、コンピューターにおける、データ格納方
法において、データレコード中の一つのユニークな
ーと、ゼロ個もしくは1個以上のノンユニークな代替
ーを持つレコードを固定長のブロックの中に主キーの順
番に並ぶように1個以上格納し、前記ブロックは、プラ
イマリーブロックとオーバーフローブロックで構成し、
レコードはまずプライマリーブロックに格納し、レコー
ドの挿入によりプライマリーブロック中に格納できなく
なった場合に、そのプライマリーブロックに対してオー
バーフローブロックを割り当て、1つのオーバーフロー
ブロックでは格納できない場合は更に1つづつオーバー
フローブロックを割り当て、各々のブロックを連携して
レコードを格納し、レコードの追加に対して最終プライ
マリーブロックに格納できないときは、新たなプライマ
リーブロックを割り当てて前記レコードを格納し、ロケ
ーションテーブルを用いることにより、プライマリーブ
ロックの位置管理を行い、各々のブロックの物理的な位
置に関しては何らの制限を受けず配置でき、各々のブロ
ックは予め作成しておく必要が無く、必要に応じて作成
し、物理的なデータ格納エリアが満杯になるまで作成で
き、複数の特定のプライマリーキーの後に、レコード挿
入が多数行われる型のファイルに対しては、挿入が行わ
れる位置で複数のサブレンジに分割し、挿入ではなくレ
コード追加とし、オーバーフローレコードの発生を防
ことを特徴とするものである。上記目的を達成するた
め、請求項3記載の発明に係るデータ検索方法は、コン
ピュータにおけるデータ検索方法において、一つのユニ
ークな主キーと、ゼロ個もしくは1個以上のノンユニー
クな代替キーを持つレコードを主キーの順番で1個以上
格納できるブロックと、 前記ブロックの記憶装置内での
位置を管理するため、前記ブロックに付与した番号と前
記記憶装置内の物理的位置を対応させたロケーションテ
ーブルとを用い、 各々のブロックの物理的な位置に関し
ては何らの制限を受けず配置でき、各々のブロックは予
め作成しておく必要がなく、各々のブロックは必要に応
じて作成し、物理的なデータ格納エリアが満杯になるま
で作成でき、 前記ロケーションテーブルは予めレコード
の格納予定数とブロックの大きさから計算して必要十分
な領域を連続領域として確保しておき、 当初想定したデ
ータレコードの格納予定数を上回ってデータレコードの
格納がブロックに行われる場合に、ロケーションテーブ
ルの連続領域が満杯になり、データレコードの格納が不
可能になってしまうときは、更に追加で連続領域を追加
のロケーションテーブルとして確保を行ない、複数の連
続領域があたかも1つの連続領域であるかのように扱う
ことにより、当初の想定レコード数を超える数の格納を
行うことができ、 レコードの追加に対しては最終プライ
マリーブロックに格納できないときは、新たなプライマ
リーブロックを割り当ててレコードを格納し、 前記ブロ
ックは、プライマリーブロックとオーバーフローブロッ
クで構成し、 前記レコードの挿入時には、前記レコード
はまずプライマリーブロックに格納し、前記レコードの
格納によりプライマリーブロック中に格納できなくなっ
たときに、そのプライマリーブロックに対してオーバー
フローブロックを1つ割り当て、その1つのオーバーフ
ローブロックでは格納できない場合は更に1つのオーバ
ーフローブロックを割り当て、各々のブロック中でレコ
ードが主キーの順に並んでおり、レコードの挿入時に、
挿入レコードより大きい主キーを持ったレコードの直前
を挿入位置とし、挿入レコードより後の位置にあるレコ
ードを挿入レコードが入る大きさだけ後方にずらして格
納し、 かつ、前記ロケーションテーブルにより前記プラ
イマリーブロックの記憶装置内の位置管理を行うデータ
格納方法によって前記記憶装置に格納されたデータを検
索する方法であって、 前記主キーにより前記ロケーショ
ンテーブルをバイナリー・サーチにより検索 し、目的の
主キー値を含むブロックを求め、つぎにブロック内のレ
コードを検索してデータを検索することを特徴とするも
のである。上記目的を達成するため、請求項4記載の発
明に係るデータ検索方法は、コンピュータにおけるデー
タ検索方法において、代替キーと当該代替キー値のレコ
ードが格納されているブロック番号と当該レコードの主
キーとからなるエントリーを代替キーの順番に並べて
数格納可能とするとともに、予め同一大きさで必要数
を連続して確保できる代替キーブロックを使用し、代替
キーテーブルのエントリーは代替キーブロック中に代替
キーの順番で並ぶように格納されており、 同一の代替キ
ーを持つ代替キーテーブルのエントリーは同一の代替キ
ーブロックに格納されており、 同一の代替キーを持つエ
ントリーの数が多いかもしくは代替キーの挿入により、
代替キーブロックに格納できないときに、代替キー・オ
ーバーフロー・ブロックを代替キーブロックに追加して
エントリーを格納しており、 初期のレコードの数が最終
格納予定レコード数に比較して少ない場合は、代替キー
ブロックと同様な構造を持つプレ代替キーブロックを1
段階以上使用でき、 前記代替キーブロックを、代替キー
によりバイナリー・サーチで検索し、目的の代替キー値
を持つエントリーを検出し、そのエントリーから目的の
レコードの格納されているブロック番号を得て、その物
理ブロックにアクセスし、そのブロック内でエントリー
中にある主キーと一致するレコードを検索してデータを
検索することを特徴とするものである。
【0005】
【作用】コンピューターの記憶領域に本方法を適用す
る。以下、上記請求項に係わる作用を説明する。インデ
ックスの代わりとして、ロケーションテーブルと代替キ
ーテーブルとよぶものを新たに導入する。また、レコー
ドは単独で格納するのではなく、原則として複数のレコ
ードを1つのブロックに格納する。ブロックの構成は図
4に示す。この図中のFROM、TOはそれぞれ当該ブ
ロック中の最小キー値、最大キー値を示すが、必ずしも
両方が必要ではなく、片方のみでも本方法の適用は可能
である。長さが長いレコードを使用する場合は、一つの
ブロックに一つのレコードとしてもよい。また、2つ以
上のブロックに1つのレコードが格納される形態(スパ
ンドレコード)も可能である。また、ブロックはプライ
マリーブロック、オーバーフローブロックそれぞれ毎
に、1つのファイルでは全て同一の長さとし、領域管理
を容易にする。ブロックに格納することにより、可変長
レコードを格納しても、ブロック単位では固定長となる
ため、ブロック検出は固定長の操作で行なえる。ロケー
ションテーブルは事前に必要な連続領域を確保する。ロ
ケーションテーブルの1レコード(エントリー)は、デ
ータレコード格納領域のプライマリーブロック1ブロッ
クを管理する。複数のプライマリーブロックを管理する
方法も可能であるが、プライマリーブロックのサイズは
任意の大きさがとれるので、大きさの変更を行なえばよ
く複数ブロックの管理は行なわない方が管理が容易にな
る。ブロックはプライマリーとオーバーフローに分けら
れ、ロケーションテーブルで管理されるのはプライマリ
ーブロックのみである。レコードはまずプライマリーブ
ロックに格納される。そのブロックに対して、レコード
の挿入が発生しそのブロックに格納できなくなった場合
は、そのブロックに対するオーバーフローブロックを1
つ割り当てる。そのオーバーフローブロックにも格納出
来なくなった場合は更に1つのオーバーフローブロック
を割り当てる。オーバーフローブロックはプライマリー
ブロックの従属ブロックとして管理され、プライマリー
ブロックからポインティングされるのみで、ロケーショ
ンテーブルには管理されない。
【0006】オーバーフローブロックをロケーションテ
ーブルで管理しないので、ロケーションテーブルへのレ
コード挿入が発生せず、ロケーションテーブルの書換え
に要する時間が必要最小限ですみ、更に、ロケーション
テーブルの書換えが1レコードのみである為、排他が発
生してもその範囲が極小化でき、デッドロックの可能性
が大幅に減少する。デッドロックは、1つのコンピュー
ター上で、2つの異なるタスクが、2つ以上の同じ資源
を異なる順序で排他を行なう為に発生し、排他の順序が
同一であれば発生せず、排他の範囲が狭ければ確率は減
少する。従来のインデックスは、数レベルから成り立っ
ている。必要なレコードをアクセスし、更新処理を行っ
た際にレコードのキーが変更されると、インデックスも
変更されるが、これが最下位のインデックスにのみ影響
する場合は排他範囲は限定されるが、場合によっては上
位のインデックスに影響する場合もある。そうなると、
多数のレコードの範囲に排他が及ぶとともに、インデッ
クスの更新にも時間を要する事から、排他の時間が長時
間に及ぶことになり、デッドロックが多発する原因とな
る。
【0007】
【実施例】以下、本発明の実施例を図面を参照して説明
する。図1は、本発明の実施例で使用するロケーション
テーブル、最終ポインター構成を示す図である。図2
は、ロケーションテーブルとブロックの関係を示す図で
ある。図3は、本発明の実施例で使用する代替キーテー
ブル(エントリー)と代替キーブロックの構成を示す図
である。図4は本発明の実施例で使用するブロックの構
成を示す図である。図5は本発明の実施例で使用するプ
レ代替キーブロックの構成を示す図である。図6は本発
明の実施例で使用するブロックとオーバーフローブロッ
クの関係図である。図7は本発明の実施例により文章デ
ータにキーをつける例を説明するための図である。な
お、各図において、バイト数は参考であり、この内容と
異なる長さで構成は可能である。また、図3及び図4に
おいて、FROM、TOは当該ブロッ ク中のキー値の最
小値と最大値である。図3において、代替キーブロック
のキー値の持ち方は、両方を持つ、または、いずれか一
方のみでも可能である。さらに、図6において、解りや
すくする為に、ブロックが連続領域にあるような図にし
てあるが、実際には連続領域である必要は無い。本方法
で格納するレコードは、必ず1つのユニークな主キーと
ゼロ個若しくは1個以上のノンユニークなキー(以下、
「代替キー」と称す)を持つレコードに限定される。ユ
ニークなキーを持たないレコードは対象としない。この
「主キー」は、異なるレコードのキー値が重複しないも
のをいう。また、「代替キー」は、結果的にユニークで
あっても問題はない。但し、ユニークなキーが無いレコ
ードに対して、レコードの追加時に連続番号などのユニ
ークなキーを強制的に付加し、読み出しは物理順もしく
は代替キーの順にのみ行なう事は可能である。この場合
は挿入が行われない為、レコードの更新によりレコード
長が増加する以外にはオーバーフローブロックが発生し
ない。以下の説明で追加とは、現在格納されているレコ
ードの主キーより大きな主キーを持つレコードの格納を
さし、挿入は、最大の主キーより小さな主キーを持つレ
コードの格納をさす。
【0008】まず、格納方法を説明する。ロケーション
テーブルは予めレコードの格納予定数とブロックの大き
さ、ロケーションテーブル1レコード当たりのプライマ
リーブロック数から計算して必要十分な領域を連続領域
として確保しておく。同様に代替キー・ブロックも格納
するレコードの数のエントリーが格納できる様に、ブロ
ックの大きさと数を決定し、連続領域として確保する。
しかしながら、当初想定した数を上回って格納が行われ
る場合に、連続領域が満杯になり、格納が不可能になっ
てしまう可能性がある。このような場合には、更に追加
で連続領域の確保を行ない、アドレス変換テーブルを用
いて、複数の連続領域があたかも1つの連続領域である
かのように扱う事により、当初の想定レコード数を超え
る数の格納が行われるような事態にも対処が可能であ
る。代替キーが複数ある場合は、それぞれ毎に領域を確
保する。異なる代替キーの代替キーブロック同士は連続
する必要は無い。ロケーションテーブルとブロックの関
係を図2に示す。サブレンジに分割する格納方法を採用
する場合は、各々のサブレンジの予定格納レコード数に
見合ったロケーションテーブルをサブレンジ毎に作成す
る。ロケーションテーブルの各々は連続している領域で
ある必要があるが、ロケーションテーブル同士は連続し
た領域である必要はない。代替キーブロックは、すべて
のレコードを対象とした大きさの連続領域を、分割せず
に用意する。
【0009】最初のレコードを格納する場合は、まず、
最終ポインターを排他モードで参照する。最終ポインタ
ーは、ブロックとロケーションテーブルをどこまで使用
しているかを管理するもので、形式は図1に示すとお
り。最初は格納されているレコードが何も無いので、ま
ず、最終ポインターに1ブロック目が最後のブロックで
ある事を登録する。最終ポインターにはブロック#と主
キーの値とを登録する。次に1つのプライマリーブロッ
クを排他モードで確保し、その物理アドレスとブロック
番号(この場合は0。番号は0からスタートする。)を
登録する。ブロックをディスク上に確保する場合は、主
キーの値もエントリーに含める。次にそのブロックにレ
コードを登録する。その後総ての排他を解除する。
【0010】2レコード目の登録は、まず、最終ポイン
ターを排他モードで参照し、主キーが最終ポインターの
キー値より大きいか否かを判定する。まず、レコードの
追加の場合として説明を行なう。ブロック番号が0なの
でロケーションテーブルのブロック番号0を排他モード
で参照し、0ブロックの物理位置を知り、その物理位置
にあるブロック0を読み出す。そのブロックに十分な空
き領域があれば、レコードを格納し、最終ポインターに
主キーの登録を行ない、総ての排他を解除する。
【0011】以下、同様の操作で追加格納が行われる
が、0ブロックに入りきらない場合の説明を行なう。m
番目のレコード追加で上記操作を行ない0ブロックを読
み出した際に、0ブロックに十分な余裕が無い場合、プ
ライマリーブロックを1つ(ブロック番号1)排他モー
ドで確保する。m番目のレコードをブロック1に格納す
る。その後、ロケーションテーブルの2レコード目を排
他モードで参照し、このレコードにプライマリーブロッ
ク1の物理位置を登録する。この後総ての排他を解除す
る。このように、追加は論理的に最後のレコードの後に
なる位置に格納される。サブレンジに分割されている場
合は、サブレンジ毎に同様の操作が発生する。
【0012】次に、レコードの挿入になる場合を説明す
る。既に複数のロケーションテーブルレコード、プライ
マリーブロック、データレコードが存在しているとす
る。まず、挿入されるレコードを、どのブロックに格納
すべきかを判別する必要がある。これはロケーションテ
ーブルに対して検索を行なう。高速な検索の方法の一例
としてバイナリー・サーチが知られている。ここではバ
イナリー・サーチを行なう方法を例として記述するが、
他の方法でも目的のエントリーを探す事は可能である。
方法としては2分割点を探し、そのレコードが指してい
るプライマリーブロックにオーバーフローブロックがあ
る場合にはオーバーフローブロックを含めて、そのブロ
ック(当該ブロック)に格納されているレコードの主キ
ーの値(以下、格納主キー値と略す)と挿入レコードの
主キーの値(以下、挿入主キー値と略す)を比較する。
挿入主キー値が格納主キー値の最小値より大きいか、当
該ブロックの格納主キー値の最大値より大きく、次のブ
ロックの格納主キー値の最小値より小さい場合は、当該
ブロックに格納される。この判定に該当しない場合は、
更に当該ブロックの格納主キー値と挿入ブロック主キー
値の大小を比較し、挿入主キー値が小さい場合は前方
の、そうでない場合は後方の2分割点を探し、同様な操
作を行ない、レコードを格納するブロックを探す。ロケ
ーションテーブルが複数の連続領域から構成されている
場合は、そのままではバイナリー・サーチが行なえない
が、アドレス変換テープルを利用して、あたかも連続領
域であるかのように扱う事により、バイナリー・サーチ
を行なう事が可能となる。サブレンジに分割されている
場合は、サブレンジ毎のロケーションテーブルの先頭も
しくは最後の主キーの値をまず比較し、どのサブレンジ
が対象となるかを探す。その後、そのサブレンジに関し
て、上記と同様に、バイナリー・サーチを行い、該当す
るブロックを探し出す。
【0013】n番目のブロックに格納することになった
場合以下のようになる。ブロックの中でレコードを挿入
する位置を探す。レコードは主キーの順に並んでいるの
で挿入レコードより大きい主キーを持ったレコードの直
前が挿入位置となる。まず、主キーの重複が無いかをチ
ェックする。重複していた場合は格納できないのでエラ
ーとして処理を行なう。重複していない場合、挿入レコ
ードより後の位置にあるレコード(1つ以上)を挿入レ
コードが丁度入る大きさだけ後方にずらす。この際に、
ずらしたレコードがブロックの中に収まればそれで処理
は終了するが、納まらない場合は、オーバーフローブロ
ックを1つ切り出して、プライマリーブロックからのポ
インター付けを行い、必要なだけオーバーフローブロッ
クに格納する。その後、プライマリーブロックに挿入レ
コードと挿入レコードに続くレコードを格納する。プラ
イマリーブロックとオーバーフローブロックの論理的な
関係を図6に示す。
【0014】既にオーバーフローブロックが存在する場
合は、プライマリーブロックとオーバーフローブロック
の双方を併せて格納が可能であればよい。また、オーバ
ーフローブロックは一部分しか使用されずに、領域が有
効に使用されない可能性がある。これを防ぐ為、複数の
プライマリーブロックに対して1つのオーバーフローブ
ロックを設ける事できる。また、オーバーフローブロッ
クの大きさは総て同一とするが、プライマリーブロック
に比べて小さくすることが可能である。また、複数のプ
ライマリーブロックから1つのオーバーフローブロック
をポイントし使用するようにする事が可能である。この
他に、オーバーフローしたレコードを、単独で格納領域
に格納し、プライマリーブロックからポインター付けを
行なう方法の採用する事が可能である。しかしながら、
この方法はオーバーフローレコードが多い場合には、オ
ーバーフローブロックを利用する場合に比較して、検索
に時間がかかるというデメリットもあり、レコードの発
生状況に応じた、格納方法の選択が必要である。
【0015】次に、代替キーの格納、更新の場合の説明
を行なう。代替キーテーブルは代替キーブロック中に代
替キーの順番に並ぶように格納する。代替キーテーブル
のエントリーは代替キー、そのキー値のレコードが格納
されているブロックの物理アドレス、そのキー値のレコ
ードの主キーからなる。代替キーテーブルはレコードの
追加、更新に伴いエントリー数が変動するが、エントリ
ーの増加に対しては、エントリーが挿入になる可能性が
高く、追加型で発生する可能性は非常に少ない。この
為、主キーと同様の管理ではうまく行なえない。最終格
納予定レコード数に比較して、既に多数のレコードが存
在する場合は、代替キーブロックにエントリーを格納す
る際に、一定の空き領域を設ける事により、挿入を効率
的に処理できるが、初期のレコードの数が最終格納予定
レコード数に比較して少ない場合は、キーの挿入により
オーバーフロー代替キーブロックが多数発生する事にな
る。この場合は、プレ代替キー・ブロックを使用する。
プレ代替キーブロックは、代替キー・ブロックと同様な
構造とし、ブロックの数は代替キーブロックの数のエン
トリーが格納できる大きさを、ブロックのサイズで割っ
て求めた数とする。プレ代替キーブロックのエントリー
数が、代替キーブロックの数と同じになった時点で、プ
レ代替キーブロックから代替キーブロックにエントリー
を移動する。移動時には、代替キーブロックには原則と
して一つのエントリーを格納するが、同一の代替キーを
持つエントリーは、同一の代替キーブロックに格納す
る。同一の代替キーを持つエントリーの数が多くて代替
キーブロックに格納できない場合は、代替キー・オーバ
ーフロー・ブロックを追加し格納する。例えば、最終格
納予定レコード数を100万件とする。一つの代替キー
・ブロックに100エントリーの格納が可能とすると、
代替キー・ブロックは1万個必要となる。エントリーが
1万になるまで、プレ代替キー・ブロックに格納し、1
万になった時点で、代替キー・ブロックにエントリーを
移し替える。
【0016】また、代替キーブロックの数が多く、プレ
代替キーブロックを1段階設けた場合では、プレ代替キ
ーブロックの数が多くなり、挿入が頻繁に発生し更新処
理が非効率になる可能性がある。この場合は、プレ代替
キーブロックを複数段階設ける様にする。前記の例で言
えば、プレ代替キーブロックに10000件のエントリ
ーを格納する事になるが、1つのブロックに100エン
トリーが格納可能なので、これを2段階とし、最初のプ
レ代替キー・ブロックは100エントリーを管理し、エ
ントリーが100になった時点で、2段回目のプレ代替
キーブロックに移し替えるという方法である。移し替え
の具体例を図5に示す。この例は2段階のプレ代替キー
ブロックを設けた例である。
【0017】次に、主キーでのレコード検索の方法を述
べる。これは、レコードの挿入で、挿入位置を調べる為
におこなった方法と同様に行なう。ここでは、挿入の例
と同様にバイナリー・サーチの例を記述する。まずロケ
ーションテーブルの2分割点を探し、そのレコードが指
しているプライマリーブロックにオーバーフローブロッ
クがある場合にはオーバーフローブロックを含めて、そ
のブロック(当該ブロック)に格納されているレコード
の主キーの値(以下、格納主キー値と略す)と検索レコ
ードの主キーの値(以下、検索主キー値と略す)を比較
する(図4参照)検索主キー値が格納主キー値の最小
値より大きいか、当該ブロックの格納主キー値の最大値
より大きく、次のブロックの格納主キー値の最小値より
小さい場合は、当該ブロックに目的のレコードが存在す
るか、そのキー値のレコードはファイル上に存在しない
かの何れかである。ブロックの中は主キーの順に並んで
いるのでブロックを検索することにより、目的のレコー
ドを検出するか、ファイル上に存在しないかを確認する
事ができる。この判定に該当しない場合は、更に当該ブ
ロックの主キー値と目的レコードの主キー値の大小を比
較し、目的主キー値が小さい場合は前方の、そうでない
場合は後方の2分割点を探し、同様な操作を行ない、レ
コードが格納されているブロックを探す。
【0018】次に代替キーによる検索について説明す
る。代替キーでの検索は代替キーブロックを検索する。
検索の方法としてはバイナリー・サーチが代表的である
が、これについては、主キーの検索で述べてあるので省
略する。目的の代替キーが含まれる代替キーブロックを
探し出す。更に代替キーブロックの中の目的の代替キー
テーブルを探す。結果は、主キーの場合と同様にそのブ
ロック内にエントリーが存在するか、その代替キー値を
もつレコードはファイル中に存在せず、エントリーが無
いかの何れかである。代替キーブロックに代替キー・オ
ーバーフローブロックが存在するときには、その双方を
検索の対象とする。
【0019】目的のキー値を持つ代替キーテーブル(エ
ントリー)が探し出せた場合は、そのエントリーにある
物理ブロック番号から物理ブロックにアクセスし、その
ブロック内でエントリー中にある主キー値と一致するレ
コードを探し出す。また、代替キーはノンユニークでい
いので、代替キーブロック中の次のエントリーを見、代
替キー値が同一である場合は、更にそのエントリーに対
するレコードの検索を行ない、同一キー値を持つエント
リーが無くなるまで実行する。
【0020】次に、創生に関して説明する。創生とは、
本方法のファイル上に既にレコードが複数存在してお
り、オーバーフローブロックが増加した等の理由で再創
生する場合と、バックアップ媒体から本方法の適用媒体
に展開する場合、それと、本方法で述べる格納方法以外
の方法で格納されていたレコードを方法式に移行する場
合が考えられるが、いずれも同様な方法で行なえる。再
創生の場合は、ファイルを順次呼び出し方法にて主キー
の順に読みだし、順編成ファイルを作成する。創生の場
合も同様に順編成ファイルを作成する。
【0021】次に、ロケーションテーブルと代替キーブ
ロックを準備する。ロケーションテーブルの数は、格納
を予定しているレコードの数を1ブロックに格納できる
レコード数で割った数分を連続領域として確保する。代
替キーブロックは代替キーの種類別に確保する。1つの
種類の代替キーブロックは同一の大きさとし、その数
は、次のように求める。1つの代替キーブロックに格納
できるエントリー数(A)を求める。格納予定レコード
数をAで割って求めた商が代替キーブロックの数とな
る。また、プレ代替キー・ブロックを準備する。
【0022】レコードは主キーの順に、ブロックに格納
する。この際に予め挿入の頻度を予測または統計データ
から算出し、ブロック内に一定の割合の余裕を設けるこ
とができる。また、隙間無くレコードを格納することも
可能である。これは、挿入がどの程度行われるかで決定
する。ブロック内の余裕はブロック毎に割合を変える事
も可能である。格納に伴い、ロケーションテーブルへの
記入も行なう。代替キーはまずレコードから代替キーエ
ントリーを作成し、順編成ファイルに格納する。すべて
のレコードの代替キーエントリーの作成が終了したら、
代替キーの順にソートを行い、ソート後のエントリーを
代替キーブロックに格納する。代替キーは代替キーブロ
ックに格納するが、格納は、創生レコード数を最終レコ
ード数で割った商を求め、その商に相当する割合で代替
キーブロックに格納を行なう。これは、代替キーの発生
が挿入型になる為である。
【0023】代替キーの特殊な使用法も可能となる。現
在のキーは、レコードの特定の位置に格納されているフ
ィールドに対して、キーを設定するもので、例えば商品
コードとか得意先コードといったように長さや形式が同
一であった。本方法では、キーとレコードの関連付けが
行なえれば良いので、文章データにキーを作る事が可能
である。図7で示すように非定型なレコードにキーをつ
ける事が可能となる。この例のように、フィールドの場
所が一定せず、フィールドの長さも固定でないレコード
に代替キーの設定が可能である。
【0024】
【発明の効果】以上説明したように本発明に係るデータ
格納方法によれば、次のような効果を達成できる。 (1) 高速に主キーと代替キーによるランダムアクセス
が行える。(2) 順次読み出し、書き込みも高速に行なえる。(3) インデックスを使用せず、ロケーションテーブル
と代替キーブロックを使用する為、データの追加変更削
除に伴う変更が少なく、処理時間が短くレコードの格納
が高速に行える。(4) ロケーションテーブルや代替キーブロックの作成
(創生)に関する時間がインデックス作成に比較して短
時間ですむ。(5) ロケーションテーブルや代替キーブロックの排他
の範囲が最小限で済み、デッドロックが起きにくい。(6) 予め、ブロックを作成する必要が無い。(7) 物理的な空きスペースが無くなるまで、ブロック
の追加が行える。(8) 可変長レコードが扱え挿入も可能な為、レコード
圧縮が可能(一般的には、圧縮レコードの更新ができな
いケースが多い)。(9) 代替キーも問題無く複数使用できる。(10) データベースのメンテナンスの手間が大幅に削
減できる。
【図面の簡単な説明】
【図1】本発明の実施例で使用するロケーションテーブ
ル、最終ポインター構成を示す図である。
【図2】本発明の実施例で使用するロケーションテーブ
ルとブロックの関係を示す図である。
【図3】本発明の実施例で使用する代替キーテーブル
(エントリー)と代替キーブロックの構成を示す図であ
る。
【図4】本発明の実施例で使用するブロックの構成を示
す図である。
【図5】本発明の実施例で使用するプレ代替キーブロッ
クの構成を示す図である。
【図6】本発明の実施例で使用するブロックとオーバー
フローブロックの関係図である。
【図7】本発明の実施例により文章データにキーをつけ
る例を説明するための図である。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−83666(JP,A) 特開 平7−191891(JP,A) 特開 平7−210431(JP,A) 特開 平8−166897(JP,A) 特開 平8−190501(JP,A) 特開 昭62−276626(JP,A) 特開 昭60−103461(JP,A) Jeffrey D.Ullman 著、國井 外1名訳,データベース・シ ステムの原理,日本,日本コンピュータ 協会,1985年5月25日,第1版,45−71 Samuel J.Leffler 外3名著/中村 明 外3名訳,UNI X4.3BSDの設計と実装,日本,丸 善株式会社,1991年6月30日,193−222 Michael J.Folk 外1 名著/楠本 博之 外3名訳,bit別 冊 ファイル構造,日本,共立出版株式 会社,1997年6月5日,169−191 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 G06F 17/30

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 コンピューターにおける、データ格納方
    法において、 一つのユニークなキーとゼロ個もしくは1個以上の
    ノンユニークな代替キーとを持つレコードを主キーの順
    番で1個以上格納できるブロックと、 前記ブロックの記憶装置内での位置を管理するため、前
    記ブロックに付与した番号と前記記憶装置内の物理的位
    置を対応させたロケーションテーブルとを用い、各々のブロックの物理的な位置に関しては何らの制限を
    受けず配置でき、各々のブロックは予め作成しておく必
    要がなく、必要に応じて作成し、物理的なデータ格納エ
    リアが満杯になるまで作成でき、 前記ロケーションテーブルは予めレコードの格納予定数
    とブロックの大きさから計算して必要十分な領域を連続
    領域として確保しておき、 当初想定したデータレコードの格納予定数を上回ってデ
    ータレコードの格納が行われる場合に、ロケーションテ
    ーブルの連続領域が満杯になり、データレコードの格納
    が不可能になってしまうときは、更に追加で連続領域を
    追加のロケーションテーブルとして確保を行ない、複数
    の連続領域があたかも1つの連続領域であるかのように
    扱うことにより、当初の想定レコード数を超える数の格
    納を行うことができ、 レコードの追加に対しては最終プライマリーブロックに
    格納できないときは、新たなプライマリーブロックを割
    り当ててレコードを格納し、 前記ブロックは、プライマリーブロックとオーバーフロ
    ーブロックで構成し、 前記レコードの挿入時には、前記レコードはまずプライ
    マリーブロックに格納し、前記レコードの格納によりプ
    ライマリーブロック中に格納できなくなったときに、そ
    のプライマリーブロックに対してオーバーフローブロッ
    クを1つ割り当て、その1つのオーバーフローブロック
    では格納できない場合は更に1つのオーバーフローブロ
    ックを割り当て、各々のブロック中でレコードが主キー
    の順に並んでおり、レコードの挿入時に、挿入レコード
    より大きい主キーを持ったレコードの直前を挿入位置と
    し、挿入レコードより後の位置にあるレコードを挿入レ
    コードが入る大きさだけ後方にずらして格納し、 かつ、前記ロケーションテーブルにより前記プライマリ
    ーブロックの記憶装置内の位置管理を行うことを特徴と
    するデータ格納方法。
  2. 【請求項2】 コンピューターにおける、データ格納方
    法において、 データレコード中に一つのユニークなキーと、ゼロ個
    もしくは1個以上のノンユニークな代替キーを持つレコ
    ードを固定長のブロックの中に主キーの順番に並ぶよう
    に1個以上格納し、前記 ブロックは、プライマリーブロックとオーバーフロ
    ーブロックで構成し、レコードはまずプライマリーブロ
    ックに格納し、 レコードの挿入によりプライマリーブロック中に格納で
    きなくなった場合に、 そのプライマリーブロックに対してオーバーフローブロ
    ックを割り当て、1つのオーバーフローブロックでは格
    納できない場合は更に1つづつオーバーフローブロック
    を割り当て、各々のブロックを連携してレコードを格納
    し、 レコードの追加に対して最終プライマリーブロックに格
    納できないときは、新たなプライマリーブロックを割り
    当てて前記レコードを格納し、 ロケーションテーブルを用いることにより、プライマリ
    ーブロックの位置管理を行い、各々のブロックの物理的
    な位置に関しては何らの制限を受けず配置でき、各々の
    ブロックは予め作成しておく必要が無く、必要に応じて
    作成し、物理的なデータ格納エリアが満杯になるまで作
    成でき、 複数の特定のプライマリーキーの後に、レコード挿入が
    多数行われる型のファイルに対しては、挿入が行われる
    位置で複数のサブレンジに分割し、挿入ではなくレコー
    ド追加とし、オーバーフローレコードの発生を防こと
    を特徴とするデータ格納方法。
  3. 【請求項3】 コンピュータにおけるデータ検索方法に
    おいて、一つのユニークな主キーと、ゼロ個もしくは1個以上の
    ノンユニークな代替キーを持つレコードを主キーの順番
    で1個以上格納できるブロックと、 前記ブロックの記憶装置内での位置を管理するため、前
    記ブロックに付与した番号と前記記憶装置内の物理的位
    置を対応させたロケーションテーブルとを用い、 各々のブロックの物理的な位置に関しては何らの制限を
    受けず配置でき、各々 のブロックは予め作成しておく必
    要がなく、各々のブロックは必要に応じて作成し、物理
    的なデータ格納エリアが満杯になるまで作成でき、 前記ロケーションテーブルは予めレコードの格納予定数
    とブロックの大きさから計算して必要十分な領域を連続
    領域として確保しておき、 当初想定したデータレコードの格納予定数を上回ってデ
    ータレコードの格納がブロックに行われる場合に、ロケ
    ーションテーブルの連続領域が満杯になり、データレコ
    ードの格納が不可能になってしまうときは、更に追加で
    連続領域を追加のロケーションテーブルとして確保を行
    ない、複数の連続領域があたかも1つの連続領域である
    かのように扱うことにより、当初の想定レコード数を超
    える数の格納を行うことができ、 レコードの追加に対しては最終プライマリーブロックに
    格納できないときは、新たなプライマリーブロックを割
    り当ててレコードを格納し、 前記ブロックは、プライマリーブロックとオーバーフロ
    ーブロックで構成し、 前記レコードの挿入時には、前記レコードはまずプライ
    マリーブロックに格納し、前記レコードの格納によりプ
    ライマリーブロック中に格納できなくなったときに、そ
    のプライマリーブロックに対してオーバーフローブロッ
    クを1つ割り当て、その1つのオーバーフローブロック
    では格納できない場合は更に1つのオーバーフローブロ
    ックを割り当て、各々のブロック中でレコードが主キー
    の順に並んでおり、レコードの挿入時に、挿入レコード
    より大きい主キーを持ったレコードの直前を挿入位置と
    し、挿入レコードより後の位置にあるレコードを挿入レ
    コードが入る大きさだけ後方にずらして格納し、 かつ、前記ロケーションテーブルにより前記プライマリ
    ーブロックの記憶装置内の位置管理を行うデータ格納方
    法によって前記記憶装置に格納されたデータを検索する
    方法であって、 前記主キーにより前記ロケーションテーブルをバイナリ
    ー・サーチにより検索し、 目的の主キー値を含むブロックを求め、つぎにブロック
    内のレコードを検索してデータを検索することを特徴と
    するデータ検索方法。
  4. 【請求項4】 コンピュータにおけるデータ検索方法に
    おいて、 代替キーと当該代替キー値のレコードが格納されている
    ブロック番号と当該レコードの主キーとからなるエント
    リーを代替キーの順番に並べて複数格納可能とするとと
    もに、予め同一大きさで必要数を連続して確保できる
    代替キーブロックを使用し、代替キーテーブルのエントリーは代替キーブロック中に
    代替キーの順番で並ぶように格納されており、 同一の代替キーを持つ代替キーテーブルのエントリーは
    同一の代替キーブロックに格納されており、 同一の代替キーを持つエントリーの数が多いかもしくは
    代替キーの挿入により、代替キーブロックに格納できな
    いときに、代替キー・オーバーフロー・ブロックを代替
    キーブロックに追加してエントリーを格納しており、 初期のレコードの数が最終格納予定レコード数に比較し
    て少ない場合は、代替キーブロックと同様な構造を持つ
    プレ代替キーブロックを1段階以上使用でき、 前記 代替キーブロックを、代替キーによりバイナリー・
    サーチで検索し、目的の代替キー値を持つエントリーを
    検出し、そのエントリーから目的のレコードの格納され
    ているブロック番号を得て、その物理ブロックにアクセ
    スし、そのブロック内でエントリー中にある主キーと一
    致するレコードを検索してデータを検索することを特徴
    とするデータ検索方法。
JP21970097A 1997-07-11 1997-07-11 データ格納及び検索方法 Expired - Lifetime JP3345628B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP21970097A JP3345628B2 (ja) 1997-07-11 1997-07-11 データ格納及び検索方法
PCT/JP1998/003067 WO1999003039A1 (fr) 1997-07-11 1998-07-08 Systeme de stockage/recherche de donnees
US09/254,437 US6415375B2 (en) 1997-07-11 1998-07-08 Information storage and retrieval system
EP98931014A EP0923030A4 (en) 1997-07-11 1998-07-08 DATA STORAGE / SEARCH SYSTEM
US10/119,145 US6584555B2 (en) 1997-07-11 2002-04-10 Information storage and retrieval system
US10/390,815 US6654868B2 (en) 1997-07-11 2003-03-17 Information storage and retrieval system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21970097A JP3345628B2 (ja) 1997-07-11 1997-07-11 データ格納及び検索方法

Publications (2)

Publication Number Publication Date
JPH1131096A JPH1131096A (ja) 1999-02-02
JP3345628B2 true JP3345628B2 (ja) 2002-11-18

Family

ID=16739604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21970097A Expired - Lifetime JP3345628B2 (ja) 1997-07-11 1997-07-11 データ格納及び検索方法

Country Status (4)

Country Link
US (3) US6415375B2 (ja)
EP (1) EP0923030A4 (ja)
JP (1) JP3345628B2 (ja)
WO (1) WO1999003039A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004025475A1 (ja) * 2002-09-10 2004-03-25 Annex Systems Incorporated データベースの再編成システム、並びに、データベース
CN111587418A (zh) * 2017-11-13 2020-08-25 维卡艾欧有限公司 分布式存储系统的目录结构

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6444072B1 (en) * 1999-08-11 2002-09-03 Southpac Trust International Process for producing holographic material
AU2001243443A1 (en) 2000-03-09 2001-09-17 The Web Access, Inc. Method and apparatus for performing a research task by interchangeably utilizinga multitude of search methodologies
JP2001356945A (ja) * 2000-04-12 2001-12-26 Anetsukusu Syst Kk データバックアップ・リカバリー方式
US6697797B1 (en) 2000-04-28 2004-02-24 Micro Data Base Systems, Inc. Method and apparatus for tracking data in a database, employing last-known location registers
US8335779B2 (en) * 2002-08-16 2012-12-18 Gamroe Applications, Llc Method and apparatus for gathering, categorizing and parameterizing data
AU2003301358A1 (en) * 2002-10-21 2004-05-04 Annex Systems Incorporated Database accelerator
WO2005086003A1 (ja) * 2004-03-08 2005-09-15 Annex Systems Incorporated データベース・システム
JPWO2005103901A1 (ja) * 2004-04-19 2008-03-13 アネックスシステムズ株式会社 コンピューター・システム
US20060010122A1 (en) * 2004-07-07 2006-01-12 International Business Machines Corporation System and method for improved database table record insertion and reporting
US7965297B2 (en) * 2006-04-17 2011-06-21 Microsoft Corporation Perfect hashing of variably-sized data
US7523288B2 (en) * 2006-09-06 2009-04-21 Microsoft Corporation Dynamic fragment mapping
US7872648B2 (en) * 2007-06-14 2011-01-18 Microsoft Corporation Random-access vector graphics
US9104711B2 (en) * 2008-05-30 2015-08-11 Nec Corporation Database system, method of managing database, and computer-readable storage medium
TWI428023B (zh) * 2008-11-18 2014-02-21 Ind Tech Res Inst 解碼方法及裝置
JP5460486B2 (ja) * 2010-06-23 2014-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーション データをソートする装置及び方法
CN102495836B (zh) * 2011-10-28 2013-07-10 宁波三星电气股份有限公司 累计用电量最后记录的查找方法
US9870416B2 (en) 2014-04-24 2018-01-16 International Business Machines Corporation Method for rebalancing data partitions
US10089342B2 (en) * 2014-07-10 2018-10-02 Sap Se Main memory database management using page index vectors
CN105426408B (zh) * 2015-11-02 2019-03-08 北京锐安科技有限公司 一种多索引的数据处理方法及装置
US20170255565A1 (en) * 2016-03-02 2017-09-07 Intel Corporation Method and apparatus for providing a contiguously addressable memory region by remapping an address space
US20210326271A1 (en) * 2020-04-18 2021-10-21 International Business Machines Corporation Stale data recovery using virtual storage metadata

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4571700A (en) * 1983-06-16 1986-02-18 International Business Machines Corporation Page indexing system for accessing sequentially stored data representing a multi-page document
US5842224A (en) * 1989-06-16 1998-11-24 Fenner; Peter R. Method and apparatus for source filtering data packets between networks of differing media
US5860136A (en) * 1989-06-16 1999-01-12 Fenner; Peter R. Method and apparatus for use of associated memory with large key spaces
US5490258A (en) * 1991-07-29 1996-02-06 Fenner; Peter R. Associative memory for very large key spaces
EP0410210A3 (en) * 1989-07-24 1993-03-17 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
US5555388A (en) * 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5826076A (en) * 1994-05-13 1998-10-20 Liant Software Corporation Computer-based information access method and apparatus to permit SQL-based manipulation of programming language-specific data files
JP3371044B2 (ja) * 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US5613110A (en) * 1995-01-05 1997-03-18 International Business Machines Corporation Indexing method and apparatus facilitating a binary search of digital data
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6212647B1 (en) * 1998-06-02 2001-04-03 Hewlett-Packard Company Systems and methods to perform defect management to block addressable storage media
US6401160B1 (en) * 1999-03-31 2002-06-04 Intel Corporation Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jeffrey D.Ullman 著、國井 外1名訳,データベース・システムの原理,日本,日本コンピュータ協会,1985年5月25日,第1版,45−71
Michael J.Folk 外1名著/楠本 博之 外3名訳,bit別冊 ファイル構造,日本,共立出版株式会社,1997年6月5日,169−191
Samuel J.Leffler 外3名著/中村 明 外3名訳,UNIX4.3BSDの設計と実装,日本,丸善株式会社,1991年6月30日,193−222

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004025475A1 (ja) * 2002-09-10 2004-03-25 Annex Systems Incorporated データベースの再編成システム、並びに、データベース
CN111587418A (zh) * 2017-11-13 2020-08-25 维卡艾欧有限公司 分布式存储系统的目录结构
CN111587418B (zh) * 2017-11-13 2024-02-20 维卡艾欧有限公司 分布式存储系统的目录结构

Also Published As

Publication number Publication date
US6584555B2 (en) 2003-06-24
US20010011321A1 (en) 2001-08-02
US20030159015A1 (en) 2003-08-21
US20020133686A1 (en) 2002-09-19
EP0923030A4 (en) 2002-05-02
US6415375B2 (en) 2002-07-02
JPH1131096A (ja) 1999-02-02
EP0923030A1 (en) 1999-06-16
WO1999003039A1 (fr) 1999-01-21
US6654868B2 (en) 2003-11-25

Similar Documents

Publication Publication Date Title
JP3345628B2 (ja) データ格納及び検索方法
US6516320B1 (en) Tiered hashing for data access
US5930805A (en) Storage and retrieval of ordered sets of keys in a compact 0-complete tree
US7590652B2 (en) Systems and methods of reverse lookup
US20060106835A1 (en) Database utilities
CN109445702B (zh) 一种块级数据去重存储系统
EP1934700A2 (en) Database heap management system with variable page size and fixed instruction set address resolution
US20120042146A1 (en) Device and method for storage, retrieval, relocation, insertion or removal of data in storage units
US7464100B2 (en) Reorganization-free mapping of objects in databases using a mapping chain
Lomet Bounded index exponential hashing
Otoo et al. A mapping function for the directory of a multidimensional extendible hashing
KR100907477B1 (ko) 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
US20110099347A1 (en) Managing allocation and deallocation of storage for data objects
US20100010996A1 (en) Method for the allocation of data on physical media by a file system that eliminates duplicate data
JP2000181768A (ja) デ―タ格納検索方式
WO2015129109A1 (ja) インデックス管理装置
CA2439243C (en) Organising data in a database
US9824105B2 (en) Adaptive probabilistic indexing with skip lists
US20020165625A1 (en) Method, computer program product, and system for file and record selection utilizing a fuzzy data record pointer
WO2001025962A1 (en) Database organization for increasing performance by splitting tables
Chung Indexed extendible hashing
CN116737664B (zh) 一种面向对象的嵌入式数据库高效索引组织方法
Zhang Towards Space-Efficient High-Performance In-Memory Search Structures
Boucetta et al. LHFTL: A novel SSD performance optimisation approach using the LH index
KR970002416B1 (ko) 고성능 자료검색을 위한 확장 버켓사슬 해쉬 구조

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110906

Year of fee payment: 9

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110906

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120906

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120906

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130906

Year of fee payment: 11

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term