JPH0283640A - データベース更新方法 - Google Patents
データベース更新方法Info
- Publication number
- JPH0283640A JPH0283640A JP63237134A JP23713488A JPH0283640A JP H0283640 A JPH0283640 A JP H0283640A JP 63237134 A JP63237134 A JP 63237134A JP 23713488 A JP23713488 A JP 23713488A JP H0283640 A JPH0283640 A JP H0283640A
- Authority
- JP
- Japan
- Prior art keywords
- entry
- page
- leaf
- deleted
- root
- 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
- 238000000034 method Methods 0.000 title claims description 27
- 238000012545 processing Methods 0.000 abstract description 17
- 238000012217 deletion Methods 0.000 abstract description 5
- 230000037430 deletion Effects 0.000 abstract description 5
- 238000012423 maintenance Methods 0.000 abstract description 3
- 239000000872 buffer Substances 0.000 description 84
- 241000269417 Bufo Species 0.000 description 39
- 230000000694 effects Effects 0.000 description 5
- 230000001154 acute effect Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 101100343607 Arabidopsis thaliana LOG3 gene Proteins 0.000 description 1
- 101001059353 Homo sapiens Methionyl-tRNA formyltransferase, mitochondrial Proteins 0.000 description 1
- 101150083341 LOG2 gene Proteins 0.000 description 1
- 102100028928 Methionyl-tRNA formyltransferase, mitochondrial Human genes 0.000 description 1
- 101100524516 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RFA2 gene Proteins 0.000 description 1
- 229920006233 biaxially oriented polyamide Polymers 0.000 description 1
- 235000002020 sage Nutrition 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
以下の順序で本発明を説明する。
A産業上の利用分野
B発明の概要
C従来の技術(第6図及び第7図)
D発明が解決しようとする問題点(第6図及び第7図)
E問題点を解決するための手段(第1図〜第;3図)F
作用(第1図〜第3図) G実施例(第1図〜第6図) H発明の効果 A産業上の利用分野 本発明はデータベース更新方法に関し、特にB”−tr
ee構造のデータベース索引を更新する際に適用して好
適なものである。
作用(第1図〜第3図) G実施例(第1図〜第6図) H発明の効果 A産業上の利用分野 本発明はデータベース更新方法に関し、特にB”−tr
ee構造のデータベース索引を更新する際に適用して好
適なものである。
B発明の概要
本発明は、B・−tree構造のデータベース索引を削
除するデータベース更新方法において、削除すベきエン
トリのキーによる探索時に、根からの探索濯歴をメモリ
上に記録すると共に、根から探索して最初に到達した葉
に削除すべきエントリが存在しない場合、後続ポインタ
又は先行ポインタを参照して、削除すべきエントリと同
しエントリが存在する後続又は先行の葉を探索し、その
エントリと最初に到達した葉内の任意のエントリを交換
した後、最初に到達した葉内で削除すべきエントリを削
除するようにしたことにより、最初に到達した葉に削除
すべきエントリが存在しない場合にも、葉から節又は根
に戻ることなくエントリを削除し得る。
除するデータベース更新方法において、削除すベきエン
トリのキーによる探索時に、根からの探索濯歴をメモリ
上に記録すると共に、根から探索して最初に到達した葉
に削除すべきエントリが存在しない場合、後続ポインタ
又は先行ポインタを参照して、削除すべきエントリと同
しエントリが存在する後続又は先行の葉を探索し、その
エントリと最初に到達した葉内の任意のエントリを交換
した後、最初に到達した葉内で削除すべきエントリを削
除するようにしたことにより、最初に到達した葉に削除
すべきエントリが存在しない場合にも、葉から節又は根
に戻ることなくエントリを削除し得る。
C従来の技術
従来データベースの検索、更新等のデータベースアクセ
ス処理においては、その高速化のためB”−tree構
造でなるデータベース索引を設け、これを利用して検索
、更新等のアクセス処理を行うものが用いられている。
ス処理においては、その高速化のためB”−tree構
造でなるデータベース索引を設け、これを利用して検索
、更新等のアクセス処理を行うものが用いられている。
この3’−tree構造のデータベース索引は、いわゆ
るB −tree構造のデータベース索引に加えて、キ
ーとレコード本体とを分離し、すべてのキーに節又は葉
を持たせ、その節又は葉内の最大キーを親節(又は根)
内に重複させると共に、同一レベルの節又は葉同士をポ
インタでリンクするようになされている。
るB −tree構造のデータベース索引に加えて、キ
ーとレコード本体とを分離し、すべてのキーに節又は葉
を持たせ、その節又は葉内の最大キーを親節(又は根)
内に重複させると共に、同一レベルの節又は葉同士をポ
インタでリンクするようになされている。
すなわち、例えば人名データベースに設けられたB”−
tree構造のデータベース索引は、第5図に示すよう
に、根ROOT、節N0DE及び葉LEAFの3階層か
ら構成されている。
tree構造のデータベース索引は、第5図に示すよう
に、根ROOT、節N0DE及び葉LEAFの3階層か
ら構成されている。
この根ROOT、節N0DE及び葉LEAFは、それぞ
れページと呼ばれる磁気ディスク装置の任意の1アクセ
ス単位でなり、第7図に示すように、葉LEAFの場合
、このページフォーマットFMTOのページタイプエリ
アARTYPには「葉」を表す識別子が記憶されており
、次の現在のエントリー数エリアARENアには、現在
この葉1− E A Fに登録されているキーKEY
i及びポインタPNTiでなるエントリENTi (
i=l、2.3)の数が記憶され、また親ページエリア
ARPAえ、先行ページエリアA、RPRE及び後続ペ
ージエリアARNXTには、それぞれ親となる節N0D
Eのページ番号、先行する葉LEAF及び後続の葉LE
AFのページ番号が記憶され、さらに続く記録エリアA
R*Ecには、キーKEYiとしての「人名」及びその
キーKEY iに対応するデータが記録された磁気ディ
スク装置上のレコード番号でなるポインタPNTiがエ
ントリE N T iとして記録されている。
れページと呼ばれる磁気ディスク装置の任意の1アクセ
ス単位でなり、第7図に示すように、葉LEAFの場合
、このページフォーマットFMTOのページタイプエリ
アARTYPには「葉」を表す識別子が記憶されており
、次の現在のエントリー数エリアARENアには、現在
この葉1− E A Fに登録されているキーKEY
i及びポインタPNTiでなるエントリENTi (
i=l、2.3)の数が記憶され、また親ページエリア
ARPAえ、先行ページエリアA、RPRE及び後続ペ
ージエリアARNXTには、それぞれ親となる節N0D
Eのページ番号、先行する葉LEAF及び後続の葉LE
AFのページ番号が記憶され、さらに続く記録エリアA
R*Ecには、キーKEYiとしての「人名」及びその
キーKEY iに対応するデータが記録された磁気ディ
スク装置上のレコード番号でなるポインタPNTiがエ
ントリE N T iとして記録されている。
また節N0DEの場合、ページフォーマットFMTOの
ページタイプエリアARtypには[節Jを表す識別子
が記憶されており、次の現在のエントリー数エリアA
Rt、Irには、現在この節N0DEに登録されている
キーKEYi及びポインタPNTiでなるエントリEN
Ti (i=l、2.3)の数が記憶され、また親ベ
ージエリアARPA11、先行ページエリアAR,□及
び後続ページエリアARNXTには、それぞれ親節(こ
の場合は根ROOT)のページ番号、先行する節N0D
E及び後続の節N0DEのページ番号が記憶され、さら
に続く記録エリアARIIECには、ポインタP N
’Fiとして葉L E A Fのページ番号が複数記録
されると共に、それぞれのM L r= A F内の最
大の「人名JがキーKEYiとして記録されている。
ページタイプエリアARtypには[節Jを表す識別子
が記憶されており、次の現在のエントリー数エリアA
Rt、Irには、現在この節N0DEに登録されている
キーKEYi及びポインタPNTiでなるエントリEN
Ti (i=l、2.3)の数が記憶され、また親ベ
ージエリアARPA11、先行ページエリアAR,□及
び後続ページエリアARNXTには、それぞれ親節(こ
の場合は根ROOT)のページ番号、先行する節N0D
E及び後続の節N0DEのページ番号が記憶され、さら
に続く記録エリアARIIECには、ポインタP N
’Fiとして葉L E A Fのページ番号が複数記録
されると共に、それぞれのM L r= A F内の最
大の「人名JがキーKEYiとして記録されている。
またさらに根ROOTの場合、ページフォーマントFM
TOのページタイプエリアARtyrには「根」を表す
識別子が記憶されており、次の現在のエントリー数エリ
アARtsrには、現在この根ROOTに登録されてい
るキーKEYi及びポインタPNTiでなるエントリE
NTi (i=1.2.3)の数が記憶され、また親
ページエリアARPAll、先行ページエリアARP)
I2及び後続ページエリアARNXTは空白となされ、
さらに続く記録エリアAR□。には、ポインタ))NT
iとして節N0DEのページ番号が複数記録されると共
に、それぞれの節N0DE内の最大の「人名JがキーK
EYiとして複数記録されている。
TOのページタイプエリアARtyrには「根」を表す
識別子が記憶されており、次の現在のエントリー数エリ
アARtsrには、現在この根ROOTに登録されてい
るキーKEYi及びポインタPNTiでなるエントリE
NTi (i=1.2.3)の数が記憶され、また親
ページエリアARPAll、先行ページエリアARP)
I2及び後続ページエリアARNXTは空白となされ、
さらに続く記録エリアAR□。には、ポインタ))NT
iとして節N0DEのページ番号が複数記録されると共
に、それぞれの節N0DE内の最大の「人名JがキーK
EYiとして複数記録されている。
なお根ROOTから節N0DE及び節N0DEから葉L
E A Fに向かうポインタPNTiは、いわゆるデ
ータベースの検索処理に用いられている。
E A Fに向かうポインタPNTiは、いわゆるデ
ータベースの検索処理に用いられている。
これに対して例えば後続ベージエリアARNKTに記憶
されている後続の節N0DE (又は葉LEAF)のベ
ージ番号は、先頭節N0DE (又は葉LEAF)から
順に後続する節N0DE (又は葉LEAF)のページ
番号を辿ることにより、鋭部N0DP、(又は根ROO
T)に戻ることなく、同一階層の節N0DE (又は葉
LEAF)を順次アクセスし得るようになされ、同様に
先行ベージエリアARp*tに記憶されている先行する
節N0DE(又は葉LEAF)のページ番号を用いれば
、逆順に順次アクセスし得るようになされている。
されている後続の節N0DE (又は葉LEAF)のベ
ージ番号は、先頭節N0DE (又は葉LEAF)から
順に後続する節N0DE (又は葉LEAF)のページ
番号を辿ることにより、鋭部N0DP、(又は根ROO
T)に戻ることなく、同一階層の節N0DE (又は葉
LEAF)を順次アクセスし得るようになされ、同様に
先行ベージエリアARp*tに記憶されている先行する
節N0DE(又は葉LEAF)のページ番号を用いれば
、逆順に順次アクセスし得るようになされている。
また親ページエリアARPAIに記憶されている鋭部N
0DE (又は根ROOT)のページ番号(すなわち節
N0DEから根ROOT及び葉LEAFから節N0DE
に向かうポインタ)は、データベース索引の関係を保守
しデータヘースの更新処理に用いられている。
0DE (又は根ROOT)のページ番号(すなわち節
N0DEから根ROOT及び葉LEAFから節N0DE
に向かうポインタ)は、データベース索引の関係を保守
しデータヘースの更新処理に用いられている。
D発明が解決しようとする問題点
ところが、この鋭部N0DE (又は根ROOT)のペ
ージ番号を用いてデータヘースの更新処理、特にエント
リENTi(キーKEYi及びポインタPN’riの組
み合わせでなる)を削除するとき(すなわち無効な状態
にするとき)、磁気ディスク装置に対して数多くのディ
スクアクセスが発生するという問題がある。
ージ番号を用いてデータヘースの更新処理、特にエント
リENTi(キーKEYi及びポインタPN’riの組
み合わせでなる)を削除するとき(すなわち無効な状態
にするとき)、磁気ディスク装置に対して数多くのディ
スクアクセスが発生するという問題がある。
すなわち、人名データベースに設けられたB’−tre
e構造のデータベース索引(第5図)においては、例え
ばエントリENTiの削除によって、葉LEAFを構成
する第6のベージP6が削除された場合を考えると、節
N0DEを構成する第3のベージP3は、そのエントリ
ENTiが半分以下になるため、節N0DEを構成する
第4のベージP4に併合される。
e構造のデータベース索引(第5図)においては、例え
ばエントリENTiの削除によって、葉LEAFを構成
する第6のベージP6が削除された場合を考えると、節
N0DEを構成する第3のベージP3は、そのエントリ
ENTiが半分以下になるため、節N0DEを構成する
第4のベージP4に併合される。
このとき、葉L E A Fを構成する第7のベージP
7は、鋭部N 01) Eが第3のベージP3であるた
め、その鋭部N OD Eを第3のベージP3から第4
のベージP4に更新する必要がある。
7は、鋭部N 01) Eが第3のベージP3であるた
め、その鋭部N OD Eを第3のベージP3から第4
のベージP4に更新する必要がある。
従って、この更新においては、磁気ディスク装置から節
N0DE又は葉I−E A Fを構成する複数ベージの
読み出しと書き込みが発生し、この結果データベース索
引の更新効率が著しく劣化することを避は得ないという
問題があった。
N0DE又は葉I−E A Fを構成する複数ベージの
読み出しと書き込みが発生し、この結果データベース索
引の更新効率が著しく劣化することを避は得ないという
問題があった。
本発明は以上の点を考慮してなされたもので、従来のB
”−tree構造のデータベース索引における更新時の
問題を一挙に解決して、エントリの削除等のデータベー
ス索引の更新をより効率的に実行し得るデータベース更
新方法を提案しようとするものである。
”−tree構造のデータベース索引における更新時の
問題を一挙に解決して、エントリの削除等のデータベー
ス索引の更新をより効率的に実行し得るデータベース更
新方法を提案しようとするものである。
E問題点を解決するだめの手段
かかる問題点を解決するため本発明においては、B”4
ree構造でなるデータベース索引DBOの所望のエン
トリENTxを削除するデータベース更新方法において
、削除すべきエントリENTxのキーKEYxによる探
索時に、根ROOTからの探索履歴をメモリ3上に記録
すると共に、根ROOTから探索して最初に到達した葉
LEAFに削除すべきエントリENT iが存在しない
場合、後続ポインタARnxt又は先行ポインタARP
Iえを参照して、削除すべきエントリENTxと同じエ
ントリENT iが存在する後続葉L E A F又は
先行葉LEAFを探索し、そのエントリENT iと最
初に到達した葉LEAF内の任意のエントリENTiを
交換した後、最初に到達した葉1... E A F内
で削除すべきエントリENTxを削除するようにした。
ree構造でなるデータベース索引DBOの所望のエン
トリENTxを削除するデータベース更新方法において
、削除すべきエントリENTxのキーKEYxによる探
索時に、根ROOTからの探索履歴をメモリ3上に記録
すると共に、根ROOTから探索して最初に到達した葉
LEAFに削除すべきエントリENT iが存在しない
場合、後続ポインタARnxt又は先行ポインタARP
Iえを参照して、削除すべきエントリENTxと同じエ
ントリENT iが存在する後続葉L E A F又は
先行葉LEAFを探索し、そのエントリENT iと最
初に到達した葉LEAF内の任意のエントリENTiを
交換した後、最初に到達した葉1... E A F内
で削除すべきエントリENTxを削除するようにした。
F作用
削除すべきエントリENTxのキーKEYxによる探索
時に、最初に到達した葉り、 E A Fに削除すべき
エントリENTxが存在しない場合にも、葉り、 E
A Fから節N OD iEに戻ることなくエントリE
NT iを削除し得、かくしてエントリE N Tiの
削除等のデータベース索引をより効率的に更新し得る。
時に、最初に到達した葉り、 E A Fに削除すべき
エントリENTxが存在しない場合にも、葉り、 E
A Fから節N OD iEに戻ることなくエントリE
NT iを削除し得、かくしてエントリE N Tiの
削除等のデータベース索引をより効率的に更新し得る。
G実施例
以下図面について、本発明の一実施例を詳述する。
第1図において、1は全体としてB”−tree構造の
データベース索引の削除等のデータヘース更新処理を行
うコンピュータシステムを示し、中央処理装置(CPU
)2に対して、バスBUSを介してメモリ構成の主記憶
装置3、キーボード4A及びデイスプレィ装置4Bでな
る操作部4、磁気ディスク装置5が接続されている。
データベース索引の削除等のデータヘース更新処理を行
うコンピュータシステムを示し、中央処理装置(CPU
)2に対して、バスBUSを介してメモリ構成の主記憶
装置3、キーボード4A及びデイスプレィ装置4Bでな
る操作部4、磁気ディスク装置5が接続されている。
これにより、例えばキーボード4Aからのユーザのデー
タヘース更新操作に従って、磁気ディスク装置5に記憶
されている人名データエリアに設けられたB”−tre
e構造のデータベース索引DBO(第5図)を読み出し
、エントリの削除等のデータエリアの更新処理を行うよ
うになされている。
タヘース更新操作に従って、磁気ディスク装置5に記憶
されている人名データエリアに設けられたB”−tre
e構造のデータベース索引DBO(第5図)を読み出し
、エントリの削除等のデータエリアの更新処理を行うよ
うになされている。
なおこの場合、根ROOT、節N0DE及び葉+−E
A Fは、それぞれ第7図との対応部分に同一符号を付
した第2図に示すように、親ページエリアARPARを
廃止したページフォーマットFMT1でなり、このため
第3図に示すデータベース更新処理プログラムSPIを
実行して、データベース索引DBOを更新する際には、
根ROOTから節N0DE及び節N0DEから葉LEA
Fをアクセスする履歴を記録するようになされている。
A Fは、それぞれ第7図との対応部分に同一符号を付
した第2図に示すように、親ページエリアARPARを
廃止したページフォーマットFMT1でなり、このため
第3図に示すデータベース更新処理プログラムSPIを
実行して、データベース索引DBOを更新する際には、
根ROOTから節N0DE及び節N0DEから葉LEA
Fをアクセスする履歴を記録するようになされている。
この実施例の場合、上述の1ROOTから節N0DE及
び節N0DEから葉LEAFをアクセスする履歴は、主
記憶装置3のメモリ上に設けられたログバッファLOG
(第4図(A))に保持するようになされ、また実際
上データベース更新処理プログラムSPIを実行する際
には、内部レジスタRO(第4図(B)) 、第1及び
第2のワークバッファBUFO及びBUFI (第4
図(C)及び(D))が用いられている。
び節N0DEから葉LEAFをアクセスする履歴は、主
記憶装置3のメモリ上に設けられたログバッファLOG
(第4図(A))に保持するようになされ、また実際
上データベース更新処理プログラムSPIを実行する際
には、内部レジスタRO(第4図(B)) 、第1及び
第2のワークバッファBUFO及びBUFI (第4
図(C)及び(D))が用いられている。
このログバッファLOGは、例えば1ワードでなり、次
にページ番号を書き込む位置を示すカレントログポイン
トLOG I DXとそれぞれ1ワードでなり、ページ
番号が順次書き込まれるページ番号エリアLOG 1、
LOG2、LOG3、・・・・・・とでなる。
にページ番号を書き込む位置を示すカレントログポイン
トLOG I DXとそれぞれ1ワードでなり、ページ
番号が順次書き込まれるページ番号エリアLOG 1、
LOG2、LOG3、・・・・・・とでなる。
また内部レジスタROには、キーKEYi及びポインタ
PNTiでなるエントリENTiを格納するキーエリア
ROKEY及びポインタエリアROPNTを有してなり
、例えばユーザから指定された削除すべきエントリE
N T、 x等を保持するようになされている。
PNTiでなるエントリENTiを格納するキーエリア
ROKEY及びポインタエリアROPNTを有してなり
、例えばユーザから指定された削除すべきエントリE
N T、 x等を保持するようになされている。
さらに第1及び第2のワークバッファBUFO及びBU
FIは、同様の構成でなり、データベース更新処理プロ
グラムSPIの処理の中で、使用される所定のページを
読み出してデータエリアBODT及びBzjrに保持し
、またそのページ番号をページ番号エリアBOPAGE
及びBIPAGEに記憶すると共に、例えば処理の中で
アクセスされたエントリENTiの位置を現在エントリ
BOIND及びBLINDに記憶するようになされてい
る。
FIは、同様の構成でなり、データベース更新処理プロ
グラムSPIの処理の中で、使用される所定のページを
読み出してデータエリアBODT及びBzjrに保持し
、またそのページ番号をページ番号エリアBOPAGE
及びBIPAGEに記憶すると共に、例えば処理の中で
アクセスされたエントリENTiの位置を現在エントリ
BOIND及びBLINDに記憶するようになされてい
る。
かくして、例えばユーザがキーボード4Aを用いて、任
意のエントリENT iを削除するデータヘース更新操
作を行うと、CPU2は上述のログバッファL OG、
内部レジスタRO,第1及び第2のワークバッファBU
FO及びBUFIを用いて、第3図に示す、データベー
ス更新処理プログラムsptを実行する。
意のエントリENT iを削除するデータヘース更新操
作を行うと、CPU2は上述のログバッファL OG、
内部レジスタRO,第1及び第2のワークバッファBU
FO及びBUFIを用いて、第3図に示す、データベー
ス更新処理プログラムsptを実行する。
すなわち、CPLI2はデータベース更新処理プログラ
ムSPIに入って、次のステップSP2において、ユー
ザから入力された削除すべきエントリENTxを内部レ
ジスタROに格納し、続くステップSP3において、こ
のB”−treeでなるデータベース索引DBOの根R
OOTページを第1のワークバッファBUFOのデータ
エリアBODTに読む。
ムSPIに入って、次のステップSP2において、ユー
ザから入力された削除すべきエントリENTxを内部レ
ジスタROに格納し、続くステップSP3において、こ
のB”−treeでなるデータベース索引DBOの根R
OOTページを第1のワークバッファBUFOのデータ
エリアBODTに読む。
このとき第1のワークバッファBUFOの、ページ番号
エリアBOPA、GEには、その根R○OTページのペ
ージ番号が格納される。
エリアBOPA、GEには、その根R○OTページのペ
ージ番号が格納される。
続いてCPU2は、次のステップSP4において、この
根ROOTページのページ番号をログバッファLOGに
格納すると共に、カレントログポイン)LOGIDXを
次にページ番号を格納する位置を示すように更新した後
、続くステップSP5に移る。
根ROOTページのページ番号をログバッファLOGに
格納すると共に、カレントログポイン)LOGIDXを
次にページ番号を格納する位置を示すように更新した後
、続くステップSP5に移る。
ステップSP5においてCPU2は、第1のワークバッ
ファBUFOのデータエリアBODTに読み込まれたペ
ージの記録エリアAPRECを参照して、内部レジスタ
ROに格納された削除すべきエントリENTxのキーK
EYx以上で、かつ最小のキーKEY iを持つエント
リENTiを現在エントリBOINDを用いて探索する
。
ファBUFOのデータエリアBODTに読み込まれたペ
ージの記録エリアAPRECを参照して、内部レジスタ
ROに格納された削除すべきエントリENTxのキーK
EYx以上で、かつ最小のキーKEY iを持つエント
リENTiを現在エントリBOINDを用いて探索する
。
続いてCPU2はステップSP6において、第1のワー
クバッファBUFOのデータエリアBODTに読み込ま
れたページのページタイプエリアARrvpを参照して
、このページが葉LEAFか否かを判断し、否定結果を
得ると、ステップSP7に移って上述のステップSP5
において探索されたエントリENT iのポインタPN
Tiが示すページを第1のワークバッファBUFOのデ
ータエリアBODTへ読み込む。
クバッファBUFOのデータエリアBODTに読み込ま
れたページのページタイプエリアARrvpを参照して
、このページが葉LEAFか否かを判断し、否定結果を
得ると、ステップSP7に移って上述のステップSP5
において探索されたエントリENT iのポインタPN
Tiが示すページを第1のワークバッファBUFOのデ
ータエリアBODTへ読み込む。
なおこのとき第1のワークバッファBUFOの、ページ
番号エリアBOPAGEには、読み込まれたページのペ
ージ番号が格納される。
番号エリアBOPAGEには、読み込まれたページのペ
ージ番号が格納される。
続いてCPU2は、次のステップSP8において、読み
込んだページのページ番号をログバッファLOGに格納
すると共に、カレントログポイントLOG■DXを次に
ページ番号を格納する位置を示すように更新した後、上
述のステップSP5に戻る。
込んだページのページ番号をログバッファLOGに格納
すると共に、カレントログポイントLOG■DXを次に
ページ番号を格納する位置を示すように更新した後、上
述のステップSP5に戻る。
このようにして、CPU2はステップ5P5SP6−3
P7−3P8の処理ループを実行することにより、内部
レジスタROに格納されたエントリENTxのキーKE
Yxに基づいて、順次根ROOTのページから節N0D
Eのページ及び節N0DEのページから葉LEAFのペ
ージを探索し、やがてステップSP6において肯定結果
を得る、すなわち葉LEAFのページまで探索したこと
を検出すると、CPU2は次のステップSP9において
、第1のワークバッファBUFOの内容を第2のワーク
バッファBUFIにコピーする。
P7−3P8の処理ループを実行することにより、内部
レジスタROに格納されたエントリENTxのキーKE
Yxに基づいて、順次根ROOTのページから節N0D
Eのページ及び節N0DEのページから葉LEAFのペ
ージを探索し、やがてステップSP6において肯定結果
を得る、すなわち葉LEAFのページまで探索したこと
を検出すると、CPU2は次のステップSP9において
、第1のワークバッファBUFOの内容を第2のワーク
バッファBUFIにコピーする。
続いてCPU2はステップ5pioにおいて、第2のワ
ークバッファBUFIのページの3己!JエリアAR□
0を参照して、内部レジスタIマ0に格納された削除す
べきエントリE N Txと同しキーKEYx及びポイ
ンタPNTxでなるエントリENTiが存在するか否か
を現在エントリB1fNDを更新しながら探索し、否定
結果を得るとステップ5PIIに移って、第2のワーク
バッファBUFIのページの後続ページエリアARNx
rを参照して、後続の葉LEAFベージを第2のワーク
バッファBUF lのデータエリアBIDTに読み込ん
だ後、再度この後続の葉LEAFベージについてステッ
プ5PIOを実行する。
ークバッファBUFIのページの3己!JエリアAR□
0を参照して、内部レジスタIマ0に格納された削除す
べきエントリE N Txと同しキーKEYx及びポイ
ンタPNTxでなるエントリENTiが存在するか否か
を現在エントリB1fNDを更新しながら探索し、否定
結果を得るとステップ5PIIに移って、第2のワーク
バッファBUFIのページの後続ページエリアARNx
rを参照して、後続の葉LEAFベージを第2のワーク
バッファBUF lのデータエリアBIDTに読み込ん
だ後、再度この後続の葉LEAFベージについてステッ
プ5PIOを実行する。
このステップ5PIOで肯定結果を得るとくすなわち、
第2のワークバッファBUFIに読み込んだページに削
除すべきエントリENTxと同じキーKEYx及びポイ
ンタPNTxでなるエンド’JENTiが存在すること
を示す) 、CPU2はステップ5P12に移って、第
1のワークバッファBUFO及び第2のワークバッファ
BUFIのそれぞれのページ番号エリアBOPAGE及
びBLPAGEが一致しているか否か、すなわち、削除
すべきエントリENTxと同じエントリENTiが存在
するページが、上述のステップ5P5−3P6−3P7
−3P8で示す探索処理で、最初に到達した葉LEAF
ベージか否かを判断する。
第2のワークバッファBUFIに読み込んだページに削
除すべきエントリENTxと同じキーKEYx及びポイ
ンタPNTxでなるエンド’JENTiが存在すること
を示す) 、CPU2はステップ5P12に移って、第
1のワークバッファBUFO及び第2のワークバッファ
BUFIのそれぞれのページ番号エリアBOPAGE及
びBLPAGEが一致しているか否か、すなわち、削除
すべきエントリENTxと同じエントリENTiが存在
するページが、上述のステップ5P5−3P6−3P7
−3P8で示す探索処理で、最初に到達した葉LEAF
ベージか否かを判断する。
CPU2は、ここで否定結果を得ると(すなわちこのこ
とは、削除すべきエントリENTxと同じエントリEN
T iが存在するページが最初に到達し、?、:gLE
AFページと異なることを示す)、続くステップ5P1
3に移って、第1のワークバッファBUFOの現在エン
トリBOINDが示すエントリENTiの内容(実際上
、現在エントリBOINDは内部レジスタROに格納さ
れた削除すべきエントリENTxのキーKEYx以上で
、かつ最小のキーKEYiを持つエントリENTiの位
置を示している)を、第2のワークバッファBUF 1
の現在エントリBLINDが示す位置にコピーする。
とは、削除すべきエントリENTxと同じエントリEN
T iが存在するページが最初に到達し、?、:gLE
AFページと異なることを示す)、続くステップ5P1
3に移って、第1のワークバッファBUFOの現在エン
トリBOINDが示すエントリENTiの内容(実際上
、現在エントリBOINDは内部レジスタROに格納さ
れた削除すべきエントリENTxのキーKEYx以上で
、かつ最小のキーKEYiを持つエントリENTiの位
置を示している)を、第2のワークバッファBUF 1
の現在エントリBLINDが示す位置にコピーする。
CPU2は続くステップ5P14において、第2のワー
クバッファBUFIのデータエリアBIDTの内容を、
ページ番号エリアB I PAGEのページ番号が示す
磁気ディスク装置5の位置に書き、次のステップ5P1
5において、内部レジスタROに格納された削除すべき
エントリENTxの内容を、第1のワークバッファBU
F Oの現在エントリBOINDが示す位置にコピーし
た後、ステップ5PI6に移る。
クバッファBUFIのデータエリアBIDTの内容を、
ページ番号エリアB I PAGEのページ番号が示す
磁気ディスク装置5の位置に書き、次のステップ5P1
5において、内部レジスタROに格納された削除すべき
エントリENTxの内容を、第1のワークバッファBU
F Oの現在エントリBOINDが示す位置にコピーし
た後、ステップ5PI6に移る。
このようにしてCPU2は、最初に到達した葉L E
A、 Fのページに削除するエントリENTxが存在し
ないとき、後続の葉LEAFページを参照して得た削除
するエントリENTxと、最初に到達した葉L E A
FのページのエントリENT iを書き換えるように
なされている。
A、 Fのページに削除するエントリENTxが存在し
ないとき、後続の葉LEAFページを参照して得た削除
するエントリENTxと、最初に到達した葉L E A
FのページのエントリENT iを書き換えるように
なされている。
なおCPU2は、上述のステップ5P12で肯定結果を
得ると(すなわちこのことは、削除すべきエントリEN
Txと同じエントリENT iが存在するページが最初
に到達した葉LEAFページであることを示す)、続く
ステップ5P16に移る。
得ると(すなわちこのことは、削除すべきエントリEN
Txと同じエントリENT iが存在するページが最初
に到達した葉LEAFページであることを示す)、続く
ステップ5P16に移る。
CPU2はステップ5P16において、第1のワークバ
ッファBUFOの現在エントリBOINDが示す内容、
すなわちユーザから指定された削除すべきエントリEN
Txを削除すると共に、第1のワークバッファBUFO
のデータエリアBODTに読み込まれたページの現在の
エントリ数エリアARい、の内容をデクリメントした後
、続くステップ5P174こおいて、第1のワークバッ
ファBUFOのデータエリアBODTに読み込まれたペ
ージのページタイプエリアART□を参照して、このペ
ージが根ROOTページか否かを判断し、否定結果を得
ると次のステップ5PI8に移る。
ッファBUFOの現在エントリBOINDが示す内容、
すなわちユーザから指定された削除すべきエントリEN
Txを削除すると共に、第1のワークバッファBUFO
のデータエリアBODTに読み込まれたページの現在の
エントリ数エリアARい、の内容をデクリメントした後
、続くステップ5P174こおいて、第1のワークバッ
ファBUFOのデータエリアBODTに読み込まれたペ
ージのページタイプエリアART□を参照して、このペ
ージが根ROOTページか否かを判断し、否定結果を得
ると次のステップ5PI8に移る。
ステップ5P18において、CPU2は第1のワークバ
ッファ)3 tJ F OのデータエリアBODTに読
み込まれたページの現在のエン1−り数エリアAREN
tを参照して、現在のエントリ数が半分以下かを判断し
、肯定結果を得ると、続(ステップ5P19において第
1のワークバッファB U F” 0のデータエリアB
ODTに読み込まれたページの後続ページエリアARN
Xアを参照して、後続のページを第2のワークバッファ
BLIF 1のデータエリアBIDTに読み込み、次の
ステップS P 20において、データエリアBIDT
に読み込まれたページの現在のエントリ数エリアARa
+<rを参照して、第1のワークバッファBUF Oの
エントリENTiが入るか否かを判断する。
ッファ)3 tJ F OのデータエリアBODTに読
み込まれたページの現在のエン1−り数エリアAREN
tを参照して、現在のエントリ数が半分以下かを判断し
、肯定結果を得ると、続(ステップ5P19において第
1のワークバッファB U F” 0のデータエリアB
ODTに読み込まれたページの後続ページエリアARN
Xアを参照して、後続のページを第2のワークバッファ
BLIF 1のデータエリアBIDTに読み込み、次の
ステップS P 20において、データエリアBIDT
に読み込まれたページの現在のエントリ数エリアARa
+<rを参照して、第1のワークバッファBUF Oの
エントリENTiが入るか否かを判断する。
CPU2はここで肯定結果を得ると、続くステップSP
21において、第1のワークバッファBUFOのエント
リENT iを第2のワークバッファBUF Iへ挿入
し、次のステップSP22において、第2のワークバッ
ファBLIFIのデータエリアBIDTの内容を、ペー
ジ番号エリアBIPAGEのページ番号が示す磁気ディ
スク装置5の位置に書く。
21において、第1のワークバッファBUFOのエント
リENT iを第2のワークバッファBUF Iへ挿入
し、次のステップSP22において、第2のワークバッ
ファBLIFIのデータエリアBIDTの内容を、ペー
ジ番号エリアBIPAGEのページ番号が示す磁気ディ
スク装置5の位置に書く。
CPU2は続くステップ5P23において、第1のワー
クバッファBUFOのエントリENTiO内、最大エン
トリIENTiを内部レジスタROに格納した後、ステ
ップ5P24においてログバッファLOGを参照して、
1段だけ根ROOTに近いページのページ番号を得て、
これを第1のワークバッファBUFOのデータエリアB
ODTに読み込む。
クバッファBUFOのエントリENTiO内、最大エン
トリIENTiを内部レジスタROに格納した後、ステ
ップ5P24においてログバッファLOGを参照して、
1段だけ根ROOTに近いページのページ番号を得て、
これを第1のワークバッファBUFOのデータエリアB
ODTに読み込む。
続いてCPU2はステップS l) 25において、第
1のワークバッファBUFOの中で内部レジスタROと
同しエントリENTiを探索し、そのエントリENTi
を第1のワークバッファBUFOの現在エンドすBOI
NDに書き込み、J:述のステップ5P16に戻る。
1のワークバッファBUFOの中で内部レジスタROと
同しエントリENTiを探索し、そのエントリENTi
を第1のワークバッファBUFOの現在エンドすBOI
NDに書き込み、J:述のステップ5P16に戻る。
このようにして、CP tJ 2は」−述のステップ5
P16−3P17−3P18−3P19−3P20−5
P21−3P21−3P23−3P24−3P25の処
理ループを実行することにより、ユーザから指定された
エントリENTxを削除した後、葉L E A Fや節
N0DEページのエントリ数が半分以下になった場合は
、残りのエントリを後続の葉LEAFや節N0DEのペ
ージに挿入可能な場合にのみ挿入した後、エン]・すE
NTxを削除した葉LEAFや節N0DEページを無効
にし、全体として同一階層における葉LEAFや節N0
DEの保守更新処理を実行するようになされている。
P16−3P17−3P18−3P19−3P20−5
P21−3P21−3P23−3P24−3P25の処
理ループを実行することにより、ユーザから指定された
エントリENTxを削除した後、葉L E A Fや節
N0DEページのエントリ数が半分以下になった場合は
、残りのエントリを後続の葉LEAFや節N0DEのペ
ージに挿入可能な場合にのみ挿入した後、エン]・すE
NTxを削除した葉LEAFや節N0DEページを無効
にし、全体として同一階層における葉LEAFや節N0
DEの保守更新処理を実行するようになされている。
またCPU2は上述のステップ5P17において肯定結
果を得た場合、さらにL述のステップ5P18又はステ
ップ5P20において否定結果を得た場合にはステップ
5P26に移る。
果を得た場合、さらにL述のステップ5P18又はステ
ップ5P20において否定結果を得た場合にはステップ
5P26に移る。
このステップ5P26においてCPU2は、第■のワー
クバッファBUFOのデータエリアBODTの内容を、
ページ番号エリアB 0PAGEのページ番号が示す磁
気ディスク装置5の位置に書く。
クバッファBUFOのデータエリアBODTの内容を、
ページ番号エリアB 0PAGEのページ番号が示す磁
気ディスク装置5の位置に書く。
続いてCPU2は、次のステップ5P27において、上
述のステップSPI 6において削除した第1のワーク
バッファBUFOのエントリENTiが、最大エントリ
か否かを判断し肯定結果を得ると、続くステップ5P2
8において、第1のワークバッファBUFOのデータエ
リアBODTに読み込まれたページのページタイプエリ
アARTV#−を参照して、このページが根ROOTペ
ージか否かを判断し、否定結果を得ると次のステップ5
P29に移る。
述のステップSPI 6において削除した第1のワーク
バッファBUFOのエントリENTiが、最大エントリ
か否かを判断し肯定結果を得ると、続くステップ5P2
8において、第1のワークバッファBUFOのデータエ
リアBODTに読み込まれたページのページタイプエリ
アARTV#−を参照して、このページが根ROOTペ
ージか否かを判断し、否定結果を得ると次のステップ5
P29に移る。
ステップ5P29において、CPU2は内部レジスタR
Oに第1のワークバッファBUFOのデータエリアBO
DTに読み込まれたページの現在の最大エントリENT
iを格納し、次のステップSP30において、ログバッ
ファL OGを参照して、1段だけ根ROOTに近いペ
ージのページ番号を得て、これを第1のワークバッファ
BUFOのデータエリアBODTに読み込む。
Oに第1のワークバッファBUFOのデータエリアBO
DTに読み込まれたページの現在の最大エントリENT
iを格納し、次のステップSP30において、ログバッ
ファL OGを参照して、1段だけ根ROOTに近いペ
ージのページ番号を得て、これを第1のワークバッファ
BUFOのデータエリアBODTに読み込む。
続いてCPU2は、ログバッファLOGを参照して、1
段だけ1ROOTから遠いページのページ番号を得、こ
のページ番号をポインタPNTiに持つエントリENT
iのキーKEYiを内部レジスタROに格納されてい
るキー値と交換した後、次のステップ5P32において
、第1のワークバッファBUFOのデータエリアBOD
Tの内容を、ページ番号エリアBOPAGEのページ番
号が示す磁気ディスク装置5の位置に書く。
段だけ1ROOTから遠いページのページ番号を得、こ
のページ番号をポインタPNTiに持つエントリENT
iのキーKEYiを内部レジスタROに格納されてい
るキー値と交換した後、次のステップ5P32において
、第1のワークバッファBUFOのデータエリアBOD
Tの内容を、ページ番号エリアBOPAGEのページ番
号が示す磁気ディスク装置5の位置に書く。
この後CPU2は、次のステップ5P33に移って、上
述のエントリENT iの変更処理が、最大エントリに
ついての変更か否かを判断し、肯定結果を得ると上述の
ステップ5P28に戻って、ステップ5P29−3P3
0−3P31−3P32−3P33の処理ループを実行
し、このようにして、削除又は変更されたエントリEN
Tiが葉り巳AF又は節N0DEのページ内の最大エン
トノの場合に、その−以上の節N0DE又はl’1R0
0′Fについて、エントリENTiのキ〜KEYiの変
更を行うようになされている。
述のエントリENT iの変更処理が、最大エントリに
ついての変更か否かを判断し、肯定結果を得ると上述の
ステップ5P28に戻って、ステップ5P29−3P3
0−3P31−3P32−3P33の処理ループを実行
し、このようにして、削除又は変更されたエントリEN
Tiが葉り巳AF又は節N0DEのページ内の最大エン
トノの場合に、その−以上の節N0DE又はl’1R0
0′Fについて、エントリENTiのキ〜KEYiの変
更を行うようになされている。
なお上述のステップ5P27又はステップ5P33にお
いて否定結果を得た場合、またはステップ5P2Bにお
いて肯定結果を得た場合には、CPU2はステップSP
34に移って、当該データヘース史新処理プログラムS
P1を終了するようになされている。
いて否定結果を得た場合、またはステップ5P2Bにお
いて肯定結果を得た場合には、CPU2はステップSP
34に移って、当該データヘース史新処理プログラムS
P1を終了するようになされている。
以上の方法において、例えば第5図に示す、人名データ
エリアに設けられたB”−tree構造のデータヘース
索引DBOにおいて、ユーザから削除すべきエントリE
NTxのキーKEYx及びポインタP N Txとして
、「佐藤、R7Jが指定されると、CPU2は上述のデ
ータヘース更新プログラムSPIから人って、ステップ
SP2において、内部レジスタROに削除すべきエント
リENTxとして、[佐藤、R7Jを格納した後、次の
ステップSP3において、根ROOTページとして第1
ページPiを、第1のワークバッファBIJFOのデー
タエリアBODTに読み込み、続くステップSP4にお
いて、このページ番号P1をログバッファLOGに格納
する。
エリアに設けられたB”−tree構造のデータヘース
索引DBOにおいて、ユーザから削除すべきエントリE
NTxのキーKEYx及びポインタP N Txとして
、「佐藤、R7Jが指定されると、CPU2は上述のデ
ータヘース更新プログラムSPIから人って、ステップ
SP2において、内部レジスタROに削除すべきエント
リENTxとして、[佐藤、R7Jを格納した後、次の
ステップSP3において、根ROOTページとして第1
ページPiを、第1のワークバッファBIJFOのデー
タエリアBODTに読み込み、続くステップSP4にお
いて、このページ番号P1をログバッファLOGに格納
する。
続いてCPU2はステップSP5において、内部レジス
タROに格納された削除すべきエントリENTxのキー
KEYx (すなわち「佐藤」)以上で、かつ最小のキ
ーKEYiを持つエントリENTiを現在エントリBO
INDを用いて探索し、この場合探索結果でなるエント
リENTiとして「佐藤、P4Jを得、現在エントリB
01NDには、このエントリENTir佐応、P4Jを
示す値「3」が設定される。
タROに格納された削除すべきエントリENTxのキー
KEYx (すなわち「佐藤」)以上で、かつ最小のキ
ーKEYiを持つエントリENTiを現在エントリBO
INDを用いて探索し、この場合探索結果でなるエント
リENTiとして「佐藤、P4Jを得、現在エントリB
01NDには、このエントリENTir佐応、P4Jを
示す値「3」が設定される。
さらにCPU2は、第1のワークバッファBUFOに読
み込んだ第1ページP1が、根ROOTであるため、続
くステップSP6において否定結果を得、次のステップ
SP7において、探索されたエントリENTiのポイン
タPNTiが示ずページ、すなわち第4ベージP4を、
第1のワークバッファBUFOのデータエリア+30
D Tに3売み込み、続くステップSP8において、こ
のページ番号P4をログバッファL OGに格納する。
み込んだ第1ページP1が、根ROOTであるため、続
くステップSP6において否定結果を得、次のステップ
SP7において、探索されたエントリENTiのポイン
タPNTiが示ずページ、すなわち第4ベージP4を、
第1のワークバッファBUFOのデータエリア+30
D Tに3売み込み、続くステップSP8において、こ
のページ番号P4をログバッファL OGに格納する。
続いてCPU2は再度ステップSP5において、新たに
読み出した第4ベージP4について、内部レジスタRO
に格納された削除すべきエントリENTxのキーKEY
x (すなわら「佐藤」)以上で、かつ最小のキーKE
Y iを持つエントリENTiを現在エントリBOIN
Dを用いて探索する。
読み出した第4ベージP4について、内部レジスタRO
に格納された削除すべきエントリENTxのキーKEY
x (すなわら「佐藤」)以上で、かつ最小のキーKE
Y iを持つエントリENTiを現在エントリBOIN
Dを用いて探索する。
この場合探索結果でなるエントリENT iとして[−
佐藤、P8Jを得、現在エントリBOINDには、この
エントリENTir佐藤、P8Jを示す値「2」が設定
される。
佐藤、P8Jを得、現在エントリBOINDには、この
エントリENTir佐藤、P8Jを示す値「2」が設定
される。
さらにCPU2は、第1のワークバッファB[JFOに
読み込んだ第4ページP4が、節N0DBであるため、
続くステップSP6において、再度否定結果を得、次の
ステップSP7において、探索されたエントリENT
iのポインタPNTiが示すページ、すなわち第8ペー
ジP8を、第1のワークバッファBUFOのデータエリ
アBODTに読み込み、続(ステップSP8において、
このページ番号P8をログバッファLOGに格納する。
読み込んだ第4ページP4が、節N0DBであるため、
続くステップSP6において、再度否定結果を得、次の
ステップSP7において、探索されたエントリENT
iのポインタPNTiが示すページ、すなわち第8ペー
ジP8を、第1のワークバッファBUFOのデータエリ
アBODTに読み込み、続(ステップSP8において、
このページ番号P8をログバッファLOGに格納する。
続いてCP tJ 2は、さらにステップSP5におい
て、新たに読み出した第8ページP8について、内部レ
ジスタRQに格納された削除すべきエントリENTxの
キーKEYx (すなわち「佐藤1)以上で、かつ最小
のキーKEY iを持つエントリENT iを現在エン
トリBOINDを用いて探索する。
て、新たに読み出した第8ページP8について、内部レ
ジスタRQに格納された削除すべきエントリENTxの
キーKEYx (すなわち「佐藤1)以上で、かつ最小
のキーKEY iを持つエントリENT iを現在エン
トリBOINDを用いて探索する。
この場合探索結果でなるエントリENT iとして「佐
藤、R3Jを得、現在エントリBOINDには、このエ
ントリENTir佐藤、R3Jを示す値「1」が設定さ
れる。
藤、R3Jを得、現在エントリBOINDには、このエ
ントリENTir佐藤、R3Jを示す値「1」が設定さ
れる。
さらにCPU2は、第1のワークバッファBUFOに読
み込んだ第8ページP8が、葉L EΔFであるため、
続くステップSP6において、肯定結果を得、次のステ
ップSP9において、第1のワークバッファB tJ
F Oの内容を第2のワークバッファB[JFIにコピ
ーする。
み込んだ第8ページP8が、葉L EΔFであるため、
続くステップSP6において、肯定結果を得、次のステ
ップSP9において、第1のワークバッファB tJ
F Oの内容を第2のワークバッファB[JFIにコピ
ーする。
続いてCPU2はステップ5PIOにおいて、第2のワ
ークバッファBUF lの第8ページP8の記録エリア
AR□。を参照して、内部レジスタROに格納された削
除すべきエントリI”、 N T x、すなわち「佐藤
、R7Jと同じエントリENTjが存在するか否かを現
在エントリBLINDを更新しながら探索する。
ークバッファBUF lの第8ページP8の記録エリア
AR□。を参照して、内部レジスタROに格納された削
除すべきエントリI”、 N T x、すなわち「佐藤
、R7Jと同じエントリENTjが存在するか否かを現
在エントリBLINDを更新しながら探索する。
この場合、削除すべきエントリENTx r佐藤、R7
Jと同じエントリENT iが存在しないため否定結果
を得、ステップ5PIIに移って、第2のワークバッフ
ァBUF 1の第8ページP8の後続ページエリアAR
M)ITを参照して、後続の葉LEAFベージ、すなわ
ち第7ベージP7を第2のワークバッファBUFIのデ
ータエリアB I DTに読み込んだ後、再度この第7
ベージP7についてステップ5PIOを実行する。
Jと同じエントリENT iが存在しないため否定結果
を得、ステップ5PIIに移って、第2のワークバッフ
ァBUF 1の第8ページP8の後続ページエリアAR
M)ITを参照して、後続の葉LEAFベージ、すなわ
ち第7ベージP7を第2のワークバッファBUFIのデ
ータエリアB I DTに読み込んだ後、再度この第7
ベージP7についてステップ5PIOを実行する。
この第7ベージP7においては、削除すべきエントリE
NTx r佐藤、R7Jと同じエントリENTiが存在
するため、CPU2はステップ5P10で肯定結果を得
、続くステップ5P12に移る。
NTx r佐藤、R7Jと同じエントリENTiが存在
するため、CPU2はステップ5P10で肯定結果を得
、続くステップ5P12に移る。
なおこのとき、第2のワークバッファBUFIの現在エ
ントリBl!NDは、削除すべきエントリENTx r
佐藤、R7Jと同じエントリENTiの位置を示す値「
3Jが設定される。
ントリBl!NDは、削除すべきエントリENTx r
佐藤、R7Jと同じエントリENTiの位置を示す値「
3Jが設定される。
続いてcpu2は、第1のワークバッファBLIFO及
び第2のワークバッファBUF 1の、各ページ番号エ
リアBOPAGE及びB I PAGEには、それぞれ
第8ページP8及び第7ベージP7のページ番号が設定
されているため、次のステップ5Pi2において、否定
結果を得、続くステップS P l 3に移る。
び第2のワークバッファBUF 1の、各ページ番号エ
リアBOPAGE及びB I PAGEには、それぞれ
第8ページP8及び第7ベージP7のページ番号が設定
されているため、次のステップ5Pi2において、否定
結果を得、続くステップS P l 3に移る。
このステップ5P13において、CPU2は第1のワー
クバッファBLIFOの現在エントリ801NDが示す
内容、すなわちエントリENTir佐藤、R3Jを、第
2のワークバッファBUFIの現在エントリBIIND
が示す位置、すなゎらエントリENTir佐胚、R7J
の位置にコピーした後、次のステップ5P14において
、第2のワークバッファBUF 1のデータエリアBI
DTの内容を、ページ番号エリアB I PAGEのペ
ージ番号が示す磁気ディスク装置5の位置、すなわち第
7ベージP7の位置に書く。
クバッファBLIFOの現在エントリ801NDが示す
内容、すなわちエントリENTir佐藤、R3Jを、第
2のワークバッファBUFIの現在エントリBIIND
が示す位置、すなゎらエントリENTir佐胚、R7J
の位置にコピーした後、次のステップ5P14において
、第2のワークバッファBUF 1のデータエリアBI
DTの内容を、ページ番号エリアB I PAGEのペ
ージ番号が示す磁気ディスク装置5の位置、すなわち第
7ベージP7の位置に書く。
続いてCPU2は次のステップ5P15において、内部
レジスタROに格納された削除すべきエントリENTx
の内容「佐藤、R7Jを、第1のワークバッファBUF
Oの現在エントリBOINDが示ず位置、すなわちエン
トリENTi r住込、R3、、Jの位置にコピーし、
このようにして、最初に到達した葉LEAFでなる第8
ページP8に削除するエントリENTxが存在しないと
き、後続の葉1. E A Fでなる第7ベージP7を
参照して得た削除するエントリENTxと、最初に到達
した第8ページのエントリENTiを書き換えるように
なされている。
レジスタROに格納された削除すべきエントリENTx
の内容「佐藤、R7Jを、第1のワークバッファBUF
Oの現在エントリBOINDが示ず位置、すなわちエン
トリENTi r住込、R3、、Jの位置にコピーし、
このようにして、最初に到達した葉LEAFでなる第8
ページP8に削除するエントリENTxが存在しないと
き、後続の葉1. E A Fでなる第7ベージP7を
参照して得た削除するエントリENTxと、最初に到達
した第8ページのエントリENTiを書き換えるように
なされている。
CPU2は続くステップ5P16において、第1のワー
クバッファBUFOの現在エントリBOINDが示ずエ
ントリENTir佐込、R7Jを削除する。
クバッファBUFOの現在エントリBOINDが示ずエ
ントリENTir佐込、R7Jを削除する。
さらにCPU2は続くステップ5P17において、第1
のワークバッファBUFOに読み込まれている第8ペー
ジP8が、葉LEAFベージのため否定結果を得、次の
ステップ5P18において、第8ページP8のエントリ
数が値「2」のため、ステップ5P26に移って、第1
のワークバッファBUFOのデータエリアBODTの内
容を、ページ番号エリアB OPAGEのページ番号が
示す磁気ディスク装置5の位置、すなわち第8ベージP
8の位置に書く。
のワークバッファBUFOに読み込まれている第8ペー
ジP8が、葉LEAFベージのため否定結果を得、次の
ステップ5P18において、第8ページP8のエントリ
数が値「2」のため、ステップ5P26に移って、第1
のワークバッファBUFOのデータエリアBODTの内
容を、ページ番号エリアB OPAGEのページ番号が
示す磁気ディスク装置5の位置、すなわち第8ベージP
8の位置に書く。
続いてCPU2は、上述のステップ5P16で削除した
第8ベージP8のエントリENTir佐藤、R7Jが、
最大エントリであることにより、ステップ5P27にお
いて肯定結果を得、これによりステップ5P28に移り
、ここで第1のワークバッファBUFOのデータエリア
BODTの内容、すなわち第8ベージP8が葉LEAF
ベージであるため否定結果を得、次のステップSP29
に移る。
第8ベージP8のエントリENTir佐藤、R7Jが、
最大エントリであることにより、ステップ5P27にお
いて肯定結果を得、これによりステップ5P28に移り
、ここで第1のワークバッファBUFOのデータエリア
BODTの内容、すなわち第8ベージP8が葉LEAF
ベージであるため否定結果を得、次のステップSP29
に移る。
このステップ5P29においては、内部レジスタROに
第8ページP8の新たな最大エン+−’J ENTiす
なわち「佐々木、R11」を格納し、続くステップ5P
30において、ログバッファLOGを参照して、1段だ
け根ROOTに近いページのページ番号、すなわち第4
ベージP4を得て、これを第1のワークバッファBUF
OのデータエリアBODTにS売み込む゛。
第8ページP8の新たな最大エン+−’J ENTiす
なわち「佐々木、R11」を格納し、続くステップ5P
30において、ログバッファLOGを参照して、1段だ
け根ROOTに近いページのページ番号、すなわち第4
ベージP4を得て、これを第1のワークバッファBUF
OのデータエリアBODTにS売み込む゛。
続いてCPU2はステップSP31において、ログバッ
ファLOGを参照して、1段だけ根ROOTから遠いペ
ージのページ番号、すなわち第8ベージP8を得、この
ページ番号をポインタPN゛Y″jに持つエンh’JE
NTir佐藤、P8JのキKEYir佐藤」を内部レジ
スタROに格納さ・れているキー値「佐々木」と交換し
た後、次のステップ5P32において、第1のワークバ
ッファB[JFOのデータエリアBODTの内容を、ペ
ージ番号エリアBOPAGEのページ番号が示す磁気デ
ィスク装置5の位置、すなわち第4ページの位置に書く
。
ファLOGを参照して、1段だけ根ROOTから遠いペ
ージのページ番号、すなわち第8ベージP8を得、この
ページ番号をポインタPN゛Y″jに持つエンh’JE
NTir佐藤、P8JのキKEYir佐藤」を内部レジ
スタROに格納さ・れているキー値「佐々木」と交換し
た後、次のステップ5P32において、第1のワークバ
ッファB[JFOのデータエリアBODTの内容を、ペ
ージ番号エリアBOPAGEのページ番号が示す磁気デ
ィスク装置5の位置、すなわち第4ページの位置に書く
。
この1cPU2は、次のステップ5P33に移って、上
述の第4ページP4のエントリENT iの変更処理が
、最大エントリについての変更であるため、次のステッ
プ5P33に移って肯定結果を得て、上述のステップ5
P28に戻り、ここで第1のワークバッファBUFOの
データエリアBODTの内容、すなわち第4ベージP4
が節N。
述の第4ページP4のエントリENT iの変更処理が
、最大エントリについての変更であるため、次のステッ
プ5P33に移って肯定結果を得て、上述のステップ5
P28に戻り、ここで第1のワークバッファBUFOの
データエリアBODTの内容、すなわち第4ベージP4
が節N。
DEページであるため否定結果を得、次のステップ5P
29に移る。
29に移る。
CPU2は、上述と同様にステップ5P29において、
内部レジスタROに第8ベージl) 8の新たな最大エ
ントリENT iすなわち「佐々木、R8」を格納し、
続くステップS P 3’ 0において、ログバッファ
LOGを参照して、1段だけ根R○OTに近いページの
ページ番号、すなわち第1ページPIを得て、これを第
1のワークバッファBUFOのデータエリアBODTに
読み込む。
内部レジスタROに第8ベージl) 8の新たな最大エ
ントリENT iすなわち「佐々木、R8」を格納し、
続くステップS P 3’ 0において、ログバッファ
LOGを参照して、1段だけ根R○OTに近いページの
ページ番号、すなわち第1ページPIを得て、これを第
1のワークバッファBUFOのデータエリアBODTに
読み込む。
続いてCPU2はステップSP31において、ログバッ
ファ■、OGを参照して、1段だけ根R00Tから遠い
ページのページ番号、すなわち第4ページP4を得、こ
のページ番号をポインタI) NTiに持つエントリE
NTir佐藤、P4JのキKEYir佐iJを内部レジ
スタROに格納されているキー値「佐々木」と交換した
後、次のステップ5P32において、第1のワークバッ
ファBUFOのデータエリアBODTの内容を、べ一ジ
番号エリアBOPAGEのページ番号が示す(fi気デ
ィスク装置5の位置、すなわち第1ページの位置に書く
。
ファ■、OGを参照して、1段だけ根R00Tから遠い
ページのページ番号、すなわち第4ページP4を得、こ
のページ番号をポインタI) NTiに持つエントリE
NTir佐藤、P4JのキKEYir佐iJを内部レジ
スタROに格納されているキー値「佐々木」と交換した
後、次のステップ5P32において、第1のワークバッ
ファBUFOのデータエリアBODTの内容を、べ一ジ
番号エリアBOPAGEのページ番号が示す(fi気デ
ィスク装置5の位置、すなわち第1ページの位置に書く
。
この後CPU2は、次のステップ5P33に移って、上
述の第1ページP1のエントリENTiの変更処理が、
最大エントリについての変更ではないため否定結果を得
、当該データベース更新処理プログラムSPIを終了す
る。
述の第1ページP1のエントリENTiの変更処理が、
最大エントリについての変更ではないため否定結果を得
、当該データベース更新処理プログラムSPIを終了す
る。
このようにして、第5図に示す、人名データヘースに設
けられたB”−tree構造のデータベース索引におい
て、ユーザから削除すべきエントリENTxのキーKE
Yx及びポインタPNTxとして、[佐藤、R7Jが指
定されると、CPU2は上述のデータベース更新プログ
ラムSPIを実行して、ユーザから指定された削除すべ
きエントリENTX、すなわち[佐藤、R7Jを探索し
て削除し、この後第6図に示すように、E3”−tre
e構造のデータベース索引DBIを更新するようになさ
れている。
けられたB”−tree構造のデータベース索引におい
て、ユーザから削除すべきエントリENTxのキーKE
Yx及びポインタPNTxとして、[佐藤、R7Jが指
定されると、CPU2は上述のデータベース更新プログ
ラムSPIを実行して、ユーザから指定された削除すべ
きエントリENTX、すなわち[佐藤、R7Jを探索し
て削除し、この後第6図に示すように、E3”−tre
e構造のデータベース索引DBIを更新するようになさ
れている。
以上の方法によれば、ユーザによって指定された削除す
べきエントリのキーによる探索時に、根からの探索履歴
をメモリ上に記録すると共に、根から探索して最初に到
達した葉に削除すべきエントリが存在しない場合、後続
ポインタを参照して該当するエントリが存在する葉を探
索し、そのエントリと最初に到達した葉内の任意のエン
トリを交換した後、最初に到達した葉内で削除すべきエ
ントリを削除するようにしたことにより、!′11節(
又は根)ポインタ等の特別なポインタを用いることなく
容易にデータベース索引の所望のエントリを削除すると
共に、葉、節及び根の併合、削除等のB”−treeの
データベース索引の保守を効率的に処理できる。
べきエントリのキーによる探索時に、根からの探索履歴
をメモリ上に記録すると共に、根から探索して最初に到
達した葉に削除すべきエントリが存在しない場合、後続
ポインタを参照して該当するエントリが存在する葉を探
索し、そのエントリと最初に到達した葉内の任意のエン
トリを交換した後、最初に到達した葉内で削除すべきエ
ントリを削除するようにしたことにより、!′11節(
又は根)ポインタ等の特別なポインタを用いることなく
容易にデータベース索引の所望のエントリを削除すると
共に、葉、節及び根の併合、削除等のB”−treeの
データベース索引の保守を効率的に処理できる。
なお上述の実施例においては、根から探索して最初に到
達した葉に削除すべきエントリが存在しない場合、後続
ポインタを参照して該当するエントリが存在する葉を後
続の葉から探索するようにしたが、これに代え、データ
ベース索引の構成に応じて、先行ポインタを参照して、
先行する葉から探索するようにしても上述の実施例と同
様の効果を実現できる。
達した葉に削除すべきエントリが存在しない場合、後続
ポインタを参照して該当するエントリが存在する葉を後
続の葉から探索するようにしたが、これに代え、データ
ベース索引の構成に応じて、先行ポインタを参照して、
先行する葉から探索するようにしても上述の実施例と同
様の効果を実現できる。
さらに上述の実施例においては、本発明を根、節及び葉
の3階層でなるB”−tree構造でなるデータベース
索引の更新処理に適用したが、節はこれに限らず、複数
階層でも良い。
の3階層でなるB”−tree構造でなるデータベース
索引の更新処理に適用したが、節はこれに限らず、複数
階層でも良い。
また上述の実施例においては、根、節及び葉のそれぞれ
の最大エントリ数を3個にした場合について述べたが、
最大エントリ数はこれに限らず、3個以上又は3個以下
でも良く、さらに根、節及び葉の最大エントリ数が同一
でないB”−tree構造のデータベース索引に適用し
ても上述の実施例と同様の効果を実現できる。
の最大エントリ数を3個にした場合について述べたが、
最大エントリ数はこれに限らず、3個以上又は3個以下
でも良く、さらに根、節及び葉の最大エントリ数が同一
でないB”−tree構造のデータベース索引に適用し
ても上述の実施例と同様の効果を実現できる。
H発明の効果
上述のように本発明によれば、B’−tree構造でな
るデータベース索引の所望のエントリを削除するデータ
ベース更新方法において、削除すべきエントリのキーに
よる探索時に、根からの探索履歴をメモリ上に記録する
と共に、根から探索して最初に到達した葉に削除すべき
エントリが存在しない場合、後続ポインタ又は先行ポイ
ンタを参照して該当するエントリが存在する葉を探索し
、そのエントリと最初に到達した葉内の任意のエントリ
を交換した後、最初に到達した葉内で削除すべきエント
リを削除するようにしたことにより、組節(又は根)ポ
インタ等の特別なポインタを用いろことなく容易にデー
タベース索引の所望のエントリを削除し得ると共に、葉
、節及び根の併合、削除等のB”−tree構造のデー
タベース索引の保守を効率的に処理し得るデータベース
更新方法を実現できる。
るデータベース索引の所望のエントリを削除するデータ
ベース更新方法において、削除すべきエントリのキーに
よる探索時に、根からの探索履歴をメモリ上に記録する
と共に、根から探索して最初に到達した葉に削除すべき
エントリが存在しない場合、後続ポインタ又は先行ポイ
ンタを参照して該当するエントリが存在する葉を探索し
、そのエントリと最初に到達した葉内の任意のエントリ
を交換した後、最初に到達した葉内で削除すべきエント
リを削除するようにしたことにより、組節(又は根)ポ
インタ等の特別なポインタを用いろことなく容易にデー
タベース索引の所望のエントリを削除し得ると共に、葉
、節及び根の併合、削除等のB”−tree構造のデー
タベース索引の保守を効率的に処理し得るデータベース
更新方法を実現できる。
第1図は本発明の一実施例によるデータベース更新方法
が搭載されたコンピュータシステムを示すブロック図、
第2図は実施例によるB’−tree構造でなるデータ
ベース索引の各ページフォーマットを示す路線図、第3
図(A)及び(B )はデータヘース更新処理プログラ
ムを示すフローチャート、第4図はそのデータヘース更
新処理プログラムを実行する際に用いるメモリの説明に
供する路線図、第5図はB’4ree構造でなるデータ
ヘース索引を示す路線図、第6図はデータヘース更新処
理後のデータヘース索引を示す路線図、第7図は従来の
データヘース索引の各ページフォーマットを示ず路線図
である。 ■・・・・・・コンピュータシステム、2・・・・・・
CPU、3・・・・・・主記憶装置、4・・・・・・操
作部、5・・・・・・磁気ディスク装置。
が搭載されたコンピュータシステムを示すブロック図、
第2図は実施例によるB’−tree構造でなるデータ
ベース索引の各ページフォーマットを示す路線図、第3
図(A)及び(B )はデータヘース更新処理プログラ
ムを示すフローチャート、第4図はそのデータヘース更
新処理プログラムを実行する際に用いるメモリの説明に
供する路線図、第5図はB’4ree構造でなるデータ
ヘース索引を示す路線図、第6図はデータヘース更新処
理後のデータヘース索引を示す路線図、第7図は従来の
データヘース索引の各ページフォーマットを示ず路線図
である。 ■・・・・・・コンピュータシステム、2・・・・・・
CPU、3・・・・・・主記憶装置、4・・・・・・操
作部、5・・・・・・磁気ディスク装置。
Claims (1)
- 【特許請求の範囲】 B^+−tree構造でなるデータベース索引の所望の
エントリを削除するデータベース更新方法において、 上記削除すべきエントリのキーによる探索時に、根から
の探索履歴をメモリ上に記録すると共に、上記根から探
索して最初に到達した葉に上記削除すべきエントリが存
在しない場合、後続ポインタ又は先行ポインタを参照し
て、上記削除すべきエントリと同じエントリが存在する
後続葉又は先行葉を探索し、当該エントリと最初に到達
した葉内の任意のエントリを交換した後、最初に到達し
た葉内で上記削除すべきエントリを削除するようにした
ことを特徴とするデータベース更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63237134A JPH0283640A (ja) | 1988-09-20 | 1988-09-20 | データベース更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63237134A JPH0283640A (ja) | 1988-09-20 | 1988-09-20 | データベース更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0283640A true JPH0283640A (ja) | 1990-03-23 |
Family
ID=17010911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63237134A Pending JPH0283640A (ja) | 1988-09-20 | 1988-09-20 | データベース更新方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0283640A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000037515A (ko) * | 1998-08-19 | 2000-07-05 | 윤종용 | 히스토리 관리용 비플러스 트리 구성 방법 |
US6366739B1 (en) | 1993-06-11 | 2002-04-02 | Canon Kabushiki Kaisha | Equipment using solar battery |
JP2012073944A (ja) * | 2010-09-29 | 2012-04-12 | Brother Ind Ltd | ノード装置、情報通信システム、情報処理方法及び情報処理プログラム |
-
1988
- 1988-09-20 JP JP63237134A patent/JPH0283640A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6366739B1 (en) | 1993-06-11 | 2002-04-02 | Canon Kabushiki Kaisha | Equipment using solar battery |
KR20000037515A (ko) * | 1998-08-19 | 2000-07-05 | 윤종용 | 히스토리 관리용 비플러스 트리 구성 방법 |
JP2012073944A (ja) * | 2010-09-29 | 2012-04-12 | Brother Ind Ltd | ノード装置、情報通信システム、情報処理方法及び情報処理プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10936547B2 (en) | Filesystem replication using a minimal filesystem metadata changelog | |
KR940005775B1 (ko) | 디스크 파일 개방 방법 | |
US7720869B2 (en) | Hierarchical structured abstract file system | |
JPH04229372A (ja) | メモリ空間再使用管理方法及びシステム | |
WO2020041950A1 (zh) | 一种基于b+树索引的数据更新方法、装置及存储装置 | |
EP0410210A2 (en) | Method for dynamically expanding and rapidly accessing file directories | |
JPH0283640A (ja) | データベース更新方法 | |
JP4825504B2 (ja) | データ登録・検索システムおよびデータ登録・検索方法 | |
JP4306023B2 (ja) | トランザクション処理向けストレージ方法および装置、トランザクショナルストレージ | |
JPH0456344B2 (ja) | ||
JPH0198020A (ja) | 索引管理方式 | |
JP2615046B2 (ja) | レコード追加処理方法 | |
JP2721034B2 (ja) | クラスタリング制御システム | |
JPH04112253A (ja) | 多層バッファを用いるデータアクセス方法 | |
JP2604787B2 (ja) | 二次元データ格納方式 | |
JP2871755B2 (ja) | ダイナミック・ハッシュにおけるスプリット制御方法 | |
JP2912657B2 (ja) | ファイルアクセス処理装置 | |
JPH01282635A (ja) | 索引保守方式 | |
JP2643850B2 (ja) | ファイル処理装置 | |
JPH08328929A (ja) | データベース分割管理システム | |
JPS63285631A (ja) | 索引ファイル更新処理方式 | |
JPH0262670A (ja) | オブジェクトデータアクセス方式 | |
JPS6035692B2 (ja) | バッファ管理方式 | |
JPH04182749A (ja) | 関係型データベースのデータ格納方式 | |
JPH04350741A (ja) | 索引順編成ファイルのアクセス高速化方法 |