(57)【要約】      （修正有）【課題】データベースのレスポンスの悪化及びデッドロックの発生を抑制する。【解決手段】口座情報ＤＢは、個々のレコードが、第２階層に各口座に関する情報が登録され、第３階層に各口座毎の取引明細が各々登録される論理構造を有しているが、このうち多数の取引明細が登録される特定セグメントを有する特定レコードについては、特定レコードの特定セグメントの取引明細のみを複数登録するためのブロック化エリアを第２ＤＢに設け、このブロック化エリアに特定セグメントの取引明細を順に登録すると共に、取引明細の日付とブロック化エリアの通番を対応付けるインデックスを第２ＤＢに設けたコントロールブロックに順に登録することで、前記特定レコードの情報を物理的に分割する。これにより、頻繁に取引が行われる顧客のレコードの肥大化が回避されレスポンスが向上すると共に、アクセスが２個のＤＢに分散されることでデッドロックの発生が抑制される。【選択図】図８
2006285537.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が入出力の論理的単位としての多数個の単位領域に区画され、互いに異なるカテゴリの情報を設定するための複数セグメントが、ルートセグメントを起点として階層的に関連付けられた論理構造に従い、個々のレコードの情報が、何れかのセグメントに対応する情報を単位として分離されると共に、単一のセグメントに対応する情報として必要に応じて複数のオカレンスが生成され、１階層下位に関連するセグメントが存在するセグメントの情報に、前記１階層下位でかつ関連する単一の特定セグメントの情報又は該単一の特定セグメントの単一の特定オカレンスの格納位置を指し示すポインタ情報が設定され、前記特定セグメントに複数のオカレンスが存在している場合には、該複数のオカレンスに、前記特定オカレンスを先頭として、何れかのオカレンスの格納位置を指し示すポインタ情報が順に設定されるデータベースを記憶するための記憶手段と、
任意のレコードの任意のセグメントの情報の前記データベースへの登録が指示される毎に、所定の選択基準に従い登録対象の情報を登録可能な空き領域が生じている単位領域を選択し、選択した単位領域に前記登録対象の情報を登録すると共に、前記登録対象の情報と同一レコードに属し前記データベースに既に登録されている特定の情報に前記ポインタ情報を設定する登録手段と、
前記データベースからの任意のレコードの任意のセグメントの情報の読み出しが指示される毎に、個々のセグメントに付与されたキー情報又は前記ポインタ情報に基づいて読出対象の情報が登録されている単位領域を判断し、判断した単位領域の情報を前記データベースから読み出し、読み出した情報に含まれる読出対象の情報を出力する読出手段と、
を備えたデータベース管理装置であって、
特定レコードの所定階層の特定セグメントのオカレンスの登録が指示された場合に、前記記憶手段の記憶領域上に前記特定レコードの前記特定セグメントのオカレンスを複数登録するためのブロック化記憶領域が既に確保されており、かつ当該ブロック化記憶領域に前記登録対象のオカレンスを登録可能な空き領域があれば、当該ブロック化記憶領域に前記登録手段によって前記登録対象のオカレンスを登録させ、前記ブロック化記憶領域が確保されていないか又は既に確保されている前記ブロック化記憶領域に前記空き領域が無ければ、前記特定レコードの前記特定セグメントのオカレンスを複数登録するためのブロック化記憶領域を前記記憶手段の記憶領域上に確保し、かつ確保したブロック化記憶領域に前記登録対象のオカレンスを登録する処理を前記登録手段によって行わせると共に、前記特定レコードの前記特定セグメントのオカレンスの格納位置を識別するための制御情報登録用の制御情報領域が前記記憶手段の記憶領域上に既に確保されていれば、前記登録手段により当該制御情報領域に必要に応じて前記制御情報を追加登録させ、前記制御情報領域が確保されていなければ、前記記憶手段の記憶領域上に前記特定レコードの前記特定セグメントに対応する制御情報領域を確保し、かつ確保した制御情報領域に前記制御情報を新規登録する処理を前記登録手段によって行わせる登録制御手段と、
特定レコードの所定階層の特定セグメントのオカレンスの読み出しが指示された場合に、前記特定レコードの前記特定セグメントに対応する制御情報領域の制御情報を前記読出手段によって前記記憶手段から読み出させた後に、読み出された制御情報に基づいて前記読出対象のオカレンスの格納位置を認識し、前記読出対象のオカレンスを前記読出手段によって前記記憶手段から読み出させる読出制御手段と、
を備えたことを特徴とするデータベース管理装置。
【請求項２】
前記所定の階層は、単一のセグメントの情報として多数のオカレンスが前記データベースに登録される階層であることを特徴とする請求項１記載のデータベース管理装置。
【請求項３】
前記登録制御手段は、特定レコードの所定階層の特定セグメントに対応するブロック化記憶領域を前記登録手段によって確保させるにあたり、同一セグメントに対応する個々のブロック化記憶領域を識別するための通番を確保対象のブロック化記憶領域に付与し、前記記憶手段の記憶領域のうち前記付与した通番を用いて一意に特定可能な単位領域に前記確保対象のブロック化記憶領域を確保させると共に、前記特定レコードの所定階層の特定セグメントに対応する制御情報領域に、前記制御情報として、前記特定レコードの前記特定セグメントに対応する個々のブロック化記憶領域に登録されているオカレンスを前記個々のブロック化記憶領域の通番と対応付ける情報を含む情報を登録することを特徴とする請求項１記載のデータベース管理装置。
【請求項４】
前記登録制御手段は、前記特定レコードの所定階層の特定セグメントに対応する制御情報領域に、前記制御情報として、前記特定レコードの前記特定セグメントに対応するブロック化記憶領域のうち最後に確保したブロック化記憶領域の通番を表す最終通番も前記制御情報領域に登録すると共に、前記特定レコードの前記特定セグメントに対応するブロック化記憶領域を新たに確保する毎に前記最終通番も更新し、前記特定レコードの前記特定セグメントのオカレンスの登録が指示された場合に、前記特定レコードの前記特定セグメントに対応する制御情報領域に登録されている最終通番に基づき、前記特定レコードの前記特定セグメントに対応するブロック化記憶領域のうち最後に確保したブロック化記憶領域の情報を前記読出手段によって読み出させ、読み出された情報に基づいて前記空き領域があるか否かを判定することで、前記記憶手段の記憶領域上に既に確保されておりかつ前記特定レコードの前記特定セグメントに対応するブロック化記憶領域に前記空き領域があるか否かを判定することを特徴とする請求項３記載のデータベース管理装置。
【請求項５】
前記記憶手段は第１記憶手段と第２記憶手段から成り、
前記登録制御手段は、前記所定階層よりも上位階層のセグメントの情報を前記登録手段によって前記第１記憶手段に登録させると共に、前記ブロック化記憶領域及び前記制御情報領域を前記登録手段によって前記第２記憶手段の記憶領域上に確保させ、前記第２記憶手段の記憶領域上に確保させた各領域に前記登録手段によって情報を登録させることを特徴とする請求項１乃至請求項４の何れか１項記載のデータベース管理装置。
【請求項６】
前記登録制御手段は、前記制御情報領域が前記第２記憶手段の記憶領域上の特定領域内に確保され、前記ブロック化記憶領域が前記第２記憶手段の記憶領域上の特定領域外の領域に確保されるように前記登録手段を制御することを特徴とする請求項５記載のデータベース管理装置。
【請求項７】
前記ブロック化記憶領域にオカレンスを登録すべき所定階層の特定セグメントを有する特定レコードには、前記特定セグメントよりも１階層上位でかつ前記特定セグメントと関連する関連セグメントの情報に所定情報が設定されており、
前記登録制御手段は、前記登録対象のオカレンスが、前記関連セグメントの情報に前記所定情報が設定されているレコードに属している場合には、前記登録対象のオカレンスを前記第２記憶手段の記憶領域上に確保された対応するブロック化記憶領域に登録させ、前記登録対象のオカレンスが、前記関連セグメントの情報に前記所定情報が設定されていないレコードに属している場合には、前記登録対象のオカレンスを前記第１記憶手段に登録させ、
前記読出制御手段は、前記読出対象のオカレンスが、前記関連セグメントの情報に前記所定情報が設定されているレコードに属している場合には、対応する制御情報領域に登録されている制御情報に基づいて前記読出対象のオカレンスを前記第２記憶手段から読み出させ、前記読出対象のオカレンスが、前記関連セグメントの情報に前記所定情報が設定されていないレコードに属している場合には、前記関連セグメントの情報に設定されている前記ポインタ情報に基づいて前記読出対象のオカレンスを前記第１記憶手段から読み出させることを特徴とする請求項５記載のデータベース管理装置。
【請求項８】
前記登録制御手段は、前記第１記憶手段に登録されている所定階層の特定セグメントのオカレンスの数が所定数を超えるレコードが出現した場合に、前記特定セグメントの全てのオカレンスを登録可能な数のブロック化記憶領域を前記第２記憶手段の記憶領域上に確保し、かつ確保したブロック化記憶領域に前記全てのオカレンスを登録すると共に、前記特定レコードの前記特定セグメントに対応する制御情報領域を前記第２記憶手段の記憶領域上に確保し、かつ確保した制御情報領域に前記制御情報を新規登録し、更に、前記第１記憶手段に登録されている前記レコードの前記関連セグメントの情報に前記所定情報を設定させる処理を前記登録手段に行わせることを特徴とする請求項７記載のデータベース管理装置。
【請求項９】
記憶領域が入出力の論理的単位としての多数個の単位領域に区画され、互いに異なるカテゴリの情報を設定するための複数セグメントが、ルートセグメントを起点として階層的に関連付けられた論理構造に従い、個々のレコードの情報が、何れかのセグメントに対応する情報を単位として分離されると共に、単一のセグメントに対応する情報として必要に応じて複数のオカレンスが生成され、１階層下位に関連するセグメントが存在するセグメントの情報に、前記１階層下位でかつ関連する単一の特定セグメントの情報又は該単一の特定セグメントの単一の特定オカレンスの格納位置を指し示すポインタ情報が設定され、前記特定セグメントに複数のオカレンスが存在している場合には、該複数のオカレンスに、前記特定オカレンスを先頭として、何れかのオカレンスの格納位置を指し示すポインタ情報が順に設定されるデータベースを記憶するための記憶手段を備え、
任意のレコードの任意のセグメントの情報の前記データベースへの登録が指示される毎に、所定の選択基準に従い登録対象の情報を登録可能な空き領域が生じている単位領域を選択し、選択した単位領域に前記登録対象の情報を登録すると共に、前記登録対象の情報と同一レコードに属し前記データベースに既に登録されている特定の情報に前記ポインタ情報を設定する登録手段、
及び、前記データベースからの任意のレコードの任意のセグメントの情報の読み出しが指示される毎に、個々のセグメントに付与されたキー情報又は前記ポインタ情報に基づいて読出対象の情報が登録されている単位領域を判断し、判断した単位領域の情報を前記データベースから読み出し、読み出した情報に含まれる読出対象の情報を出力する読出手段
として機能するコンピュータを、更に、
特定レコードの所定階層の特定セグメントのオカレンスの登録が指示された場合に、前記記憶手段の記憶領域上に前記特定レコードの前記特定セグメントのオカレンスを複数登録するためのブロック化記憶領域が既に確保されており、かつ当該ブロック化記憶領域に前記登録対象のオカレンスを登録可能な空き領域があれば、当該ブロック化記憶領域に前記登録手段によって前記登録対象のオカレンスを登録させ、前記ブロック化記憶領域が確保されていないか又は既に確保されている前記ブロック化記憶領域に前記空き領域が無ければ、前記特定レコードの前記特定セグメントのオカレンスを複数登録するためのブロック化記憶領域を前記記憶手段の記憶領域上に確保し、かつ確保したブロック化記憶領域に前記登録対象のオカレンスを登録する処理を前記登録手段によって行わせると共に、前記特定レコードの前記特定セグメントのオカレンスの格納位置を識別するための制御情報登録用の制御情報領域が前記記憶手段の記憶領域上に既に確保されていれば、前記登録手段により当該制御情報領域に必要に応じて前記制御情報を追加登録させ、前記制御情報領域が確保されていなければ、前記記憶手段の記憶領域上に前記特定レコードの前記特定セグメントに対応する制御情報領域を確保し、かつ確保した制御情報領域に前記制御情報を新規登録する処理を前記登録手段によって行わせる登録制御手段、
及び、特定レコードの所定階層の特定セグメントのオカレンスの読み出しが指示された場合に、前記特定レコードの前記特定セグメントに対応する制御情報領域の制御情報を前記読出手段によって前記記憶手段から読み出させた後に、読み出された制御情報に基づいて前記読出対象のオカレンスの格納位置を認識し、前記読出対象のオカレンスを前記読出手段によって前記記憶手段から読み出させる読出制御手段
として機能させるためのデータベース管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータベース管理装置及びプログラムに係り、特に、個々のレコードの情報が階層構造とされたデータベースを管理するデータベース管理装置、コンピュータをデータベース管理装置として機能させるためのデータベース管理プログラムに関する。
【背景技術】
【０００２】
従来より、データベースに登録すべき情報項目を複数のセグメントに分け、これらのセグメントを、ルートセグメントを起点として階層的に関連付けた論理構造のデータベース（階層型データベース）が知られている。階層型データベースは、例えばデータベースに登録すべき多数レコードのデータのうち、特定の情報項目のデータ量が各レコード毎に一定していない等の場合にも、前記特定の情報項目に対応するセグメントのオカレンス(occurrence)の数を各レコード毎に増減させる等のように、登録すべきデータに応じて各レコードを単位としてデータ構造を柔軟に変更することができるので、登録データ量に比してデータベースの規模（データベースを記憶するために必要な記憶手段の容量）を抑制できるという特長を有している。
【０００３】
上記の階層型データベースに関連して、特許文献１には、階層構造のデータに対し、個々のセグメントに選択番号と検索キーを付与すると共に、個々のセグメント毎に、選択番号と検索キーに加えて下位階層のセグメントの選択番号を登録した検索キー管理ファイルを設け、特定のセグメントの選択番号が入力されると、特定セグメントの検索キー及び下位階層のセグメントの選択番号を検索キー管理ファイルから取得し、取得した検索キーを用いてデータ検索を行うことを、下位階層が存在しない状態となる迄繰り返すことで、特定セグメント及びその下位階層のセグメントのデータを全て検索する技術が開示されている。
【０００４】
また、データベースの管理に関連して、特許文献２には、データベースの物理ファイルをデータの使用頻度に応じて複数の物理ファイルに分割し、使用頻度の低い物理ファイルを他の記憶装置へ退避させ、退避させた物理ファイルを退避元の記憶装置から削除すると共に、分割した複数の物理ファイルを論理的に１つの物理ファイルとしてアクセスすることを可能とし、分割した複数の物理ファイルに対してアクセス要求があり、一部の物理ファイルが退避されている場合には、当該物理ファイルを退避先の記憶装置から復元させることでアクセス要求を実行する技術が開示されている。
【０００５】
また、特許文献３には、データレコード件数の増減に応じて、累乗根算出方式により階層数をインデックスなし、又は１次〜ｎ次に判断し、決定された次数分の階層構造を持つインデックスファイルを作成し、データファイルとインデックスファイルを関連付けるためにデータファイル名とインデックスファイル名とインデックス次数を格納した管理情報ファイルを作成する技術が開示されている。
【特許文献１】特開平５−３５７９０号公報
【特許文献２】特開平８−３２８９２９号公報
【特許文献３】特開平８−５５０５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、階層型データベースでは、情報の読み出し及び書き込みがセグメントを単位として行われるが、情報の読み出しにおける起点は常にルートセグメントであり、例えば読出対象情報のセグメントが従属階層（第２階層又はそれよりも低い階層）のセグメントであったとしても、読出対象情報の読み出しは、ルートセグメントから読出対象情報のセグメントに至る経路上の各セグメントの情報が、個々の情報に各々設定されたポインタ情報に基づいて順に読み出されることで行われる。また、階層型データベースにおいて、同一セグメントに複数のオカレンスが存在していた場合、この複数のオカレンスのうちの何れか１つの特定オカレンスのポインタ情報のみが１階層上位のセグメントの情報に設定され（１階層上位のセグメントとリンク付けされ）、他のオカレンスは特定オカレンスからディジーチェーンのように数珠繋ぎにリンク付けされる。このため、例えば読出対象のセグメントが従属セグメントで、この読出対象のセグメントに複数のオカレンスが存在しており、このうちの何れかのオカレンスが読出対象情報である場合、読出対象情報の読み出しは、ルートセグメントから読出対象のセグメントに至る経路上の各セグメントの情報を順に読み出すことで特定オカレンス（１階層上位のセグメントと直接リンク付けされたオカレンス）に到達した後に、この特定オカレンスから数珠繋ぎに関連付けられた各オカレンスを順に辿っていく（情報を順に読み出していく）ことによって成される。
【０００７】
データベースを記憶する記憶装置は、論理的な入出力の単位（ＣＩ：Control Intervalという）が定められており、このＣＩは階層型データベースにおける個々のセグメントの数個分程度のサイズとされ、記憶装置の記憶領域は多数個のＣＩ（単位領域）に区画されているが、上記のように読出対象のレコードの第２階層以下の階層のセグメントに多数のオカレンスが存在しており、この多数のオカレンスのうちの何れかを読み出す場合、読出対象のオカレンスが読み出される迄に、ルートセグメントの情報が格納されている単位領域を始めとして多数の単位領域にアクセスして情報を読み出す必要があるので、Ｉ／Ｏの回数（読み出すべき単位領域の数）が大幅に増大し、読出対象の情報の読み出しが完了する迄に長い時間がかかることになる。そして、データベースに登録されている各レコードの多数（或いは殆ど）が上記のように多数のオカレンスが存在しているレコードであった場合、データベースへのアクセス要求に対するシステムのレスポンスが悪化するという問題がある。
【０００８】
一例として、第３階層の特定セグメントに５００個のオカレンスが存在しているレコードから、特定セグメントの５００個のオカレンスのうちの任意のオカレンスを読み出す場合、個々の単位領域のサイズが８ｋバイト、個々のオカレンスのサイズが１ｋバイト（すなわち、単一の単位領域に格納可能なオカレンスの数を８個）とすると、特定セグメントの５００個のオカレンスは最小でも（個々の単位領域に詰めて格納されていたとしても）６３個の単位領域に分けて格納されることになる。このため、読出対象のオカレンスが特定セグメントの５００個のオカレンスの列の最後に繋がれていた場合、ルートセグメントの情報及び特定セグメントと関連付けられた第２階層のセグメントの情報が単一の単位領域に格納されていたとしても、Ｉ／Ｏの回数は最小で１＋６３＝６４回となる（500÷8＝62.5≒63）。また、特定セグメントの個々のオカレンスが互いに異なるタイミングでデータベースに追加登録される等の場合には、５００個のオカレンスがより多数個の単位領域にとびとびに格納される可能性が高く、Ｉ／Ｏの回数は更に増大する。
【０００９】
また、データベースに対する情報の読み出しや更新等のアクセスを複数のプロセスが並列に実行する環境では、単一の単位領域に対して複数のプロセスが同時にアクセスすることで、前記単位領域に格納されている情報に矛盾が生ずることを避けるために、個々のプロセスは、処理対象の単位領域をロックする（他のプロセスが処理対象の単位領域にアクセスすることを禁止する）排他制御を行う必要がある。この場合、或るプロセスが、第１の単位領域をロックしてアクセスし、続いて第２の単位領域をロックしてアクセスする処理を行うときに、別のプロセスにより、第２の単位領域をロックしてアクセスし、続いて第１の単位領域をロックしてアクセスする処理が同タイミングで行われると、双方のプロセスが共に相手のプロセスによって処理対象の単位領域に対するロックが解除されるのを待っている状態、すなわちデッドロックが発生する。
【００１０】
前述のように、第２階層以下の階層のセグメントに多数のオカレンスが存在しているレコードに対するアクセスでは、多数の単位領域がアクセスされることが多いので、登録されているレコードの多数（或いは殆ど）が上記のようなレコードであるデータベースではデッドロックが発生し易いという問題もある。
【００１１】
本発明は上記事実を考慮して成されたもので、データベースへのアクセス要求に対するシステムのレスポンスの悪化及びデッドロックの発生を抑制できるデータベース管理装置及びデータベース管理プログラムを得ることが目的である。
【課題を解決するための手段】
【００１２】
上記目的を達成するために請求項１記載の発明に係るデータベース管理装置は、記憶領域が入出力の論理的単位としての多数個の単位領域に区画され、互いに異なるカテゴリの情報を設定するための複数セグメントが、ルートセグメントを起点として階層的に関連付けられた論理構造に従い、個々のレコードの情報が、何れかのセグメントに対応する情報を単位として分離されると共に、単一のセグメントに対応する情報として必要に応じて複数のオカレンスが生成され、１階層下位に関連するセグメントが存在するセグメントの情報に、前記１階層下位でかつ関連する単一の特定セグメントの情報又は該単一の特定セグメントの単一の特定オカレンスの格納位置を指し示すポインタ情報が設定され、前記特定セグメントに複数のオカレンスが存在している場合には、該複数のオカレンスに、前記特定オカレンスを先頭として、何れかのオカレンスの格納位置を指し示すポインタ情報が順に設定されるデータベースを記憶するための記憶手段と、任意のレコードの任意のセグメントの情報の前記データベースへの登録が指示される毎に、所定の選択基準に従い登録対象の情報を登録可能な空き領域が生じている単位領域を選択し、選択した単位領域に前記登録対象の情報を登録すると共に、前記登録対象の情報と同一レコードに属し前記データベースに既に登録されている特定の情報に前記ポインタ情報を設定する登録手段と、前記データベースからの任意のレコードの任意のセグメントの情報の読み出しが指示される毎に、個々のセグメントに付与されたキー情報又は前記ポインタ情報に基づいて読出対象の情報が登録されている単位領域を判断し、判断した単位領域の情報を前記データベースから読み出し、読み出した情報に含まれる読出対象の情報を出力する読出手段と、を備えたデータベース管理装置であって、特定レコードの所定階層の特定セグメントのオカレンスの登録が指示された場合に、前記記憶手段の記憶領域上に前記特定レコードの前記特定セグメントのオカレンスを複数登録するためのブロック化記憶領域が既に確保されており、かつ当該ブロック化記憶領域に前記登録対象のオカレンスを登録可能な空き領域があれば、当該ブロック化記憶領域に前記登録手段によって前記登録対象のオカレンスを登録させ、前記ブロック化記憶領域が確保されていないか又は既に確保されている前記ブロック化記憶領域に前記空き領域が無ければ、前記特定レコードの前記特定セグメントのオカレンスを複数登録するためのブロック化記憶領域を前記記憶手段の記憶領域上に確保し、かつ確保したブロック化記憶領域に前記登録対象のオカレンスを登録する処理を前記登録手段によって行わせると共に、前記特定レコードの前記特定セグメントのオカレンスの格納位置を識別するための制御情報登録用の制御情報領域が前記記憶手段の記憶領域上に既に確保されていれば、前記登録手段により当該制御情報領域に必要に応じて前記制御情報を追加登録させ、前記制御情報領域が確保されていなければ、前記記憶手段の記憶領域上に前記特定レコードの前記特定セグメントに対応する制御情報領域を確保し、かつ確保した制御情報領域に前記制御情報を新規登録する処理を前記登録手段によって行わせる登録制御手段と、特定レコードの所定階層の特定セグメントのオカレンスの読み出しが指示された場合に、前記特定レコードの前記特定セグメントに対応する制御情報領域の制御情報を前記読出手段によって前記記憶手段から読み出させた後に、読み出された制御情報に基づいて前記読出対象のオカレンスの格納位置を認識し、前記読出対象のオカレンスを前記読出手段によって前記記憶手段から読み出させる読出制御手段と、を備えたことを特徴としている。
【００１３】
請求項１記載の発明に係るデータベース管理装置は、記憶領域が入出力の論理的単位としての多数個の単位領域（ＣＩ）に区画された記憶手段を備えており、この記憶手段には、互いに異なるカテゴリの情報を設定するための複数セグメントが、ルートセグメントを起点として階層的に関連付けられた論理構造に従い、個々のレコードの情報が、何れかのセグメントに対応する情報を単位として分離されると共に、単一のセグメントに対応する情報として必要に応じて複数のオカレンスが生成され、１階層下位に関連するセグメントが存在するセグメントの情報に、前記１階層下位でかつ関連する単一の特定セグメントの情報又は該単一の特定セグメントの単一の特定オカレンスの格納位置を指し示すポインタ情報が設定され、特定セグメントに複数のオカレンスが存在している場合には、該複数のオカレンスに、前記特定オカレンスを先頭として、何れかのオカレンスの格納位置を指し示すポインタ情報が順に設定されるデータベースが記憶される。
【００１４】
また、請求項１記載の発明に係るデータベース管理装置は、任意のレコードの任意のセグメントの情報のデータベースへの登録が指示される毎に、登録手段により、所定の選択基準に従い登録対象の情報を登録可能な空き領域が生じている単位領域が選択され、選択された単位領域に登録対象の情報が登録されると共に、登録対象の情報と同一レコードに属しデータベースに既に登録されている特定の情報（１階層上位でかつ関連するセグメントの情報、或いは１階層上位の同一セグメントと関連する同一階層の他のオカレンスの情報）にポインタ情報が設定される。これにより、ルートセグメント以外のセグメント（従属セグメント）の情報については、個々の情報に設定されているポインタ情報に基づいて、ルートセグメントを起点にして順に辿っていく（情報を順に読み出していく）ことで、従属セグメントの情報が登録されている単位領域を特定することができる。
【００１５】
なお、登録対象の情報がルートセグメントの情報である場合、登録手段は、例えば該ルートセグメントに付与されたキー情報から一意に特定される第１の単位領域に登録対象のルートセグメントの情報を登録可能な空き領域が有るか否かを判断し、空き領域があれば登録対象のルートセグメントの情報を第１の単位領域に登録し、空き領域が無い場合には、所定の選択基準に従い登録対象のルートセグメントの情報を登録可能な空き領域が生じている第２の単位領域を選択し、選択した第２の単位領域に登録対象のルートセグメントの情報を登録すると共に、登録対象のルートセグメントの情報の登録位置が第２の単位領域であることを表すルート登録先情報を第１の単位領域に設定するように構成することができる。これにより、データベースに登録されているルートセグメントの情報については、当該ルートセグメントに付与されたキー情報（及び第１の単位領域に登録されたルート登録先情報）に基づいて、当該情報が登録されている単位領域を特定することができる。
【００１６】
そして、請求項１記載の発明に係るデータベース管理装置では、データベースからの任意のレコードの任意のセグメントの情報の読み出しが指示される毎に、読出手段により、個々のセグメントに付与されたキー情報又はポインタ情報に基づいて読出対象の情報が登録されている単位領域が判断され、判断された単位領域の情報がデータベースから読み出され、読み出された情報に含まれる読出対象の情報が出力される。
【００１７】
ここで、上記構成では、従属セグメントの情報が登録されている単位領域を特定するために、前述したように、個々の情報に設定されているポインタ情報に基づいて、ルートセグメントを起点にして順に辿っていく（情報を順に読み出していく）必要があるので、アクセス対象のレコードが第２階層以下の階層に多数のセグメント又はオカレンスが存在しているレコードであった場合にはＩ／Ｏ回数が大幅に増大する可能性が高く、データベースへのアクセスを複数のプロセスが並列に実行する環境下で、データベースに登録されているレコードの多数（或いは殆ど）が上記のようなレコードであったとすると、デッドロックが発生する恐れもある。
【００１８】
これに対して請求項１記載の発明に係る登録制御手段は、特定レコードの所定階層の特定セグメントのオカレンスの登録が指示された場合に、記憶手段の記憶領域上に特定レコードの特定セグメントのオカレンスを複数登録するためのブロック化記憶領域が既に確保されており、かつ当該ブロック化記憶領域に登録対象のオカレンスを登録可能な空き領域があれば、当該ブロック化記憶領域に登録手段によって登録対象のオカレンスを登録させ、前記ブロック化記憶領域が確保されていないか又は既に確保されている前記ブロック化記憶領域に前記空き領域が無ければ、特定レコードの特定セグメントのオカレンスを複数登録するためのブロック化記憶領域を記憶手段の記憶領域上に確保し、かつ確保したブロック化記憶領域に登録対象のオカレンスを登録する処理を登録手段によって行わせる。また、登録制御手段は、特定レコードの特定セグメントのオカレンスの格納位置を識別するための制御情報登録用の制御情報領域が記憶手段の記憶領域上に既に確保されていれば、登録手段により当該制御情報領域に必要に応じて制御情報を追加登録させ、前記制御情報領域が確保されていなければ、記憶手段の記憶領域上に特定レコードの特定セグメントに対応する制御情報領域を確保し、かつ確保した制御情報領域に前記制御情報を新規登録する処理を登録手段によって行わせる。
【００１９】
なお、所定の階層としては、例えば請求項２に記載したように、単一のセグメントの情報として多数のオカレンスが前記データベースに登録される階層を適用することができる。また、請求項１記載の発明に係る読出制御手段は、特定レコードの所定階層の特定セグメントのオカレンスの読み出しが指示された場合に、特定レコードの特定セグメントに対応する制御情報領域の制御情報を読出手段によって記憶手段から読み出させた後に、読み出された制御情報に基づいて読出対象のオカレンスの格納位置を認識し、読出対象のオカレンスを読出手段によって記憶手段から読み出させる。
【００２０】
このように、請求項１記載の発明では、読出対象のオカレンスが特定レコードの所定階層の特定セグメントのオカレンスであり、ブロック化記憶領域に登録されている場合、まず対応する制御情報領域に記憶されている制御情報を読み出して読出対象のオカレンスの格納位置を認識した後に、読出対象のオカレンスを記憶手段から読み出す必要がある。しかし、請求項１記載の発明に係る制御情報は、特定レコードの特定セグメントのオカレンスの格納位置を識別するための情報であるのでオカレンス自体よりもサイズが小さく、かつ記憶手段の記憶領域上に確保された制御情報領域に登録されるので、特定レコードの特定セグメントのオカレンスが読出対象のオカレンスを含めて多数存在していたとしても、読出対象のオカレンスの格納位置を認識するために必要なＩ／Ｏの回数は、オカレンス自体を辿っていく場合と比較して大幅に削減される。また、読出対象のオカレンスの格納位置が認識できれば、記憶手段から読出対象のオカレンスを直接読み出すことができるので、読出対象のオカレンスの読み出しに際してのＩ／Ｏの回数が削減される。
【００２１】
例えば前述のように、第３階層の特定セグメントに５００個のオカレンスが存在しているレコードから、特定セグメントの５００個のオカレンスのうち列の最後に繋がれているオカレンスが読み出す場合、従来は、個々の単位領域のサイズが８ｋバイト、個々のオカレンスのサイズが１ｋバイト（単一の単位領域に格納可能なオカレンスの数が８個）であれば、Ｉ／Ｏの回数は最小で１＋６３＝６４回となる。一方、請求項１記載の発明を適用した場合、５００個のオカレンスに対応する制御情報が単一の単位領域に収まるとすると、最小のＩ／Ｏの回数は、ルートセグメント及び第２階層のセグメントの情報読み出しのためのＩ／Ｏの回数が１回、制御情報読み出しのためのＩ／Ｏの回数が１回、読出対象のオカレンスの読み出しのためのＩ／Ｏの回数が１回で合計３回となり、従来よりも大幅に少ないＩ／Ｏ回数で読出対象のオカレンスを読み出すことができる。
【００２２】
また、請求項１記載の発明に係るブロック化記憶領域は、特定レコードの特定セグメントのオカレンスを複数登録するための領域であり、個々のブロック化記憶領域には同一レコードかつ同一セグメントのオカレンスのみが登録されるので、請求項１記載の発明では、個々のレコードの所定階層の各セグメントのオカレンスが、同一レコードかつ同一セグメントのオカレンス毎に記憶手段の記憶領域に詰めて（個々のブロック化記憶領域を単位として連続的に）格納されることになる。このため、特定レコードの特定セグメントのオカレンスを全て読み出す等の場合にも、従来よりも少ないＩ／Ｏ回数で読み出しを完了させることができる。従って、請求項１記載の発明によれば、データベースへのアクセスにおけるＩ／Ｏ回数を削減することができ、データベースへのアクセス要求に対するシステムのレスポンスの悪化を抑制できると共に、これに伴ってデッドロックの発生も抑制することができる。
【００２３】
なお、請求項１記載の発明では、個々のレコードの所定階層の各セグメントのオカレンスが、同一レコードかつ同一セグメントのオカレンス毎に記憶手段の記憶領域に詰めて（個々のブロック化記憶領域を単位として連続的に）格納されるので、制御情報領域に登録する制御情報として、対応する全てのオカレンスについて格納位置を識別するための情報を設定した情報を用いる必要はなく、所定の基準に従って選択したオカレンス（例えば記憶手段への登録順で一定数おきのオカレンスや、情報の日付が互いに相違するオカレンス（日付が同一のオカレンスが複数存在している場合は記憶手段への登録時刻が最も早いオカレンス）等）についてのみ格納位置を識別するための情報（例えば後述する請求項３に記載のブロック化記憶領域の通番と対応付ける情報）を設定した情報を採用することも可能である。この場合、制御情報領域に登録する制御情報のサイズをより小さくすることができるので、Ｉ／Ｏの回数が更に削減される可能性が高くなる。
【００２４】
また、請求項１記載の発明において、登録制御手段は、例えば請求項３に記載したように、特定レコードの所定階層の特定セグメントに対応するブロック化記憶領域を登録手段によって確保させるにあたり、同一セグメントに対応する個々のブロック化記憶領域を識別するための通番を確保対象のブロック化記憶領域に付与し、記憶手段の記憶領域のうち前記付与した通番を用いて一意に特定可能な単位領域に確保対象のブロック化記憶領域を確保させると共に、特定レコードの所定階層の特定セグメントに対応する制御情報領域に、制御情報として、特定レコードの特定セグメントに対応する個々のブロック化記憶領域に登録されているオカレンスを個々のブロック化記憶領域の通番と対応付ける情報を含む情報を登録するように構成することができる。
【００２５】
また、請求項３記載の発明において、登録制御手段は、例えば請求項４に記載したように、特定レコードの所定階層の特定セグメントに対応する制御情報領域に、制御情報として、特定レコードの特定セグメントに対応するブロック化記憶領域のうち最後に確保したブロック化記憶領域の通番を表す最終通番も制御情報領域に登録すると共に、特定レコードの特定セグメントに対応するブロック化記憶領域を新たに確保する毎に前記最終通番も更新し、特定レコードの特定セグメントのオカレンスの登録が指示された場合に、特定レコードの特定セグメントに対応する制御情報領域に登録されている最終通番に基づき、特定レコードの特定セグメントに対応するブロック化記憶領域のうち最後に確保したブロック化記憶領域の情報を読出手段によって読み出させ、読み出された情報に基づいて空き領域があるか否かを判定することで、記憶手段の記憶領域上に既に確保されておりかつ特定レコードの特定セグメントに対応するブロック化記憶領域に空き領域があるか否かを判定するように構成することが好ましい。
【００２６】
本発明によれば、同一レコードかつ同一セグメントに対応するブロック化記憶領域の数がオカレンスの増加に伴って増加することになるので、特定レコードの特定セグメントのオカレンスの登録にあたり、特定レコードの特定セグメントに対応するブロック化記憶領域が記憶手段の記憶領域上に複数存在している場合、これらのブロック化記憶領域に空き領域があるか否かを判定するために、複数のブロック化記憶領域にアクセスする必要が生ずる可能性がある。これに対して請求項４記載の発明では、ブロック化記憶領域の確保は、記憶手段の記憶領域上に既に確保されているブロック化記憶領域に空き領域がない場合に行われる（空き領域がある可能性があるのは最後に確保されたブロック化記憶領域のみである）ことに基づき、最後に確保したブロック化記憶領域の通番を表す最終通番を制御情報領域に登録しておき、この最終通番に対応するブロック化記憶領域に空き領域があるか否かを判定することで、記憶手段の記憶領域上に既に確保されておりかつ特定レコードの特定セグメントに対応するブロック化記憶領域に空き領域があるか否かを判定しているので、空き領域の有無の判定に際してのＩ／Ｏの回数を削減することができる。
【００２７】
また、請求項１乃至請求項４の何れかに記載の発明において、例えば請求項５に記載したように、記憶手段は第１記憶手段と第２記憶手段から成り、登録制御手段は、所定階層よりも上位階層のセグメントの情報を登録手段によって第１記憶手段に登録させると共に、ブロック化記憶領域及び制御情報領域を登録手段によって第２記憶手段の記憶領域上に確保させ、第２記憶手段の記憶領域上に確保させた各領域に登録手段によって情報を登録させるように構成することが好ましい。これにより、ベータベースが第１記憶手段と第２記憶手段に分割されて記憶されることになり、ベータベースに対するアクセスが第１記憶手段に対するアクセスと第２記憶手段に対するアクセスとに分散されることになるので、データベースへのアクセスを複数のプロセスが並列に実行する環境下でのデッドロックの発生をより効果的に抑制することができる。
【００２８】
また、請求項５記載の発明のように、ブロック化記憶領域及び制御情報領域を第２記憶手段の記憶領域上に確保させる場合、登録制御手段は、例えば請求項６に記載したように、制御情報領域が第２記憶手段の記憶領域上の特定領域内に確保され、ブロック化記憶領域が第２記憶手段の記憶領域上の特定領域外の領域に確保されるように登録手段を制御することが好ましい。本発明において、ブロック化記憶領域に登録されているオカレンスの読み出しは、前述のように制御情報領域→ブロック化記憶領域の順に行われるので、第２記憶手段の記憶領域上に制御情報領域とブロック化記憶領域が混在していると、データベースへのアクセスを複数のプロセスが並列に実行する環境下でデッドロックが発生する可能性があるが、請求項６記載の発明では、制御情報領域とブロック化記憶領域が第２記憶手段の記憶領域上の別々の領域に確保されるので、データベースへのアクセスを複数のプロセスが並列に実行する環境下でのデッドロックの発生を更に効果的に抑制することができる。
【００２９】
また本発明において、所定階層の特定セグメントのオカレンスをブロック化記憶領域に登録する処理は、データベースの全てのレコードに適用してもよいが、所定階層のセグメントのオカレンスの数が少ないレコードについては、オカレンスをブロック化記憶領域に登録した場合、このオカレンスへのアクセスの前に制御情報領域へのアクセスが必要となるために、当該レコードがアクセスされる際のＩ／Ｏの回数が削減されないこともある。これを考慮すると、所定階層の特定セグメントのオカレンスをブロック化記憶領域に登録する処理を適用するか否かを、個々のレコードを単位として切替え可能とすることが好ましい。
【００３０】
請求項５記載の発明において、上記の切替えは、例えば請求項７に記載したように、ブロック化記憶領域にオカレンスを登録すべき所定階層の特定セグメントを有する特定レコードには、特定セグメントよりも１階層上位でかつ特定セグメントと関連する関連セグメントの情報に所定情報を設定しておき、登録制御手段を、登録対象のオカレンスが、関連セグメントの情報に所定情報が設定されているレコードに属している場合には、登録対象のオカレンスを第２記憶手段の記憶領域上に確保された対応するブロック化記憶領域に登録させ、登録対象のオカレンスが、前記関連セグメントの情報に所定情報が設定されていないレコードに属している場合には、登録対象のオカレンスを第１記憶手段に登録させるように構成すると共に、読出制御手段を、読出対象のオカレンスが、前記関連セグメントの情報に所定情報が設定されているレコードに属している場合には、対応する制御情報領域に登録されている制御情報に基づいて読出対象のオカレンスを第２記憶手段から読み出させ、読出対象のオカレンスが、前記関連セグメントの情報に所定情報が設定されていないレコードに属している場合には、前記関連セグメントの情報に設定されているポインタ情報に基づいて読出対象のオカレンスを第１記憶手段から読み出させるように構成することで実現することができる。これにより、関連セグメントの情報に所定情報が設定されているレコードに対してのみ、所定階層の特定セグメントのオカレンスをブロック化記憶領域に登録する処理が適用されることになる。
【００３１】
また、請求項７記載の発明において、登録制御手段は、例えば請求項８に記載したように、第１記憶手段に登録されている所定階層の特定セグメントのオカレンスの数が所定数を超えるレコードが出現した場合に、前記特定セグメントの全てのオカレンスを登録可能な数のブロック化記憶領域を第２記憶手段の記憶領域上に確保し、かつ確保したブロック化記憶領域に前記全てのオカレンスを登録すると共に、特定レコードの特定セグメントに対応する制御情報領域を第２記憶手段の記憶領域上に確保し、かつ確保した制御情報領域に制御情報を新規登録し、更に、第１記憶手段に登録されている前記レコードの前記関連セグメントの情報に所定情報を設定させる処理を登録手段に行わせるように構成することが好ましい。
【００３２】
これにより、当初は所定階層の特定セグメントのオカレンスを第１記憶手段に登録していたレコードが、特定セグメントのオカレンスの追加登録が繰り返されることで特定セグメントのオカレンスの数が所定数を超えて肥大化し、アクセスに際して多数回のＩ／Ｏを必要とする状態となった場合に、当該レコードに対し、所定階層の特定セグメントのオカレンスが第２記憶手段の記憶領域上に確保されたブロック化記憶領域へ移動されると共に第２記憶手段の記憶領域上に確保された制御情報領域に制御情報が登録され、更に関連セグメントの情報に所定情報が設定されることで、以降の処理では、所定階層の特定セグメントのオカレンスをブロック化記憶領域に登録する処理が適用されることになる。従って、データベースを運用していく過程で肥大化したレコードが生じた場合にも、当該レコードがアクセスされる際のＩ／Ｏの回数を削減することができる。
【００３３】
請求項９記載の発明に係るデータベース管理プログラムは、記憶領域が入出力の論理的単位としての多数個の単位領域に区画され、互いに異なるカテゴリの情報を設定するための複数セグメントが、ルートセグメントを起点として階層的に関連付けられた論理構造に従い、個々のレコードの情報が、何れかのセグメントに対応する情報を単位として分離されると共に、単一のセグメントに対応する情報として必要に応じて複数のオカレンスが生成され、１階層下位に関連するセグメントが存在するセグメントの情報に、前記１階層下位でかつ関連する単一の特定セグメントの情報又は該単一の特定セグメントの単一の特定オカレンスの格納位置を指し示すポインタ情報が設定され、前記特定セグメントに複数のオカレンスが存在している場合には、該複数のオカレンスに、前記特定オカレンスを先頭として、何れかのオカレンスの格納位置を指し示すポインタ情報が順に設定されるデータベースを記憶するための記憶手段を備え、任意のレコードの任意のセグメントの情報の前記データベースへの登録が指示される毎に、所定の選択基準に従い登録対象の情報を登録可能な空き領域が生じている単位領域を選択し、選択した単位領域に前記登録対象の情報を登録すると共に、前記登録対象の情報と同一レコードに属し前記データベースに既に登録されている特定の情報に前記ポインタ情報を設定する登録手段、及び、前記データベースからの任意のレコードの任意のセグメントの情報の読み出しが指示される毎に、個々のセグメントに付与されたキー情報又は前記ポインタ情報に基づいて読出対象の情報が登録されている単位領域を判断し、判断した単位領域の情報を前記データベースから読み出し、読み出した情報に含まれる読出対象の情報を出力する読出手段として機能するコンピュータを、更に、特定レコードの所定階層の特定セグメントのオカレンスの登録が指示された場合に、前記記憶手段の記憶領域上に前記特定レコードの前記特定セグメントのオカレンスを複数登録するためのブロック化記憶領域が既に確保されており、かつ当該ブロック化記憶領域に前記登録対象のオカレンスを登録可能な空き領域があれば、当該ブロック化記憶領域に前記登録手段によって前記登録対象のオカレンスを登録させ、前記ブロック化記憶領域が確保されていないか又は既に確保されている前記ブロック化記憶領域に前記空き領域が無ければ、前記特定レコードの前記特定セグメントのオカレンスを複数登録するためのブロック化記憶領域を前記記憶手段の記憶領域上に確保し、かつ確保したブロック化記憶領域に前記登録対象のオカレンスを登録する処理を前記登録手段によって行わせると共に、前記特定レコードの前記特定セグメントのオカレンスの格納位置を識別するための制御情報登録用の制御情報領域が前記記憶手段の記憶領域上に既に確保されていれば、前記登録手段により当該制御情報領域に必要に応じて前記制御情報を追加登録させ、前記制御情報領域が確保されていなければ、前記記憶手段の記憶領域上に前記特定レコードの前記特定セグメントに対応する制御情報領域を確保し、かつ確保した制御情報領域に前記制御情報を新規登録する処理を前記登録手段によって行わせる登録制御手段、及び、特定レコードの所定階層の特定セグメントのオカレンスの読み出しが指示された場合に、前記特定レコードの前記特定セグメントに対応する制御情報領域の制御情報を前記読出手段によって前記記憶手段から読み出させた後に、読み出された制御情報に基づいて前記読出対象のオカレンスの格納位置を認識し、前記読出対象のオカレンスを前記読出手段によって前記記憶手段から読み出させる読出制御手段として機能させる。
【００３４】
請求項９記載の発明に係るデータベース管理プログラムは、上記の記憶手段を備え、上記の登録手段及び読出手段として機能するコンピュータを、登録制御手段及び読出制御手段として機能させるためのプログラムであるので、上記のコンピュータが請求項９記載の発明に係るデータベース管理プログラムを実行することにより、コンピュータが請求項１に記載のデータベース管理装置として機能することになり、請求項１記載の発明と同様に、データベースへのアクセス要求に対するシステムのレスポンスの悪化及びデッドロックの発生を抑制することができる。
【発明の効果】
【００３５】
以上説明したように本発明は、特定レコードの所定階層の特定セグメントのオカレンスの登録が指示された場合に、ブロック化記憶領域が既に確保されておりかつ当該ブロック化記憶領域に登録対象のオカレンスを登録可能な空き領域があれば、当該ブロック化記憶領域に登録対象のオカレンスを登録させ、ブロック化記憶領域が確保されていないか又は既に確保されているブロック化記憶領域に空き領域が無ければ、特定レコードの特定セグメントのオカレンスを複数登録するためのブロック化記憶領域を確保し、かつ確保したブロック化記憶領域に登録対象のオカレンスを登録する処理を行わせると共に、特定レコードの特定セグメントのオカレンスの格納位置を識別するための制御情報登録用の制御情報領域が既に確保されていれば、当該制御情報領域に必要に応じて制御情報を追加登録させ、制御情報領域が確保されていなければ、特定レコードの特定セグメントに対応する制御情報領域を確保し、かつ確保した制御情報領域に制御情報を新規登録する処理を行わせ、特定レコードの所定階層の特定セグメントのオカレンスの読み出しが指示された場合に、対応する制御情報領域の制御情報を読み出させた後に、読み出された制御情報に基づいて読出対象のオカレンスの格納位置を認識し、読出対象のオカレンスを読み出させるようにしたので、データベースへのアクセス要求に対するシステムのレスポンスの悪化及びデッドロックの発生を抑制できる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図１には本実施形態に係る、特定金融機関に設けられたコンピュータ・システム１０が示されている。コンピュータ・システム１０は、特定金融機関の情報センタ等に設置されたホスト・コンピュータ１２と、特定金融機関内に構築されたコンピュータ・ネットワーク１８を含んで構成されている。なお、ホスト・コンピュータ１２は請求項９に記載のコンピュータに対応しており、後述する第１ストレージ１４及び第２ストレージ１６と共に本発明に係るデータベース管理装置に対応している。
【００３７】
ホスト・コンピュータ１２は汎用の大型コンピュータから成り、ＣＰＵ１２Ａ、ＲＡＭ等から成るメモリ１２Ｂ、磁気ディスク等から成る不揮発性の記憶部１２Ｃ、ネットワークインタフェース（Ｉ／Ｆ）部１２Ｄを備えている。ホスト・コンピュータ１２は、ネットワークＩ／Ｆ部１２Ｄに接続された通信回線を介してコンピュータ・ネットワーク１８（詳しくはネットワーク１８内のブランチ・サーバ２０）に接続されている。また、ホスト・コンピュータ１２には、大容量の磁気ディスク等から成る第１ストレージ１４及び第２ストレージ１６が各々接続されている。第１ストレージ１４には口座情報第１データベース（口座情報第１ＤＢ）を記憶するための記憶領域が設けられており、第２ストレージ１６には口座情報第２データベース（口座情報第２ＤＢ）を記憶するための記憶領域が設けられている。なお、第１ストレージ１４に記憶される口座情報第１ＤＢと第２ストレージ１６に記憶される口座情報第２ＤＢは、各々を区別するために異なる物理ＤＢ名が付与されているが、論理的には単一のデータベース（顧客が特定金融機関に開設した口座に関する情報を登録・管理するための口座情報ＤＢ）として扱われる。第１ストレージ１４及び第２ストレージ１６は本発明に係る記憶手段に対応しており、詳しくは、第１ストレージ１４は請求項５に記載の第１記憶手段に、第２ストレージ１６は請求項５に記載の第２記憶手段に対応している。
【００３８】
また、ホスト・コンピュータ１２の記憶部１２Ｃには、ホスト・コンピュータ１２をＤＢ制御部として機能させるためのＤＢ制御プログラム、ホスト・コンピュータ１２をアプリケーション制御部として機能させるためのアプリケーション制御プログラム、ホスト・コンピュータ１２をＤＢ操作アプリケーション部として機能させるためのＤＢ操作アプリケーション・プログラムが各々記憶されている。なお、上記各プログラムのうち、アプリケーション制御プログラムは請求項９に記載のデータベース管理プログラムに対応している。
【００３９】
一方、コンピュータ・ネットワーク１８は、特定金融機関の各支店に各々設置されたブランチ・サーバ２０（ＰＣ、ワークステーション、大型コンピュータの何れでもよい）が通信回線２０を介して互いに接続されて構成されており、個々のブランチ・サーバ２０には、個々のブランチ・サーバ２０と同一の支店に設置された複数台のＡＴＭ（Automatic Teller Machine：現金自動預け払い機）２２及び複数台の営業店端末（金融機関の従業員が操作するための端末）２４が各々接続されている。ＡＴＭ２２には、特定金融機関に口座を開設している顧客が所持しているキャッシュカードを装填可能で、装填されたキャッシュカードに磁気的に記録された情報を読み取り可能なカードリーダが取り付けられており、営業店端末２４には、特定金融機関に口座を開設している顧客が所持している通帳を装填可能で、装填された通帳に磁気的に記録された情報を読み取り可能で、且つ任意の情報を通帳に記録することも可能な記帳機が取り付けられている。
【００４０】
次に本実施形態の作用を説明する。本実施形態に係る口座情報ＤＢは、顧客が特定金融機関に開設した口座に関する情報を登録・管理するためのデータベースであり、単一の顧客の情報が単一のレコードとして登録される。また口座情報ＤＢは階層型のデータベースであり、個々のレコードは、図２（Ａ）に示すように、予め定められた互いに異なるカテゴリの情報を設定するための複数のセグメントが、最上位階層のセグメント（ルートセグメント）を起点として階層的に関連付けられた論理構造を有している。上記の論理構造における各セグメントのうち、ルートセグメントは、口座情報ＤＢに情報を登録する全ての顧客について生成・登録されるセグメントである。図２（Ｂ）に示すように、口座情報ＤＢに登録される個々のセグメントの情報は、各種の制御情報やポインタ情報が設定されるヘッダ、個々のセグメントを識別するためのキー情報、及び、本体情報から構成されているが、ルートセグメントでは、上記の本体情報として顧客ＩＤ等の顧客の属性情報が設定される。
【００４１】
また、第２階層のセグメントは、個々の顧客が特定金融機関に開設した個々の口座に関する情報を登録するためのセグメントであり、個々のレコードには、第２階層セグメントとして、対応する顧客が特定金融機関に開設した口座の数と同数のセグメントが各々生成・登録される。個々の第２階層セグメントは、対応する顧客が特定金融機関に開設した各口座のうち互いに異なる口座に対応しており、個々の第２階層セグメントの本体情報には、対応する口座の口座番号や残高等の情報が設定される。個々の第２階層セグメントは、論理的にはルートセグメントと各々関連付けされている。
【００４２】
また、第３階層セグメントは、個々の顧客が特定金融機関に開設した特定口座を対象とした金融取引の明細を登録するためのセグメントであり、個々の第３階層セグメントは任意の数のオカレンスを作成・登録可能とされている。個々の第３階層セグメントは第２階層の各セグメントのうち同一の口座に対応する第２階層セグメントと論理的に関連付けされており、任意の顧客の任意の口座を対象とした金融取引が発生する毎に、前記任意の顧客に対応する特定レコードに、前記任意の口座に対応する特定の第２階層セグメントと関連付けられた第３階層セグメントの情報として、発生した金融取引の明細を表す取引明細情報が本体情報に設定されたオカレンスが作成・登録される。
【００４３】
口座情報ＤＢに対する情報の登録、読み出し、更新等のアクセスはＤＢ制御部によって行われる。図３（Ａ）に示すように、口座情報ＤＢを記憶するための第１ストレージ１４及び第２ストレージ１６の記憶領域は、入出力の論理的単位としての一定サイズの多数個の単位領域（ＣＩ）に区画されていると共に、記憶領域全体が基本域と従属あふれ域、独立あふれ域に分けられており、個々の単位領域には各々アドレスが付与されている。ＤＢ制御部は、口座情報ＤＢへの情報の登録が指示され、登録対象の情報がルートセグメントの情報であった場合、該登録対象のルートセグメントの情報と共に通知されたルートセグメントのキー情報に基づき、キー情報のハッシュ値を計算する等のアルゴリズムにより、基本域内の各単位領域のうち登録対象のルートセグメントの情報を格納すべき単位領域のアドレス（キー情報から一意に定まるアドレス）を導出する。
【００４４】
但し、予め想定した顧客の最大数（に応じて定まるキー情報の桁数）にも依存するが、基本域内の単位領域の数を顧客の最大数だけ確保することは困難であるので、上記のアルゴリズムは、互いに異なる複数種のキー情報から同一のアドレスが導出されるように定められている。一方、図３（Ｂ）にも示すように、個々の単位領域は複数のセグメントの情報を格納可能なサイズ（例えば単一のセグメントの情報の最大サイズ１ｋバイトに対し、該情報を８個程度格納可能な８ｋバイト）とされているが、個々の単位領域に情報を格納可能なセグメントの数には限りがあり、また基本域内の単位領域に従属セグメントの情報も格納されることがあるので、導出したアドレスが付与された特定の単位領域に、登録対象のルートセグメントの情報を格納可能な空き領域が無い可能性もある。
【００４５】
このため、ＤＢ制御部は単位領域のアドレスを導出すると、当該単位領域に登録対象のルートセグメントの情報を格納可能な空き領域が有るか否かを確認する。そして、前記空き領域があれば、導出したアドレスが付与された特定の単位領域に登録対象のルートセグメントの情報を格納する。また、前記空き領域が無い場合には、従属あふれ域内の各単位領域のうち特定の単位領域と同一列の単位領域群（図３（Ａ）の「情報格納対象ＣＩ列」も参照）の中から、登録対象のルートセグメントの情報を格納する単位領域を選択し、選択した単位領域に登録対象のルートセグメントの情報を格納すると共に、基本域内の特定の単位領域に設けられた制御情報格納領域に、登録対象のルートセグメントの情報の格納位置を指し示すポインタ情報（単位領域のアドレスとオフセットを表す情報）を、登録対象のルートセグメントのキー情報と対応付けて登録する。なお、制御情報格納領域にはキー情報とポインタ情報を複数組登録可能とされており、制御情報格納領域にキー情報とポインタ情報が複数組登録される際には、登録情報はキー情報の昇順（降順でもよい）にソートされる。
【００４６】
またＤＢ制御部は、口座情報ＤＢへの情報の登録が指示され、登録対象の情報が従属セグメントの情報であった場合、ルートセグメントの情報を登録する場合と同様にして、登録対象の従属セグメントの情報を格納可能な空き領域が有る単位領域を探索する（優先順位が最も高い単位領域は登録対象の情報の格納位置を指し示すポインタ情報が設定されるセグメントの情報が既に登録された単位領域であり、該単位領域に空き領域がない場合に一定のロジックに従って他の単位領域が探索される）。なお、従属セグメントの情報の登録（又は読み出し又は更新）が指示される際には、前述した論理構造においてルートセグメントから処理対象のセグメントに至る経路上の各セグメントの情報を順次登録又は読み出す指示が事前に入力されるので、これらの指示に応じた処理の履歴を記憶しておくことで、登録対象の従属セグメントと同一レコードのルートセグメントのキー情報は容易に認識できる。そして、探索によって抽出された単位領域に登録対象の従属セグメントの情報を格納すると共に、登録対象の従属セグメントの情報の格納位置を指し示すポインタ情報を、登録対象の従属セグメントと同一のレコードに属し、かつ口座情報ＤＢに既に登録されているセグメントの情報のヘッダに設定する。
【００４７】
なお、ヘッダにポインタ情報を設定するセグメントの情報は以下のようにして選択される。すなわち、登録対象の従属セグメントは１階層上位の特定セグメントと論理的に関連付けられているが（この特定セグメントを親セグメントと称する）、登録対象の従属セグメントの情報と同一セグメントの他のオカレンス（関連オカレンス）が口座情報ＤＢに登録されていない場合には、登録対象の従属セグメントの情報のポインタ情報を親セグメントの情報のヘッダに設定する。また、登録対象の従属セグメントの情報と同一セグメントの他のオカレンスの情報が口座情報ＤＢに１個のみ登録されている場合には、登録対象の従属セグメントの情報のポインタ情報を当該他のオカレンスの情報のヘッダに設定する。
【００４８】
また、登録対象の従属セグメントの情報と同一セグメントの他のオカレンスが口座情報ＤＢに複数登録されている場合（該当するオカレンスが複数登録されているか否かは、親セグメントのヘッダに設定されたポインタ情報が指し示す他のオカレンスのヘッダに、同一セグメントの他のオカレンスを指し示すポインタ情報が設定されているか否かに基づいて判断できる）には、親セグメントのヘッダに設定されたポインタ情報が指し示す他のオカレンスの情報のヘッダに設定されている同セグメントの他のオカレンスを指し示すポインタ情報を参照し、当該ポインタ情報が指し示すオカレンスのヘッダに同一セグメントの他のオカレンスを指し示すポインタ情報が設定されているか否かを判定し、ポインタ情報が設定されている場合には、当該ポインタ情報が指し示す他のオカレンスのヘッダに同一セグメントの他のオカレンスを指し示すポインタ情報が設定されているか否かを判定することを繰り返すことで、同一セグメントの他のオカレンスを指し示すポインタ情報がヘッダに設定されていない他のオカレンス（同一セグメントのオカレンスの列のうちの最後に位置しているオカレンス）を探索し、この探索によって抽出されたオカレンスのヘッダに、登録対象の従属セグメントの情報（追加登録するオカレンス）を指し示すポインタ情報を設定する。これにより、登録対象の従属セグメントの情報が、ポインタ情報によってリンク付けされたオカレンスの既存の列の最後にリンク付けされる。
【００４９】
ＤＢ制御部が上記処理を行うことで、図２（Ｂ）にも示すように、口座情報ＤＢに登録されている各レコードの情報は、口座情報ＤＢに登録されている各セグメントの情報のうち、１階層下位でかつ関連するセグメントの情報が口座情報ＤＢに登録されているセグメントの情報のヘッダに、１階層下位でかつ関連する各セグメントの情報の格納位置を指し示すポインタ情報が各セグメントについて１つずつ各々設定される（ルートセグメントを参照）と共に、同一セグメントの情報が口座情報ＤＢに複数登録されている場合（複数のオカレンスが存在している場合）には、これらの複数のオカレンスのヘッダにポインタ情報が各々設定されることで、親セグメントの情報のヘッダに対応するポインタ情報が設定されているオカレンスを先頭として、同一セグメントのオカレンスの列が形成された物理構造となる。なお、ＤＢ制御部による上述した処理は本発明に係る登録手段（詳しくは請求項６に記載の登録手段）に対応している。
【００５０】
口座情報ＤＢからの情報の読み出しについては、口座情報ＤＢからのルートセグメントの情報の読み出しが指示された場合、ＤＢ制御部は、上記指示と共に通知された読出対象のルートセグメントのキー情報から一意に定まる単位領域のアドレスを導出し、導出したアドレスが付与された単位領域に対するアクセスをロックした後に当該単位領域の情報を読み出し、読み出した情報の中に読出対象のルートセグメントの情報が存在しているか否か判定する。読み出した情報の中に読出対象のルートセグメントの情報が存在していた場合には、この情報を出力すると共に前記単位領域に対するアクセスのロックを解除するが、読出対象のルートセグメントの情報が含まれていなかった場合には、読み出した情報から制御情報格納領域に設定されているポインタ情報（読出対象のルートセグメントのキー情報と対応付けられているポインタ情報）を抽出し、抽出したポインタ情報が指し示す単位領域に対するアクセスをロックした後に当該単位領域の情報を読み出し、読み出した情報に含まれる読出対象のルートセグメントの情報を出力すると共に、読み出し完了後に各単位領域に対するアクセスのロックを解除する。
【００５１】
また、従属セグメントの情報の読み出しが指示される際には、前述した論理構造においてルートセグメントから読出対象のセグメントに至る経路上の各セグメントの情報を順次読み出す指示が事前に入力される。このため、口座情報ＤＢからの従属セグメントの情報の読み出しが指示された場合、ＤＢ制御部は、前回の読出指示によって読み出した情報のヘッダに設定されているポインタ情報が指し示す単位領域を認識し、認識した単位領域が前回読み出しを行った単位領域と同一であれば、前回読み出した情報に含まれる前記ポインタ情報が指し示す特定情報を参照し、認識した単位領域が前回読み出しを行った単位領域と相違していれば、認識した単位領域に対するアクセスをロックした後に前記単位領域の情報を読み出し、読み出した情報に含まれる前記ポインタ情報が指し示す特定情報を参照する。そして、参照した特定情報に設定されているキー情報が読出指示と共に通知された読出対象の従属セグメントの情報のキー情報と一致しているか否か判定する。キー情報が一致していた場合は前記特定情報は読出対象の従属セグメントの情報であるので、当該特定情報を読出対象の従属セグメントの情報として出力すると共に、読み出し完了後に前記単位領域に対するアクセスのロックを解除する。
【００５２】
また、読出対象の従属セグメントの情報が、同一セグメントの情報として登録されて列を形成している複数のオカレンスの何れかである場合には、前回の読出指示によって読み出した情報のヘッダに設定されているポインタ情報は読出対象のオカレンスとは別のオカレンスの情報である可能性が高く、この場合、前述のキー情報は不一致となる。キー情報が不一致となった場合には、特定情報のヘッダに設定されているポインタ情報が指し示す単位領域を認識し、必要に応じて単位領域の情報の読み出しを行って上記ポインタ情報が指し示す次の特定情報を参照し、キー情報が一致しているか否かを判定することを、キー情報が一致している情報が出現する迄繰り返し（この処理により、同一セグメントのオカレンスの列が順に参照されることになる）、キー情報が一致した情報を読出対象のオカレンスとして出力する。なお、ＤＢ制御部による上述した処理は本発明に係る読出手段に対応している。
【００５３】
なお、口座情報ＤＢに対する情報の更新については、口座情報ＤＢからの更新対象の情報の読み出しが指示された後に、続いて前記情報の更新が指示されるので、ＤＢ制御部は、前回の読出指示により口座情報ＤＢからの読み出しを行った情報を、通知された更新対象の情報で上書きすることで、口座情報ＤＢに対する情報の更新を行う。
【００５４】
また、口座情報ＤＢに対する情報の登録、読み出し、更新等のアクセスは、例えば新規顧客によって特定金融機関の口座開設が指示されたり、特定金融機関に既に口座を開設している顧客によって別口座の開設が指示されたり、顧客から入金・残高照会・預金の引き出し・振込・振替等の金融取引の実行が指示されたことを契機として、口座情報ＤＢへのアクセスを要求する電文がＡＴＭ２２又は営業店端末２４から送信され、この電文がコンピュータ・ネットワーク１８やブランチ・サーバ２０を経由してホスト・コンピュータ１２で受信されることによって行われる。ホスト・コンピュータ１２では、口座情報ＤＢへのアクセスを要求する電文を受信する毎に、ＤＢ操作アプリケーション部により、受信した電文の要求に基づき、アプリケーション制御部を介してＤＢ制御部へ口座情報ＤＢへのアクセスを指示すると共に、アプリケーション制御部を介してＤＢ制御部からアクセス結果を受け取り、口座情報ＤＢに対する要求されたアクセスが完了すると、要求元のＡＴＭ２２又は営業店端末２４へ応答（電文）を送信するＤＢ操作処理を行う。
【００５５】
具体的には、例えば新規顧客によって特定金融機関の口座が開設が指示され、この指示に基づき営業店端末２４から送信された電文により、口座情報ＤＢへの情報登録が要求された場合、図４（Ａ）に示すように、ＤＢ操作アプリケーション部は、まず新規顧客の属性情報をルートセグメントの情報として口座情報ＤＢへ登録するようアプリケーション制御部へ指示する（図４（Ａ）のステップ３０も参照）。なお、ＤＢ操作アプリケーション部による口座情報ＤＢへの情報の登録指示では、登録対象ＤＢ（この場合は口座情報ＤＢ）の論理ＤＢ名、登録対象の情報のセグメント名（セグメントの階層を識別するための名称）及び登録対象データ（キー情報や本体情報）がパラメータとしてアプリケーション制御部へ引き渡される。
【００５６】
アプリケーション制御部はＤＢ操作アプリケーション部から上記指示が入力されると、入力されたパラメータのうちの論理ＤＢ名をＤＢ制御部が認識可能な物理ＤＢ名へ変換し（詳細は後述するが、ルートセグメントの情報は口座情報第１ＤＢに登録されるので、この場合は論理ＤＢ名が口座情報第１ＤＢの物理ＤＢ名へ変換される）た後に、入力された指示をＤＢ制御部へ伝達する（図４（Ａ）のステップ３２も参照）。これにより、ＤＢ制御部によって口座情報ＤＢ（詳しくは第１ストレージ１４に記憶されている口座情報第１ＤＢ）へのルートセグメントの情報の登録が行われる（図４（Ａ）のステップ３４も参照）。口座情報ＤＢへのルートセグメントの情報の登録が完了すると、ＤＢ制御部はアプリケーション制御部へ処理完了を通知し（図４（Ａ）のステップ３６も参照）、アプリケーション制御部はＤＢ操作アプリケーション部へ処理完了を通知する（図４（Ａ）のステップ３８も参照）。
【００５７】
口座情報ＤＢへのルートセグメントの情報の登録が完了すると、続いてＤＢ操作アプリケーション部は、新規顧客が開設した口座の情報を第２階層セグメントの情報として口座情報ＤＢへ登録するようアプリケーション制御部へ指示する（図４（Ａ）のステップ４０も参照）。アプリケーション制御部はＤＢ操作アプリケーション部から上記指示が入力されると、入力された論理ＤＢ名を物理ＤＢ名（この場合も口座情報第１ＤＢの物理ＤＢ名）へ変換した後に、入力された指示をＤＢ制御部へ伝達する（図４（Ａ）のステップ４２も参照）。これにより、ＤＢ制御部によって口座情報ＤＢ（詳しくは第１ストレージ１４に記憶されている口座情報第１ＤＢ）へ第２階層セグメントの情報が登録されると共に、今回登録した第２階層セグメントの情報の格納位置を指し示すポインタ情報が、前回の処理（ステップ３４）で口座情報ＤＢに登録したルートセグメントの情報のヘッダに設定される（図４（Ａ）のステップ４４も参照）。
【００５８】
口座情報ＤＢへの第２階層セグメントの情報の登録が完了すると、ＤＢ制御部はアプリケーション制御部へ処理完了を通知し（図４（Ａ）のステップ４６も参照）、アプリケーション制御部はＤＢ操作アプリケーション部へ処理完了を通知する（図４（Ａ）のステップ４８も参照）。これにより、新規顧客によって特定金融機関の口座が開設が指示された場合の口座情報ＤＢへの情報登録が完了するので、ＤＢ操作アプリケーション部は情報登録要求元の営業店端末２４へ処理完了を通知し、ＤＢ操作処理を終了する。
【００５９】
また、例えば特定金融機関に口座を開設している顧客によってＡＴＭ２２が操作されることで、顧客が開設している特定口座の残高照会が指示され、この指示に基づきＡＴＭ２２から送信された電文により、口座情報ＤＢからの情報読み出しが要求された場合、図４（Ｂ）に示すように、ＤＢ操作アプリケーション部は、まず前記顧客に対応するレコードのルートセグメントの情報を口座情報ＤＢからの読み出すようアプリケーション制御部へ指示する（図４（Ｂ）のステップ５０も参照）。なお、ＤＢ操作アプリケーション部による口座情報ＤＢからの情報の読出指示では、読出対象ＤＢ（口座情報ＤＢ）の論理ＤＢ名、読出対象の情報のセグメント名、読出対象の情報に付与されたキー情報及び読出情報格納領域のアドレス（ポインタ）がパラメータとしてアプリケーション制御部へ引き渡される。
【００６０】
アプリケーション制御部はＤＢ操作アプリケーション部から上記指示が入力されると、入力された論理ＤＢ名を物理ＤＢ名へ変換した後に、入力された指示をＤＢ制御部へ伝達する（図４（Ｂ）のステップ５２も参照）。これにより、ＤＢ制御部によって口座情報ＤＢ（詳しくは第１ストレージ１４に記憶されている口座情報第１ＤＢ）からのルートセグメントの情報の読み出しが行われる（図４（Ｂ）のステップ５４も参照）。口座情報ＤＢからのルートセグメントの情報の読み出しが完了すると、ＤＢ制御部は、読み出した情報を通知されたアドレスの格納領域に書き込んだ後にアプリケーション制御部へ処理完了を通知し（図４（Ｂ）のステップ５６も参照）、アプリケーション制御部はＤＢ操作アプリケーション部へ処理完了を通知する（図４（Ｂ）のステップ５８も参照）。
【００６１】
口座情報ＤＢからのルートセグメントの情報の読み出しが完了すると、続いてＤＢ操作アプリケーション部は、残高照会が要求されている口座に対応する第２階層の特定セグメントの情報を口座情報ＤＢから読み出すようアプリケーション制御部へ指示する（図４（Ｂ）のステップ６０も参照）。アプリケーション制御部はＤＢ操作アプリケーション部から上記指示が入力されると、入力された論理ＤＢ名を物理ＤＢ名（この場合も口座情報第１ＤＢの物理ＤＢ名）へ変換した後に、入力された指示をＤＢ制御部へ伝達する（図４（Ｂ）のステップ６２も参照）。これにより、ＤＢ制御部は、前回の処理（ステップ５４）で口座情報ＤＢから読み出したルートセグメントの情報のヘッダに設定されているヘッダが指し示す第２階層セグメントの情報を読み出し、読み出した情報に設定されているキー情報が通知されたキー情報と一致しているか否かを判断することで読み出した情報が読出対象の第２階層セグメントの情報か否か判定する。また、この判定が否定された場合には、読出対象の第２階層セグメントに複数のオカレンスが存在しているので（例えば同一の顧客が同一種の口座を複数開設している等の場合）、読み出した情報のヘッダに設定されているポインタ情報が指し示す同一セグメントの別のオカレンスを読み出し、読み出したオカレンスが読出対象の情報か否かを判定することを繰り返す。
【００６２】
そして、上記の処理を行うことで読出対象の第２階層セグメントの情報を口座情報ＤＢから読み出すと、ＤＢ制御部は、読み出した情報を通知されたアドレスの格納領域に書き込んだ後にアプリケーション制御部へ処理完了を通知し（図４（Ｂ）のステップ６６も参照）、アプリケーション制御部はＤＢ操作アプリケーション部へ処理完了を通知する（図４（Ｂ）のステップ６８も参照）。上記処理によって読み出された情報には、残高照会が要求された口座の残高を表す情報が含まれているので、ＤＢ操作アプリケーション部は、読み出された情報を編集した後に残高照会要求元のＡＴＭ２２へ送信し、ＤＢ操作処理を終了する。
【００６３】
ところで、ＡＭＴ２２や営業店端末２４が口座情報ＤＢへのアクセスを要求してから処理完了が通知されるまでの待ち時間は、要求されたアクセスが完了する迄に必要なＩ／Ｏの回数（登録や読み出し、更新を行う単位領域の個数）によって大きく左右され、Ｉ／Ｏ回数が増大するに従って、ホスト・コンピュータ１２、第１ストレージ１４及び第２ストレージ１６から成るデータベース・システムのレスポンスが低下し、ＡＭＴ２２や営業店端末２４の待ち時間も増大する。これに対し、口座情報ＤＢに登録される各レコードの情報のうちの第３階層セグメントについては、対応する顧客からの指示により新たな金融取引が行われる毎に、対応する新たな取引明細がオカレンスとして追加登録されるので、オカレンスの数が非常に多くなり易いという性質を有している。口座情報ＤＢに対しては取引明細を合算する等のバッチ処理が定期的に行われ、このバッチ処理の実行直後は第３階層セグメントのオカレンスの数は非常に少ない状態となっているが、顧客によっては、次にバッチ処理が行われる迄の間に第３階層セグメントのオカレンスが1000〜2000個も追加登録されることもある。
【００６４】
また、前述のように、同一の顧客の同一の口座の取引明細はオカレンスの列として直列にリンク付けされており、オカレンスの列の中の特定のオカレンス（特定の取引明細）へのアクセスが要求された場合には、オカレンスの列を順に辿っていくことでアクセス対象のオカレンスが探索される。本実施形態では、単一の単位領域に格納可能なオカレンスの数が８個程度であるので、多数個のオカレンスから成るオカレンスの列の中から特定のオカレンスへのアクセスが要求された場合、要求されたアクセスを完了させるために必要なＩ／Ｏの回数が非常に多くなる可能性が高い。例えば５００個のオカレンスから成るオカレンスの列の最後のオカレンス（取引明細）へのアクセスが要求された場合、単一の単位領域に格納可能なオカレンスの数を８個とすると、５００個のオカレンスは最小でも６３個の単位領域に分けて格納されるので、ルートセグメントの情報及び５００個のオカレンスが登録されている第３階層セグメントと関連する第２階層のセグメントの情報が単一の単位領域に格納されていたとしても、Ｉ／Ｏの回数は最小で１＋６３＝６４回となる。また、特定の口座に対応する取引明細の全数読み出しが要求された場合にも、上記と同様にＩ／Ｏの回数は非常に多くなる。このように、多数個のオカレンスから成るオカレンスの列がＩ／Ｏの回数の大幅な増大を招き、データベース・システムのレスポンスの低下、ＡＭＴ２２や営業店端末２４の待ち時間の増大を引き起こしていた。
【００６５】
また、コンピュータ・ネットワーク１８には多数台のＡＴＭ２２及び営業店端末２４が接続されており、口座情報ＤＢに対するアクセスは個々のＡＭＴ２２、営業店端末２４から非同期に要求されることから、ホスト・コンピュータ１２では、アクセス要求が集中した場合にも、個々のＡＭＴ２２や営業店端末２４が口座情報ＤＢへのアクセスを要求してから処理完了が通知されるまでの待ち時間が大幅に増大することを回避する（ホスト・コンピュータ１２、第１ストレージ１４及び第２ストレージ１６から成るデータベース・システムのレスポンスを速くする）ために、個々のＡＭＴ２２や営業店端末２４から口座情報ＤＢに対するアクセスが要求される毎に、要求されたアクセスを行うプロセスを生成し、複数のプロセスを並列に処理することで、個々のＡＭＴ２２や営業店端末２４からのアクセス要求を並列に処理している。
【００６６】
個々のプロセスによる口座情報ＤＢへのアクセスは非同期に行われ、またアクセス対象の単位領域もランダムであるので、特定の単位領域に対して複数のプロセスが同時にアクセスすることで、特定の単位領域に格納されている情報に矛盾が生ずることを避けるために、ＤＢ制御部は、個々のプロセスにおいて、アクセス対象の単位領域をロックする（他のプロセスのＤＢ制御部が処理対象の単位領域にアクセスすることを禁止する）排他制御を行っている。但し、この排他制御に伴ってデッドロックが発生する可能性がある。
【００６７】
例えば図５に示すように、レコードｘにアクセスするプロセスＡ（のＤＢ制御部）が、まずレコードｘの第ｎ階層のセグメントの情報が格納されている単位領域ｉをロックし、単位領域ｉの情報を読み出した後に、レコードｘの第ｎ階層のセグメントの情報のヘッダに設定されているポインタ情報に基づき、レコードｘの第ｎ＋１階層のセグメントの情報が格納されている単位領域ｊにアクセスしようとしたときに、レコードｙにアクセスする別のプロセスＢ（のＤＢ制御部）が、レコードｙの第ｍ階層のセグメントの情報が格納されている単位領域ｊをロックし、単位領域ｊの情報を読み出した後に、レコードｙの第ｎ＋１階層のセグメントの情報のヘッダに設定されているポインタ情報に基づき、レコードｙの第ｍ＋１階層のセグメントの情報が格納されている単位領域ｉにアクセスしようとしていた場合、プロセスＡはプロセスＢによる単位領域ｊのロックが解除されるのを待機する状態になる一方、プロセスＢはプロセスＡによる単位領域ｉのロックが解除されるのを待機する状態になる（デッドロック）。
【００６８】
このデッドロックは、１回のアクセス要求に対するＩ／Ｏの回数が多くなる程発生し易いが、口座情報ＤＢは、前述のように第３階層セグメントのオカレンスの数が非常に多くなり易く、多数個のオカレンスから成るオカレンスの列がＩ／Ｏの回数の大幅な増大を招くのでデッドロックが発生し易いという問題もある。
【００６９】
このため本実施形態では、口座情報ＤＢに登録されている各レコード（各顧客の口座情報）のうち、大量のオカレンスが登録されている、又はその可能性がある第３階層の特定セグメント（本実施形態に係る口座情報ＤＢでは、各レコードの第３階層の各セグメントのうちの一部が上記の特定セグメントに該当する）を有する一部のレコードに対し、前記特定セグメント（分割対象のセグメント）のオカレンスをブロック化して（複数個のオカレンスを単位として纏めて）口座情報第２ＤＢに登録する（同一レコードかつ同一の分割対象セグメントのオカレンスを複数登録するための領域をブロック化エリアと称する：図８も参照）と共に、口座情報第２ＤＢにブロック化して登録した複数のオカレンスのインデックスもブロック化して口座情報第２ＤＢに登録する（複数のオカレンスのインデックスをブロック化して登録するための領域をコントロールブロックと称する：図８も参照）ことによって上記の問題を解決している。なお、上記のように特定セグメントの多数のオカレンスをブロック化し、コントロールブロックと共に異なるＤＢに登録する（異なるストレージに記憶させる）ことを、本明細書ではコントロール分割と称する。また、第３階層は請求項２に記載の所定の階層に対応している。
【００７０】
以下、このコントロール分割を実現するために、アプリケーション制御部によって実行されるアプリケーション制御処理について、図６のフローチャートを参照して説明する。なお、このアプリケーション制御処理は、ＤＢ操作アプリケーション部から口座情報ＤＢへのアクセス（情報の登録、読み出し、更新の何れか）が指示される毎に実行される。ステップ１５０では、指示されたアクセスが口座情報ＤＢに対する情報の登録か読み出しか更新かを判定し、判定結果に応じて分岐する。指示された要求が口座情報ＤＢへの情報の登録である場合はステップ１５２で情報登録処理を行う。なお、この情報登録処理は、後述する図６のステップ１５４と共に本発明に係る登録制御手段（詳しくは請求項３〜請求項８に記載の登録制御手段）に対応している。
【００７１】
図７に示すように、この情報登録処理では、まずステップ２００において、登録対象の情報のセグメントがコントロール分割対象のセグメントか否か判定する。本実施形態では、コントロール分割対象のセグメントに対し、該コントロール分割対象セグメントよりも１階層上位でかつコントロール分割対象セグメントと関連するセグメント（例えばコントロール分割対象のセグメントが普通口座を対象とした金融取引の取引明細を登録するための第３階層のセグメントであれば、前記普通口座に関する情報を登録するための第２階層のセグメント：請求項７に記載の関連セグメントに相当）のヘッダに、コントロール分割の対象であることを表す分割定義情報が設定される（図８に示す「コントロール分割＝オン」を参照）。この分割定義情報は、多数の取引明細（オカレンス）が登録されることが予想される特定顧客（例えば法人の顧客）のレコードに対しては事前に設定されるが、後述するように、特定顧客のレコードの特定セグメントのオカレンス数が所定値以上になったことを契機として自動的に設定される場合もある。
【００７２】
ステップ２００では、上記の関連セグメントのヘッダに設定される分割定義情報を参照することで、登録対象の情報のセグメントがコントロール分割対象のセグメントか否かを判定しており、判定が否定された場合はステップ２０２へ移行し、登録対象情報と同一レコードかつ同一セグメントの情報（関連オカレンス）の数が口座情報ＤＢに所定値以上登録されているか否か判定する。例えば登録対象情報がルートセグメントや第２階層セグメントの情報である場合、或いは登録対象情報が第３階層セグメントの情報であるものの口座情報ＤＢに既登録の関連オカレンスの数が所定値未満の場合には上記判定が否定されてステップ２０４へ移行し、ＤＢ操作アプリケーション部から通知された論理ＤＢ名を口座情報第１ＤＢの物理ＤＢ名へ変換しキー情報やセグメント名と共にＤＢ制御部へ引き渡すと共に、ＤＢ操作アプリケーション部から転送された登録対象情報をＤＢ制御部へ転送することで、ＤＢ制御部に対し、登録対象情報を口座情報第１ＤＢへ登録するよう指示する。そして、ＤＢ制御部から登録完了が通知されると情報登録処理を終了してステップ１５４（図６）へ移行し、登録対象情報の登録が完了したことをＤＢ操作アプリケーション部へ通知し、アプリケーション制御処理を終了する。
【００７３】
このように、登録対象の情報がルートセグメントや第２階層セグメントの情報である場合、或いは登録対象情報が第３階層セグメントの情報であるものの、この第３階層セグメントはコントロール分割対象ではなく、かつ口座情報ＤＢに既登録の関連オカレンスの数が所定値未満の場合には、登録対象情報は従来通り口座情報第１ＤＢに登録される。なお、前述のステップ２０２の判定が肯定された場合はステップ２０６でレコード分割・登録処理が行われるが、この処理については後述する。
【００７４】
一方、特定金融機関に既に開設されている口座に対して新たな金融取引が行われた等を契機として、ＤＢ操作アプリケーション部により、ルートセグメント及び第２階層セグメントの情報の読み出しが順次指示された後に（図１２のステップ７０〜ステップ８８も参照）、口座情報ＤＢへの取引明細（第３階層のコントロール分割対象セグメントの情報）の登録が指示された場合（図１２のステップ９０）場合には、ステップ２００の判定が肯定されてステップ２１０へ移行し、ＤＢ制御部に対し、登録対象情報のセグメント（コントロール分割対象のセグメント）に対応するコントロールブロックを口座情報第２ＤＢから読み出すよう指示する（図１２のステップ９２も参照）。
【００７５】
本実施形態において、コントロール分割対象のセグメントのオカレンスは、前述のように口座情報第２ＤＢ（第２ストレージ１６の記憶領域）に確保されたブロック化エリアに登録されるが、単一のブロック化エリアに登録可能なオカレンスの数には限りがある（例えば４個程度）ので、口座情報ＤＢに登録される同一レコードかつ同一セグメントのオカレンス（取引明細）の数が増加するに従い、対応するブロック化エリアの数も増加される（詳細は後述）。このため、本実施形態では同一レコードかつ同一セグメントに対応する個々のブロック化エリアの各々を識別するために、個々のブロック化エリアに「0001」を初期値とする通番を個々のブロック化エリアの発生順（登録順）に付与しており、個々のブロック化エリアを、ルートセグメントのキー情報、第２階層セグメントのキー情報及び個々のブロック化エリアに付与した通番を羅列して成るキー情報によって識別している。なお、ブロック化エリアは本発明に係るブロック化記憶領域に対応している。一方、ブロック化エリアと区別するために、コントロールブロックには通番「0000」を付与しており、個々のコントロールブロックはルートセグメントのキー情報、第２階層セグメントのキー情報及びコントロールブロックに付与した通番「0000」を羅列して成るキー情報によって識別している。また、コントロールブロック及びブロック化エリアは、何れもルートセグメントとして口座情報第２ＤＢに登録される。
【００７６】
このため、ステップ２１０におけるコントロールブロックの読み出し指示は、ＤＢ操作アプリケーション部から通知された論理ＤＢ名を口座情報第２ＤＢの物理ＤＢ名へ変換すると共に、コントロール分割対象のセグメントに対応するルートセグメントのキー情報、第２階層セグメントのキー情報及び通番「0000」を羅列したキー情報を生成し、読出対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すことによって成される。これにより、ＤＢ制御部によって、登録対象情報のセグメント（コントロール分割対象のセグメント）に対応するコントロールブロックの口座情報第２ＤＢからの読み出しが試行される（図１２のステップ９４も参照）。
【００７７】
ＤＢ制御部から何らかの応答（図１２のステップ９６も参照）を受信するとステップ２１２へ移行し、コントロールブロックの読み出しが正常に行われたか否か判定する。この判定は、登録対象情報のセグメントに対応するコントロールブロック（及びブロック化エリア）が口座情報第２ＤＢに登録されていない場合に否定されるが、この場合、今回の登録対象情報は、対応するセグメント（コントロール分割対象のセグメント）の情報として口座情報ＤＢへ初めて登録されるオカレンスであると判断できるので、ステップ２１８へ移行し、ステップ２１８以降で口座情報第２ＤＢへのブロック化エリア及びコントロールブロックの新規登録を行う。
【００７８】
すなわち、ステップ２１８では口座情報第２ＤＢに新規登録するコントロールブロックの情報を生成する。図８に示すように、コントロールブロックはヘッダ情報設定領域、キー情報設定領域及びインデックス設定領域から成り、ヘッダ情報設定領域には各種の制御情報が設定される。また、ヘッダ情報設定領域には対応するブロック化エリアの先頭及び末尾の通番を設定するための領域が設けられており（図１０に示す「先頭通番」及び「最終通番」を参照）、口座情報第２ＤＢに新規登録されるコントロールブロックには、先頭通番及び最終通番として各々「0001」が設定される。また、キー情報設定領域には登録対象情報のセグメントに対応するルートセグメントのキー情報、第２階層セグメントのキー情報及びコントロールブロック用の通番「0000」を羅列したキー情報が設定され、インデックス設定領域には登録対象情報のインデックスが設定される。このインデックスは、登録対象情報の日付（登録対象情報（取引明細）が表す金融取引の実行日付）と、登録対象情報が登録されるブロック化エリアの通番から成り、コントロールブロックの新規登録では登録対象情報が通番「0001」のブロック化エリアに登録されるので、インデックスの通番にも「0001」が設定される。なお、コントロールブロックは本発明に係る制御情報領域に、インデックスは本発明に係る制御情報（詳しくは請求項３に記載の制御情報）に対応している。
【００７９】
そしてステップ２１８では、登録対象ＤＢの物理ＤＢ名として口座情報第２ＤＢの物理ＤＢ名を設定すると共に、登録対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を設定し、登録対象情報のキー情報として先にコントロールブロックのキー情報設定領域に設定したキー情報を設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すと共に、生成したコントロールブロックの情報をＤＢ制御部へ転送することで、登録対象情報のセグメント（コントロール分割対象のセグメント）に対応するコントロールブロックを口座情報第２ＤＢへルートセグメントの情報として新規登録するようＤＢ制御部へ指示する。
【００８０】
これにより、ＤＢ制御部は、まずパラメータとして引き渡されたキー情報に基づき、第２ストレージ１６の基本域内の各単位領域のうち、転送されたコントロールブロックの情報を登録すべき単位領域のアドレスを導出した後に、導出した単位領域にコントロールブロックの情報を登録するが、図９に示すように、本実施形態では第２ストレージ１６の基本域がコントロールブロックを登録するための記憶領域とブロック化エリアを登録するための記憶領域に区画されており、上記の単位領域のアドレス導出のアルゴリズムは、アドレス導出に用いるキー情報に含まれる通番が「0000」の場合（すなわちコントロールブロックを登録する場合）には、コントロールブロック登録用領域内に存在している基本領域のアドレスが導出され、キー情報に含まれる通番が「0000」以外の場合（すなわちブロック化エリアを登録する場合）には、ブロック化エリア登録用領域内に存在している基本領域のアドレスが導出されるように定められている。このため、新規登録を指示したコントロールブロックは、ＤＢ制御部により、第２ストレージ１６の基本域のうちコントロールブロック登録用領域内の特定の基本領域（ＤＢ制御部へ引き渡したキー情報より一意に特定されるアドレスの基本領域）に、ルートセグメントの情報として新規登録されることになる。
【００８１】
ＤＢ制御部によって口座情報第２ＤＢへのコントロールブロックの新規登録が完了し、ＤＢ制御部からコントロールブロックの新規登録完了が通知されると、次のステップ２２０へ移行し、口座情報第２ＤＢに新規登録するブロック化エリアの情報を生成する。図８に示すように、ブロック化エリアはヘッダ情報設定領域、キー情報設定領域及びオカレンス設定領域から成り、新規登録するブロック化エリアの情報生成は、ヘッダ情報設定領域に各種の制御情報を設定し、キー情報設定領域に、登録対象情報のセグメント（コントロール分割対象のセグメント）に対応するルートセグメントのキー情報、第２階層セグメントのキー情報及びブロック化エリアに付与する通番の初期値である「0001」を羅列したキー情報を設定し、オカレンス設定領域に登録対象情報を設定することによって成される。
【００８２】
そしてステップ２２２では、登録対象ＤＢの物理ＤＢ名として口座情報第２ＤＢの物理ＤＢ名を、登録対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を、登録対象情報のキー情報として先にブロック化エリアのキー情報設定領域に設定したキー情報を各々設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すと共に、生成したブロック化エリアの情報をＤＢ制御部へ転送することで、登録対象情報を含むブロック化エリアを口座情報第２ＤＢへルートセグメントの情報として新規登録するようＤＢ制御部へ指示する。これにより、ＤＢ制御部は、まず転送されたブロック化エリアの情報を登録すべき単位領域のアドレスとして、パラメータとして引き渡されたキー情報から一意に特定されるアドレスを導出し（このとき導出されるアドレスは、第２ストレージ１６の基本域のうちブロック化エリア登録用領域内に存在している特定の基本領域のアドレスとなる）、導出した単位領域に、転送されたブロック化エリアの情報をルートセグメントの情報として新規登録する。
【００８３】
以上の処理により口座情報第２ＤＢへのブロック化エリア及びコントロールブロックの新規登録が完了し、ＤＢ制御部から登録完了が通知されると情報登録処理を終了してステップ１５４（図６）へ移行し、登録対象情報の登録が完了したことをＤＢ操作アプリケーション部へ通知し、アプリケーション制御処理を終了する。
【００８４】
また、前述したステップ２１０におけるコントロールブロックの読み出し指示に対し、ＤＢ制御部から該当するコントロールブロックの読出完了が通知されると共に、読出対象のコントロールブロックの情報が転送された場合には、今回の登録対象情報と同一のセグメント（コントロール分割対象のセグメント）の他のオカレンスが既に口座情報第２ＤＢに登録されていると判断できるので、ステップ２１２の判定が肯定されてステップ２２６へ移行し、ステップ２２６以降で今回の登録対象情報を口座情報第２ＤＢにオカレンスとして追加登録する処理を行う。
【００８５】
すなわち、まずステップ２２６では、ＤＢ制御部より転送されたコントロールブロックの情報から、ヘッダ情報設定領域に設定されているブロック化エリアの最終通番を抽出すると共に、ＤＢ制御部より転送されたコントロールブロックの情報をメモリ１２Ｂに一時記憶させる。次のステップ２２８では、読出対象ＤＢの物理ＤＢ名として口座情報第２ＤＢの物理ＤＢ名を、読出対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を各々設定すると共に、読出対象情報のキー情報として、登録対象情報のセグメントに対応するルートセグメントのキー情報、第２階層セグメントのキー情報及び先のステップ２２６で抽出したブロック化エリアの最終通番を羅列したキー情報を設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すことで、該当するブロック化エリア（登録対象情報のセグメントに対応するブロック化エリアのうち登録対象情報をオカレンスとして登録すべき最終通番のブロック化エリア）を口座情報第２ＤＢから読み出すようＤＢ制御部へ指示する（図１２のステップ９８も参照）。
【００８６】
ＤＢ制御部によって口座情報第２ＤＢからのブロック化エリアの読み出しが行われ（図１２のステップ１００も参照）、ＤＢ制御部からブロック化エリアの読出完了が通知されると（図１２のステップ１０２も参照）、ステップ２３０へ移行し、ＤＢ制御部によって口座情報第２ＤＢから読み出されたブロック化エリアに、登録対象情報を登録可能な空き領域が有るか否か判定する。なお、上述したステップ２２８，２３０は請求項４に記載の登録制御手段に対応している。判定が肯定された場合はステップ２３２へ移行し、まずＤＢ制御部によって読み出されたブロック化エリア（最終通番のブロック化エリア）のオカレンス設定領域に登録対象情報をオカレンスとして追加設定する（図１２のステップ１０４も参照）。そして、登録対象ＤＢの物理ＤＢ名として口座情報第２ＤＢの物理ＤＢ名を、登録対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を、登録対象情報のキー情報として先のステップ２２８で設定したキー情報を各々設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すと共に、登録対象情報を追加設定したブロック化エリアの情報をＤＢ制御部へ転送することで、登録対象情報を含むブロック化エリアをＤＢ制御部によって口座情報第２ＤＢへルートセグメントの情報として上書き登録させ（図１２のステップ１０６〜１１０も参照）、ステップ２４０へ移行する。
【００８７】
一方、ステップ２３０の判定が肯定された場合は、登録対象情報を登録するためのブロック化エリアを口座情報第２ＤＢに追加登録する必要があるので、ステップ２３４へ移行し、口座情報第２ＤＢへ追加登録するブロック化エリアの情報をメモリ１２Ｂ上に生成する。なお、追加登録するブロック化エリアの情報生成に際し、該ブロック化エリアのオカレンス設定領域には登録対象情報がオカレンスとして設定される。そしてステップ２３６では、登録対象ＤＢの物理ＤＢ名として口座情報第２ＤＢの物理ＤＢ名を、登録対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を設定すると共に、登録対象情報のキー情報として、先のステップ２２８で設定したキー情報における通番を１だけインクリメントしたキー情報（１インクリメントした後の通番が追加登録するブロック化エリアの通番となる）を設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すと共に、ステップ２５０で生成したブロック化エリアの情報をＤＢ制御部へ転送することで、登録対象情報を含むブロック化エリアをＤＢ制御部によって口座情報第２ＤＢへルートセグメントの情報として追加登録させる。またステップ２３８では、ステップ２２６でメモリ１２Ｂに一時記憶させたコントロールブロックのヘッダ情報設定領域に設定されている最終通番を１だけインクリメントし、ステップ２４０へ移行する。
【００８８】
ステップ２４０では、先のステップ２１０の読出指示に従いＤＢ制御部から読み出されたコントロールブロックが、今回の登録対象情報のセグメント（コントロール分割対象のセグメント）に対応する最終のコントロールブロックか否か判定する。本実施形態ではコントロールブロックのサイズを一定としており、コントロールブロックのインデックス設定領域に設定可能なインデックスの数にも限りがあるので、特定レコードのコントロール分割対象の特定セグメントのオカレンスが口座情報第２ＤＢに多数登録されると、これに伴ってインデックス設定領域に新たなインデックスを追加設定できない状態も生じ得る。このため、口座情報第２ＤＢへの特定レコードの特定セグメントのオカレンスの登録に際し、図１１（Ａ）に示すように、口座情報第２ＤＢに既登録のコントロールブロックのインデックス設定領域に登録対象情報のインデックスを追加設定するための空き領域が無かった場合には、図１１（Ｂ）に示すように、特定レコードの特定セグメントに対応する既登録のコントロールブロックのインデックス設定領域が削除されると共に、特定レコードの特定セグメントに対応する新たなコントロールブロックとして、既登録のコントロールブロックのインデックス設定領域に設定されていたインデックス及び追加設定すべきインデックスがインデックス設定領域に設定されたコントロールブロックが口座情報第２ＤＢに追加登録され、同一レコードかつ同一のセグメントに対応するこれらのコントロールブロックがヘッダ情報設定領域に設定されたポインタ情報によってリンク付けされることで、同一レコードかつ同一セグメントに対応するコントロールブロック群が階層化される（口座情報第２ＤＢに最初に登録したコントロールブロックがルートブロック（第１階層のブロック）として扱われ、口座情報第２ＤＢに追加登録した各コントロールブロックは第２階層のブロックとして扱われる）。
【００８９】
上記のコントロールブロックの追加登録は、コントロールブロックへのインデックスの追加設定に際し、インデックスを追加設定するための空き領域が無い状態が生じる毎に繰り返され、図１１（Ｂ）に示す状態から更にインデックスの追加設定が繰り返されることで空き領域が無い状態が再度生じた場合には、図１１（Ｃ）に示すようにコントロールブロックが更に追加登録される。また、コントロールブロックには、コントロールブロックの最後を示すストッパが設定される。このストッパは、特定レコードの特定セグメントに対応するコントロールブロックが最初に登録されたとき（特定レコードの特定セグメントに対応するコントロールブロックの数が１のとき）には、最初に登録されたコントロールブロックの末尾に設定され（図８参照）、特定レコードの特定セグメントに対応するコントロールブロックが追加登録される毎に、図１１に示すように追加登録された最終のコントロールブロックへ移動される（図１１ではストッパの領域にハッチングを付して示している）。このため、前述のステップ２４０の判定は、ステップ２１０の読出指示に従いＤＢ制御部から読み出されたコントロールブロックの情報にストッパが設定されているか否かに基づいて行うことができる。
【００９０】
登録対象情報のセグメントに対応するコントロールブロックとして、口座情報第２ＤＢに単一のコントロールブロックが登録されていた場合にはステップ２４０の判定が肯定されるが、登録対象情報のセグメントに対応するコントロールブロックが複数登録されていた場合（階層化されていた場合）には、ステップ２４０の判定が否定されてステップ２４２へ移行し、ＤＢ制御部に対し同一レコードかつ同一セグメントに対応する次のコントロールブロック（ステップ２１０の読出指示に従いＤＢ制御部から読み出されたコントロールブロックのヘッダ情報設定領域に設定されているポインタ情報が指し示すコントロールブロック）の読み出しを指示してステップ２４０に戻る。このステップ２４２はステップ２４０の判定が肯定される迄繰り返されるので、同一レコードかつ同一セグメントに対応する複数のコントロールブロックが口座情報第２ＤＢに登録されている（コントロールブロックが階層化されている）場合には、同一レコードかつ同一セグメントに対応する全てのコントロールブロックの情報が順に読み出されることになる。
【００９１】
ＤＢ制御部によって登録対象情報のセグメントに対応する最終のコントロールブロックの情報が読み出されると、ステップ２４０の判定が肯定されてステップ２４４へ移行し、最終のコントロールブロックのインデックス設定領域に最終インデックスとして設定されている日付（最終日付）を抽出し、登録対象情報の日付が抽出した最終日付に一致しているか否か判定する。コントロールブロックのインデックス設定領域に設定される単一のインデックスのサイズは１２バイト程度であり、コントロールブロックのインデックス設定領域には対応する全てのオカレンスのインデックスを設定することも可能であるが、この場合、多数のオカレンスが登録されるレコードに対して多数のコントロールブロックが登録されることで、当該レコードにアクセスする際のＩ／Ｏの回数が増大する可能性があり、これを回避するために本実施形態では、対応する金融取引の実行日付が互いに相違するオカレンスについてのみコントロールブロックのインデックス設定領域にインデックスを設定し、同日に実行された異なる金融取引に対応する複数のオカレンスの登録が順次指示された場合には、最初に登録が指示されたオカレンスのインデックスのみをインデックス領域に設定するようにしている。
【００９２】
具体的には、例えば図１０に示すように、日付が"3/10"のオカレンスが４個、日付が"3/11"のオカレンスが７個、日付が"3/12"のオカレンスが１個、日付が"3/13"のオカレンスが２個存在しており、日付が"3/10"のオカレンスが通番＝１のブロック化エリアにのみ登録され、日付が"3/11"のオカレンスが通番＝１〜３のブロック化エリアに分けて登録され、日付が"3/12"のオカレンス及び日付が"3/13"のオカレンスが通番＝３のブロック化エリアにのみ登録されていた場合、日付が"3/10"のオカレンス群に対応するインデックスとして日付が"3/10"、通番が"１"のインデックスが設定され、日付が"3/11"のオカレンス群に対応するインデックスとして日付が"3/11"、通番が"１"のインデックスが設定され、日付が"3/12"のオカレンス群に対応するインデックスとして日付が"3/12"、通番が"３"のインデックスが設定され、日付が"3/13"のオカレンス群に対応するインデックスとして日付が"3/13"、通番が"３"のインデックスが設定されることになる。
【００９３】
このため、前述のステップ２４４の判定が肯定された場合、すなわち同日に実行された異なる金融取引を表す同一セグメントの他のオカレンスのインデックスがコントロールブロックに既に登録されている場合には、今回の登録対象情報に対応するインデックスをコントロールブロックに登録する必要は無いと判断できるので、何ら処理を行うことなくステップ２５８へ移行する。また、ステップ２４４の判定が否定された場合には、同日に実行された異なる金融取引を表す同一セグメントの他のオカレンスのインデックスがコントロールブロックに登録されていないので、今回の登録対象情報のインデックスをコントロールブロックのインデックス設定領域に設定する必要がある。このため、次のステップ２４６では、ＤＢ制御部によって読み出された登録対象情報のセグメントに対応する最終のコントロールブロックのインデックス設定領域を参照し、該インデックス設定領域に登録対象情報のインデックスを登録可能な空き領域が有るか否か判定する。
【００９４】
判定が肯定された場合は登録対象情報のセグメントに対応するコントロールブロックを追加登録する必要はないので、ステップ２４８へ移行し、前記最終のコントロールブロックのインデックス設定領域に、今回の登録対象情報に対応するインデックス（登録対象情報が表す取引明細に対応する金融取引の実行日付、前述のステップ２３２又はステップ２３４，２３６で今回の登録対象情報を設定したブロック化エリアの通番）を設定する（図１２のステップ１１２も参照）。そして、登録対象ＤＢの物理ＤＢ名として口座情報第２ＤＢの物理ＤＢ名を、登録対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を設定すると共に、登録対象情報のキー情報としてコントロールブロックのキー情報を設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すと共に、今回の登録対象情報のインデックスを追加設定した最終のコントロールブロックの情報をＤＢ制御部へ転送することで、今回の登録対象情報のインデックスを追加設定した最終のコントロールブロックをＤＢ制御部によって口座情報第２ＤＢへルートセグメントの情報として上書き登録させ（図１２のステップ１１４〜１１８も参照）、ステップ２５８へ移行する。
【００９５】
一方、ステップ２４６の判定が否定された場合はステップ２５０へ移行し、前述のステップ２２６でメモリ１２Ｂに一時記憶させたコントロールブロック（口座情報第２ＤＢから最初に読み出されたコントロールブロック）が階層化されたコントロールブロック群におけるルートブロックに相当するフォーマット（インデックス設定領域が削除されたフォーマット）か否かを判定することで、登録対象情報のセグメントに対応するコントロールブロックが口座情報第２ＤＢに複数登録されているか否か判定する。なお、コントロールブロックが複数登録されているか否かを判定することは、ステップ２２６でメモリ１２Ｂに一時記憶させたコントロールブロックにストッパが設定されているか否かを判定する、或いは前述のステップ２４０の判定が否定された回数が０回か否かを判定することで行うことも可能である。
【００９６】
上記判定が肯定された場合は何ら処理を行うことなくステップ２５４へ移行するが、ステップ２５０の判定が否定された場合はステップ２５２へ移行し、登録対象情報のセグメントに対応する新たなコントロールブロックを追加登録してコントロールブロックを階層化するために、前述のステップ２２６でメモリ１２Ｂに一時記憶させたコントロールブロック（最初に読み出されたコントロールブロック）のインデックス設定領域に設定されている全てのインデックスをメモリ１２Ｂ上の別領域に記憶させる（退避させる）と共に、前記コントロールブロックの情報からインデックス設定領域を除去し、同一レコード・同一セグメントに対応する第２階層のコントロールブロックを指し示すポインタ情報をヘッダ情報設定領域に設定することで、最初に読み出されたコントロールブロックをルートのブロック（第１階層のブロック）に相当するフォーマットへ変更し、ステップ２５４へ移行する。
【００９７】
ステップ２５４では、口座情報第２ＤＢに追加登録するコントロールブロックの情報をメモリ１２Ｂ上で生成する。なお、追加登録するコントロールブロックのインデックス設定領域には、少なくとも今回の登録対象情報のインデックスが設定されるが、ステップ２５２の処理が行われた場合、インデック設定領域には、ステップ２５２でメモリ１２Ｂ上の別領域に退避させたインデックスを含む各インデックスが日付の昇順に設定される。そしてステップ２５６では、登録対象ＤＢの物理ＤＢ名として口座情報第２ＤＢの物理ＤＢ名を、登録対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を設定すると共に、登録対象情報のキー情報としてコントロールブロックのキー情報を設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すと共に、ステップ２５４で生成した追加登録対象のコントロールブロック（新たに最終のコントロールブロックとなるコントロールブロック）の情報をＤＢ制御部へ転送することで、少なくとも今回の登録対象情報のインデックスを設定したコントロールブロックを、ＤＢ制御部によって口座情報第２ＤＢへルートセグメントの情報として追加登録させ、ステップ２５８へ移行する。
【００９８】
ステップ２５８では、ステップ２２６でメモリ１２Ｂに一時記憶させたコントロールブロック（ルートのコントロールブロック）の情報が更新されたか否か判定する。この判定は、上記のコントロールブロックに対して最終通番の更新もインデックス設定領域へのインデックスの追加も行われていない場合には否定されると共に、上記のコントロールブロックに対してインデックス設定領域へのインデックスの追加等が行われたものの、今回の登録対象情報のセグメントに対応するコントロールブロックの数が１つであるために、既に先のステップ２４８で上記のコントロールブロックの上書き登録が行われていた場合にも否定されるが、ブロック化エリアが追加登録されたもののコントロールブロックへのインデックスの追加登録が行われなかった場合（ステップ２４４の判定が肯定された場合）や、ステップ２５２で上記のコントロールブロックが階層化されたコントロールブロック群におけるルートブロックに相当するフォーマットへ変更された場合には肯定される。
【００９９】
上記の判定が否定された場合は何ら処理を行うことなく情報登録処理を終了するが、ステップ２５８の判定が肯定された場合はステップ２６０へ移行し、登録対象ＤＢの物理ＤＢ名として口座情報第２ＤＢの物理ＤＢ名を、登録対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を、登録対象情報のキー情報としてコントロールブロックのキー情報を各々設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すと共に、メモリ１２Ｂに一時記憶しているコントロールブロックの情報をＤＢ制御部へ転送することで、ＤＢ制御部によって口座情報第２ＤＢに登録されているルートのコントロールブロックの情報を上書き登録させた後に情報登録処理を終了する。そして、アプリケーション制御処理のステップ１５４（図６）へ移行し、登録対象情報の登録が完了したことをＤＢ操作アプリケーション部へ通知し（図１２のステップ１２０も参照）、アプリケーション制御処理を終了する。
【０１００】
続いて、図７のステップ２０６におけるレコード分割・登録処理について簡単に説明する。特定レコードの第３階層のコントロール分割対象でない特定セグメントのオカレンスの登録が指示されたものの、口座情報第１ＤＢに既登録の特定セグメントに対応するオカレンスの数が所定値以上の場合（図７のステップ２０２の判定が肯定された場合）には、口座情報第１ＤＢに登録されている特定レコードの規模がかなり大きくなっているので、特定レコードへのアクセス時に多数回のＩ／Ｏが必要となる可能性が高く、口座情報第１ＤＢへのオカレンスの追加登録をこのまま継続すると、状況は更に悪化すると判断できる。このため、ステップ２０２の判定が肯定された場合はステップ２０６へ移行し、特定レコードの特定セグメントのオカレンスをブロック化して口座情報第２ＤＢに記憶させるレコード分割・登録処理が行われる。
【０１０１】
このレコード分割・登録処理では、まず通番「0001」のブロック化エリアの情報をメモリ１２Ｂ上で生成した後に、口座情報第１ＤＢに登録されている特定レコードの特定セグメントのオカレンスを順に読み出しながら、読み出したオカレンスをメモリ１２Ｂ上のブロック化エリアのオカレンス設定領域に設定し、かつ対応するインデックスをメモリ１２Ｂ上の所定領域に順次記憶させ、オカレンス設定領域に新たなオカレンスを登録可能な空き領域が無くなる毎に、メモリ１２Ｂ上のブロック化エリアを口座情報第２ＤＢに新規登録すると共に、次の通番のブロック化エリアの情報をメモリ１２Ｂ上で生成することを、特定レコードの特定セグメントの全てのオカレンスの読み出しが完了する迄繰り返す。そして、最後のオカレンスが設定されたブロック化エリアも口座情報第２ＤＢに新規登録させる。
【０１０２】
次に、メモリ１２Ｂ上の所定領域に記憶させたインデックスの数を計数し、インデックスの数に応じた数のコントロールブロックの情報をメモリ１２Ｂ上で生成し、メモリ１２Ｂ上の所定領域に記憶させたインデックスを、生成したコントロールブロックのうちルートブロック以外のコントロールブロックのインデックス設定領域に順に設定した後に、これらのコントロールブロックを口座情報第２ＤＢに新規登録させる。そして、特定レコードのうち、特定セグメントよりも１階層上位でかつ特定セグメントと関連するセグメントの情報の口座情報第１ＤＢからの読み出しを指示し、読み出された情報のヘッダに分割定義情報を設定し、口座情報第１ＤＢへの上書き登録を指示する。これにより、以後の処理では特定レコードの特定セグメントがコントロール分割対象のセグメントとして扱われることになり、特定セグメントのオカレンスは口座情報第２ＤＢに登録されることになる。なお、上述したステップ２０６の処理は請求項８に記載の登録制御手段に対応している。
【０１０３】
続いて、アプリケーション制御処理のうち、口座情報ＤＢからの情報の読み出しがＤＢ操作アプリケーション部より指示された場合の処理を説明する。指示されたアクセスが情報の読み出しである場合には、ステップ１５０からステップ１５６へ移行し、前述したステップ２００と同様に、読出対象情報のセグメントの１階層上位で前記セグメントと関連するセグメントのヘッダに設定される分割定義情報を参照することで、読出対象の情報のセグメントがコントロール分割対象のセグメントか否かを判定する。
【０１０４】
読出対象情報がルートセグメント又は第２階層セグメントの情報である場合、或いは読出対象情報が第３階層セグメントの情報であるものの当該セグメントがコントロール分割対象でない場合には、上記判定が否定されてステップ１５８へ移行し、ＤＢ操作アプリケーション部から通知された論理ＤＢ名を口座情報第１ＤＢの物理ＤＢ名へ変換してＤＢ制御部へ引き渡すことで、ＤＢ制御部に対し、口座情報第１ＤＢから読出対象の情報を読み出すよう指示する。そして、ＤＢ制御部から読出完了が通知されるとステップ１７０へ移行し、ＤＢ操作アプリケーション部に対して読み出し完了を通知すると共にＤＢ制御部によって口座情報ＤＢ（の口座情報第１ＤＢ）から読み出された情報をＤＢ操作アプリケーション部へ転送し、処理を終了する。このように、読出対象情報がコントロール分割対象のセグメントの情報でない場合には、従来通り口座情報第１ＤＢに対して情報の読み出しが行われる。
【０１０５】
一方、口座情報ＤＢからの取引明細（第３階層のコントロール分割対象セグメントのオカレンス）の読み出しが要求された等の場合には、図１３のステップ１３０〜ステップ１３９に示すように、ＤＢ操作アプリケーション部により、ルートセグメント及び第２階層セグメントの情報の読み出しが順次指示された後に、口座情報ＤＢからの取引明細（第３階層のコントロール分割対象セグメントのオカレンス）の読み出しが指示される（図１３のステップ１４０）。この場合、前述のステップ１５６の判定が肯定されてステップ１６０へ移行し、ＤＢ操作アプリケーション部から通知された論理ＤＢ名を口座情報第２ＤＢの物理ＤＢ名へ変換すると共に、コントロール分割対象のセグメントに対応するルートセグメントのキー情報、第２階層セグメントのキー情報及び通番「0000」を羅列したキー情報を生成し、読出対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すことで、読出対象オカレンスのセグメントに対応するコントロールブロックの口座情報第２ＤＢからの読み出しをＤＢ制御部へ指示する（図１３のステップ１４１も参照）。
【０１０６】
これにより、ＤＢ制御部によって、読出対象オカレンスのセグメント（コントロール分割対象のセグメント）に対応するコントロールブロック（このコントロールブロックが階層化されている場合にはルートブロックに相当するコントロールブロック）が口座情報第２ＤＢから読み出され、読み出された情報がＤＢ制御部から転送されると共に、ＤＢ制御部から読出完了が通知される（図１３のステップ１４２，１４３も参照）。
【０１０７】
読出完了が通知されるとステップ１６２へ移行し、読み出されたコントロールブロックの情報に読出対象の取引明細（オカレンス）のインデックスが設定されているか否か判定する。取引明細の読み出しに際しては、読出対象の取引明細の日付又は日付の範囲が指定されるか、又は読出対象が全ての取引明細であることを表す情報が設定される。全ての取引明細が読出対象の場合は上記判定が無条件で肯定される（この場合、読出開始通番として先頭通番「0001」が、読出終了通番として最終通番が各々設定され、対応する全てのブロック化エリアが先頭通番のブロック化エリアから順に読み出される）が、読出対象の取引明細の日付が指定された場合、ステップ１６２の判定は、指定された日付のインデックスがインデックス設定領域に設定されたコントロールブロック、及び指定された日付の次の日付のインデックスがインデックス設定領域に設定されたコントロールブロックが読み出される迄否定され、読出対象の取引明細の日付範囲が指定された場合、ステップ１６２の判定は、指定された日付範囲の先頭の日付のインデックスがインデックス設定領域に設定されたコントロールブロック、及び指定された日付範囲の末尾に相当する日付の次の日付のインデックスがインデックス設定領域に設定されたコントロールブロックが各々読み出される迄否定される。
【０１０８】
ステップ１６２の判定が否定された場合はステップ１６４へ移行し、ＤＢ制御部に対して同一レコードかつ同一セグメントに対応する次のコントロールブロック（ステップ１６０の読出指示に従いＤＢ制御部から読み出されたコントロールブロックのヘッダ情報設定領域に設定されているポインタ情報が指し示すコントロールブロック）の読み出しを指示する。そして、ＤＢ制御部による該当するコントロールブロックの情報が読み出しが完了するとステップ１６２に戻り、ステップ１６２の判定が再度行われる。このように、ステップ１６４はステップ１６２の判定が肯定される迄繰り返されるので、読出対象の取引明細に対応するインデックスが設定されているコントロールブロックが探索される。
【０１０９】
そして、読出対象の取引明細の日付が指定された場合には、ステップ１６２の判定が肯定されると、読出開始通番として指定された日付のインデックスに設定されている通番を、読出終了通番として指定された日付の次の日付のインデックスに設定されている通番を各々設定した後にステップ１６６へ移行し、読出対象の取引明細の日付範囲が指定された場合には、ステップ１６２の判定が肯定されると、読出開始通番として指定された日付範囲の先頭の日付のインデックスに設定されている通番を、読出終了通番として指定された日付範囲の末尾に相当する日付の次の日付のインデックスに設定されている通番を各々設定した後にステップ１６６へ移行する。
【０１１０】
ステップ１６６では読出対象ＤＢの物理ＤＢ名として口座情報第２ＤＢの物理ＤＢ名を、読出対象情報のセグメント名として口座情報第２ＤＢにおけるルートセグメントのセグメント名を設定すると共に、読出対象情報のキー情報として、ルートセグメントのキー情報、第２階層セグメントのキー情報、及び先に設定した読出開始通番を羅列したキー情報を設定し、これらの情報をパラメータとしてＤＢ制御部へ引き渡すことで、該当する情報を口座情報第２ＤＢから読み出すようＤＢ制御部へ指示する（図１３のステップ１４４も参照）。これにより、ＤＢ制御部によって該当するブロック化エリア（読出対象の取引明細が登録されたブロック化エリア）が読み出され、読み出されたブロック化エリアの情報がＤＢ制御部から転送されると共に、読出完了がＤＢ制御部から通知される（図１３のステップ１４５、１４６も参照）。
【０１１１】
読出完了が通知されるとステップ１６８へ移行し、ブロック化エリアの読み出しを先に設定した読出終了通番まで行ったか否か判定する。判定が否定された場合はステップ１６６読出対象の取引明細を全て読み出したか否か判定する。判定が否定された場合はステップ１６６に戻り、先にＤＢ制御部へ引き渡した読出対象情報のキー情報に含まれる通番を１だけインクリメントし、次のブロック化エリアの口座情報第２ＤＢからの読み出しをＤＢ制御部へ指示する。このように、ステップ１６８の判定が肯定される迄の間、ステップ１６６の処理が繰り返されることで、読出対象の取引明細が口座情報第２ＤＢから全て読み出されることになる。そして、ステップ１６８の判定が肯定されると、ＤＢ制御部によって読み出されたブロック化エリアのオカレンス設定領域から、読出対象の取引明細（オカレンス）を抽出した後にステップ１７０へ移行し、ＤＢ操作アプリケーション部に対して読み出し完了を通知すると共に抽出した読出対象の取引明細をＤＢ操作アプリケーション部へ転送し、処理を終了する（図１３のステップ１４７も参照）。上述したステップ１５６〜ステップ１７０は本発明に係る読出制御手段（詳しくは請求項７に記載の読出制御手段）に対応している。
【０１１２】
なお、口座情報ＤＢに対する情報の更新が指示されるときには、その直前に更新対象情報の読み出しが指示され、この指示に従って更新対象情報の読み出しが行われているので、口座情報ＤＢにおける更新対象情報の格納位置は既知の状態となっている。このため、指示されたアクセスが情報の更新であればステップ１５０からステップ１７２へ移行し、ＤＢ操作アプリケーション部から転送された更新情報をＤＢ制御部へ転送すると共に、前回の情報読み出し時（更新対象情報の読み出し時）と同一のパラメータ（物理ＤＢ名、セグメント名、キー情報）を設定し、このパラメータに該当する情報（更新対象情報）を更新情報で上書きするようＤＢ制御部へ指示する。これにより、ＤＢ制御部により口座情報ＤＢ（口座情報第１ＤＢ又は口座情報第２ＤＢ）に記憶されている更新対象情報が、ＤＢ操作アプリケーション部からアプリケーション制御部を経由して転送された更新情報で上書き更新されることになる。アプリケーション制御部では、ＤＢ制御部から更新完了が通知されるとステップ１７４へ移行し、ＤＢ操作アプリケーション部に対して更新完了を通知して処理を終了する。
【０１１３】
このように、本実施形態では、コントロール分割対象のセグメントの取引明細（オカレンス）を読み出す際に、まずコントロールブロックに登録されているインデックスを読み出し、読出対象の取引明細が登録されているブロック化エリアの通番を認識した後に、読出対象の取引明細を読み出す必要がある。しかし、本実施形態に係るインデックスは日付と通番から成る１２バイト程度の情報であるので、コントロールブロックには多数のインデックスを登録可能であり、コントロール分割対象のセグメントの情報として登録されている多数の取引明細の中から特定日付の取引明細を読み出す場合にも、インデックスの読み出しのために必要なＩ／Ｏの回数は１〜数回程度で済む。また、読み出したインデックスに基づいて読出対象の取引明細が登録されたブロック化エリアの通番を認識できるので、インデックスを読み出した後は必要最小限のＩ／Ｏ回数で読出対象の取引明細を読み出すことができ、取引明細自体の列（オカレンス自体の列）を順に参照して目的の取引明細を探索する場合と比較してＩ／Ｏ回数は大幅に削減される。
【０１１４】
また、個々のブロック化エリアには同一レコードかつ同一セグメントのオカレンス（取引明細）のみが日付順に複数登録されると共に、同一レコードかつ同一セグメントに対応するブロック化エリアには「0001」を初期値とする通番が付与されるので、特定レコードの特定セグメントの取引明細を全数読み出すことも、対応するコントロールブロックの情報を読出して最終通番を認識した後に、対応するブロック化エリアを通番0001から認識した最終通番まで順に読み出すことで行うことができる。従って、処理が簡単になると共に、対応するブロック化エリアには読出対象の取引明細のみが格納されているので、Ｉ／Ｏ回数も必要最小限となる。更に、本実施形態では第２ストレージ１６の記憶領域を、コントロールブロックを登録するための記憶領域とブロック化エリアを登録するための記憶領域に区画し、コントロールブロックとブロック化エリアを異なる記憶領域に登録しているので、上述したＩ／Ｏ回数削減との相乗効果によりデッドロックの発生を抑制できると共に、データベースへのアクセス要求に対するシステムのレスポンスの悪化を抑制することができる。
【０１１５】
なお、上記では本発明に係るデータベースの一例として、各レコードの情報が３階層に分離された論理構造のデータベースを説明したが、これに限定されるものではなく、より多数の階層に分離された論理構造であってもよい。
【０１１６】
また、上記では特定金融機関の各支店に設置されたＡＴＭ２２及び営業店端末２４が、同一の支店に設置されたブランチ・サーバ２０と接続されている構成のコンピュータ・システム１０を例に説明したが、各支店にブランチ・サーバ２０を設置することに代えて情報センタ等にサーバを集中配置し、各支店に設置されたＡＴＭ２２及び営業店端末２４が集中配置したサーバに接続される構成を採用してもよい。
【０１１７】
また、上記では本発明に係るデータベースの一例として、顧客が特定金融機関に開設した口座に関する情報を登録・管理するための口座情報ＤＢを説明したが、本発明は階層型のデータベースであれば適用可能であり、データベースに登録される情報は上記に限定されるものではない。
【図面の簡単な説明】
【０１１８】
【図１】本実施形態に係るコンピュータ・システムの概略構成を示すブロック図である。
【図２】(Ａ)は口座情報の論理構造、(Ｂ)は従来の物理フォーマットの一例を各々示す概念図である。
【図３】(Ａ)はストレージの口座情報ＤＢ記憶領域、(Ｂ)は単位領域(ＣＩ)内のフォーマットを各々示す概念図である。
【図４】(Ａ)は新規顧客が口座を開設した場合、(Ｂ)は既開設口座に対する残高照会が指示された場合の処理の流れを示すシーケンス図である。
【図５】デッドロック発生の原理を説明するための概念図である。
【図６】アプリケーション制御処理の内容を示すフローチャートである。
【図７】情報登録処理の内容を示すフローチャートである。
【図８】コントロール分割が適用されたレコード(口座情報)の物理フォーマットを示す概念図である。
【図９】第２ストレージの基本域内におけるコントロールブロック及びブロック化エリアの記憶領域の割り当てを示すイメージ図である。
【図１０】コントロールブロック及びブロック化エリアの詳細を示す概念図である。
【図１１】コントロールブロックの階層化を説明するための概念図である。
【図１２】既開設口座に対する新たな取引が発生した場合の処理の流れを示すシーケンス図である。
【図１３】取引明細を読み出す場合の処理の流れを示すシーケンス図である。
【符号の説明】
【０１１９】
１０  コンピュータ・システム
１２  ホスト・コンピュータ
１４  第１ストレージ
１６  第２ストレージ
１８  コンピュータ・ネットワーク
１８  ネットワーク
２０  ブランチ・サーバ
２０  通信回線
２４  営業店端末
【図１】
2006285537.tif 000003
【図２】
2006285537.tif 000004
【図３】
2006285537.tif 000005
【図４】
2006285537.tif 000006
【図５】
2006285537.tif 000007
【図６】
2006285537.tif 000008
【図７】
2006285537.tif 000009
【図８】
2006285537.tif 000010
【図９】
2006285537.tif 000011
【図１０】
2006285537.tif 000012
【図１１】
2006285537.tif 000013
【図１２】
2006285537.tif 000014
【図１３】
2006285537.tif 000015