(57)【要約】【課題】  必要最小限の容量の拡張でデータベースを再編成する。【解決手段】  データベース１ａの再編成要求が入力されると、レコード再編成手段６によって、インデックス３ａが参照されることにより基本領域２１内のページが順次選択され、選択されたページ内のレコードが拡張インデックス３ｂを参照することにより拡張データベース２に移動される。さらに、レコード再編成手段６により、データベース２内のページ毎の移動の進捗状況がページ状態管理テーブル７に設定される。【選択図】  図１
2006251990.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成プログラムにおいて、
前記コンピュータを、
前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段、
前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段、
前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段、
として機能させることを特徴とするデータベース再編成プログラム。
【請求項２】
さらに、前記コンピュータを、
更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記拡張データベース内の書き込み対象ページが未編成の状態であれば前記インデックスを参照し、前記書き込み対象ページが編成済の状態であれば前記拡張インデックスを参照して、前記拡張データベース内の該当ページに対して前記更新レコードを書き込むレコード書き込み手段、
として機能させることを特徴とする請求項１記載のデータベース再編成プログラム。
【請求項３】
前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張領域に格納すべきレコードを前記基本領域から前記拡張領域に移動し、前記拡張領域の移動の終了後、前記基本領域に格納すべきレコードを移動することを特徴とする請求項１記載のデータベース再編成プログラム。
【請求項４】
前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張領域の再編成の終了後、前記基本領域の、すでに移動されたレコードが格納されていたページに、前記基本領域に格納すべきレコードを移動することを特徴とする請求項３記載のデータベース再編成プログラム。
【請求項５】
基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成方法において、
拡張データベース作成手段が、前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成し、
拡張インデックス作成手段が、前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成し、
レコード再編成手段が、前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定する、
ことを特徴とするデータベース再編成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータベースの再編成をするためのデータベース再編成プログラムおよびデータベース再編成方法に関し、特に容量拡張を最小限に止めてデータベースの再編成を行うデータベース再編成プログラムおよびデータベース再編成方法に関する。
【背景技術】
【０００２】
多くのデータベースシステムでは、効率的なデータ入出力環境を維持するためデータベースの再編成が必要となる。たとえば、以下のような目的で再編成が行われる。
・ページ内のレコード間にある空き領域の統合（フラグメンテーション解消）
・オーバフローページにあるレコードをプライムページに格納することによるアクセス性能向上
・データベース内においてレコードが満杯状態になる前の領域の拡張
従来の一般的な再編成処理では、まず、複写元のデータベースより容量の大きい複写先データベースを用意する。次に、複写元のデータベース中にある全てのレコードが、複写先データベースに格納される（たとえば、特許文献１参照）。この処理について、以下具体的に説明する。
【０００３】
図１４は、従来の一般的なデータベース再構築方法を示す図である。図１４には、データベース９４１のデータを再構築して、データベース９５１に格納する場合の例が示されている。
【０００４】
この方式では、データベースを使用する処理機能からアクセスしているデータベース９４１（複写元）とは別に、新規に再編成を実施するためのデータベース９５１（複写先）を用意する。各データベース９４１、９５１には、対応するインデックス９４２、９５２が設けられている。また、データベース９４１は、複数のプライムページを格納するプライムページ格納領域９４１ａと、複数のオーバフローページを格納するオーバフローページ格納領域９４１ｂとを有している。同様に、データベース９５１は、複数のプライムページを格納するプライムページ格納領域９５１ａと、複数のオーバフローページを格納するオーバフローページ格納領域９５１ｂとを有している。なお、この例では、データベース９５１は、データベース９４１よりも記憶容量が拡張されているものとする。
【０００５】
そして、複写元のデータベース９４１の先頭ページから順に、格納されているレコードが複写先のデータベース９５１に複写され、データベースの再編成が実施される（ステップＳ１１１）。
【０００６】
このとき、複写元のデータベース９４１に対するレコードの更新を意図するトランザクション９６１を受け付けることができる。たとえば、トランザクション９６１によってプライムページ内のレコード（レコード番号「Ｒ１」）が変更され、オーバフローページにレコード（レコード番号「Ｒ３３」）が追加される（ステップＳ１１２）。再編成中にレコードの更新処理が行われると、その処理内容が更新後ログ９４３に記録される（ステップＳ１１３）。
【０００７】
ここで、この複写されたレコードに対して応用プログラムからの更新があった場合、複写のレコードに対する更新後ログ９４３を複写先のデータベース９５１のレコードに付け込む（ステップＳ１１４）。付け込みとは、更新されたレコードの内容をデータベース９５１に反映させる処理である。付け込みによりレコードの上書きを行うことで、整合性が保証される。このようなデータベースの再編成方式は、ＤＢｓｎａｐｐｅｒと呼ばれる。
【特許文献１】特開２０００−３３９２１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、図１４に示した方式では、別個に複写先のデータベースを確保する必要があるため、たとえば、少しの容量拡張に対しても、複写元以上の容量を有する複写先のデータベースを用意する必要があった。すなわち、複写を行うデータの容量に対して、二倍以上の容量を有するデータベースが必要であった。また、複写が終了した複写元のデータベースが無駄となるという問題があった。さらに、データベースを設置するスペースが増大し、維持費がかかるという問題があった。
【０００９】
本発明はこのような点に鑑みてなされたものであり、必要最小限の容量の拡張でデータベースを再編成可能なデータベース再編成プログラムおよびデータベース再編成方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では上記課題を解決するために、図１に示すようなデータベース再編成プログラムが提供される。本発明に係るデータベース再編成プログラムは、コンピュータに、基本領域２１内の複数のページそれぞれに対して格納すべきレコードがインデックス３ａにより定義されたデータベースの再編成処理を実行させるためのものである。
【００１１】
このデータベース再編成プログラムを実行するコンピュータは、拡張データベース作成手段４、拡張インデックス作成手段５およびレコード再編成手段６を有する。
拡張データベース作成手段４は、データベースの再編成要求に応じて、新たな拡張領域２２を作成し、基本領域２１と拡張領域２２とからなる拡張データベース２を作成する。
【００１２】
拡張インデックス作成手段５は、基本領域２１および拡張領域２２の各ページに格納すべきレコードを定義した拡張インデックス３ｂを作成する。
レコード再編成手段６は、インデックス３ａを参照することにより基本領域２１内のページを選択し、選択したページ内のレコードを、拡張インデックス３ｂを参照することにより拡張データベース２内の選択したページに移動すると共に、拡張データベース２内のページ毎の移動の進捗状況をページ状態管理テーブル７に設定する。
【００１３】
このようなデータベース再編成プログラムを実行するコンピュータによれば、データベースの再編成要求が入力されると、このデータベースに拡張データベース作成手段４により新たな拡張領域２２が作成され、基本領域２１と拡張領域２２とからなる拡張データベース２が作成される。
【００１４】
また、拡張インデックス作成手段５により基本領域２１および拡張領域２２の各ページに格納すべきレコードを決める拡張インデックス３ｂが作成される。
そして、レコード再編成手段６によりインデックス３ａを参照することにより基本領域２１内のページが順次選択され、選択されたページ内のレコードが拡張インデックス３ｂを参照することにより拡張データベース２の選択したページに移動される。さらに、レコード再編成手段６により、データベース２内のページ毎の移動の進捗状況がページ状態管理テーブル７に設定される。
【００１５】
また、上記課題を解決するために、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成方法において、拡張データベース作成手段が、前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成し、拡張インデックス作成手段が、前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成し、レコード再編成手段が、前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定することを特徴とするデータベース再編成方法が提供される。
【００１６】
このようなデータベース再編成方法によれば、データベースの再編成要求が入力されると、拡張データベース作成手段により新たな拡張領域が作成され、また、基本領域と拡張領域とからなる拡張データベースが作成される。その後、拡張インデックス作成手段により基本領域および拡張領域に格納すべきレコードを決める拡張インデックスが作成される。
【００１７】
その後、レコード再編成手段によって、インデックスが参照されることにより基本領域内のページが選択され、選択されたページ内のレコードは、拡張インデックスを参照することにより拡張データベース内の選択したページに移動される。さらに、レコード再編成手段により、拡張データベース内のページ毎の移動の進捗状況がページ状態管理テーブルに設定される。
【発明の効果】
【００１８】
以上説明したように本発明では、再編成前のデータベースを構成する基本領域に、新たに拡張領域を追加することにより、基本領域を含む新たな拡張データベースを作成して再編成を行うようにした。そのため、再編成時に必要なデータベースの容量の追加を最小限にすることができる。これにより、従来必要としていた、再編成前のデータベース以上の容量を有するデータベースを別個に用意する必要が無く、データベースの省容量化を図ることができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００２０】
図１は、実施の形態に適用される発明の概念図である。図１の例では、記憶手段１に設けられたデータベースを再構成し、拡張データベース２を作成するものとする。
拡張データベース２内の記憶領域は、基本領域２１と拡張領域２２とを有している。
【００２１】
ここで、基本領域２１は、再構成前のデータベースが有していた領域であり、拡張領域２２は、再構成により新たに拡張された領域である。
この基本領域２１と拡張領域２２とは、それぞれ複数のページに分割されている。図１では、基本領域２１はページ番号「Ｐ０」、「Ｐ１」および「Ｐ２」のページを有し、拡張領域２２はページ番号「Ｐ３」、「Ｐ４」および「Ｐ５」のページを有している。そして、データベースの再構成前の各ページに格納すべきレコードが、インデックス３ａで定義されている。また、拡張データベース２に対してレコードの更新処理が行われると、更新処理の内容がログとして保存される。
【００２２】
なお、図１の例では、インデックス３ａ、拡張インデックス３ｂにおいて、レコード番号（Ｒｍ：ｍは０以上の整数）とページ番号（Ｐｎ：ｎは０以上の整数）との対応関係が示されている。各ページには、インデックス３ａ、拡張インデックス３ｂで対応付けられたレコード番号以下であり、且つ、ページ番号が１つ小さいページに対応付けられたレコード番号より大きなレコード番号を有するレコードが格納される。
【００２３】
拡張データベース作成手段４は、データベースの再編成要求に応じて、新たな拡張領域を作成し、前述したように基本領域２１と拡張領域２２とで構成される拡張データベース２を作成する。
【００２４】
拡張インデックス作成手段５は、基本領域２１および拡張領域２２に格納すべきレコードを決める拡張インデックス３ｂを作成する。
レコード再編成手段６は、インデックス３ａを参照することにより基本領域２１内の、後述する未編成のページを選択する。そして、レコード再編成手段６は、選択したページ内のレコードを、拡張インデックス３ｂを参照することにより拡張データベース２内の選択したページに再編成する。また、レコード再編成手段６は、拡張データベース２内のページ毎の再編成の進捗状況をページ状態管理テーブル７に設定する。
【００２５】
ページ状態管理テーブル７には、拡張前のデータベース内のページ毎に、再編成の状態が設定されている。再編成の状態としては、未編成（図中「未」と示す）、再編成処理中（図中「中」と示す）、および編成済（図中「済」と示す）がある。
【００２６】
レコード書き込み手段８は、更新レコードの書き込み要求に応じてページ状態管理テーブル７を参照し、書き込み対象のページの状態に応じて、更新レコードの書き込み対象を判定する。具体的には、レコード書き込み手段８は、拡張データベース２内の書き込み対象ページが未編成の状態であればインデックス３ａを参照し、拡張データベース２内の該当ページに対して更新レコードを書き込む。書き込み対象ページが編成済の状態であれば拡張インデックス３ｂを参照して、拡張データベース２内の該当ページに対して前記更新レコードを書き込む。さらに、レコード書き込み手段８は、書き込み対象ページが再編成処理中の状態であれば編成済に遷移するのを待ち、再編成処理中から編成済の状態に遷移したときに、拡張データベース２に更新レコードを書き込む。
【００２７】
このようなデータベース再編成装置によれば、データベース１ａの再編成要求が入力されると、レコード再編成手段６により、インデックス３ａを参照することにより基本領域２１内のページが順次選択され、選択されたページ内のレコードが、拡張インデックス３ｂを参照することにより拡張データベース２内の選択したページに再編成される。さらに、レコード再編成手段６により、拡張データベース２内のページ毎の再編成の進捗状況がページ状態管理テーブル７に設定される。詳述すると、このページ状態管理テーブル７は、インデックス３ａに対応したページ番号が割り振られており、拡張前のデータベースのレコードが格納された各ページに対して、処理が終了したか否かの進捗状況が設定される。
【００２８】
ここで、ページ番号「Ｐ０」〜「Ｐ２」が大きい順に、ページが選択されるものとする。図１には、ページ番号「Ｐ１」のページを再編成しているときのページ状態管理テーブル７が示されている。この例では、ページ番号「Ｐ０」のページが未編成、ページ番号「Ｐ１」のページが再編成処理中、ページ番号「Ｐ２」のページが編成済である。
【００２９】
データベース再編成処理中に、更新レコードの書き込み要求が入力されると、レコード書き込み手段５により、ページ状態管理テーブル７が参照され、書き込み対象のページの状態が判断される。
【００３０】
たとえば、レコード番号「Ｒ３」が更新レコード９ａとして入力された場合、拡張前のデータベースのページ番号「Ｐ０」のページが書き込み対象となる。図１の例では、ページ番号「Ｐ０」のページは、未編成の状態である。そのため、更新レコード９ａは、インデックス３ａを参照し、得られた書き込み先である拡張データベース２のページ番号「Ｐ０」のページに書き込まれる。
【００３１】
レコード番号「Ｒ４」が更新レコード９ｂとして入力された場合、拡張前のデータベースのページ番号「Ｐ１」のページが書き込み対象となる。図１の例では、ページ番号「Ｐ１」のページは、再編成処理中の状態である。そのため、該当ページの状態が編成済になるのを待ち、更新レコード９ｂは、拡張インデックス３ｂを参照し、拡張データベース２の得られた書き込み先に書き込まれる。
【００３２】
レコード番号「Ｒ６」が更新レコード９ｃとして入力された場合、拡張前のデータベースのページ番号「Ｐ２」のページが書き込み対象となる。図１の例では、ページ番号「Ｐ２」のページは、編成済の状態である。そのため、更新レコード９ｃは拡張インデックス３ｂを参照し、得られた書き込み先である拡張データベース２のページ番号「Ｐ５」のページに書き込まれる。
【００３３】
このようにして、レコードの書き込みを停止することなく、データベースの再編成が行われる。なお、ページが再編成処理中の場合、書き込みの待機時間が発生するが、１ページの再編成処理は短時間で実行できるため、業務を停止させる程の影響はない。
【００３４】
以下、本発明の実施の形態を具体的に説明する。
図２は、本発明の実施の形態のシステム構成例を示す図である。本発明の実施の形態では、複数のホストコンピュータ１００、２００、３００、４００と複数の端末装置３１、３２、・・・とがネットワーク１０を介して接続されている。ホストコンピュータ１００、２００、３００、４００には、ストレージデバイス５００、６００が接続されている。また、ホストコンピュータ１００と他のホストコンピュータ２００、３００、４００とは、高速の通信回線で互いに接続されている。ホストコンピュータ２００、３００、４００は、その通信回線を介して、ホストコンピュータ１００内の共有メモリにアクセスできる。
【００３５】
ホストコンピュータ１００、２００、３００、４００は、ネットワーク１０を介して端末装置３１、３２、・・・からの要求に応じて、ストレージデバイス５００、６００内に構築されたデータベースに対するトランザクションを実行する。また、少なくとも１つのホストコンピュータは、データベースを再構成するための処理機能を有している。本実施の形態では、ホストコンピュータ１００がデータベースの再構成を行うものとする。ホストコンピュータ１００は、データベースの再構成を行うために、以下のようなハードウェア構成を有している。
【００３６】
図３は、データベースの再構成を行うホストコンピュータのハードウェア構成例を示す図である。ホストコンピュータ１００は、ＣＰＵ(Central Processing Unit)１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０１ａを介してＲＡＭ(Random Access Memory)１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、共有メモリ１０６、ストレージデバイスインタフェース１０７、通信インタフェース１０８、およびホストコンピュータ間通信インタフェース１０９が接続されている。
【００３７】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。さらに、データベースの再編成時には、ＲＡＭ１０２内に、データベース内のブロック毎の状態を示すページ状態管理テーブル１２０が格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００３８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０１ａを介してＣＰＵ１０１に送信する。
【００３９】
共有メモリ１０６は、他のホストコンピュータ２００、３００、４００との間で共有可能な記録媒体である。この共有メモリ１０６は、データベースの再編成時には、ページ状態管理テーブルの内容が、所定のタイミングで格納されるページ状態管理データ格納部として機能する。なお、ページ状態管理テーブルおよびページ状態管理データ格納部については後に詳述する。
【００４０】
共有メモリ１０６としては、たとえば、バッテリでバックアップされた半導体メモリが使用される。
ストレージデバイスインタフェース１０７は、ストレージデバイス５００、６００に接続されている。ストレージデバイスインタフェース１０７は、ＣＰＵ１０１からの指示に従って、ストレージデバイス５００、６００に対するデータの入出力を行う。
【００４１】
通信インタフェース１０８は、ネットワーク１０に接続されている。通信インタフェース１０８は、ネットワーク１０を介して、端末装置３１、３２、・・・との間でデータの送受信を行う。
【００４２】
ホストコンピュータ間通信インタフェース１０９は、他のホストコンピュータ２００、３００、４００に接続されている。ホストコンピュータ間通信インタフェース１０９は、他のホストコンピュータ２００、３００、４００との間でデータの送受信を行う。たとえば、ホストコンピュータ間通信インタフェース１０９は、他のホストコンピュータ２００、３００、４００に対して共有メモリ１０６に格納されている情報を送信する。
【００４３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、ホストコンピュータ１００のハードウェア構成を説明したが、他のホストコンピュータ２００、３００、４００も同様のハードウェア構成で実現することができる。ただし、ホストコンピュータ２００、３００、４００には、共有メモリは搭載されていなくてもよい。
【００４４】
以下、図２、３に示す構成のシステムにおけるデータベース再編成処理について詳細に説明する。
図４は、本実施の形態を実現するための機能を示すブロック図である。図４には、ストレージデバイス５００内に構築されているデータベースが拡張データベース５２０ａに再編成された場合の例が示されている。
【００４５】
ホストコンピュータ１００には、ストレージデバイス５００、６００が接続されている。
ストレージデバイス５００には、インデックス５１０、拡張インデックス５５０、基本領域５２１と拡張領域５２２とを有する拡張データベース５２０ａ、更新前ログ５３０、および更新後ログ５４０が含まれる。データベースの再編成を実行する以前のデータベースには、拡張領域５２２および拡張インデックス５５０は存在せず、インデックス５１０、基本領域５２１を有するデータベース、更新前ログ５３０および更新後ログ５４０を用いて端末装置３１、３２、・・・に対するサービスが提供される。
【００４６】
インデックス５１０には、基本領域５２１の各ページに格納すべきレコードの識別番号（レコード番号）が定義されている。拡張インデックス５５０には、データ再編成後の基本領域５２１および拡張領域５２２の各ページに格納すべきレコードの識別番号（レコード番号）が定義されている。基本領域５２１および拡張領域５２２は、複数のページに分割された記憶領域を有している。すなわち、拡張データベース５２０ａの記憶容量は、基本領域５２１と拡張領域５２２との容量を加えたものになる。データ再編成前には、各ページにインデックス５１０で対応付けられたレコードが格納されており、データ再編成後には、各ページに拡張インデックス５５０で対応付けられたレコードが格納される。
【００４７】
更新前ログ５３０には、再編成前のデータベースおよび拡張データベース５２０ａ内の、それぞれのレコードが更新された際の更新前のレコードの内容が記録される。更新後ログ５４０には、再編成前のデータベースおよび拡張データベース５２０ａ内の、それぞれのレコードが更新された際の更新後のレコードの内容が記録される。
【００４８】
ホストコンピュータ１００は、再編成トランザクション処理部１１０、ページ状態管理テーブル１２０、オンライントランザクション処理部１３０およびページ状態管理データ格納部１４０を有する。
【００４９】
再編成トランザクション処理部１１０は、データベースの再編成処理を行う。具体的には、再編成トランザクション処理部１１０は、データベースの再編成要求を受け付けると、ストレージデバイス５００内に、前述の拡張インデックス５５０および拡張領域５２２を作成する。これにより、拡張データベース５２０ａの記憶容量は、拡張前のデータベースに対して拡張領域５２２の分だけ大きく設定される。そして、再編成トランザクション処理部１１０は、拡張データベース５２０ａ内のレコードをページ単位で再編成する。その際の各ページの状態は、ページ状態管理テーブル１２０に設定される。
【００５０】
ページ状態管理テーブル１２０には、データベース再編成中に、拡張データベース５２０ａ内の各ページの状態が登録される。ページの状態は、「未編成」、「再編成処理中」、「編成済」がある。
【００５１】
オンライントランザクション処理部１３０は、端末装置３１、３２、・・・からの要求に応じてデータベース操作のトランザクションを実行する。なお、データベース再構成処理中においては、オンライントランザクション処理部１３０は、ページ状態管理テーブル１２０を参照し、アクセス対象とすべきデータベースを判断する。
【００５２】
ページ状態管理データ格納部１４０は、ページ状態管理テーブル１２０の内容が変更されたときに、前述したページ状態管理テーブル１２０の登録内容を、前述した共有メモリ１０６に格納する。
【００５３】
図５は、インデックスとデータベースとのデータ構造を示す図である。
次に、図５を参照してインデックス５１０とデータベース５２０との関係について詳細に説明する。
【００５４】
データベース５２０は、拡張領域５２２を作成する前のデータベースである。
インデックス５１０には、各ページのページ番号に対応付けて、そのページに格納すべきレコードのレコード番号が定義されている（ページ番号をＰｍ、レコード番号をＲｎで表している）。
【００５５】
効率的なトランザクション処理を行うために、レコード番号の小さいレコードほど、ページ番号の小さいページに割り当てられる。そこで、インデックス５１０では、各ページのページ番号に対応付けて、そのページに格納されるレコードに対するレコード番号の最大値が設定されている。
【００５６】
図５の例ではインデックス５１０において、ページ番号「Ｐ０」に対応付けてレコード番号「Ｒ３」が設定されている。これは、ページ番号「Ｐ０」のページに対して、レコード番号が「Ｒ０ｘ」〜「Ｒ３ｘ」（ｘは０以上の整数）のレコードが登録されることを意味する。
【００５７】
また、ページ番号「Ｐ１」に対応付けてレコード番号「Ｒ４」が設定されている。これは、ページ番号「Ｐ１」のページに対して、レコード番号「Ｒ４ｘ」のレコードが登録されることを意味する。
【００５８】
ページ番号「Ｐ２」に対応付けてレコード番号「Ｒ６」が設定されている。これは、ページ番号「Ｐ２」のページに対して、レコード番号が「Ｒ５ｘ」、「Ｒ６ｘ」のレコードが登録されることを意味する。
【００５９】
なお、データベース５２０がネットワークデータベース（ＮＤＢ）として利用される場合、各レコードには、ツリー構造で互いに関連付けられた複数のデータが含まれる。この場合、再編成前のデータベース５２０でのデータ間の関連付けは、再編成後の拡張データベース５２０ａで再現される。
【００６０】
データベース５２０の基本領域５２１には、複数のプライムページを格納するためのプライムページ格納領域５２１ａと複数のオーバフローページを格納するためのオーバフローページ格納領域５２１ｂとが設けられている。プライムページは、インデックス５１０に設定されている各ページ番号に対応する記憶領域である。各プライムページには、インデックス５１０で定義されたレコード番号のレコードのみが格納できる。
【００６１】
オーバフローページは、プライムページの容量不足によって、レコード番号に対応するプライムページに格納できなかったレコードを格納するための記憶領域である。オーバフローページにレコードが格納された場合、そのレコードのレコード番号に対応するプライムページ内に、オーバフローページへのポインタが設定される。そのポインタを参照することで、レコードが格納されたオーバフローページを特定できる。
【００６２】
このように、各プライムページには、格納可能なレコードのレコード番号が予め指定されている。そして、１つのプライムページにレコードが格納しきれなくなると、レコードがオーバフローページに格納される。
【００６３】
しかし、オーバフローページに格納されるレコードの量が増加すると、データベース５２０へのアクセス効率が悪化する。すなわち、任意のレコードにアクセスする場合、オンライントランザクション処理部１３０は、まずインデックス５１０を参照して、レコードが登録されているプライムページを判断する。そして、オンライントランザクション処理部１３０は、該当するプライムページからアクセス対象のレコードを検索する。
【００６４】
ここで、アクセス対象のレコードが見つからない場合、オンライントランザクション処理部１３０は、プライムページに登録されているポインタを参照して、関連付けられたオーバフローページを判断する。そして、オンライントランザクション処理部１３０は、該当するオーバフローページからアクセス対象のレコードを検索する。
【００６５】
このように、オーバフローページに格納されたページにアクセスする場合、オンライントランザクション処理部１３０において２段階の検索処理が行われる。そのため、アクセスの処理効率が低下する。
【００６６】
そこで、オーバフローページに格納されたレコードの量が増加した場合、プライムページの容量を拡張するように、データベース再編成が行われる。データベース５２０を再編成する際には、データベース５２０内の各レコードがページ単位で再編成される。その際、基本領域５２１内のプライムページの状態が、ページ状態管理テーブル１２０で管理される。
【００６７】
図６は、ページ状態管理テーブルのデータ構造例を示す図である。ページ状態管理テーブル１２０には、データベース５２０内のプライムページのページ番号に対応付けて、そのページの状態が設定されている。状態には、未編成（図中「未」と示す）、再編成処理中（図中「中」と示す）、および編成済（図中「済」と示す）がある。未編成の状態とは、該当するページに格納されているレコードの再編成処理が行われていないことを示す。再編成処理中の状態とは、該当するページに格納されているレコードの再編成処理中であることを示す。編成済の状態とは、該当するページに格納されているレコードの再編成処理が完了したことを示す。
【００６８】
なお、本実施の形態では、オンライントランザクションを継続して実行しながらデータベース再編成処理を行うことができる。以下、データベース再構成処理と、データベース再構成中のオンライントランザクションについて具体的に説明する。
【００６９】
図７は、データベース再編成処理の手順を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］再編成トランザクション処理部１１０は、ストレージデバイス５００に拡張インデックス５５０を作成する。この拡張インデックス５５０では、プライムページの数を増加させるように、ページ番号の数を増加させる。すなわち、図７に示すレコード「Ｒ１」〜「Ｒ６」の数以上のプライムページ格納領域について定義される。プライムページの数が増加することにより、データベース５２０の容量が増加する。
【００７０】
［ステップＳ１２］再編成トランザクション処理部１１０は、拡張インデックス５５０に基づいて、拡張領域５２２を作成する。
［ステップＳ１３］再編成トランザクション処理部１１０は、ページ状態管理テーブル１２０の全てのページの状態を「未編成」にする。
【００７１】
［ステップＳ１４］再編成トランザクション処理部１１０は、拡張データベース５２０ａのプライムページから、基本領域５２１の、拡張領域５２２側に最も近い未編成のプライムページを選択する。
【００７２】
［ステップＳ１５］再編成トランザクション処理部１１０は、ページ状態管理テーブル１２０におけるステップＳ１４で選択したプライムページの状態を、「再編成処理中」に変更する。
【００７３】
［ステップＳ１６］再編成トランザクション処理部１１０は、拡張データベース５２０ａ内のステップＳ１４で選択したプライムページ内のレコードを、再編成する。
具体的には、再編成トランザクション処理部１１０は、ステップＳ１４で選択したプライムページ内のレコードをＲＡＭ１０２に読み込み、このプライムページ内のレコードを削除する。次に、ＲＡＭ１０２内のレコードを移動先のプライムページに格納する。この際の移動先のプライムページは、ステップＳ１１で作成した拡張インデックス５５０に従う。また、再編成トランザクション処理部１１０は、ステップＳ１４で選択したプライムページからポインタで指し示されたオーバフローページに格納されたレコードも、同様に再編成する。
【００７４】
［ステップＳ１７］再編成トランザクション処理部１１０は、ステップＳ１４で選択されたプライムページおよびポインタで関連付けられたオーバフローページに格納されていた全てのレコードの再編成が行われたか否かを判断する。ページ内の全てのレコードの再編成が完了したら（ステップＳ１７のＹｅｓ）、処理がステップＳ１８に進められる。再編成の完了していないレコードがある場合（ステップＳ１７のＮｏ）、処理がステップＳ１６に進められ、該当レコードの再編成が行われる。
【００７５】
［ステップＳ１８］再編成トランザクション処理部１１０は、ページ状態管理テーブル１２０におけるステップＳ１４で選択したプライムページの状態を、「編成済」に変更する。
【００７６】
［ステップＳ１９］再編成トランザクション処理部１１０は、拡張データベース５２０ａ内の全てのページに対する再編成処理が完了したか否かを判断する。全てのページの再編成が完了した場合、処理が終了する。再編成していないページがある場合、処理がステップＳ１４に進められ、該当ページの再編成が行われる。
【００７７】
このように、再編成トランザクション処理部１１０がページ単位で再編成を行い、ページ状態管理テーブル１２０における編成対象のページの状態を適宜更新する。これにより、ページ状態管理テーブル１２０を参照することで、オンライントランザクション処理部１３０が各プライムページの状態を認識することができる。オンライントランザクション処理部１３０が、プライムページの状態を認識することにより、データベース再構成中であっても、データベースに対するレコード更新のトランザクションが可能となる。
【００７８】
また、再編成処理の途中に、何らかの原因によりページ状態管理テーブル１２０の内容が消去された場合においても、ページ状態管理テーブル１２０が、ページ状態管理データ格納部１４０に格納された登録内容を再度読み込むことにより、中断された状態から、引き続き再編成処理を行うことができる。
【００７９】
図８は、データベース再構成中のレコード更新処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］オンライントランザクション処理部１３０は、インデックス５１０を参照し、処理対象のレコードが格納されているプライムページを判断する。そして、オンライントランザクション処理部１３０は、ページ状態管理テーブル１２０を参照し、該当するプライムページの状態が、再編成処理中、未編成または編成済かを判断する。再編成処理中であれば、処理がステップＳ２２に進められる。未編成であれば、処理がステップＳ２３に進められる。編成済であれば、処理がステップＳ２６に進められる。
【００８０】
［ステップＳ２２］アクセス対象のプライムページが再編成処理中の場合、オンライントランザクション処理部１３０は、所定時間待機後処理をステップＳ２１に進め、再度プライムページの状態を判断する。
【００８１】
［ステップＳ２３］アクセス対象のプライムページが未編成であれば、オンライントランザクション処理部１３０は、インデックス５１０を参照する。
［ステップＳ２４］オンライントランザクション処理部１３０は、ステップＳ２３で参照したインデックス５１０の内容に従って、拡張データベース５２０ａから更新対象のレコードをリードする。
【００８２】
［ステップＳ２５］オンライントランザクション処理部１３０は、ステップＳ２３でリードしたレコードの内容を更新し、拡張データベース５２０ａにライトする。その後、処理が終了する。
【００８３】
［ステップＳ２６］アクセス対象のプライムページが編成済であれば、オンライントランザクション処理部１３０は、拡張インデックス５５０を参照する。
［ステップＳ２７］オンライントランザクション処理部１３０は、ステップＳ２６で参照した拡張インデックス５５０の内容に従って、拡張データベース５２０ａから更新対象のレコードをリードする。
【００８４】
［ステップＳ２８］オンライントランザクション処理部１３０は、ステップＳ２６でリードしたレコードの内容を更新し、拡張データベース５２０ａにライトする。その後、処理が終了する。
【００８５】
このように、更新対象となるプライムページの状態に応じて、アクセスするインデックスを判断することで、データベース再編成中であってもオンライントランザクションが可能となる。
【００８６】
図９〜図１２は、データベースの再編成処理を具体的に示す概念図である。
図９は、再編成処理前のストレージデバイスを示す概念図である。
図９に示すように、再編成処理前のデータベース５２０の基本領域５２１は、複数のプライムページを格納するプライムページ格納領域５２１ａと複数のオーバフローページを格納するオーバフローページ格納領域５２１ｂとを有している。このデータベース５２０は、プライムページ格納領域５２１ａのページ番号「Ｐ０」のページにレコードＲ１、Ｒ２が格納され、ページ番号「Ｐ１」のページにレコードＲ４が格納され、ページ番号「Ｐ２」のページにレコードＲ５が格納されている。また、オーバフローページ格納領域５２１ｂのページ番号「００」のページにＲ３が格納され、ページ番号「０１」のページにＲ６が格納されている。
【００８７】
図１０は、再編成要求が出されたときのストレージデバイスを示す概念図である。
システム管理者からの操作入力等によってデータベース５２０の再編成要求が出されると、再編成トランザクション処理部１１０は、ストレージデバイス５００内に拡張インデックス５５０と、プライムページ格納領域５２２ａおよびオーバフローページ領域５２２ｂを有する拡張領域５２２とを作成する。
【００８８】
また、再編成トランザクション処理部１１０は、ページ状態管理テーブル１２０の全てのページの状態を「未編成」にする。
その後、再編成トランザクション処理部１１０によって、拡張データベース５２０ａの再編成が開始される。
【００８９】
レコードの再編成は、１つのプライムページ毎に生成される再編成トランザクション１１１により実行される。
再編成トランザクション１１１がスタートすると、基本領域５２１内の、拡張領域５２２側に最も近いプライムページに格納されているレコードから再編成処理が開始される。
【００９０】
図１０の例では、ページ番号「Ｐ２」のページに格納されているＲ５から再編成処理が開始される。ページ番号「Ｐ２」のページに対する処理を完了すると、次に、ページ番号「Ｐ１」のページに格納されているレコードに対して処理を行う。このようにして、順次再編成処理を進めていく。
【００９１】
この際、まず、拡張領域５２２のページ（本実施の形態ではページ番号「Ｐ５」、「Ｐ４」、「Ｐ３」のページ）に、拡張領域５２２に格納すべきレコード（本実施の形態ではレコード「Ｒ６」、「Ｒ５」、「Ｒ４」）を、それぞれ移動させる。
【００９２】
その後、基本領域５２１の、すでに移動されたレコードが格納されていたページ（本実施の形態では、ページ番号「Ｐ２」、「Ｐ１」、「Ｐ０」）に、基本領域５２１に格納すべきレコード（本実施の形態ではレコード「Ｒ３」、「Ｒ２」、「Ｒ１」）を、それぞれ移動させる。
【００９３】
図１１は、再編成処理中のストレージデバイスを示す概念図である。
図１１では、ページ状態管理テーブル１２０において、ページ番号「Ｐ２」のプライムページの状態が編成済（図中「済」と示す）に変更されており、ページ番号「Ｐ１」のプライムページの状態が再編成処理中（図中「中」と示す）に変更されている。
【００９４】
次に、再編成トランザクション１１１では、拡張データベース５２０ａ内の編成対象のプライムページ、およびそのプライムページからポインタで関連付けられたオーバフローページから、順次レコードが読み出される。図１１の例では、ページ番号「Ｐ１」のプライムページからレコード番号「Ｒ４」のレコードが読み出され、ページ番号「０１」のオーバフローページからレコード番号「Ｒ６」のレコードが読み出される。
【００９５】
次に、読み出されたレコードの内容が、拡張インデックス５５０に従って拡張データベース５２０ａに書き込まれる。図１１の例では、拡張データベース５２０ａに対する拡張インデックス５５０において、レコード番号「Ｒ４」、「Ｒ６」のレコードは、それぞれページ番号「Ｐ３」、「Ｐ５」に対応付けられている。したがって、レコード番号「Ｒ４」のレコードはページ番号「Ｐ３」のプライムページに書き込まれ、「Ｒ６」のレコードはページ番号「Ｐ５」のプライムページに書き込まれる。
【００９６】
このようにして、拡張データベース５２０ａのページ番号「Ｐ１」のプライムページのレコードおよびページ番号「Ｐ１」のプライムページに関連付けられたオーバフローページのレコードが、拡張インデックス５５０を参照することにより、対応付けた新たなプライムページに全て格納されると、ページ状態管理テーブル１２０における該当ページ（本実施形態ではページ番号「Ｐ１」のページ）の状態が、再編成処理中から編成済（図中「済」と示す）に変更される。これにより、１つのプライムページに対する再編成トランザクションが終了する。
【００９７】
再編成トランザクション処理部１１０は、他のプライムページに対する同様の再編成トランザクションを繰り返し実行する。これにより、拡張データベース５２０ａの先頭ページから最終ページまでのレコードの再編成が実施される。
【００９８】
図１２は、再編成済のストレージデバイスを示す概念図である。
図１２に示すように、全てのページ状態管理テーブル１２０のプライムページが、「済」に変更となったことを確認すると、拡張データベース５２０ａの再編成処理を終了する。本実施形態では、プライムページ「Ｐ２」、「Ｐ１」、「Ｐ０」の順番で再編成処理を行ったため、プライムページ「Ｐ０」が「済」になったことを確認すると、拡張データベース５２０ａの再編成処理を終了する。
【００９９】
図１３は、データベース更新処理とオンライントランザクションとが同時に実行された場合の処理を具体的に示す概念図である。
図１１に示す状態、すなわち、再編成中に、オンライントランザクション処理部１３０が端末装置３１からレコードの更新の処理要求を受け取ると、オンライントランザクション１３１が開始される。オンライントランザクション１３１では、ページ状態管理テーブル１２０が参照され、書き込み対象のプライムページの状態が未編成の場合、インデックス５１０が参照され、データベース５２０の該当ページにレコードが追加される。また、書き込み対象のプライムページの状態が編成済の場合、拡張インデックス５５０が参照され、データベース５２０の該当ページにレコードが追加される。
【０１００】
ページ状態が再編成処理中の場合は、排他制御によりオンライントランザクション１３１を待機させる。そして、再編成が完了し、ページ状態が編成済になると、前述した処理を行う。
【０１０１】
図１３に示す例では、オンライントランザクション処理部１３０が、レコード「Ｒ３」およびレコード「Ｒ６」に対して更新の処理要求を受け取った場合を示している。レコード「Ｒ３」の更新の処理を行う場合、オンライントランザクション１３１は、ページ状態管理テーブル１２０を参照し、書き込み対象のプライムページの状態が未編成であると判断してインデックス５１０を参照する。そして、書き込み対象のプライムページ「Ｐ０」に登録されたポインタを参照して、関連付けられたオーバフローページ「００」のレコード「Ｒ３」を検索する。その後、このオーバフローページ「００」にレコード「Ｒ３３」を追加する（ステップＳ４１）。
【０１０２】
また、レコード「Ｒ６」の更新の処理を行う場合、オンライントランザクション１３１は、ページ状態管理テーブル１２０を参照し、書き込み対象のプライムページの状態が編成済であると判断して拡張インデックス５５０を参照する。そして、書き込み対象のプライムページ「Ｐ５」を参照してレコード「Ｒ６」を検索する。その後、このプライムページ「Ｒ６」にレコード「Ｒ３６」を追加する（ステップＳ４２）。
【０１０３】
このように、再編成前のデータベース５２０を構成する基本領域５２１に、新たに拡張領域５２２を追加することにより、基本領域５２１を含む新たな拡張データベース５２０ａを作成して再編成を行うことによって、再編成時に必要なデータベースの容量の追加を最小限にすることができる。これにより、従来必要としていた、再編成前のデータベース以上の容量を有するデータベースを別個に用意する必要が無く、データベースの省容量化を図ることができる。
【０１０４】
また、オンライントランザクション処理部１３０がレコードの更新の処理要求を受け取ると、オンライントランザクション処理部１３０が、ページ状態管理テーブル１２０の内容に従って、未処理、再編成処理中、編成済を判断してインデックス５１０および拡張インデックス５５０を参照することにより、処理対象のページを一意に定め、この該当ページに対してレコードの更新を行う。これにより、１トランザクション内での更新回数を削減することができ、この結果トランザクション性能が向上する。
【０１０５】
そして、再編成単位を最小単位のページ単位にしたことで、オンラインサービスを停止することなくデータベース再編成が可能となる。しかも、再編成時には、オンライントランザクション処理部１３０により、書き込まれたレコードの内容を含むログが更新後ログ５４０に記録される。更新後ログ５４０にレコードが記録されることで、ホストコンピュータ１００が異常終了等によりデータベース５２０および拡張データベース５２０ａの内容が不完全なものとなっても、データベース５２０および拡張データベース５２０ａの内容を容易に復旧することができる。
【０１０６】
さらに、ページ状態管理データ格納部１４０を設けたことにより、ホストコンピュータ１００が異常終了等によりページ状態管理テーブル１２０の内容が不完全なものとなっても、異常終了前のページ状態管理テーブル１２０の登録内容が、共有メモリ１０６に格納されているため、ページ状態管理テーブル１２０の内容を容易に復旧することができ、引き続き再編成処理を行うことができる。
【０１０７】
なお、本実施の形態では、拡張インデックス５５０に基づいて、拡張領域５２２を作成したが、これに限らず、拡張領域５２２を作成した後に、拡張インデックス５５０を作成してもよい。
【０１０８】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ホストコンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disk)などがある。
【０１０９】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１０】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１１１】
（付記１）  コンピュータに、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成プログラムにおいて、
前記コンピュータを、
前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段、
前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段、
前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段、
として機能させることを特徴とするデータベース再編成プログラム。
【０１１２】
（付記２）  さらに、前記コンピュータを、
更新レコードの書き込み要求に応じて前記ページ状態管理テーブルを参照し、前記拡張データベース内の書き込み対象ページが未編成の状態であれば前記インデックスを参照し、前記書き込み対象ページが編成済の状態であれば前記拡張インデックスを参照して、前記拡張データベース内の該当ページに対して前記更新レコードを書き込むレコード書き込み手段、
として機能させることを特徴とする付記１記載のデータベース再編成プログラム。
【０１１３】
（付記３）  前記データベースの基本領域は、格納すべきレコードの番号が予め規定されている複数のプライムページと、前記プライムページに格納できなかったレコードが格納される複数のオーバフローページとを有しており、
前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張データベースには、前記データベースのプライムページとオーバフローページとに格納されている全てのレコードを格納し得るプライムページが作成されることを特徴とする付記１記載のデータベース再編成プログラム。
【０１１４】
（付記４）  前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張領域に格納すべきレコードを前記基本領域から前記拡張領域に移動し、前記拡張領域の移動の終了後、前記基本領域に格納すべきレコードを移動することを特徴とする付記１記載のデータベース再編成プログラム。
【０１１５】
（付記５）  前記コンピュータを前記レコード再編成手段として機能させる際、前記拡張領域の再編成の終了後、前記基本領域の、すでに移動されたレコードが格納されていたページに、前記基本領域に格納すべきレコードを移動することを特徴とする付記４記載のデータベース再編成プログラム。
【０１１６】
（付記６）  前記コンピュータを前記レコード再編成手段として機能させる際、前記ページ状態管理テーブルの内容を逐次不揮発性メモリに格納することを特徴とする付記１記載のデータベース再編成プログラム。
【０１１７】
（付記７）  前記拡張データベース作成手段は、前記拡張インデックスに基づいて、前記拡張領域を作成する付記１記載のデータベース再編成プログラム。
（付記８）  基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成方法において、
拡張データベース作成手段が、前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成し、
拡張インデックス作成手段が、前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成し、
レコード再編成手段が、前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定する、
ことを特徴とするデータベース再編成方法。
【０１１８】
（付記９）  基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成装置において、
前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段と、
前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段と、
前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段と、
を有することを特徴とするデータベース再編成装置。
【０１１９】
（付記１０）  コンピュータに、基本領域内の複数のページそれぞれに対して格納すべきレコードがインデックスにより定義されたデータベースの再編成処理を行わせるデータベース再編成プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータを、
前記データベースの再編成要求に応じて、新たな拡張領域を作成し、前記基本領域と前記拡張領域とからなる拡張データベースを作成する拡張データベース作成手段、
前記基本領域および前記拡張領域の各ページに格納すべきレコードを定義した拡張インデックスを作成する拡張インデックス作成手段、
前記インデックスを参照することにより前記基本領域内のページを選択し、選択した前記ページ内のレコードを、前記拡張インデックスを参照することにより前記拡張データベース内の選択したページに移動すると共に、前記拡張データベース内のページ毎の移動の進捗状況をページ状態管理テーブルに設定するレコード再編成手段、
として機能させることを特徴とするデータベース再編成プログラムを記録したコンピュータ読み取り可能な記録媒体。
【図面の簡単な説明】
【０１２０】
【図１】実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態のシステム構成例を示す図である。
【図３】データベースの再構成を行うホストコンピュータのハードウェア構成例を示す図である。
【図４】本実施の形態を実現するための機能を示すブロック図である。
【図５】インデックスとデータベースとのデータ構造を示す図である。
【図６】ページ状態管理テーブルのデータ構造例を示す図である。
【図７】データベース再編成処理の手順を示すフローチャートである。
【図８】データベース再編成中のレコード更新処理の手順を示すフローチャートである。
【図９】再編成処理前のストレージデバイスを示す概念図である。
【図１０】再編成要求が出されたときのストレージデバイスを示す概念図である。
【図１１】再編成処理中のストレージデバイスを示す概念図である。
【図１２】再編成済のストレージデバイスを示す概念図である。
【図１３】データベース更新処理とオンライントランザクションとが同時に実行された場合の処理を示す概念図である。
【図１４】従来の一般的なデータベース再構築方法を示す図である。
【符号の説明】
【０１２１】
１  記憶手段
２  拡張データベース
３ａ  インデックス
３ｂ  拡張インデックス
４  拡張データベース作成手段
５  拡張インデックス作成手段
６  レコード再編成手段
７  ページ状態管理テーブル
８  レコード書き込み手段
２１  基本領域
２２  拡張領域
１０６  共有メモリ
【図１】
2006251990.tif 000003
【図２】
2006251990.tif 000004
【図３】
2006251990.tif 000005
【図４】
2006251990.tif 000006
【図５】
2006251990.tif 000007
【図６】
2006251990.tif 000008
【図７】
2006251990.tif 000009
【図８】
2006251990.tif 000010
【図９】
2006251990.tif 000011
【図１０】
2006251990.tif 000012
【図１１】
2006251990.tif 000013
【図１２】
2006251990.tif 000014
【図１３】
2006251990.tif 000015
【図１４】
2006251990.tif 000016
【手続補正書】
【提出日】平成17年9月7日(2005.9.7)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
このようなデータベース再編成装置によれば、データベースの再編成要求が入力されると、レコード再編成手段６により、インデックス３ａを参照することにより基本領域２１内のページが順次選択され、選択されたページ内のレコードが、拡張インデックス３ｂを参照することにより拡張データベース２内の選択したページに再編成される。さらに、レコード再編成手段６により、拡張データベース２内のページ毎の再編成の進捗状況がページ状態管理テーブル７に設定される。詳述すると、このページ状態管理テーブル７は、インデックス３ａに対応したページ番号が割り振られており、拡張前のデータベースのレコードが格納された各ページに対して、処理が終了したか否かの進捗状況が設定される。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２９
【補正方法】変更
【補正の内容】
【００２９】
データベース再編成処理中に、更新レコードの書き込み要求が入力されると、レコード書き込み手段８により、ページ状態管理テーブル７が参照され、書き込み対象のページの状態が判断される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。さらに、データベースの再編成時には、ＲＡＭ１０２内に、データベース内のブロック毎の状態を示すページ状態管理テーブルが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
図７は、データベース再編成処理の手順を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］再編成トランザクション処理部１１０は、ストレージデバイス５００に拡張インデックス５５０を作成する。この拡張インデックス５５０では、プライムページの数を増加させるように、ページ番号の数を増加させる。すなわち、図５に示すレコード「Ｒ１」〜「Ｒ６」の数以上のプライムページ格納領域について定義される。プライムページの数が増加することにより、データベース５２０の容量が増加する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００８２
【補正方法】変更
【補正の内容】
【００８２】
［ステップＳ２５］オンライントランザクション処理部１３０は、ステップＳ２４でリードしたレコードの内容を更新し、拡張データベース５２０ａにライトする。その後、処理が終了する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
［ステップＳ２８］オンライントランザクション処理部１３０は、ステップＳ２７でリードしたレコードの内容を更新し、拡張データベース５２０ａにライトする。その後、処理が終了する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
図１３は、データベース再編成処理とオンライントランザクションとが同時に実行された場合の処理を具体的に示す概念図である。
図１１に示す状態、すなわち、再編成中に、オンライントランザクション処理部１３０が端末装置３１からレコードの更新の処理要求を受け取ると、オンライントランザクション１３１が開始される。オンライントランザクション１３１では、ページ状態管理テーブル１２０が参照され、書き込み対象のプライムページの状態が未編成の場合、インデックス５１０が参照され、データベース５２０ａの該当ページにレコードが追加される。また、書き込み対象のプライムページの状態が編成済の場合、拡張インデックス５５０が参照され、データベース５２０の該当ページにレコードが追加される。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
また、レコード「Ｒ６」の更新の処理を行う場合、オンライントランザクション１３１は、ページ状態管理テーブル１２０を参照し、書き込み対象のプライムページの状態が編成済であると判断して拡張インデックス５５０を参照する。そして、書き込み対象のプライムページ「Ｐ５」を参照してレコード「Ｒ６」を検索する。その後、このプライムページ「Ｐ５」にレコード「Ｒ６６」を追加する（ステップＳ４２）。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１１３
【補正方法】変更
【補正の内容】
【０１１３】
（付記３）  前記データベースの基本領域は、格納すべきレコードの番号が予め規定されている複数のプライムページと、前記プライムページに格納できなかったレコードが格納される複数のオーバフローページとを有しており、
前記コンピュータを前記拡張データベース作成手段として機能させる際、前記拡張データベースには、前記データベースのプライムページとオーバフローページとに格納されている全てのレコードを格納し得るプライムページが作成されることを特徴とする付記１記載のデータベース再編成プログラム。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１２０
【補正方法】変更
【補正の内容】
【０１２０】
【図１】実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態のシステム構成例を示す図である。
【図３】データベースの再構成を行うホストコンピュータのハードウェア構成例を示す図である。
【図４】本実施の形態を実現するための機能を示すブロック図である。
【図５】インデックスとデータベースとのデータ構造を示す図である。
【図６】ページ状態管理テーブルのデータ構造例を示す図である。
【図７】データベース再編成処理の手順を示すフローチャートである。
【図８】データベース再編成中のレコード更新処理の手順を示すフローチャートである。
【図９】再編成処理前のストレージデバイスを示す概念図である。
【図１０】再編成要求が出されたときのストレージデバイスを示す概念図である。
【図１１】再編成処理中のストレージデバイスを示す概念図である。
【図１２】再編成済のストレージデバイスを示す概念図である。
【図１３】データベース再編成処理とオンライントランザクションとが同時に実行された場合の処理を示す概念図である。
【図１４】従来の一般的なデータベース再構築方法を示す図である。
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図１１
【補正方法】変更
【補正の内容】
【図１１】
2006251990.tif 000017
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2006251990.tif 000018