JPH05143644A - 索引部管理方式 - Google Patents

索引部管理方式

Info

Publication number
JPH05143644A
JPH05143644A JP3326874A JP32687491A JPH05143644A JP H05143644 A JPH05143644 A JP H05143644A JP 3326874 A JP3326874 A JP 3326874A JP 32687491 A JP32687491 A JP 32687491A JP H05143644 A JPH05143644 A JP H05143644A
Authority
JP
Japan
Prior art keywords
index
record
block
key value
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3326874A
Other languages
English (en)
Inventor
Hirobumi Komiyama
博文 小見山
Itomi Matsushima
いとみ 松嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
NEC Solution Innovators Ltd
Original Assignee
NEC Corp
NEC Solution Innovators Ltd
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 NEC Corp, NEC Solution Innovators Ltd filed Critical NEC Corp
Priority to JP3326874A priority Critical patent/JPH05143644A/ja
Publication of JPH05143644A publication Critical patent/JPH05143644A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 データレコードの削除時の処理速度の向上を
図り、複数のプロセスが同時実行される環境におけるブ
ロック排他制御による待ち時間を減少させる。 【構成】 データレコード中に1つ以上のキー項目を有
し、各キー項目について複数の索引ブロックから構成さ
れる木構造の索引が設けられたファイル14において、
データレコードの削除により索引ブロックの上下関係を
示すチェインに変更が生じる場合に、チェインの変更が
上位の索引ブロックに伝染しないように、ファイルアク
セス制御部6の索引部無変更手段12が索引レコードの
キー値の変更を行わないように制御する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はファイルの索引部管理方
式に関するものである。
【0002】
【従来の技術】多数のデータレコードを保持するファイ
ルでは、データレコードの検索を容易にするため、デー
タレコード中の所定の項目をキー項目とし、そのキー値
をもとにして構成した木構造の索引を設けている。な
お、一般には、データレコード中に複数のキー項目を有
し、各キー項目について索引が設けられている。
【0003】図4は索引部格納領域17内に形成され
た、1つのキー項目に関する索引の例を示したものであ
る。なお、図4は発明の実施例の動作説明においても使
用する。
【0004】図4において、B1〜B19は索引ブロッ
クであり、ここではそれぞれの索引ブロックB1〜B1
9に3個の索引レコードが格納可能となっている。な
お、索引レコード内の数字はキー値を示しており、キー
値が示されていない索引レコードは空きとなっているこ
とを示している。索引ブロックB1,B2,B4,B1
0におけるMINは最小値を示している。また、索引ブ
ロック内ではキー値の順に索引レコードが並んでいる。
【0005】矢印を伴った細線は上下の索引ブロック間
のポインタを示しており、上位の索引ブロック内の各索
引レコードは下位の索引ブロックの先頭である最小値の
索引レコードをポイントするようになっている。なお、
索引ブロックB10〜B19は最下位の索引ブロックで
あり、これらの索引ブロックB10〜B19に含まれる
索引レコードは対応するキー値を持つデータレコードを
ポイントするようになっている。
【0006】今、例えば、キー値「310」のデータレ
コードにアクセスしたい場合には、先ず、最上位の索引
ブロックB1を参照し、目標となるキー値「310」と
同じかそれよりも小さく最も近いキー値を持つ索引レコ
ードとしてキー値「270」の索引レコードのポインタ
を辿り、索引ブロックB3を参照する。同様に、索引ブ
ロックB7,B14を参照し、キー値「310」の索引
レコードを参照し、そのポインタから所望のデータレコ
ードにアクセスする。
【0007】また、データレコードの削除,追加,更新
が行われた場合には、その状態を索引に反映させるため
に索引の更新・再編成が行われる。
【0008】
【発明が解決しようとする課題】上述したように、従来
の索引を有したファイルでは、データレコードの削除等
が行われた場合、索引の更新・再編成がその都度に行わ
れていたが、これに起因して処理速度が遅くなり、個々
の処理の効率が悪いと共に、複数のプロセスが同時実行
する環境においては同一ファイルに対してアクセスしよ
うとする他のプロセスがブロック排他制御により長い時
間待たされるという不都合があった。
【0009】すなわち、あるデータレコードを削除した
場合に、そのデータレコードに対応する索引レコードが
索引ブロック内の最小値であった場合、その上位の索引
ブロックの索引レコードにも影響が及ぶことになり、更
にその索引レコードが索引ブロック内の最小値であった
場合には更に上位へと伝染して行く。そして、一般に索
引部はデータ部とともにアクセス速度の遅い補助記憶装
置上に設けられているため、その入出力回数が増えるこ
とにより処理速度が大幅に増大することになる。
【0010】例えば、図4において、キー値「270」
のデータレコードを削除した場合、索引ブロックB1
3,B7,B3,B1と、最下位から最上位までの索引
ブロックに更新を行う必要が出てくる。このような状況
は、大量のデータレコードをキー値の小さい順に削除し
た場合等には繰り返し生ずることとなり、索引部管理の
ために要する処理時間は無視できなくなる。
【0011】また、ファイル内のデータレコードの件数
が多い場合や、キー値があまり重複しないような場合に
は、索引ブロックが多段となり、入出力回数の増大によ
って処理時間は更に増大することとなる。
【0012】本発明は上記の点に鑑み提案されたもので
あり、その目的とするところは、データレコードの削除
時に索引部の更新をできるだけ行わないようにすること
により、処理速度の向上を図ることのできる索引部管理
方式を提供することにある。
【0013】
【課題を解決するための手段】本発明は上記の目的を達
成するため、データレコード中に1つ以上のキー項目を
有し、各キー項目について複数の索引ブロックから構成
される木構造の索引が設けられたファイルにおける索引
部管理方式において、データレコードの削除により索引
ブロックの上下関係を示すチェインに変更が生じる場合
に、チェインの変更が上位の索引ブロックに伝染しない
ように索引レコードのキー値の変更を行わないように制
御する索引部無変更手段を備えるようにしている。
【0014】
【作用】本発明の索引部管理方式にあっては、データレ
コード中に1つ以上のキー項目を有し、各キー項目につ
いて複数の索引ブロックから構成される木構造の索引が
設けられたファイルにおいて、データレコードの削除に
より索引ブロックの上下関係を示すチェインに変更が生
じる場合に、チェインの変更が上位の索引ブロックに伝
染しないように索引部無変更手段が索引レコードのキー
値の変更を行わないように制御する。
【0015】
【実施例】以下、本発明の実施例につき図面を参照して
説明する。
【0016】図1は本発明の索引部管理方式の一実施例
を示す構成図である。
【0017】図1において、本実施例の機能部は主記憶
装置1上のプロセスとして実現されるファイルアクセス
制御部6内のデータ部更新手段7と索引部更新手段8と
索引部検索手段9と比較検索手段10と索引部再編成手
段11と索引部無変更手段12とである。
【0018】また、補助記憶装置13にはファイル14
が格納され、ファイル14内にはデータ部15と索引部
16とが設けられている。
【0019】そして、ファイルアクセス制御部6はプロ
セス2〜5からなされるデータレコードの読込要求,追
加要求,削除要求,書換要求に応じてファイル14のデ
ータ部15および索引部16に対して所定の処理を行
う。
【0020】図2はファイル14のデータ部15および
索引部16の構成を示したものであり、データ部15に
は複数のデータレコードRが格納され、データレコード
R内のいくつかの項目は索引のためのキー項目として指
定されている。
【0021】また、索引部16はキー項目毎に索引部格
納領域17が設けられ、それぞれの索引部格納領域17
では複数の索引ブロックBの木構造による索引が形成さ
れている。
【0022】以下、上記の実施例の動作につき、場合を
分けて説明する。
【0023】(1)データレコードの削除時 図1において、データレコードの削除はプロセス4から
の削除要求に応じてファイルアクセス制御部6のデータ
部更新手段7が行い、データ部15の変更に索引部16
の内容を合わせるために、索引部更新手段8が索引部検
索手段9,比較検索手段10,索引部再編成手段11,
索引部無変更手段12を適宜に用いて索引の更新・再編
成を行う。以下では、索引部16の索引部格納領域17
内の状態の変化を中心に処理を具体的に説明する。
【0024】先ず、ある時点の索引部格納領域17内の
索引の状態が図4のようであったとする。
【0025】図4において、B1〜B19は索引ブロッ
クであり、ここではそれぞれの索引ブロックB1〜B1
9に3個の索引レコードが格納可能となっている。な
お、索引レコード内の数字はキー値を示しており、キー
値が示されていない索引レコードは空きとなっているこ
とを示している。索引ブロックB1,B2,B4,B1
0におけるMINは最小値を示している。また、索引ブ
ロック内ではキー値の順に索引レコードが並んでいる。
【0026】矢印を伴った細線は上下の索引ブロック間
のポインタを示しており、上位の索引ブロック内の各索
引レコードは下位の索引ブロックの先頭である最小値の
索引レコードをポイントするようになっている。なお、
索引ブロックB10〜B19は最下位の索引ブロックで
あり、これらの索引ブロックB10〜B19に含まれる
索引レコードは対応するキー値を持つデータレコードを
ポイントするようになっている。
【0027】今、図4の状態において、索引ブロックB
13のキー値「270」に対応するデータレコード(図
示せず)が削除されたとすると、索引ブロックB13の
キー値「270」の索引レコードを削除もしくは無効化
する。これにより、索引ブロックB13の実質的な最小
キー値は「280」に変わる。
【0028】従来であれば、索引ブロックB13の最小
キー値が変わったことにより、上位の索引ブロックB7
のキー値「270」の索引レコードのキー値にも更新が
行われたが、本発明にあっては、上位の索引ブロックに
更新が連鎖しないように、上位の索引ブロックB7の最
小キー値「270」の索引レコードに更新は行わない。
この制御は索引部無変更手段12が行う。
【0029】次いで、索引ブロックB13のキー値「2
80」に対応するデータレコードが削除されたとする
と、索引ブロックB13のキー値「280」の索引レコ
ードの削除だけを行う。
【0030】次いで、索引ブロックB13のキー値「2
90」に対応するデータレコードが削除されたとする
と、索引ブロックB13のキー値「290」の索引レコ
ードの削除を行う。これにより索引ブロックB13は有
効な索引レコードが存在しなくなるので、索引ブロック
B13自体を削除する。この場合も上位の索引ブロック
B7の最小キー値「270」は変更しない。
【0031】ただし、このままでは索引ブロックB7の
キー値「270」の索引レコードのポインタが不都合を
きたすので、続く索引ブロックB14をポイントするよ
うにポインタを変更し、それまで索引ブロックB14を
ポイントしていた索引ブロックB7のキー値「300」
の索引レコードを削除する。
【0032】次いで、索引ブロックB14のキー値「3
00」,「310」,「320」に対応するデータレコ
ードが削除されたとすると、上述したのと同様の処理と
なるが、索引ブロックB14自体の削除により索引ブロ
ックB7でポイントするものがなくなるので、索引ブロ
ックB7自体も削除する。また、索引ブロックB7の削
除に伴い、索引ブロックB3についてもポインタの変更
および索引レコードの削除を行う。
【0033】この状態を示したのが図5である。網かけ
で示した索引ブロックB7,B13,B14および索引
ブロックB3の索引レコードは削除されたことを示して
いる。
【0034】(2)データレコードの追加時 図1において、データレコードの追加はプロセス3から
の追加要求に応じてファイルアクセス制御部6のデータ
部更新手段7が行い、データ部15の変更に索引部16
の内容を合わせるために、索引部更新手段8が索引部検
索手段9,比較検索手段10,索引部再編成手段11を
適宜に用いて索引の更新・再編成を行う。以下では、索
引部16の索引部格納領域17内の状態の変化を中心に
処理を説明する。
【0035】先ず、ある時点の索引部格納領域17内の
索引の状態が図5のようであったとする。
【0036】今、例えば、キー値「355」のデータレ
コードが追加されたとすると、対応する新たな索引レコ
ードを追加する必要があるが、索引ブロックB15には
空き領域がないため、索引ブロックの分割処理を行う。
【0037】図3は索引ブロックの分割処理のフローチ
ャートを示したものであり、上記の例につき、図3を参
照して説明する。
【0038】先ず、分割点を求め、索引ブロックを分割
する(ステップS1)。今の例では、索引ブロックB1
5のキー値「360」の索引レコードとキー値「37
0」の索引レコードとの間で分割するものとし、新たに
生成した索引ブロックB20(図6参照)にキー値「3
60」の索引レコードを移し、分割前の索引ブロックB
15にキー値「370」,「380」の索引レコードを
残す。なお、この時点では新たに生成した索引ブロック
B20へ新たなデータレコードに対応する索引レコード
の追加は行わず、分割処理が完了した後に行う。
【0039】次いで、分割前の索引ブロックの上位の索
引ブロックの自己をポイントする索引レコードを求める
(ステップS2)。今の例では、索引ブロックB8のキ
ー値「360」の索引レコードを特定する。
【0040】次いで、分割前の索引ブロックの上位の索
引レコードがブロック内最小値であるか否かを判断する
(ステップS3)。今の例では、索引ブロックB8のキ
ー値「360」の索引レコードはブロック内最小値であ
ると判断する。
【0041】次いで、ブロック内最小値であると判断し
た場合には、上位の索引レコードのキー値と、分割前の
索引ブロックのその時点での最小値との大小を比較判断
する(ステップS4)。今の例では、キー値「360」
とキー値「370」とを比較することになり、上位の索
引レコードの側が小さいと判断する。
【0042】次いで、上位の索引レコードの側が小さい
と判断した場合には、上位の索引レコードのキー値を分
割前の索引ブロックのその時点での最小値に変更する
(ステップS5)。今の例では、索引ブロックB8のキ
ー値「360」を「370」に変更する。
【0043】次いで、上位の索引ブロックに、分割後の
新たな索引ブロックをポイントする索引レコードを追加
する(ステップS6)。今の例では、索引ブロックB8
の先頭に索引ブロックB20をポイントするキー値「3
60」の索引レコードを追加する。
【0044】その後、分割後の新たな索引ブロックB2
0に、追加したデータレコードのキー値「355」を追
加する。
【0045】この状態を示したのが図6である。
【0046】なお、図3において、ステップS3,S4
において終了の側に分岐した場合は、通常の追加処理と
同様になり、分割前の索引ブロックの上位の索引レコー
ドについて変更は行われず、新たに生成した索引ブロッ
クをポイントする索引レコードが追加されることにな
る。
【0047】(3)データレコードの検索時 図1において、データレコードの検索はプロセス2から
の読込要求等(追加,削除,書換等においても検索が必
要となる。)に応じてファイルアクセス制御部6の索引
部検索手段9,比較検索手段10が行う。以下では、索
引部16の索引部格納領域17内の状態の変化を中心に
処理を説明する。
【0048】先ず、ある時点の索引部格納領域17内の
索引の状態が図6のようであったとする。
【0049】今、例えば、キー値「355」のデータレ
コードを取得するために索引を検索する場合、最上位の
索引ブロックB1から索引ブロックB3,B8と辿って
行くが、索引ブロックB8の最小値は「360」であっ
て目標とするキー値「355」より大きいものであるた
め、原則通りの検索では行き止まってしまうことにな
る。
【0050】従って、この場合は行き止まった時点で判
断対象となったカレントの索引レコードを辿るようにす
る。より一般的に言えば、 原則的な検索ルールでは目標とするキー値の索引レコ
ードが見つからない カレントの索引レコードが索引ブロック内の最小値で
ある カレントの索引レコードのキー値が目標とするキー値
よりも大きい の3条件が満たされた場合には、カレントの索引レコー
ドを辿るようにする。
【0051】図6の例では、索引ブロックB8のキー値
「360」の索引レコードがカレントの索引レコードと
なるため、これを辿って索引ブロックB20を参照する
ことにより、キー値「355」の索引レコードを発見す
ることができ、そのポインタからデータレコードにアク
セスすることが可能となる。
【0052】
【発明の効果】以上説明したように、本発明の索引部管
理方式にあっては、次のような効果がある。
【0053】データレコードが削除されたことによ
り、従来であれば上位の索引ブロックまで更新すべき場
合が生じていたものが、できるだけ上位に伝染しないよ
うに、索引レコードのキー値の変更を行わないように制
御されるため、補助記憶装置上の索引部との入出力の回
数が大幅に減少でき、処理に要する時間を短縮すること
ができる。
【0054】複数のプロセスが同時実行される環境で
は、同一ファイルに対するアクセスがブロック排他制御
により待たされる場合が減少し、システムの効率を高め
ることができる。
【図面の簡単な説明】
【図1】本発明の索引部管理方式の一実施例を示す構成
図である。
【図2】図1における補助記憶装置内の詳細図である。
【図3】索引ブロックの分割処理を示すフローチャート
である。
【図4】索引ブロックにより構成される索引の例を示す
図である。
【図5】索引ブロックにより構成される索引の例を示す
図である。
【図6】索引ブロックにより構成される索引の例を示す
図である。
【符号の説明】
1……………………主記憶装置 2〜5………………プロセス 6……………………ファイルアクセス制御部 7……………………データ部更新手段 8……………………索引部更新手段 9……………………索引部検索手段 10…………………比較検索手段 11…………………索引部再編成手段 12…………………索引部無変更手段 13…………………補助記憶装置 14…………………ファイル 15…………………データ部 16…………………索引部 17…………………索引部格納領域 R……………………データレコード B,B1〜B20…索引ブロック

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 データレコード中に1つ以上のキー項目
    を有し、各キー項目について複数の索引ブロックから構
    成される木構造の索引が設けられたファイルにおける索
    引部管理方式において、 データレコードの削除により索引ブロックの上下関係を
    示すチェインに変更が生じる場合に、チェインの変更が
    上位の索引ブロックに伝染しないように索引レコードの
    キー値の変更を行わないように制御する索引部無変更手
    段を備えたことを特徴とする索引部管理方式。
