(57)【特許請求の範囲】
【請求項１】
各種データを記憶する情報記憶装置内にデータ格納領域として物理的に連続する複数のデータページを設け、これらデータページを用いてデータベースファイルを構成する複数のデータレコードを格納する際、データ格納領域管理装置で各データページごとに格納されている前ページ番号および次ページ番号からなるページ間チェーンを更新することにより、所望データレコードの追加・削除を行うデータ格納領域管理方法であって、
前記データ格納領域管理装置で、
同一データベースファイルで用いられる複数のデータページのうち、物理的に連続する複数のデータページを１つの連続領域としてそれぞれ管理し、
同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが１つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを当該データベースファイルのページ間チェーンから一括して切り離すことを特徴とするデータ格納領域管理方法。
【請求項２】
請求項１記載のデータ格納領域管理方法において、
前記データ格納領域管理装置で、各連続領域ごとに、当該連続領域を構成する連続データページのうちの開始ページ番号および終了ページ番号と、当該連続領域の前方に繋がる連続領域の終了ページ番号と、当該連続領域の後方に繋がる連続領域の開始ページ番号とを領域管理情報として保持することにより、各連続領域を管理することを特徴とするデータ格納領域管理方法。
【請求項３】
請求項２記載のデータ格納領域管理方法において、
連続領域を単位として削除する際、前記データ格納領域管理装置で、前記領域管理情報から当該削除対象連続領域の前方チェーン番号を参照し、その前方チェーン番号に対応する前方データページが存在する場合は、その前方データページを前記データベースファイルから読み込んで、その前方データページに続く次ページを示す次ページ番号として当該削除対象連続領域の後方チェーン番号を設定した後、前記データベースファイルへ書き出すとともに、前記領域管理情報のうち前記前方データページが属する前方連続領域の後方チェーン番号として当該削除対象連続領域の後方チェーン番号を設定することを特徴とするデータ格納領域管理方法。
【請求項４】
請求項２記載のデータ格納領域管理方法において、
連続領域を単位として削除する際、前記データ格納領域管理装置で、前記領域管理情報から当該削除対象連続領域の後方チェーン番号を参照し、その後方チェーン番号に対応する後方データページが存在する場合は、その後方データページを前記データベースファイルから読み込んで、その後方データページに続く前ページを示す前ページ番号として当該削除対象連続領域の前方チェーン番号を設定した後、前記データベースファイルへ書き出すとともに、前記領域管理情報のうち前記後方データページが属する後方連続領域の前方チェーン番号として当該削除対象連続領域の前方チェーン番号を設定することを特徴とするデータ格納領域管理方法。
【請求項５】
各種データを記憶する情報記憶装置内にデータ格納領域として物理的に連続する複数のデータページを設け、これらデータページを用いてデータベースファイルを構成する複数のデータレコードを格納する際、データ格納領域管理装置で各データページごとに格納されている前ページ番号および次ページ番号からなるページ間チェーンを更新することにより、所望データレコードの追加・削除を行うデータ格納領域管理装置であって、
同一データベースファイルで用いられる複数のデータページのうち、物理的に連続する複数のデータページを１つの連続領域としてそれぞれ管理するレコード処理制御手段と、
同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが１つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを当該データベースファイルのページ間チェーンから一括して切り離す連続ページ削除手段とを備えることを特徴とするデータ格納領域管理装置。
【請求項６】
請求項５記載のデータ格納領域管理装置において、
前記レコード処理制御手段は、各連続領域ごとに、当該連続領域を構成する連続データページのうちの開始ページ番号および終了ページ番号と、当該連続領域の前方に繋がる前方連続領域の終了ページ番号からなる前方チェーン番号と、当該連続領域の後方に繋がる後方連続領域の開始ページ番号からなる後方チェーン番号とを領域管理情報として保持することにより、各連続領域を管理することを特徴とするデータ格納領域管理装置。
【請求項７】
請求項６記載のデータ格納領域管理装置において、
前記連続ページ削除手段は、連続領域を単位として削除する際、前記領域管理情報から当該削除対象連続領域の前方チェーン番号を参照し、その前方チェーン番号に対応する前方データページが存在する場合は、その前方データページを前記データベースファイルから読み込んで、その前方データページに続く次ページを示す次ページ番号として当該削除対象連続領域の後方チェーン番号を設定した後、前記データベースファイルへ書き出すとともに、前記領域管理情報のうち前記前方データページが属する前方連続領域の後方チェーン番号として当該削除対象連続領域の後方チェーン番号を設定することを特徴とするデータ格納領域管理装置。
【請求項８】
請求項６記載のデータ格納領域管理装置において、
前記連続ページ削除手段は、連続領域を単位として削除する際、前記領域管理情報から当該削除対象連続領域の後方チェーン番号を参照し、その後方チェーン番号に対応する後方データページが存在する場合は、その後方データページを前記データベースファイルから読み込んで、その後方データページに続く前ページを示す前ページ番号として当該削除対象連続領域の前方チェーン番号を設定した後、前記データベースファイルへ書き出すとともに、前記領域管理情報のうち前記後方データページが属する後方連続領域の前方チェーン番号として当該削除対象連続領域の前方チェーン番号を設定することを特徴とするデータ格納領域管理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ格納領域管理方法および装置に関し、特にデータベースシステムでデータを格納する領域を管理するデータ格納領域管理方法および装置に関するものである。
【０００２】
【従来の技術】
データベースシステムで扱うデータ量の増大とともに、そのデータに対する処理時間が増加するため、従来より、その処理効率の改善を目的としたデータ格納領域管理方式が提案されている（例えば、特開昭５９−０２００６８号公報など参照）。
このデータ格納領域管理方式は、１つのデータ格納領域を構成する各ページのヘッダ部に当該ページのページ番号、前ページ番号、次ページ番号およびページ内レコード数を表すページ情報が付加されている順編成ファイルと、ファイルアクセスの際の情報を有するファイルコントロールブロックと、これを記憶する補助記憶装置と、演算制御装置とファイルコントロールブロックを主記憶にロードする手段と、ファイルコントロールブロックを更新する手段と、更新ページのページ情報を変更する追加／削除手段とから構成されている。
【０００３】
このような構成を有する従来のデータ格納領域管理方式では、データ削除を行う際、まずレコード削除時には削除位置（ページ）を決定した後、該当ページに削除対象レコードしか格納されていなかった場合には、前のページのヘッダ部にある次ページ番号と後ろのページのヘッダ部にある前ページ番号を更新して、該当ページを空きページとする。
また、該当ページに削除対象レコード以外にもレコードが存在している場合は、該当ページと隣接ページのレコードがひとつのページに収容できるような際にひとつのページにレコードを寄せ集め（併合処理）、この併合によって不要になったページを空きページとするものとなっていた。
【０００４】
【発明が解決しようとする課題】
しかしながら、このような従来のデータ格納領域管理方法では、次のような問題点があった。
第１の問題点は、データ削除処理時に削除対象レコードのあったページ自身、あるいは併合処理によって不要になったページを空きページとするための処理に時間が掛かるということである。その理由は、不要となったページを空きページとする際には、ページ間チェーンの更新のために、常に当該ページ、前ページおよび次ページの３ページ分にわたってページ情報を更新しなければならないためである。
【０００５】
第２の問題点は、ページ間チェーンを辿ってページ削除処理を繰り返すためにデータベースに対するＩＯ回数が増加し、それに比例してデータ削除処理に時間が掛かるようになるということである。その理由は、ページ間チェーンはファイル内のセクタ・トラック・シリンダ順に並んで昇順に繋がっているわけではなく、従って、ページ削除処理を行うにはページ単位でのＩＯ要求を発行せざるを得ないからである。
本発明はこのような課題を解決するためのものであり、大量データを一括削除する際の処理時間を大幅に削減できるデータ格納領域管理方法および装置を提供することを目的としている。
【０００６】
【課題を解決するための手段】
このような目的を達成するために、本発明にかかるデータ格納領域管理方法は、各種データを記憶する情報記憶装置内にデータ格納領域として物理的に連続する複数のデータページを設け、これらデータページを用いてデータベースファイルを構成する複数のデータレコードを格納する際、データ格納領域管理装置で各データページごとに格納されている前ページ番号および次ページ番号からなるページ間チェーンを更新することにより、所望データレコードの追加・削除を行うデータ格納領域管理方法であって、データ格納領域管理装置で、同一データベースファイルで用いられる複数のデータページのうち、物理的に連続する複数のデータページを１つの連続領域としてそれぞれ管理し、同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが１つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを当該データベースファイルのページ間チェーンから一括して切り離すようにしたものである。
【０００７】
連続領域の管理については、データ格納領域管理装置で、各連続領域ごとに、当該連続領域を構成する連続データページのうちの開始ページ番号および終了ページ番号と、当該連続領域の前方に繋がる連続領域の終了ページ番号と、当該連続領域の後方に繋がる連続領域の開始ページ番号とを領域管理情報として保持することにより、各連続領域を管理するようにしてもよい。
【０００８】
連続領域を単位として削除する際、データ格納領域管理装置で、領域管理情報から当該削除対象連続領域の前方チェーン番号を参照し、その前方チェーン番号に対応する前方データページが存在する場合は、その前方データページをデータベースファイルから読み込んで、その前方データページに続く次ページを示す次ページ番号として当該削除対象連続領域の後方チェーン番号を設定した後、データベースファイルへ書き出すとともに、領域管理情報のうち前方データページが属する前方連続領域の後方チェーン番号として当該削除対象連続領域の後方チェーン番号を設定するようにしてもよい。
【０００９】
連続領域を単位として削除する際、データ格納領域管理装置で、領域管理情報から当該削除対象連続領域の後方チェーン番号を参照し、その後方チェーン番号に対応する後方データページが存在する場合は、その後方データページをデータベースファイルから読み込んで、その後方データページに続く前ページを示す前ページ番号として当該削除対象連続領域の前方チェーン番号を設定した後、データベースファイルへ書き出すとともに、領域管理情報のうち後方データページが属する後方連続領域の前方チェーン番号として当該削除対象連続領域の前方チェーン番号を設定することを特徴とするデータ格納領域管理方法。
【００１０】
また、本発明にかかるデータ格納領域管理装置は、各種データを記憶する情報記憶装置内にデータ格納領域として物理的に連続する複数のデータページを設け、これらデータページを用いてデータベースファイルを構成する複数のデータレコードを格納する際、データ格納領域管理装置で各データページごとに格納されている前ページ番号および次ページ番号からなるページ間チェーンを更新することにより、所望データレコードの追加・削除を行うデータ格納領域管理装置であって、同一データベースファイルで用いられる複数のデータページのうち、物理的に連続する複数のデータページを１つの連続領域としてそれぞれ管理するレコード処理制御手段と、同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが１つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを当該データベースファイルのページ間チェーンから一括して切り離す連続ページ削除手段とを備えるものである。
【００１１】
連続領域の管理については、レコード処理制御手段で、各連続領域ごとに、当該連続領域を構成する連続データページのうちの開始ページ番号および終了ページ番号と、当該連続領域の前方に繋がる前方連続領域の終了ページ番号からなる前方チェーン番号と、当該連続領域の後方に繋がる後方連続領域の開始ページ番号からなる後方チェーン番号とを領域管理情報として保持することにより、各連続領域を管理するようにしてもよい。
【００１２】
連続領域を単位として削除する際、領域管理情報から当該削除対象連続領域の前方チェーン番号を参照し、その前方チェーン番号に対応する前方データページが存在する場合は、その前方データページをデータベースファイルから読み込んで、その前方データページに続く次ページを示す次ページ番号として当該削除対象連続領域の後方チェーン番号を設定した後、データベースファイルへ書き出すとともに、領域管理情報のうち前方データページが属する前方連続領域の後方チェーン番号として当該削除対象連続領域の後方チェーン番号を設定するようにしてもよい。
【００１３】
連続領域を単位として削除する際、連続ページ削除手段で、領域管理情報から当該削除対象連続領域の後方チェーン番号を参照し、その後方チェーン番号に対応する後方データページが存在する場合は、その後方データページをデータベースファイルから読み込んで、その後方データページに続く前ページを示す前ページ番号として当該削除対象連続領域の前方チェーン番号を設定した後、データベースファイルへ書き出すとともに、領域管理情報のうち後方データページが属する後方連続領域の前方チェーン番号として当該削除対象連続領域の前方チェーン番号を設定するようにしてもよい。
【００１４】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
図１は本発明の一実施の形態にかかるデータ格納領域管理装置を示すブロック図である。
このデータ格納領域管理装置１０は、レコード処理制御手段１、追加ページ確保手段２、領域確保手段３、領域間チェーン更新手段４、および連続ページ削除手段５から構成されている。
【００１５】
データ格納領域管理装置１０は、全体としてコンピュータから構成されており、レコード処理制御手段１、追加ページ確保手段２、領域確保手段３、領域間チェーン更新手段４および連続ページ削除手段５の各機能手段は、各種プログラムを実行するマイクロプロセッサやその周辺回路からなるハードウェア資源と、これら機能手段での処理を記述したプログラムとが協働することにより実現されている。
【００１６】
データベース７は、データ格納領域管理装置１０に接続されたハードディスクなどの情報記憶装置から構成されている。このデータベース７には、データ格納領域として情報記憶装置内の記憶領域に物理的に連続して設けられた複数のデータページからなり、所望のデータレコードを格納するためのデータページ群７２と、このデータページ群７２の先頭ページ番号および最終ページ番号を保持する管理レコード７１が設けられている。
また、管理レコード７１は、同一データベースファイルで用いられる、トラック単位など物理的に連続する複数ページをそれぞれ１つの連続領域として管理するための領域管理情報６を保持している。
【００１７】
図７に管理レコードとデータページ群との関連および領域管理情報６の構成例を示す。
ここでは、データページ群７２に複数の連続領域０１，０２，０３が設けられており、それぞれページ「ａ」〜「ｃ」，「ｄ」〜「ｆ」，「ｇ」〜「ｉ」から構成されている。これらページ「ａ」〜「ｉ」のうち、ページ「ａ」〜「ｈ」はデータが格納されているデータページであり、ページ「ｉ」はデータが格納されていない空きページである。
【００１８】
管理レコード７１には当該格納領域の先頭ページ番号「ａ」と最終ページ番号「ｈ」とが管理されている。各連続領域は、領域管理情報６に記録されている属性データ６１により、各連続領域ごとに、その開始ページ番号、終了ページ番号、前方チェーン番号および後方チェーン番号が管理されている。
また、各データページには、複数のデータレコードのほか、そのヘッダ部には一般的なページ間チェーンのための前ページ番号や後ページ番号などの情報がそれぞれ格納されている（図示せず）。
【００１９】
レコード処理制御手段１は、管理レコード７１さらには領域管理情報６を用いてデータベースファイルで用いる各データページの状態を管理し、利用者から上位アプリケーション９を介して、データベースファイルに対するレコード追加、更新処理等の処理要求が与えられた際に、レコード格納可能な領域に処理対象レコードを追加、更新処理を施すための制御を行う。また、レコード削除処理要求が与えられた際、削除条件に合うレコードが含まれるデータページ区間が、１つまたは複数の連続領域を含む場合に、該当連続領域に対する一括削除処理を施すための制御も行う。
【００２０】
追加ページ確保手段２は、追加処理の要求が与えられた際、レコード格納のための空き領域が、ページ間チェーンの最後にあるデータ格納ページに存在しない場合に、レコード処理制御手段１から起動され、確保されている連続領域から空きページをサーチし、ページ間チェーンでデータベースファイルとして確保された一連のページにリンクを張るための制御を行う。
領域確保手段３は、追加ページ確保手段２で施した空きページサーチ処理で、連続領域内には空きページが存在しない場合に、新たな連続路領域を確保するための制御を行う。
【００２１】
領域間チェーン更新手段４では、データ追加処理の途中で追加ページ確保手段２が起動された後に動作し、２つの連続領域にページ間チェーンがまたがる場合の領域管理情報のメンテナンス処理を施すための制御を行う。
連続ページ削除手段５では、削除処理の要求が与えられた際に、連続領域を一括削除するため準備処理の制御を行う。特にデータページ間のチェーンを辿って順削除を行う場合に、予め領域管理情報６に登録されている情報に基づいて削除要求範囲内に含まれるようなデータ格納連続領域をページ間チェーンから切り離すための制御を行う。
【００２２】
次に、図面を参照して、本発明にかかるデータ格納領域管理装置の動作について詳細に説明する。
まず、図２〜図５を参照して、データ格納領域管理装置におけるレコード追加処理について説明する。図２はレコード追加処理の全体動作を示すフローチャート、図３は追加ページ確保手段２の処理動作を示すフローチャート、図４は領域確保手段３の処理動作を示すフローチャート、図５は領域間チェーン更新手段４の処理動作を示すフローチャートである。
【００２３】
利用者から上位アプリケーション９を介してレコード追加処理の実行要求が与えられると、レコード処理制御手段１では、処理対象となるレコードに関する領域管理情報が格納されている管理レコード７１内の領域管理情報６をデータベース７から読み込む（ステップ１００）。このとき、対象レコードのデータページ間チェーンの最終ページに、当該最終ページの更新を禁止するための更新ロックを掛けて読み込む。
【００２４】
そして、上記最終ページ内に追加対象のデータレコードが格納できる空き領域があり、格納可能レコード数を越えていない場合にのみ、当該データの最終ページにデータレコードを格納可能と判断し（ステップ１０１：ＹＥＳ）、追加データレコードをその最終ページへ格納し（ステップ１０９）、レコード追加処理を終了する。
また当該データの最終ページにデータレコードを格納できない場合は（ステップ１０２：ＮＯ）、追加ページ確保手段２を起動して、該当データ最終ページが属する最終連続領域内から空きページ（未使用ページ）を探し出す（ステップ１０３）。
【００２５】
このとき、最終連続領域内に空きページがあれば（ステップ１０２：ＹＥＳ）、その空きページを新たなデータ最終ページとして確保し（ステップ１０３）、ページ間チェーンのメンテナンス処理を行わせる（ステップ１０４）。
そして、制御が追加ページ確保手段２からレコード処理制御手段１に戻ってきた後に新規に確保した未使用ページすなわちデータ最終ページに対しデータを挿入する処理を行い（ステップ１０９）、レコード追加処理を終了する。
【００２６】
一方、追加ページ確保手段２を起動した結果、追加ページ確保手段２により該当最終連続領域に空きページがないと判断された場合には（ステップ１０２：ＮＯ）、領域確保手段３に対し、ファイル内から連続未使用ページを探し出すとともに、その連続未使用ページを新たな最終連続領域として確保し、その属性データを領域管理情報６に登録する処理を行わせる（ステップ１０５）。
【００２７】
レコード処理制御手段１では、制御が領域確保手段３からレコード処理制御手段１に戻ってきた後、改めて追加ページ確保手段２を動作させて、その空きページを新たなデータ最終ページとして確保し（ステップ１０６）、ページ間チェーンのメンテナンス処理を行わせる（ステップ１０７）。そして領域間チェーン更新手段４を起動して、旧最終領域の属性データである後方チェーン番号として新たに確保した最終ページ番号を記録するとともに、新たな最終領域の属性データである前方チェーン番号として旧最終ページ番号を記録し、領域間チェーンのメンテナンス処理を行わせた後（ステップ１０８）、新規確保した未使用ページすなわちデータ最終ページにデータを挿入する処理を行い（ステップ１０９）、レコード追加処理を終了する。
【００２８】
次に、図３を参照して、追加ページ確保手段２の処理動作について説明する。図３は追加ページ確保手段の処理動作を示すフローチャートである。
追加ページ確保手段２は、レコード処理制御手段１によってレコード格納のために必要となる空き領域がデータ最終ページに存在しない場合に起動され、空きページを最終連続領域中から探して、その空きページを最終ページの直後に挿入し、これを新たなデータ最終ページとし、ここに追加要求のあったデータレコードの格納する。
【００２９】
レコード処理制御手段１からの起動に応じて、追加ページ確保手段２では、図３に示すように、まず、確保されている最終連続領域中から空きページを探し出し、これを更新ロックを掛けて読み込む（ステップ２０１）。
そして、この空きページ（以降、新規確保ページという）をデータ最終ページとするために、当該新規確保ページのヘッダ部にある次ページ番号格納域に、ページ間チェーンの一番最後であることを示すＮＵＬＬ値をセットするとともに、該ページのヘッダ部にある前ページ番号域に、旧データ最終ページのページ番号をセットする（ステップ２０２）。
【００３０】
次に、旧最終ページを読み込み、該ページのヘッダ部にある次ページ番号領域に新規確保ページのページ番号をセットした後（ステップ２０３）、管理レコードをデータベース中から読み込み、データ格納ページ間チェーンの最後にあるページを指し示している領域に新規確保ページのページ番号をセットする（ステップ２０４）。
【００３１】
この結果、新規確保ページのヘッダ部にある次ページ番号格納域にはＮＵＬＬ値が、前ページ番号格納域には旧最終データページ番号がセットされたことになる。
上記ステップ２０１で最終連続領域中に空きページがひとつも無いと判断された場合には、以降の処理を行わずにその旨を示すリターンコードとともに制御を呼び出し元のレコード処理制御手段１に返す。
【００３２】
次に、図４を参照して、領域確保手段３の処理動作について説明する。図４は領域確保手段の処理動作を示すフローチャートである。
領域確保手段３は、追加ページ確保手段２によって最終連続領域に空きページが確保できなかった場合に、レコード処理制御手段１から起動され、連続空きページをファイル中から探し、新たな最終連続領域として確保し、その中の空きページに追加要求のあったデータレコードの格納するための準備処理として呼び出される。
【００３３】
レコード処理制御手段１からの起動に応じて、領域管理手段３では、図４に示すように、まず、ファイル内から連続している空きページ群を探し出し、このページ群を新たな最終連続領域（以降、新規確保領域と称す）として確保する（ステップ３０１）。
次に、この新規確保領域の属性データである開始ページ番号と終了ページ番号を領域管理情報６に登録する（ステップ３０２）。また、前方チェーン番号と後方チェーン番号を記憶しておくための領域をＮＵＬＬ値で初期化しておく（ステップ３０３）。
【００３４】
この結果、領域管理情報６には、新規確保領域の属性データである開始ページ番号、終了ページ番号には、それぞれ連続空きページ群の最初と最後のページ番号が、また前方ページ番号と後方ページ番号には初期値であるＮＵＬＬ値がセットされたことになる。
この後、追加ページ確保手段２は、制御をレコード処理制御手段１に返し、制御が戻ってきたレコード処理制御手段１は、改めて追加ページ確保手段２を起動する。
【００３５】
再起動された追加ページ確保手段２では、直前に領域確保手段３で確保された最終領域内未使用ページのうちの一つを新たなデータ最終ページとして確保し、必要なページ間チェーンのメンテナンス処理（ステップ２０２，２０３）および管理レコードの更新処理（ステップ２０４）を行った後に、制御をレコード処理制御手段１に返す。
【００３６】
次に、図５を参照して、領域間チェーン更新手段４の処理動作について説明する。図５は領域間チェーン更新手段の処理動作を示すフローチャートである。
再起動した追加ページ確保手段２から制御が戻ってきたレコード処理制御手段１では、更に領域間チェーン更新手段４を起動して、旧最終連続領域内にある旧データ最終ページと、新規確保領域中にある新規確保ページとを結び付けるためのページ間チェーンを領域間チェーン情報として登録する。
【００３７】
領域間チェーン更新手段４では、図５に示すように、まず旧最終領域に対応する属性データを領域管理情報６から見つけ出し、その後方チェーン番号記憶域に、新規確保ページ自身のページ番号をセットする（ステップ４０１）。
次に、領域確保手段３で確保した新規確保領域に対応する属性データを領域管理情報６から見つけ出し、その前方チェーン番号に、旧最終データページ自身のページ番号をセットし（ステップ４０２）、制御をレコード処理制御手段１に返す。
【００３８】
このレコード処理制御手段１を中心とした追加ページ確保手段２，領域確保手段３および領域間チェーン更新手段４を用いた一連の処理の結果、データページ間チェーンは相互リンクが確立されているのは無論のこと、連続領域間でも相互に最終データページと先頭データページ間のチェーンを持つことになる。
【００３９】
次に、図６を参照して、データ格納領域管理装置におけるレコードの一括削除処理について説明する。図６は連続ページ削除手段５の処理動作を示すフローチャートである。
利用者から上位アプリケーション９を介してレコードの一括削除処理の実行要求が与えられた際、レコード処理制御手段１は、削除要求ページの範囲が１つ以上の連続領域を含むような場合には連続ページ削除手段５を起動し、連続領域を一括して削除するための領域管理情報のメンテナンス処理やページ間チェーンのメンテナンス処理をさせる。
その後、連続ページ削除手段５から制御がレコード処理制御手段１に戻ってきた後、ページ間チェーンを辿って各ページ単位に削除処理を行うのではなく、連続領域を一括削除する処理を行なう。
【００４０】
レコード処理制御手段１から起動された連続ページ削除手段５では、削除対象である連続領域の属性データを領域管理情報６から読み込む。
そして、前方チェーン番号の示す当該連続領域の直前にある連続領域内の最終データページと後方チェーン番号の示す当該連続領域の直後にある連続領域内の先頭データページとを結びつけるためのページ間チェーンのメンテナンス処理を行い、削除対象である連続領域内の各ページをファイル内未使用ページに戻すために必要な処理を行う。
【００４１】
連続ページ削除手段５は、レコード処理制御手段１によって、ひとつあるいは複数の連続領域内にある全ページを一括して削除する際に起動される。
レコード処理制御手段１からの起動に応じて、連続ページ削除手段５では、図６に示すように、まず、削除対象領域の属性データである前方チェーン番号を検査し、ＮＵＬＬ値以外のページ番号が登録されているかを判定する（ステップ５０１）。
【００４２】
ここで、上記ステップ５０１で前方チェーン番号が登録されていた場合は（ステップ５０１：ＹＥＳ）、該当ページのページ間チェーンを更新するため、まず該当ページをファイルから読み込み（ステップ５０２）、該当ページのページヘッダ部ある次ページ番号域に、削除対象領域の属性データである後方チェーン番号を転記し（ステップ５０３）、該当ページをファイルに書き戻す（ステップ５０４）。
さらに、削除対象領域の一つ前に登録されている連続領域（前方連続領域）の属性データである後方チェーン番号に、削除対象領域の後方チェーン番号を転記する（ステップ５０５）。
【００４３】
一方、ステップ５０１で、削除対象領域の前方チェーン番号がＮＵＬＬ値であった場合は（ステップ５０１：ＮＯ）、該当連続領域は一番初めに確保された連続領域であると判断し、ステップ５０２からステップ５０５を行う代わりに、管理レコードで保持しているデータページ間チェーンの先頭ページ番号域に、削除対象領域の後方チェーン番号を格納する（ステップ５０６）。
次に、削除対象領域の属性データである後方チェーン番号を検査し、ＮＵＬＬ値以外のページ番号が登録されているかを判定する（ステップ５０７）。
【００４４】
ここで、後方チェーン番号が登録されていた場合は（ステップ５０７：ＹＥＳ）、該当ページのページ間チェーンを更新するため、まず該当ページをファイルから読み込む（ステップ５０８）。
そして、該当ページのページヘッダ部ある前ページ番号域に、削除対象領域の属性データである前方チェーン番号を転記し（ステップ５０９）、該当ページをファイルに書き戻す（ステップ５１０）。
さらに、削除対象領域の一つ後ろに登録されている連続領域（後方連続領域）の属性データである前方チェーン番号に、削除対象領域の前方チェーン番号を転記する（ステップ５１１）。
【００４５】
一方、ステップ５０７で、削除対象領域の後方チェーン番号がＮＵＬＬ値であった場合は（ステップ５０７：ＮＯ）、該当連続領域は一番後に確保された連続領域、つまり最終連続領域であると判断する。
そして、ステップ５０８からステップ５１１を行う代わりに、管理レコードで保持しているデータページ間チェーンの最終ページ番号域に、削除対象領域の前方チェーン番号を格納し（ステップ５１２）、制御をレコード処理制御手段１に戻す。
【００４６】
この結果、データページ間チェーンからは、削除対象領域に含まれる全ページが切り離されたことになり、制御が戻ってきたレコード処理制御手段１により、これらの連続ページをファイル内の未使用ページに戻すことが可能となる。
なお、連続ページをファイル内の連続未使用ページに戻す際には、トラック単位あるいはシリンダ単位ＩＯ処理などを利用して複数ページを一括して読み書きできるため、１つずつ未使用ページに戻すよりも高速化を図ることができる。また、削除対象領域を一括削除する際には、領域管理情報に登録されている属性データもクリアする。
【００４７】
このように、同一データベースファイルで用いられる複数のデータページのうち、連続する複数のデータページを１つの連続領域としてそれぞれ管理し、同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが１つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを一括してページ間チェーンから切り離すようにしたので、削除対象ページごとにそれぞれのチェーン情報を更新する必要がなくなり、ページ間チェーン更新処理に掛かる時間を削減することができる。
【００４８】
また、連続データを一括削除する際には、トラック単位など連続する複数ページに対して一括ＩＯ要求を出す一般的な方式を利用でき、大量データの順次削除処理に掛かるＩＯ回数とＩＯ時間を削減できる。
したがって、本実施の形態によれば、大量データを一括削除する際の処理時間を大幅に削減できる。
【００４９】
次に、図７〜１０を参照して、本発明にかかるデータ格納領域管理装置の具体的動作について説明する。図７〜１０は、データ格納領域管理装置の具体的動作例を示す説明図である。
まず、図７にデータ格納領域の初期状態例を示す。ここでは、複数の連続領域０１，０２，０３が設けられており、それぞれページ「ａ」〜「ｃ」，「ｄ」〜「ｆ」，「ｇ」〜「ｉ」から構成されている。これらページ「ａ」〜「ｉ」のうち、ページ「ａ」〜「ｈ」はデータが格納されているデータページであり、ページ「ｉ」はデータが格納されていない空きページである。
【００５０】
管理レコードには当該格納領域の先頭ページ番号「ａ」と最終ページ番号「ｈ」とが管理されており、管理レコードからデータページ群の先頭ページ「ａ」へのチェーンと最終ページ「ｈ」へのチェーンとが張られている。
各連続領域は、領域管理情報６に記録されている属性データ６１によりその状態が管理されている。属性データ６１では、各連続領域ごとに、その開始ページ番号、終了ページ番号、前方チェーン番号および後方チェーン番号が管理されており、これらデータページ「ａ」〜「ｈ」間はそれぞれ前ページと次ページを指し示すページ間チェーンが張られている。
【００５１】
この属性データ６１によれば、連続領域０１は、開始ページ番号「ａ」、終了ページ番号「ｃ」の範囲のページ群であり、前方チェーン番号が「ＮＵＬＬ値」であるので、これより前には連続領域とデータページは存在しないことがわかる。逆に、後方チェーン番号にページ番号「ｄ」がセットされているので、この後ろに連続領域が存在し、かつ、その領域内でページ間チェーンの先頭にあるページが「ｄ」であることを示している。
【００５２】
また、連続領域０２は、ページ「ｄ」からページ「ｆ」までの領域であり、前方には連続領域が存在するとともに、その連続領域内のページ間チェーン最終ページがページ「ｃ」であること、並びに後方の連続ページ内のページ間チェーン先頭ページがページ「ｇ」であることを表している。
さらに、ページ「ｇ」からページ「ｉ」までの連続領域０３は、前方チェーンとしてページ「ｆ」を指す情報を保有しており、その一方で後方チェーン番号が「ＮＵＬＬ値」であり、当該データページ群の最終連続領域であることを表している。
【００５３】
次に、上記図７の状態から連続ページ削除手段５を起動して、連続領域０１のすべてページ（ページ「ａ」〜「ｃ」）を一括削除する場合、連続ページ削除手段５では、上記図６のフローチャートに基づき以下の処理を行う。
まず、連続領域０１の属性データ６１を参照し、前方チェーン番号が登録されているか判定し（ステップ５０１）、その内容が未登録を表すＮＵＬＬ値であることから（ステップ５０１：ＮＯ）、後方チェーン番号のページ番号「ｄ」を、管理レコードの先頭ページ番号に埋め込む（ステップ５０６）。
【００５４】
続いて、連続領域０１の後方チェーン番号が登録されているかを判定し（ステップ５０７）、ページ番号「ｄ」が登録されているので（ステップ５０７：ＹＥＳ）、その後方チェーン番号のページ番号「ｄ」の指すページをファイルから読み込み（ステップ５０８）、そのページ「ｄ」の前ページ番号として、連続領域０１の前方チェーン番号である「ＮＵＬＬ値」を埋め込み（ステップ５０９）、ファイルに書き戻す（ステップ５１０）。
【００５５】
そして、その１つ後ろ、つまり連続領域０２の前方チェーン番号のページ番号を、連続領域０１の前方チェーン番号である「ＮＵＬＬ値」に書き換える（ステップ５１１）。
これにより、図８に示すように、連続領域０１のすべてのページ（ページ「ａ」〜「ｃ」）が一括して削除されたことになる。
【００５６】
また、図７の状態から連続領域０２を一括削除する場合は、連続ページ削除手段５で、ステップ５０１：ＹＥＳ以降のステップ５０２〜５０５、およびステップ５０７：ＹＥＳ以降のステップ５０８〜５１１の各処理が行われ、図９の状態となる。
同様にして図７の状態から連続領域０３を一括削除する場合は、連続ページ削除手段５で、ステップ５０１：ＹＥＳ以降のステップ５０２〜５０５、およびステップ５０７：ＮＯ以降のステップ５１２の各処理が行われ、図１０の状態となる。
【００５７】
これら図７〜１０からも解るように、領域間の相互ページチェーンである前方チェーン番号と後方チェーン番号を領域管理情報６として保持しておくことにより、１つ以上の連続領域にわたってデータレコードを削除する際には、不要となった連続領域を一括してページ間チェーンから容易に切り離すことができ、ファイル内未使用ページに戻してやることができるようになる。
【００５８】
【発明の効果】
以上説明したように、本発明は、同一データベースファイルで用いられる複数のデータページのうち、物理的に連続する複数のデータページを１つの連続領域としてそれぞれ管理し、同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが１つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを一括してページ間チェーンから切り離すようにしたので、削除対象ページごとにそれぞれのチェーン情報を更新する必要がなくなり、ページ間チェーン更新処理に掛かる時間を削減することができる。
また、連続データを一括削除する際には、トラック単位など連続する複数ページに対して一括ＩＯ要求を出す一般的な方式を利用でき、大量データの順次削除処理に掛かるＩＯ回数とＩＯ時間を削減できる。したがって、本発明によれば、大量データを一括削除する際の処理時間を大幅に削減できる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態にかかるデータ格納領域管理装置を示すブロック図である。
【図２】  レコード追加処理の全体動作を示すフローチャートである。
【図３】  追加ページ確保手段の処理動作を示すフローチャートである。
【図４】  領域確保手段の処理動作を示すフローチャートである。
【図５】  領域間チェーン更新手段の処理動作を示すフローチャートである。
【図６】  連続ページ削除手段の処理動作を示すフローチャートである。
【図７】  データ格納領域管理装置の具体的動作例（初期状態）を示す説明図である。
【図８】  データ格納領域管理装置の具体的動作例（連続領域０１削除後の状態）を示す説明図である。
【図９】  データ格納領域管理装置の具体的動作例（連続領域０２削除後の状態）を示す説明図である。
【図１０】  データ格納領域管理装置の具体的動作例（連続領域０３削除後の状態）を示す説明図である。
【符号の説明】
１０…データ格納領域管理装置、１…レコード処理制御手段、２…追加ページ確保手段、３…領域確保手段、４…領域間チェーン更新手段、５…連続ページ削除手段、６…領域管理情報、７…データベース、７１…管理レコード、７２…データページ群、９…上位アプリケーション。
【図１】
0003858648.tif 000002
【図２】
0003858648.tif 000003
【図３】
0003858648.tif 000004
【図４】
0003858648.tif 000005
【図５】
0003858648.tif 000006
【図６】
0003858648.tif 000007
【図７】
0003858648.tif 000008
【図８】
0003858648.tif 000009
【図９】
0003858648.tif 000010
【図１０】
0003858648.tif 000011