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