JP3326874A 1991-11-15 1991-11-15 索引部管理方式 Pending JPH05143644A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3326874A JPH05143644A (ja) 1991-11-15 1991-11-15 索引部管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3326874A JPH05143644A (ja) 1991-11-15 1991-11-15 索引部管理方式

Publications (1)

Publication Number Publication Date
JPH05143644A true JPH05143644A (ja) 1993-06-11

Family

ID=18192701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3326874A Pending JPH05143644A (ja) 1991-11-15 1991-11-15 索引部管理方式

Country Status (1)

Country Link
JP (1) JPH05143644A (ja)

Similar Documents

Publication Publication Date Title
CN1020014C (zh) 快速开启由路径名识别的磁盘文件的方法
US4476528A (en) Method and apparatus for controlling a data access in a data base management system
KR100398753B1 (ko) 효과적인 파일 갱신 처리 및 복구 처리를 이용하는트랜잭션 처리 시스템
US6049804A (en) Method and apparatus for segmenting a database
CN105975587B (zh) 一种高性能的内存数据库索引组织与访问方法
JPH0675265B2 (ja) 情報検索方法及びシステム
US6745198B1 (en) Parallel spatial join index
US8682872B2 (en) Index page split avoidance with mass insert processing
JPH10260876A (ja) データベースのデータ構造及びデータベースのデータ処理方法
JPH05143644A (ja) 索引部管理方式
US5953715A (en) Utilizing pseudotables as a method and mechanism providing database monitor information
JPH06215037A (ja) インデックスの自動更新装置
JPH09305622A (ja) 文書検索機能を有するデータベース管理方法およびシステム
JP2675958B2 (ja) 情報検索用計算機システム及びその記憶装置の動作方法
JPH08255103A (ja) ファイル管理方法及びファイル管理装置
EA005269B1 (ru) Способ организации и хранения данных в базе данных и база данных
CN109885579B (zh) 基于分层计数的datalog并行增量维持方法
CN113779024B (zh) 一种面向近数据处理架构下键值存储***的异步并行优化方法
JPS62287350A (ja) インデツクス一括更新方式
Deppisch et al. Managing complex objects in the Darmstadt database kernel system
CN117573634A (zh) 一种基于多日志结构合并树的键值存储方法
CN116881243A (zh) 基于时间序列数据特征的学习型索引方法及***
JPS62131349A (ja) デ−タベ−ス処理方式
JPH0225946A (ja) ファイル管理装置
CN117389950A (zh) 基于学习索引的lsm树层设计方法及***