(57)【特許請求の範囲】
【請求項１】
複数の論理ページからなるサブレンジの先頭から順番に論理レコードを格納するシーケンシャルアクセス方法を採用したデータベース装置において、
該サブレンジの後方から順次移動対象の論理レコードを検出し、該移動対象の論理レコードが含まれる論理ページを論理レコードの移動元論理ページとして設定する移動元論理ページ検出部と、
該サブレンジの先頭から順次空き領域を検出し、該移動対象の論理レコードを格納可能な該空き領域が含まれる論理ページを論理レコードの移動先論理ページとして設定する移動先論理ページ検出部と、
該移動先論理ページと該移動元論理ページのみに排他制御を行い、該移動対象の論理レコードを該移動元論理ページから、該移動先論理ページの該空き領域に移動させる論理レコード移動部と、
を備えることを特徴とするデータベース装置。
【請求項２】
前記移動対象の論理レコードの検出は、前記サブレンジの最後の論理ページの１つ前の論理ページから順次先頭に向かって検出することを特徴とする請求項１に記載のデータベース装置。
【請求項３】
前記最後の論理ページが新規の論理レコードの追加により移動した場合には、追加前の最後の論理ページの１つ前までの移動処理が終わった後、現時点での論理レコードの移動先論理ページから追加後の最後の論理ページの１つ前までを対象として、論理レコードの移動を行なうことを特徴とする請求項２に記載のデータベース装置。
【請求項４】
前記最後の論理ページに含まれる論理レコードの移動は、前記サブレンジの先頭の論理ページから前記最後の論理ページの１つ前の論理ページまでの移動処理が終わった後に行なわれることを特徴とする請求項２に記載のデータベース装置。
【請求項５】
複数の論理ページからなるサブレンジの先頭から順番に論理レコードを格納するシーケンシャルアクセス方法を採用したデータベース装置における論理レコードの再配置方法において、
該サブレンジの後方から順次移動対象の論理レコードを検出し、該移動対象の論理レコードが含まれる論理ページを論理レコードの移動元論理ページとして設定し、
該サブレンジの先頭から順次空き領域を検出し、該移動対象の論理レコードを格納可能な該空き領域が含まれる論理ページを論理レコードの移動先論理ページとして設定し、
該移動先論理ページと該移動元論理ページのみに排他制御を行い、該移動対象の論理レコードを該移動元論理ページから、該移動先論理ページの該空き領域に移動させる、
ことを特徴とする再配置方法。
【請求項６】
複数の論理ページからなるサブレンジの先頭から順番に論理レコードを格納するシーケンシャルアクセス方法を採用したデータベース装置における論理レコードの再配置方法をコンピュータに実現させるプログラムにおいて、
該コンピュータは、
該サブレンジの後方から順次移動対象の論理レコードを検出し、該移動対象の論理レコードが含まれる論理ページを論理レコードの移動元論理ページとして設定し、
該サブレンジの先頭から順次空き領域を検出し、該移動対象の論理レコードを格納可能な該空き領域が含まれる論理ページを論理レコードの移動先論理ページとして設定し、
該移動先論理ページと該移動元論理ページのみに排他制御を行い、該移動対象の論理レコードを該移動元論理ページから、該移動先論理ページの該空き領域に移動させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース装置に関する。
【背景技術】
【０００２】
今日、銀行、役所、証券取引会社などでは、膨大な量のデータをデータベースに蓄積し、日々の業務に使用している。これらの場合に使用されるデータベースは、シーケンシャルアクセス方法（ＳＡＭ、Sequential Access Method）を採用したものが一般的である。ＳＡＭとは、データベースの格納領域に、データを格納領域の先頭から順次格納領域の後ろに向かって格納するものであり、新規のデータの格納領域は、現在データが格納されている領域の後ろになる。データベースへの操作は、データの追加、修正、コピー、削除などがある。データの削除が行われた場合には、削除されたデータが格納されていた格納領域は空き領域となる。しかし、ＳＡＭを採用したデータベースの場合、新しいデータの追加は、格納されている全てのデータの格納領域の後ろ側に対して行なわれることになる。したがって、データの削除によって生じた空き領域は、使用されないまま残されることになる。しかし、このような状態を放置しておくと、データベースの格納領域が空き領域だらけになり、少しのデータを格納しただけで、データベースがいっぱいになってしまう。したがって、空き領域ができた場合には、空き領域を埋めるようにデータの再配置が行なわれる。
【０００３】
ＳＡＭを採用したデータベースの再配置は、サブレンジと呼ばれる論理的なデータの区切り単位で行なわれている。サブレンジというのは、例えば、銀行のデータベースにおいて顧客のデータを支店単位で整理した場合、１つの支店が扱う全顧客データの集まりを示す。サブレンジの設定は、データベースのユーザが任意に設定可能であるが、一般に複数の論理レコード（データの最小単位）を格納する論理ページが複数集まったものである。論理レコードは、銀行のデータベースにおける顧客ごとの通帳データなどである。サブレンジは、シーケンシャルなデータアクセスの単位であり、サブレンジ内は先頭から後方に向かってデータが格納されるが、サブレンジは互いに独立である。
【０００４】
図１は、従来技術の概念を示す図である。
サブレンジ全体のレコードを前詰めに再配置する必要があることから、従来は、サブレンジ全体の論理レコードを一旦抽出して再格納することで実現していた。その際、再配置対象のサブレンジ全体に排他をかけていたので、再配置実施中は、該当サブレンジをオンラインで使用することができなかった。サブレンジ全体に排他をかけていたのは、サブレンジ全体の論理レコードを一旦抽出して再格納することで再配置を実現していたからである。
【０００５】
データベースへのアクセスは、データベースのデータを操作するオンライン業務と、データベースのデータの再配置処理があるが、それぞれの処理を行うのにデータベースに排他をかける必要がある。従来の再配置処理は、サブレンジ単位で排他をかけていたので、再配置を行なっている間は、オンライン業務において、当該サブレンジにはアクセス出来なかった。銀行のデータベースにおいて、サブレンジが支店単位であった場合には、再配置処理を行なってしまうと、再配置処理中は支店の全てのデータにアクセスできなくなってしまう。したがって、再配置処理は、支店が休業する、土曜日や日曜日に行なう必要があった。
【０００６】
図２Ａ及び図２Ｂは、従来の再配置処理を説明する図である。
図２Ａにおいて、今、データベースには、論理ページ０〜３に論理レコードが格納され、論理ページ０〜２に削除領域（空き領域）があるとしている。ここでは、サブレンジは、論理ページ０〜３からなっているとする。データベースには、論理レコードの最終格納論理ページ番号（ＣＳＰ；Current Store Point）が登録されている。今の場合、ＣＳＰは３である。新規レコードは、このＣＳＰで示される論理ページ以降に格納される。
【０００７】
図２Ｂにおいて、サブレンジ全体の論理レコードを別の格納領域にコピーし、論理ページ０〜３の論理レコードを全て削除してから、サブレンジ全体の論理レコードを再格納する。論理レコードは、図２Ｂの場合４つあり、１論理ページに２論理レコードずつ格納できるので、前詰めに論理レコードを再格納すると、論理ページ０、１に全て格納される。そして、ＣＳＰは、１に再設定される。
【０００８】
そのほかの従来の技術には、レコードの論理的な集まりであるクラスタを再編成処理単位としたデータベース再編成処理装置や、ファイルを論理的に分割したページ単位で管理するディスクドライブを備え、削除ページまたは未使用ページである移動先ページに移動データ部の後部の使用中ページである移動元ページの内容を移動するデータベース再編成システムなどがある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平５−２８９９１３号公報
【特許文献２】特開２００９−２０７９３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以下に示す実施形態においては、ＳＡＭを採用したデータベース装置において、再配置処理をオンライン業務を停止することなく実施可能とするデータベース装置を提供する。
【課題を解決するための手段】
【００１１】
以下の実施形態の一側面におけるデータベース装置は、複数の論理ページからなるサブレンジの先頭から順番に論理レコードを格納するシーケンシャルアクセス方法を採用したデータベース装置において、該サブレンジの後方から順次移動対象の論理レコードを検出し、該移動対象の論理レコードが含まれる論理ページを論理レコードの移動元論理ページとして設定する移動元論理ページ検出部と、該サブレンジの先頭から順次空き領域を検出し、該移動対象の論理レコードを移動可能な該空き領域が含まれる論理ページを論理レコードの移動先論理ページとして設定する移動先論理ページ検出部と、該移動先論理ページと該移動元論理ページのみに排他制御を行い、該移動対象の論理レコードを該移動元論理ページから、該移動先論理ページの該空き領域に移動させる論理レコード移動部とを備える。
【発明の効果】
【００１２】
以下の実施形態によれば、ＳＡＭを採用したデータベース装置において、再配置処理をオンライン業務を停止することなく実施可能とするデータベース装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】従来技術の概念を示す図である。
【図２Ａ】従来の再配置処理を説明する図（その１）である。
【図２Ｂ】従来の再配置処理を説明する図（その２）である。
【図３】本実施形態の概念を説明する図である。
【図４Ａ】本実施形態の再配置処理の様子を示した図（その１）である。
【図４Ｂ】本実施形態の再配置処理の様子を示した図（その２）である。
【図４Ｃ】本実施形態の再配置処理の様子を示した図（その３）である。
【図４Ｄ】本実施形態の再配置処理の様子を示した図（その４）である。
【図５】本実施形態のデータベース装置のシステム構成図である。
【図６】本実施形態の処理を説明するフローチャート（その１）である。
【図７】本実施形態の処理を説明するフローチャート（その２）である。
【図８】本実施形態の処理を説明するフローチャート（その３）である。
【図９】本実施形態の処理を説明するフローチャート（その４）である。
【図１０】本実施形態の処理を説明するフローチャート（その５）である。
【図１１】本実施形態の処理を説明するフローチャート（その６）である。
【図１２】本実施形態のデータ構造を説明する図（その１）である。
【図１３】本実施形態のデータ構造を説明する図（その２）である。
【図１４】本実施形態のデータ構造を説明する図（その３）である。
【発明を実施するための形態】
【００１４】
以下の実施形態は、データベースをオンライン業務で使用しており、オンラインを停止できない、または停止できたとしてもデータベースの再配置を行えるだけの長時間のオンライン停止ができないような環境などに適用可能である。
【００１５】
図３は、本実施形態の概念を説明する図である。
本実施形態では、サブレンジ全体を一括して再配置するのではなく、排他制御の最小単位である論理ページ単位に排他制御を行い、その論理ページ内の論理レコード（１つのオーナレコードとその配下の全メンバレコード）単位に再配置を実施する。
【００１６】
なお、論理レコード単位に再配置を実施するのは、論理レコード単位にトランザクション処理されることがほとんどであり、１つの論理レコードは分割されること無く、同一論理ページ内に格納されるから、論理レコードを再配置処理の最小単位と考えることができるからである。
【００１７】
また、再配置対象の論理ページだけ（論理レコードを移動させる元／先の論理ページだけ）に排他範囲を限定することで、再配置対象の論理ページ以外はオンラインで使用可能とする。
【００１８】
後述するように、論理レコードの移動元論理ページをサブレンジの最終ページの１ページ前から先頭に向かって順に設定し、論理レコードの移動先論理ページをサブレンジの先頭ページから最終ページに向かって順に設定する。これにより、移動させる論理レコードを最小限にすることができ、再配置に掛かる時間を短縮できる。また、移動対象論理レコードを最小限にすることで、インデックス更新によるオンラインへの影響も最小限にできる。
【００１９】
インデックスは、論理レコードを特定するためのキー値を論理レコードの格納場所と対応付けて保持しているものである。論理レコードを検索する場合には、対象の論理レコードが有するキー値をインデックス内で捜し、インデックスから所望のキー値を有する論理レコードの格納位置を取得する。取得された格納位置から論理レコードのデータを取得することにより、所望のデータを取得することが出来る。論理レコードのキー値は、銀行のデータベースの場合、個人の口座番号などである。
【００２０】
上記の再配置手法は、後ろにある論理レコードを、前のほうにある空き領域に配置するという手法である。論理レコードの移動元論理ページをサブレンジの先頭から後方に向かって設定すると、移動元の論理ページの論理レコードを移動することにより、空き領域がサブレンジの中ほどにできるため、それ以降の論理レコードを全て前詰めに格納しなおす必要が生じる。すなわち、空き領域以降の論理レコードを全て移動しなくてはならないという意味で、移動対象論理レコードの数が多くなってしまうことになる。後ろの論理レコードを前のほうに移動する上記再配置手法では、再配置により生じる空き領域が、サブレンジの後ろのほうにできるので、このようにして生じた空き領域を埋めるために論理レコードを移動する必要が無くなる。したがって、移動対象の論理レコードの数を減らすことができる。
【００２１】
本再配置手法により、各論理レコードの格納順番（サブレンジ内の物理位置）が再配置前と後で変わることになるが、各論理レコードは論理的なキー値で検索するため、問題は生じない。また、再配置処理とオンライン処理との競合により、論理ページ単位に排他待ちになることがあるが、本排他待ちは通常のオンライン処理同士の競合によるものと同程度であり、問題とはならない。なお、論理レコードの詳細については、後述する。
【００２２】
図３に示されるように、本実施形態の再配置処理で排他制御されるのは、移動元論理ページと移動先論理ページのみであるので、サブレンジ全体が排他制御されることが無い。したがって、再配置処理中であっても、排他制御されている移動元論理ページと移動先論理ページ以外の論理ページには、オンライン業務を行なうためにアクセスすることができる。すなわち、サブレンジが銀行の支店のデータである場合、当該支店のデータの再配置を行なっている場合でも、支店のデータにアクセスすることができるので、支店の業務を止める必要が無い。
【００２３】
図４Ａ〜図４Ｄは、本実施形態の再配置処理の様子を示した図である。
本実施形態においては、論理レコードの再配置は以下の方法で実現する。
まず、データベースの論理レコードの配置が図４Ａのようになっているとする。最初に、“ＣＳＰの示す最終格納論理ページ番号−１”の論理ページを移動元論理ページとして設定する（１）。論理レコードの再配置が可能な削除領域（あるいは、空き領域）が見つからなくなるまで（下記（３）の削除領域の検索が、移動元論理ページに辿り着くまで）、（２）〜（５）を繰り返す。
【００２４】
移動元論理ページ内に存在するレコードを再配置対象として抽出する（２）。サブレンジの先頭論理ページから（２）で抽出した論理レコードが格納できる削除領域を排他制御せずに検索する。なお、２回目以降は、サブレンジの先頭論理ページからではなく、前回移動先となった論理ページを起点に検索する（３）。
【００２５】
削除領域が見つかったら論理レコードを移動する。このとき、論理レコードを移動する移動元と移動先の論理ページだけを排他制御する。移動が完了したら排他制御を解除する（４）。論理レコードの移動により移動元論理ページが空きになった場合、移動元論理ページを１つ手前とする（５）。最後に、“ＣＳＰの示す最終格納論理ページ番号”の論理ページ内の論理レコードを、上記（２）〜（５）の繰り返し処理で（論理レコードを再配置したことで）、格納可能となった論理ページに移動させ、ＣＳＰが最後の論理レコードの移動先論理ページを指すように更新する（６）。なお、（２）、（３）は、検索する処理であるので、図には特別な表示はしていない。
【００２６】
なお、再配置処理を（２）〜（５）と（６）の２フェーズに分けて実施することで、（２）〜（５）の繰り返しで大量に再配置を実施している間の新規論理レコード格納を可能にしている。そこで、本新規論理レコード格納により、ＣＳＰが進んだ場合は、その進んだＣＳＰ−１から進む前のＣＳＰまでの論理ページを移動元論理ページとして、（２）〜（５）を繰り返した後、（６）を行って完了となる。
【００２７】
本実施形態では、サブレンジへのオンライン業務によるアクセスを再配置処理中に許可するので、再配置処理が完了する前に、オンライン業務により、新規の論理レコードが追加されることが生じる。本実施形態では、ＳＡＭを採用したデータベースを使っているので、新規の論理レコードは、現在格納されている論理レコードの最終ページ以降に追加される。上記再配置手法では、現在格納されている論理レコードの最終レコードが格納されている論理ページの再配置は、最後に行なわれることとなる。それまでは、最終論理ページはそのまま維持されるので、新規論理レコードは、この最終論理ページの後方に格納されることになる。再配置処理開始時の最終論理ページが再配置中にも固定されていることにより、新規論理ページの追加が可能となる。
【００２８】
図５は、本実施形態のデータベース装置のシステム構成図である。
本実施形態のデータベース装置のシステムは、データベースのユーザの使用する端末１０と、データベース１５を有するコンピュータ１１と、データベース１５の論理レコードの再配置を指示する端末１２からなる。端末１０は、データベースのデータについて、追加、修正、削除、コピー等のオンライン業務を行なうための端末である。当該システムが銀行業務のためのものである場合、端末１０はＡＴＭなどである。端末１２は、コンピュータ１１に、データベース１５のデータの再配置を指示する、データベース１５の管理用端末である。
【００２９】
コンピュータ１１には、端末１０からデータベース１５へのアクセスを受け付け、オンライン業務を行なうための、オンライン応用プログラム１３がインストールされている。オンライン応用プログラム１３は、端末１０からのメッセージを受信し、データベース管理システム１４に、データベース１５へのアクセス命令を発行する。データベース管理システム（ＤＢＭＳ）１４は、データベース１５へのアクセスを制御するシステムである。データベース管理システム１４は、データの追加、修正、削除、コピー等のオンライン業務の処理をデータベース１５に対して行う場合のデータベース１５のハードウェアの制御を行なうものである。データベース管理システム１４は、データベース１５をＳＡＭを採用したアクセス方式に従って制御する。データベース１５は、論理レコードを論理ページ単位で格納する。
【００３０】
再配置機構１６は、端末１２からの動作指示に従って、データベース１５の論理レコードの再配置を行なう。再配置機構１６は、移動元論理ページ検出装置１７、移動元論理ページ内レコード抽出／格納装置１８、移動先論理ページ検出装置１９、最終格納論理ページ番号（ＣＳＰ）更新装置２０を備える。移動元論理ページ検出装置１７は、サブレンジの最終論理ページの１つ前の論理ページから、順次論理レコードが格納されている論理ページを検出する。また、移動元論理ページ検出装置１７は、移動元論理ページ番号管理領域を有し、現在再配置を行なっている論理レコードの移動元論理ページ番号を格納する。移動元論理ページ内レコード抽出／格納装置１８は、移動元論理ページ内の論理レコードをコピーし、コピーした論理レコードに対応する論理レコードをデータベース１５から削除し、コピーした論理レコードを移動先論理ページに格納する。移動先論理ページ検出装置１９は、サブレンジの先頭の論理ページから順に空き領域を探す。見つかった空き領域のうち、移動元の論理レコードを格納可能な空き領域が属する論理ページは、再配置における移動先論理ページとして設定する。最終格納論理ページ番号（ＣＳＰ）更新装置２０は、再配置によって論理レコードがサブレンジの格納領域内で前詰めに格納されたことにより変化した、論理レコードが格納されている最終論理ページ番号を更新する。最終格納論理ページ番号（ＣＳＰ）は、データベース１５に格納されており、このデータベース１５に格納されたＣＳＰを更新する。
【００３１】
図６〜図１１は、本実施形態の処理を説明するフローチャートである。
図６及び図７は、移動元論理ページ検出の流れおよび全体の流れを示すフローチャートである。
【００３２】
まず、ステップＳ１０において、移動元論理ページ番号の初期値として、”ＣＳＰ−１”を設定し、移動元論理ページ番号管理域に、”ＣＳＰ−１”を格納する。最終格納論理ページ番号であるＣＳＰは、データベースに格納されており、移動元論理ページ検出装置がデータベースから読み取ることにより、ＣＳＰの値を得る。そして、ＣＳＰから１を引いた値を移動元論理ページ番号管理域に格納する。
【００３３】
ステップＳ１１のループにおいて、移動元と移動先の論理ページが一致するまで、ステップＳ１２、Ｓ１３の処理を繰り返す。ステップＳ１２においては、移動元から移動先論理ページへの論理レコードの移動処理を行う。ステップＳ１２の詳細は、図８を用いて、後ほど説明する。ステップＳ１３においては、移動元論理ページ番号として、”現状の移動元論理ページ番号−１”を設定する。ステップＳ１４において、再配置処理のトランザクションを開始する。
【００３４】
ステップＳ１５において、再配置処理を開始した後に、オンライン業務によって新規論理レコードが追加され、再配置処理の開始時よりもＣＳＰが先に進んでいるか否かを判断する。本処理において、ＣＳＰが先に進まないようにＣＳＰに排他をかける。ＣＳＰが先に進んでいるか否かは、再配置処理の最初に移動元論理ページ番号管理域に格納されたＣＳＰ−１と、現在のＣＳＰから１を引いた値との比較を行なうことによって知ることができる。ステップＳ１５の判断がＹｅｓの場合には、ステップＳ１４’において、ステップ１５においてかけられたＣＳＰの排他を終了して再配置処理のトランザクションを終了し、ステップＳ１６において、移動元論理ページ番号として、”ＣＳＰ−１”を設定し、ステップＳ１１に戻る。これにより、新規論理レコードが追加された場合に、新規論理レコードの最終論理ページまでを対象として、再配置を行う処理が開始される。すなわち、ステップＳ１１までの処理で、既存の論理レコードの再配置が完了するが、最終論理ページ以降に新規論理レコードが追加されているので、再配置された論理レコードと新規論理レコードの間に空き領域が発生することになる。この空き領域を埋めるために、新規論理レコードを含めて、再配置処理を継続するようにする。
【００３５】
ステップＳ１５の判断がＮｏの場合、ステップＳ１７において、移動元論理ページ番号として”ＣＳＰ”を設定し、移動元論理ページ番号管理域にＣＳＰの値を格納する。これにより、最後まで残っていた、最終論理ページの論理レコードを移動する設定を行なう。
【００３６】
ステップＳ１８において、移動元から移動先論理ページへの論理レコード移動処理を行う。ステップＳ１８の詳細は、図９を参照して後ほど説明する。ステップＳ１９において、再配置処理において、空き領域が存在したことにより、論理レコードの移動を行なったか否かを判断する。ステップＳ１９の判断がＮｏの場合には、ステップＳ１４’’において、トランザクションを終了してから処理を終了する。ステップＳ１９の判断がＹｅｓの場合には、ステップＳ２０において、ＣＳＰを最新の最終論理ページの値に更新するＣＳＰ更新処理を行う。ステップＳ２０の詳細は、図１１を参照して後ほど説明する。ステップＳ１４’’において、再配置処理のトランザクションを終了する。ステップＳ１４’’においては、ステップ１５においてかけられたＣＳＰの排他とステップＳ１８においてかけられた移動元と移動先の論理ページへの排他を終了してトランザクションを終了する。
【００３７】
以上のように、再配置処理のトランザクションは、処理ごとに細かく開始と終了を行なうようになっている。これにより、再配置処理のトランザクションにより移動元と移動先の論理ページに排他制御がかかる期間を短くし、オンライン業務を行なうためのトランザクションとなるべく衝突しないようにしている。
【００３８】
図８は、図６のステップＳ１２の処理の詳細であり、移動元論理ページ内レコード抽出および移動先論理ページへの論理レコード格納の流れ（移動元論理ページ番号がＣＳＰ以外）を示すフローチャートである。
【００３９】
ステップＳ２５のループにおいて、移動元論理ページ内の全論理レコードを処理するまで処理を繰り返す。ステップＳ２６において、再配置処理のトランザクションを開始する。このとき、移動元論理ページに排他をかける。移動先論理ページの排他は、ステップＳ３１で行なう。ステップＳ２７において、変数格納領域であるレコード長累積域の値を０に初期化する。ステップＳ２８において、移動元論理ページ内の１オーナレコード及びその配下の全メンバレコード（合わせて１論理レコード）を、データベースから抽出する。そして、この論理レコードを主記憶メモリまたは外部ファイルメモリなどに格納しておく。ステップＳ２８においては、移動元論理ページに対し、排他をかけて処理を行う。
【００４０】
ステップＳ２９において、論理レコード抽出時、各論理レコード毎にレコード長を累積する。すなわち、レコード長累積域に格納されている値に、抽出した論理レコードのレコード長を加算する。ステップＳ３０において、データベースから、抽出済みレコードを削除し、インデックスも論理レコードの削除に伴って更新する。
【００４１】
ステップＳ３１において、移動先論理ページ検出処理を行う。ステップＳ３１の処理の詳細は、図１０を参照して後述する。ステップＳ３２において、移動先論理ページが見つかったか否かを判断する。ステップＳ３２の判断がＮｏの場合には、ステップＳ３５において、現在の再配置処理のトランザクションを取り消して、処理を終了する。
【００４２】
ステップＳ３２の判断がＹｅｓの場合には、ステップＳ３３において、データベースの移動先論理ページに、主記憶メモリあるいは外部ファイルメモリから読み込まれる抽出済みの論理レコードを格納し、インデックスも同時に更新する。ステップＳ３３の処理が終わったら、排他制御を終了する。ステップＳ３４において、再配置処理のトランザクションを終了する。ステップＳ３４においては、ステップＳ２８においてかけられた移動元論理ページの排他と、ステップＳ３１においてかけられた移動先論理ページへの排他を解除して、トランザクションを終了する。ステップＳ２５のループが完了すると、処理を終了する。
【００４３】
図９は、図７のステップＳ１８の詳細を示し、移動元論理ページ内レコード抽出および移動先論理ページへの論理レコード格納の流れ（移動元論理ページ番号がＣＳＰ）を示すフローチャートである。
【００４４】
ステップＳ４０のループでは、移動元論理ページ内の全論理レコードを処理するまで処理を繰り返す。ステップＳ４１において、変数格納領域であるレコード長累積域の初期化を行なう。具体的には、レコード長累積域の値を０に設定する。ステップＳ４２において、移動元論理ページ内の１オーナレコード及びその配下の全メンバレコード（合わせて１論理レコード）をデータベースから抽出する。そして、抽出された論理レコードを主記憶メモリあるいは外部ファイルメモリに格納する。ステップＳ４２においては、移動元論理ページに対し、排他をかける。
【００４５】
ステップＳ４３において、論理レコード抽出時、１論理レコードを抽出するごとに、レコード長を累積する。すなわち、レコード長累積域に格納されている値に、抽出した論理レコードのレコード長を加算する。ステップＳ４４において、データベースから抽出済み論理レコードを削除し、インデックスも更新する。ステップＳ４５において、移動先論理ページの検出処理を行う。ステップＳ４５の詳細は、図１０を参照して後に説明する。
【００４６】
ステップＳ４６において、移動先論理ページが見つかったか否かを判断する。ステップＳ４６の判断がＮｏの場合には、ステップＳ４８において、現在の再配置処理のトランザクションを取り消して、処理を終了する。ステップＳ４６の判断がＹｅｓの場合には、ステップＳ４７において、データベースの移動先論理ページに、主記憶メモリあるいは外部ファイルメモリから読み込まれた抽出済み論理レコードを格納し、インデックスも同時に更新する。ステップＳ４０のループが終了すると、処理を終了する。
【００４７】
図１０は、図８のステップＳ３１、図９のステップＳ４５の詳細であり、移動先論理ページ検出の流れを示すフローチャートである。
ステップＳ５０において、排他制御を行なわないで、論理ページごとの削除領域（空き領域）のサイズを確認する。再配置を開始してから最初の移動先論理ページの検出では、サブレンジ内の先頭論理ページから後方に向かって検索する。２回目以降の移動先論理ページの検出では、前回の移動先論理ページから後方に向かって検索する。ステップＳ５１において、削除領域サイズと抽出した論理レコードのレコード長の累積値を比較し、削除領域サイズが等しいか、大きい場合、現在の論理ページを移動先論理ページとする。移動先論理ページ番号は、変数格納領域である移動先論理ページ番号管理域に格納する。上記の場合が当てはまらない場合は、次の論理ページを検索する。この検索は、移動元論理ページまで行なって終了とする。
【００４８】
ステップＳ５２において、移動先論理ページが見つかったか否かを判断する。ステップＳ５２の判断がＮｏの場合には、処理を終了する。ステップＳ５２の判断がＹｅｓの場合には、ステップＳ５３において、移動先論理ページに排他をかけ、処理を終了する。
【００４９】
図１１は、図７のステップＳ２０の詳細であり、最終格納論理ページ番号（ＣＳＰ）更新の流れを示すフローチャートである。
ステップＳ６０において、データベースに格納されるＣＳＰの値を、ＣＳＰが示す論理ページ内の最終論理レコードの移動先を示すように更新する。すなわち、移動先論理ページ番号管理域の値でデータベースのＣＳＰを更新する。これは、再配置処理の最後において、最終格納論理ページに格納されていた最終論理レコードの移動先論理ページが、再配置処理後の最終格納論理ページとなるので、データベースに格納されるＣＳＰが最終格納論理ページとなるように更新するものである。
【００５０】
図１２〜図１４は、本実施形態のデータ構造を説明する図である。
図１２〜図１４においては、銀行の顧客データを例にとって本実施形態のデータ構造を説明する。
【００５１】
図１２及び図１３は、データの論理構造とサブレンジの構成を説明する図である。
データの論理構造は、図１２（ａ）にあるように、顧客を特定するための顧客情報が、当該顧客が行なった取引内容を記述する取引明細と関連付けられた構造となる。
【００５２】
サブレンジは、複数の論理レコードを有する論理ページが複数集まったものである。図１２（ｂ）に示されるように、支店の店番号「００１」で指定される論理レコードの集まりが、サブレンジである。図１２（ｂ）では、論理レコードが２つのみであるので、論理ページは、１ページのみである。論理レコードは、顧客情報を示すオーナレコードと、取引明細を示すメンバレコードとからなる。図１２（ｂ）の場合、オーナレコードは、店番号と、口座番号と、顧客の氏名を保持するデータＡである。データＢとＣは、オーナレコードであるデータＡのメンバレコードであり、取引の日付と、取引内容とが保持される。オーナレコードＡからは、メンバレコードの１つであるデータＢへのポインタが設定されている。また、データＢからは、同じくメンバレコードであるデータＣへのポインタが設定されている。そして、メンバレコードの最後のデータであるデータＣからは、オーナレコードであるデータＡへのポインタが設定されている。このように、１つの論理レコードは、オーナレコードとその配下のメンバレコードがポインタによって一連のデータとして関連付けられた構成をしている。
【００５３】
図１３は、図１２（ｂ）とは異なるサブレンジに属する論理レコードの例である。論理レコードの構成は、図１２（ｂ）と同じであり、オーナレコードのデータＡとその配下のメンバレコードのデータＢ、Ｃが一連のデータとして、ポインタで関連付けられている。サブレンジは、ここでは支店の店番号によって設定されるとしているので、店番号が異なる論理レコードは、異なるサブレンジに属する。図１２（ｂ）の論理レコードの店番号は、「００１」であるのに対し、図１３の論理レコードの店番号は、「００２」であり、オーナレコードに保持される店番号によって、属するサブレンジが特定される。
【００５４】
図１４は、図１２及び図１３のデータ構造を、タグ付き構造化データのように表示した例である。
＜顧客情報＞と＜／顧客情報＞で挟まれる一群のデータが論理レコードである。論理レコードには、＜店番号＞と＜／店番号＞で示される店番号が保持される。店番号は、サブレンジを特定するためのキー値であり、顧客情報を検索する際に使用される。また、各論理レコードは、個人を特定するためのキー値として、＜口座番号＞と＜／口座番号＞で示される口座番号を保持する。全顧客情報の中から、特定の個人の口座の情報を取り出す場合には、この口座番号をキー値として検索する。キー値は、インデックスに登録される。論理レコードには、その他に、顧客の氏名や、取引の日付、取引内容を保持する取引明細が保持される。
【００５５】
ＳＡＭを採用したデータベースにおいては、サブレンジ途中のレコードが削除され、その削除領域を再利用できるようにする場合、データベースの再配置が必要となるが、以上のような本実施形態によれば、再配置をオンライン業務を停止することなく実施可能となる。また、サブレンジ全体のレコードを再配置するのではなく、必要最小限のレコードだけを再配置する方式であるため、再配置の時間短縮が図れる。
【００５６】
以上の実施の形態のほか、以下の付記を開示する。
（付記１）
複数の論理ページからなるサブレンジの先頭から順番に論理レコードを格納するシーケンシャルアクセス方法を採用したデータベース装置において、
該サブレンジの後方から順次移動対象の論理レコードを検出し、該移動対象の論理レコードが含まれる論理ページを論理レコードの移動元論理ページとして設定する移動元論理ページ検出部と、
該サブレンジの先頭から順次空き領域を検出し、該移動対象の論理レコードを格納可能な該空き領域が含まれる論理ページを論理レコードの移動先論理ページとして設定する移動先論理ページ検出部と、
該移動先論理ページと該移動元論理ページのみに排他制御を行い、該移動対象の論理レコードを該移動元論理ページから、該移動先論理ページの該空き領域に移動させる論理レコード移動部と、
を備えることを特徴とするデータベース装置。
（付記２）
前記移動対象の論理レコードの検出は、前記サブレンジの最後の論理ページの１つ前の論理ページから順次先頭に向かって検出することを特徴とする付記１に記載のデータベース装置。
（付記３）
前記最後の論理ページが新規の論理レコードの追加により移動した場合には、追加前の最後の論理ページの１つ前までの移動処理が終わった後、現時点での論理レコードの移動先論理ページから追加後の最後の論理ページの１つ前までを対象として、論理レコードの移動を行なうことを特徴とする付記２に記載のデータベース装置。
（付記４）
前記最後の論理ページに含まれる論理レコードの移動は、前記サブレンジの先頭の論理ページから前記最後の論理ページの１つ前の論理ページまでの移動処理が終わった後に行なわれることを特徴とする付記２に記載のデータベース装置。
（付記５）
前記サブレンジの先頭の論理ページから前記最後の論理ページの１つ前の論理ページまでの移動処理は、前記移動先論理ページと前記移動元論理ページが一致した場合に、終了することを特徴とする付記４に記載のデータベース装置。
（付記６）
前記最後の論理ページに含まれる論理レコードの移動が終了した場合には、該最後の論理ページに含まれる論理レコードの移動先論理ページを、前記サブレンジの最後の論理ページとすることを特徴とする付記４に記載のデータベース装置。
（付記７）
前記論理レコードは、オーナレコードと、その配下のメンバレコードとがポインタで接続された構成を有することを特徴とする付記１に記載のデータベース装置。
（付記８）
前記論理レコードが移動された場合には、該論理レコードのキー値と該論理レコードの格納場所を登録するインデックスが同時に更新されることを特徴とする付記１に記載のデータベース装置。
（付記９）
複数の論理ページからなるサブレンジの先頭から順番に論理レコードを格納するシーケンシャルアクセス方法を採用したデータベース装置における論理レコードの再配置方法において、
該サブレンジの後方から順次移動対象の論理レコードを検出し、該移動対象の論理レコードが含まれる論理ページを論理レコードの移動元論理ページとして設定し、
該サブレンジの先頭から順次空き領域を検出し、該移動対象の論理レコードを格納可能な該空き領域が含まれる論理ページを論理レコードの移動先論理ページとして設定し、
該移動先論理ページと該移動元論理ページのみに排他制御を行い、該移動対象の論理レコードを該移動元論理ページから、該移動先論理ページの該空き領域に移動させる、
ことを特徴とする再配置方法。
（付記１０）
複数の論理ページからなるサブレンジの先頭から順番に論理レコードを格納するシーケンシャルアクセス方法を採用したデータベース装置における論理レコードの再配置方法をコンピュータに実現させるプログラムにおいて、
該コンピュータは、
該サブレンジの後方から順次移動対象の論理レコードを検出し、該移動対象の論理レコードが含まれる論理ページを論理レコードの移動元論理ページとして設定し、
該サブレンジの先頭から順次空き領域を検出し、該移動対象の論理レコードを格納可能な該空き領域が含まれる論理ページを論理レコードの移動先論理ページとして設定し、
該移動先論理ページと該移動元論理ページのみに排他制御を行い、該移動対象の論理レコードを該移動元論理ページから、該移動先論理ページの該空き領域に移動させる、
ことを特徴とするプログラム。
【符号の説明】
【００５７】
１０、１２      端末
１１      コンピュータ
１３      オンライン応用プログラム
１４      データベース管理システム
１５      データベース
１６      再配置機構
１７      移動元論理ページ検出装置
１８      移動元論理ページ内レコード抽出／格納装置
１９      移動先論理ページ検出装置
２０      最終格納論理ページ番号（ＣＳＰ）更新装置
【図１】
0005593841.tif 000002
【図２Ａ】
0005593841.tif 000003
【図２Ｂ】
0005593841.tif 000004
【図３】
0005593841.tif 000005
【図４Ａ】
0005593841.tif 000006
【図４Ｂ】
0005593841.tif 000007
【図４Ｃ】
0005593841.tif 000008
【図４Ｄ】
0005593841.tif 000009
【図５】
0005593841.tif 000010
【図６】
0005593841.tif 000011
【図７】
0005593841.tif 000012
【図８】
0005593841.tif 000013
【図９】
0005593841.tif 000014
【図１０】
0005593841.tif 000015
【図１１】
0005593841.tif 000016
【図１２】
0005593841.tif 000017
【図１３】
0005593841.tif 000018
【図１４】
0005593841.tif 000019