(57)【特許請求の範囲】
【請求項１】
記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、
前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、
特定データベースに対する前記何れかの処理の実行が指示されると、前記階層順テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する処理手段と、
を備えたデータベース管理装置であって、
前記処理手段が特定データベースに対して前記実行が指示された処理を行う前に、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成するテーブル作成手段を備え、
前記処理手段は、前記テーブル作成手段によって作成されたアクセス順序テーブルを用いて特定データベースに対し前記実行が指示された処理を行う
ことを特徴とするデータベース管理装置。
【請求項２】
記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、
前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、
が設けられたコンピュータが特定の処理を行うことで実現されるデータベース管理方法であって、
前記特定の処理は、
特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第１のステップ、
特定データベースに対する前記何れかの処理の実行が指示されると、前記第１のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第２のステップ
を含むことを特徴とするデータベース管理方法。
【請求項３】
記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、
前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、
が設けられたコンピュータに特定の処理を実行させるためのプログラムであって、
前記特定の処理は、
特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第１のステップ、
特定データベースに対する前記何れかの処理の実行が指示されると、前記第１のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第２のステップ
を含むことを特徴とするプログラム。
【請求項４】
記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、
前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、
が設けられたコンピュータに特定の処理を実行させるためのプログラムが記録された記録媒体であって、
前記特定の処理は、
特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第１のステップ、
特定データベースに対する前記何れかの処理の実行が指示されると、前記第１のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第２のステップ
を含むことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータベース管理装置、方法、プログラム及び記録媒体に係り、特に、階層構造のデータベースを階層順テーブルに規定された順序でスキャンしながら所定処理を行うデータベース管理装置、該データベース管理装置に適用可能なデータベース管理方法、コンピュータをデータベース管理装置として機能させるためのプログラム、及び該プログラムが記録された記録媒体に関する。
【０００２】
【従来の技術】
従来より、データベースに登録すべき情報項目を複数のセグメントに分け、これらのセグメントを階層的に関連付けた階層構造（木構造ともいう）のデータベースが知られている。階層構造のデータベースは、例えばデータベースに登録すべき多数件のデータのうち、特定の情報項目のデータ量が各件毎に一定していない等の場合にも、前記特定の情報項目に対応するセグメントのオカレンス(occurrence)の数を各件毎に増減させる等のように、登録すべきデータに応じてデータ構造を柔軟に変更することができるので、登録データ量に比してデータベースの規模（データベースを記憶するために必要な記憶手段の容量）を抑制できるという特長を有している。
【０００３】
ところで、データベースの規模が大きくなると、データベースを複数の記憶装置（例えば直接アクセス記憶装置（ＤＡＳＤ：Direct Access Storage Device))に分散させて記憶させる必要が生じてくる。階層構造のデータベースを複数の記憶装置に分散させて記憶させる場合には、例えば一部のセグメントのデータを別の記憶装置に記憶させる等のように、セグメントを単位としてデータを記憶させる記憶装置を分けると共に、個々のセグメントの論理的な関連付け及び個々のセグメントの物理的な記憶位置を規定する階層順テーブルが作成される。これにより、データベースの特定のセグメントのアクセスに際しても、階層順テーブルを参照することでアクセス対象のセグメントの物理的な記憶位置を認識することができる。
【０００４】
また、データベースに記憶されているデータのうち不要になったデータを削除することは、データベースの規模が必要以上に肥大化することを回避し、データベースの維持に必要なコストを削減する観点から重要な処理である。しかし、階層構造を採用した金融機関のデータベースでは、例えば特定のセグメントについては解約後１年経過したら該当するデータを削除する必要があり、他の特定のセグメントについては予め設定された日付が到来したら該当するデータを削除する必要があり、別のセグメントについては削除しない等のように、データの削除基準は、データベースにデータを登録して利用する業務の要件に依り、個々のセグメントを単位として大きく相違している。
【０００５】
そして、上記の削除処理は、例えば特定セグメントの各オカレンスに順にアクセスすると共に、アクセスしたオカレンスに登録されているデータが特定セグメントに対応する削除基準に合致しているか否かを判定し、削除基準に合致していた場合にはデータ（又はオカレンス自体）を削除する等の処理を行うプログラムを、各々異なる削除基準を個々のセグメント毎に用意することによって実現できるが、このようなプログラムの開発には多大な時間及びコストがかかると共に、プログラムの汎用性に乏しい（特定のデータベースにのみ利用可能で他のデータベースでは利用できない）という問題がある。
【０００６】
このため、階層構造のデータベースにおける不要データの削除には、従来、個々のセグメントについての削除基準を削除基準テーブルに登録しておき、階層順テーブルを参照しながら階層構造のデータベースの個々のセグメントの各オカレンスに順にアクセスして逐一全量のデータを読み込み、対応する削除基準が削除基準テーブルに登録されている場合には、読み込んだデータが登録されている削除基準を満たしているか否かを判断し、削除基準を満たしていればデータ（オカレンス）を削除する、というアルゴリズムを用いていた。
【０００７】
このアルゴリズムは、階層順テーブルを参照して処理対象のデータベースの構造（セグメントの数や個々のセグメントの論理的な関連付け等）を把握しながら処理対象のデータベースをスキャンしていくので、処理対象のデータベースの構造（セグメントの数や個々のセグメントの論理的な関連付け等）に応じてアルゴリズム自体を変更する必要がなく、削除基準テーブルの内容を書替えるのみで、階層構造を有する他のデータベースにおける不要データの削除にも利用することができ、汎用性に優れている。
【０００８】
【発明が解決しようとする課題】
しかし、上記のアルゴリズムでは、特に処理対象のデータベースが多数のオカレンスが設けられた構造である場合に記憶装置からのデータの読み出し回数が膨大なものになり、不要データを削除する処理を完了するまでに非常に長い時間がかかるという問題があった。また、データベースのアクセス処理時間を短縮するために、データベースを複数の記憶装置に分散して記憶する構成を採用する場合もあるが、このような構成は、上記のアルゴリズムを適用して不要データを削除する際には却って不利となり、処理に膨大な時間がかかる（処理対象のデータベースの規模にも依存するが例えば数時間〜十数時間程度）ことになる。
【０００９】
また、上述した問題はデータベースに対して不要データの削除を行う場合に限られるものではなく、データベースをスキャンし、データベースに記憶されているデータのうち所定の基準に合致するデータについてのみ、データの更新又は抽出を行う等の場合にも共通する問題であった。
【００１０】
本発明は上記事実を考慮して成されたもので、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができるデータベース管理装置、データベース管理方法、プログラム、及び記録媒体を得ることが目的である。
【００１１】
【課題を解決するための手段】
上記目的を達成するために請求項１記載の発明に係るデータベース管理装置は、記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、特定データベースに対する前記何れかの処理の実行が指示されると、前記階層順テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する処理手段と、を備えたデータベース管理装置であって、前記処理手段が特定データベースに対して前記実行が指示された処理を行う前に、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成するテーブル作成手段を備え、前記処理手段は、前記テーブル作成手段によって作成されたアクセス順序テーブルを用いて特定データベースに対し前記実行が指示された処理を行うことを特徴としている。
【００１２】
請求項１記載の発明では、記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルが階層順テーブル記憶手段に記憶されていると共に、特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルが判断テーブル記憶手段に記憶されている。
【００１３】
なお、本発明に係る特定データベースは、単一の記憶装置に記憶されていてもよいし、複数の記憶装置に分散されて記憶されていてもよい。特定データベースが複数の記憶装置に分散されて記憶されている場合であっても、例えば個々のセグメントの物理的な記憶位置を階層順テーブルに記憶させておき、個々のセグメントをアクセスする際に階層順テーブルを参照して物理的な記憶位置を判断することにより、複数の記憶装置に分散されて記憶されている特定データベースを、単一の記憶装置に記憶されているデータベースと同様に取り扱うことができる。
【００１４】
また、請求項１記載の発明では、特定データベースに対する前記削除処理、前記更新処理及び前記抽出処理の何れかの処理の実行が指示されると、処理手段により、階層順テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードが順にアクセスされることで、特定データベースがスキャンされると共に、アクセスしたレコードに対応するセグメントについての実行基準が実行基準テーブルに登録されている場合には、アクセスしたレコードが実行基準に合致しているか否かが判断され、実行基準に合致していると判断したレコードに対してのみ前記実行が指示された処理が実行される。
【００１５】
なお、本発明におけるレコードはオカレンスであってもよいし、特定のオカレンスと関連付けられて別の記憶装置に記憶されている特定のデータであってもよい。
【００１６】
ここで、上記のようにデータベースをスキャンして実行基準に合致するレコードに対して実行が指示された処理を行う場合、データベースの規模が大きくなる（例えばセグメントやオカレンスの数が多くなる）に従って処理時間が大幅に増大する。これに対して請求項１記載の発明では、各レコードに対する所定処理の実行基準が、データベースの全てのセグメントについて登録されることは極めて稀であり、実行が指示された処理を行う可能性のないセグメントについては、実行基準テーブルに実行基準が登録されないことに着目し、処理手段が特定データベースに対して実行が指示された処理を行う前に、テーブル作成手段により、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを階層順テーブルから削除したアクセス順序テーブルを階層順テーブルと別に作成し、処理手段は、テーブル作成手段によって作成されたアクセス順序テーブルを用いて特定データベースに対し実行が指示された処理を行うようにしている。
【００１７】
処理手段は、階層順テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスするので、この階層順テーブルに代えて、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを階層順テーブルから削除したアクセス順序テーブルを用いることにより、上記の条件に合致するセグメントの各レコードは処理手段によるアクセス対象から除外されることになる。
【００１８】
請求項１記載の発明において、実行基準テーブルに実行基準が登録されているか否かを判断したり、上記の条件に合致するセグメントの実行基準を削除したアクセス順序テーブルを作成することは、特定データベースのデータを実際に読み出したりすることなく実現することができ、処理自体も短時間で完了するので、請求項１記載の発明によれば、特定データベースのデータの読み出し回数を減少させることができ、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができる。
【００１９】
また、請求項１記載の発明に係る処理手段及びテーブル作成手段は、例えばコンピュータが所定のプログラムを実行することで実現することができるが、「階層順テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての実行基準が実行基準テーブルに登録されている場合には、アクセスしたレコードが実行基準に合致しているか否か判断し、実行基準に合致していると判断したレコードに対してのみ実行が指示された処理を実行する処理手段」に相当するプログラムが既に存在している環境であれば、処理手段については、実行基準テーブルに代えてアクセス順序テーブルを用いるように上記プログラムを変更するのみで実現することができ、テーブル作成手段に相当するプログラムを新規に開発するのみで、請求項１記載の発明に係るデータベース管理装置を得ることができるので、請求項１記載の発明に係るデータベース管理装置を得るためのプログラム開発に要する時間及びコストも削減することができる。
【００２０】
請求項２記載の発明に係るデータベース管理方法は、記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、が設けられたコンピュータが特定の処理を行うことで実現されるデータベース管理方法であって、前記特定の処理は、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第１のステップ、特定データベースに対する前記何れかの処理の実行が指示されると、前記第１のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第２のステップを含むことを特徴としているので、請求項１記載の発明と同様に、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができる。
【００２１】
請求項３記載の発明に係るプログラムは、記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、が設けられたコンピュータに特定の処理を実行させるためのプログラムであって、前記特定の処理は、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第１のステップ、特定データベースに対する前記何れかの処理の実行が指示されると、前記第１のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第２のステップを含むことを特徴としている。
【００２２】
請求項３記載の発明に係るプログラムは、上記第１及び第２のステップを含む特定の処理、すなわちコンピュータを、請求項１に記載のデータベース管理装置として機能させるためのプログラムであるので、コンピュータが前記プログラムを実行することにより、請求項１記載の発明と同様に、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができる。
【００２３】
請求項４記載の発明に係る記録媒体は、記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、が設けられたコンピュータに特定の処理を実行させるためのプログラムが記録された記録媒体であって、前記特定の処理は、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第１のステップ、特定データベースに対する前記何れかの処理の実行が指示されると、前記第１のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第２のステップを含むことを特徴としている。
【００２４】
請求項４記載の発明に係る記録媒体には、上記第１及び第２のステップを含む処理、すなわちコンピュータを、請求項１に記載のデータベース管理装置として機能させるためのプログラムが記録されているので、コンピュータが前記記録媒体に記録されたプログラムを読み出して実行することにより、請求項１記載の発明と同様に、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができる。
【００２５】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図１には、金融機関の各種業務を支援するために金融機関に設置されたコンピュータ・システム１０が示されている。コンピュータ・システム１０は、本発明に係るデータベース管理装置としての機能を兼ね備えたホスト・コンピュータ１２を含んで構成されている。
【００２６】
金融機関の各部署にはクライアントＰＣ１４又は専用端末１６が多数台設置されており、それぞれのクライアントＰＣ１４は通信制御用サーバ１８及びイントラネット２０を介してホスト・コンピュータ１２に各々接続されている。また、それぞれの専用端末１６は、ターミナル・アダプタ（ＴＡ）２２、モデム２４、公衆電話網等から成る公衆通信網２６を介してホスト・コンピュータ１２に各々接続されている。なお、図１ではホスト・コンピュータ１２を単一のコンピュータとして示しているが、これに限定されるものではなく、複数台のコンピュータで構成しても良いことは言うまでもない。
【００２７】
ホスト・コンピュータ１２はワークステーション又は汎用の大型コンピュータから成り、ＣＰＵ１２Ａ、ＲＯＭ１２Ｂ、ＲＡＭ１２Ｃ、入出力ポート１２Ｄを備え、これらがアドレスバス、データバス、制御バス等のバス１２Ｅを介して互いに接続されて構成されている。入出力ポート１２Ｄには、モデム２８を介して公衆通信網２６に接続され公衆通信網２６を介して専用端末１６と通信を行うための通信制御装置３０、ディスプレイ３２、マウス３４、キーボード３６、イントラネット２０を介してクライアントＰＣ１４と通信を行うための通信制御用サーバ３８、本発明に係る記憶装置としてのＨＤＤ４０、及びＣＤ−ＲＯＭからの情報の読み出しを行うＣＤ−ＲＯＭドライブ４２が各々接続されている。
【００２８】
ホスト・コンピュータ１２のＨＤＤ４０には、本発明に係る特定データベースに対応する預金明細照会データベース（預金明細照会ＤＢ）と、該預金明細照会ＤＢの階層順テーブル及び削除基準テーブルが記憶されている（何れも詳細は後述）と共に、後述するデータベース（ＤＢ）スキャン処理を含むＤＢ管理処理をＣＰＵ１２Ａによって実行するためのＤＢ管理プログラム（ＤＢ管理システムを実現するためのプログラム）がＨＤＤ４０にインストールされており、更にオペレーティング・システム（ＯＳ）のプログラムもインストールされている。
【００２９】
なお、ＨＤＤ４０に記憶されている階層順テーブルは本発明の階層順テーブルに、削除基準テーブルは本発明の実行基準テーブルに対応しており、ＨＤＤ４０は請求項１等に記載の階層順テーブル記憶手段及び判断テーブル記憶手段にも対応している。
【００３０】
ＤＢ管理プログラムをホスト・コンピュータ１２にインストール（移入）するには幾つかの方法があるが、例えばＤＢ管理プログラムをセットアッププログラムと共にＣＤ−ＲＯＭ５０に記録しておき、ＣＤ−ＲＯＭ５０をホスト・コンピュータ１２のＣＤ−ＲＯＭドライブ４２にセットし、ＣＰＵ１２Ａに対して前記セットアッププログラムの実行を指示すれば、ＣＤ−ＲＯＭ５０からＤＢ管理プログラムが順に読み出され、読み出されたＤＢ管理プログラムがＨＤＤ４０に順に書き込まれることで、ＤＢ管理プログラムのインストールが行われる。
【００３１】
なお、ＤＢ管理プログラムは請求項３に記載のプログラムに対応していると共に、請求項４に記載の記録媒体に記録されているプログラムにも対応しており、上記態様におけるＣＤ−ＲＯＭ５０は請求項４に記載の記録媒体に対応している。
【００３２】
また、上記のようにＣＤ−ＲＯＭ５０を用いてＤＢ管理プログラムをインストールすることに代えて、ＤＢ管理プログラムが、当初は公衆通信網２６やイントラネット２０、或いはその他のコンピュータ・ネットワーク（例えばＬＡＮ、インターネット、無線通信ネットワーク等）を介してホスト・コンピュータ１２と接続される他の情報処理機器（例えばネットワークサーバ）の記憶装置に記憶されており、ホスト・コンピュータ１２が前記情報処理機器と通信することで、前記情報処理機器からホスト・コンピュータ１２へ伝送され、ＨＤＤ４０にインストールされてホスト・コンピュータ１２で実行される構成を採用してもよい。
【００３３】
次に本実施形態の作用を説明する。金融機関は顧客に対してエレクトロニック・バンキング（ＥＢ）と称するサービスを提供している。このＥＢは、家庭や企業に設置されたコンピュータ（又は専用端末）を顧客が操作することで、預金の残高照会、入出金照会、口座振り込み、振り替え等の各種サービスを顧客に対してオンラインで提供するものである。ホスト・コンピュータ１２のＨＤＤ４０に記憶されている預金明細照会ＤＢは、上記のＥＢ業務を支援するＥＢシステムに対し、預金為替システムが支援する預金為替業務によって発生した資金の移動の明細を表す情報（預金明細情報）を受け渡すことを目的として、預金明細情報を保有するデータベースである。
【００３４】
本実施形態に係る預金明細照会ＤＢは、例として図６に示すように、預金明細情報を構成する各種情報のうち予め定められた互いに異なるカテゴリの情報を登録するための複数のセグメントが、階層的に関連付けられた構造を有している。例えば図６に示すＤＢは、セグメントＡ〜セグメントＨの８種類のセグメントから成り、最上位の第１階層にはセグメントＡ（ルートセグメント）、第２階層にはセグメントＢ，Ｃ，Ｆ、第３階層にはセグメントＤ，Ｅ，Ｇ，Ｈが各々設けられ、セグメントＢ，Ｃ，ＦはセグメントＡと関連付けされ、セグメントＤ，ＥはセグメントＣと関連付けされ、セグメントＧ，ＨはセグメントＦと関連付けされた構造を有している。
【００３５】
また、各セグメントは任意の数のオカレンスを作成可能とされており、預金明細照会ＤＢに記憶する預金明細情報のうちの特定カテゴリの情報のデータ量が大きい等の場合には、預金明細情報の登録に際し、特定カテゴリの情報を登録するためのセグメントとして複数のオカレンスが作成され、作成されたオカレンスに特定カテゴリの情報が各々登録される。
【００３６】
例えば図６では、セグメントＢにはオカレンスＢ１，Ｂ２が、セグメントＣにはオカレンスＣ１，Ｃ２が、セグメントＤにはオカレンスＤ１〜Ｄ３が、セグメントＥにはオカレンスＥ１〜Ｅ３が、セグメントＦにはオカレンスＦ１，Ｆ２が、セグメントＧにはオカレンスＧ１〜Ｇ３が、セグメントＨにはオカレンスＨ１，Ｈ２が各々作成されており、オカレンスＤ１，Ｅ１，Ｅ２はオカレンスＣ１と関連付けされ、オカレンスＤ２，Ｄ３，Ｅ３はオカレンスと関連付けされ、オカレンスＧ１，Ｈ１，Ｈ２はオカレンスＦ１と関連付けされ、オカレンスＧ２，Ｇ３はオカレンスＦ２と関連付けされている。
【００３７】
また、預金明細情報はデータ量が膨大であるため、ＨＤＤ４０は実際には複数のＨＤＤから構成されており（例として図６に示すＨＤＤ４０Ａ，４０Ｂを参照）、預金明細情報のうちの一部の情報（明細情報）は、預金明細照会ＤＢ本体が記憶されているＨＤＤ（図６の例ではＨＤＤ４０Ａ）と別のＨＤＤ（図６の例ではＨＤＤ４０Ｂ）に記憶されている。例えば図６では、明細情報Ｅ１〜Ｅ３がＨＤＤ４０Ｂに記憶されており、ＨＤＤ４０Ａに記憶されている預金明細照会ＤＢ本体のうちセグメントＥの各オカレンスＥ１〜Ｅ３には、明細情報Ｅ１〜Ｅ３を指し示すインデックス情報ｉＤＸが登録されている。
【００３８】
一方、階層順テーブルは、例として図７（Ａ）に示すように、預金明細照会ＤＢを構成する全てのセグメントについて、階層レベルと物理アドレス（物理的な記憶位置）が各々登録されて構成されている。階層順テーブルへの各セグメントの登録順序は各セグメントの関連付けを考慮して定められており、階層順テーブルを参照することで各セグメントの関連付けを認識できるようになっている。すなわち、階層順テーブルに登録されている階層レベルが２以下（ルートセグメント以外）の各セグメントは、階層順テーブルにおける各セグメントの登録位置から上側に辿ったときに、最初に出現する、各セグメントよりも階層レベルが１階層上位のセグメント（例えばセグメントＥであればセグメントＣ）に関連付けされていると判断することができる。
【００３９】
また、削除基準テーブルは、預金明細照会ＤＢを構成するセグメントのうち、対応するオカレンスを削除する可能性のあるセグメントについて、オカレンスを削除するか否かの基準を登録したテーブルである。例として図６では「●」「×」の記号を付して示すように、セグメントＢ，Ｇについて削除基準テーブルに削除基準が登録されている。
【００４０】
ホスト・コンピュータ１２の電源が投入されると、図２に示すように、ＯＳのプログラムやＤＢ管理プログラム、通信管理ソフト等のプログラムがメインメモリ（ＲＡＭ１２Ｃ）にロードされ、これらのプログラムが実行されることで、ＯＳやＤＢ管理システムが稼働する。また、ＤＢ管理プログラムのロード時に、メインメモリの記憶領域の一部が共通領域（図２参照）として確保され、階層順テーブル及び削除基準テーブルがＨＤＤ４０から共通領域にコピーされる。共通領域にコピーされた階層順テーブル及び削除基準テーブルは、ホスト・コンピュータ１２の電源が投入されている間、共通領域に常駐する。
【００４１】
次に図３のフローチャートを参照し、本発明に係るデータベース管理方法が適用されたＤＢスキャン処理について説明する。このＤＢスキャン処理は、預金明細照会ＤＢの不要データ削除等のように、預金明細照会ＤＢをスキャンしながら行うべき複数種の処理の何れかの実行が指示された場合に実行される処理であり、実行すべき処理をオペレータが所定時刻に実行すべきジョブとして予め登録しておくことにより、所定時刻が到来すると実行される。
【００４２】
ＤＢスキャン処理はホスト・コンピュータ１２のＣＰＵ１２ＡがＤＢ管理プログラムの一部であるＤＢスキャンプログラムを実行することによって実現され、まず図２に示すように、メインメモリの記憶領域の一部が、ＤＢスキャンプログラムを稼働するための領域として確保された後に、この領域を使用して図３に示す一連の処理が順次実行される。なお、以下では図６に示すデータベース構造を用いて処理のアルゴリズムを説明する。
【００４３】
ステップ１００では、実行が指示された処理が不要データの削除か否か判定する。不要データの削除を行う場合には、ステップ１００の判定が肯定されてステップ１０２へ移行し、以下で説明する階層順テーブル圧縮処理を行う。なお、実行が指示された処理が不要データの削除以外の処理であった場合には、ステップ１００の判定が否定されることで、階層順テーブル圧縮処理を行うことなくステップ１０４へ移行する。また、階層順テーブル圧縮処理は請求項１に記載のテーブル作成手段に対応しており、請求項２〜請求項４に記載の第１のステップに相当する処理である。
【００４４】
図４に示すように、階層順テーブル圧縮処理では、ステップ１７０において、メインメモリの共通領域に記憶（常駐）している階層順テーブルの１番目及び２番目のエントリのセグメントを、メインメモリのＤＢスキャンプログラム稼働領域に設けられたワークエリア（図２に示す削除処理用階層順テーブル作成領域）の１番目及び２番目の領域に各々コピーする。なお、以下では便宜的に、階層順テーブルをテーブルＡと称し、階層順テーブル圧縮処理によってワークエリアに作成される削除処理用階層順テーブルをテーブルＢと称する。
【００４５】
次のステップ１７２では、テーブルＢの終わりを意味する所定の情報（ストッパと称する）をテーブルＢの３番目の領域に書き込み、ステップ１７４では、変数ｉ，ｊ，ｋの初期値として、変数ｉに３を、変数ｊに１を、変数ｋに２を代入する。なお、変数ｉはテーブルＡから読み出すセグメントの位置を、変数ｊはテーブルＢに登録されているセグメントのうち削除（上書き）しないことが確定した最終セグメントの位置を、変数ｋはテーブルＢの最終エントリの位置を表している。ステップ１７６ではテーブルＡ（階層順テーブル）のｉ番目のエントリのセグメントの情報（階層レベル等）を参照する。
【００４６】
ステップ１７８では変数ｋの値を変数ｓに代入し、次のステップ１８０では、テーブルＡのｉ番目のエントリのセグメントは、テーブルＢのｓ番目のエントリのセグメントよりも階層レベルが下位であるか否か判定する。判定が肯定された場合にはステップ１９２へ移行するが、判定が否定された場合にはステップ１８２へ移行し、テーブルＢのｓ番目のエントリのセグメントの削除基準が削除基準テーブルに登録されているか否かを検索する。またステップ１８４では、ステップ１８２の検索によって該当する削除基準が抽出されたか否か判定する。
【００４７】
判定が肯定された場合にはステップ１９０へ移行し、変数ｓの値を変数ｊに打入した後にステップ１９２へ移行する。また、ステップ１８４の判定が否定された場合にはステップ１８６へ移行し、変数ｓの値を１だけデクリメントする。次のステップ１８８では、変数ｓの値が変数ｊの値に等しいか否か判定する。判定が否定された場合にはステップ１８０に戻り、ステップ１８０以降を繰り返すが、判定が肯定された場合にはステップ１９２へ移行する。従って、ステップ１８０、ステップ１８４、ステップ１８８の何れかの判定が肯定される迄の間は、ステップ１８０〜ステップ１８８が繰り返されることになる。
【００４８】
ステップ１９２では、テーブルＡのｉ番目のエントリのセグメントをテーブルＢのｓ＋１番目の領域にコピーし、次のステップ１９４ではテーブルＢのｓ＋２番目の領域にストッパを書き込む。ステップ１９６では変数ｓに１を加算した値を変数ｋに代入する。また、次のステップ１９８では、テーブルＡのｉ番目のエントリのセグメントがテーブルＡの最終エントリに相当するセグメントか否か判定する。判定が否定された場合にはステップ２００において、変数ｉの値を１だけインクリメントした後にステップ１７６に戻る。従って、ステップ１９８の判定が肯定される迄の間はステップ１７６〜ステップ２００が繰り返されることになる。
【００４９】
上述したステップ１７６〜２００のループを、図７（Ａ）に示す階層順テーブルを例に更に説明すると、前記ループを最初に実行するときには、テーブルＢにはセグメントＡ，Ｂがコピーされており、ｉ＝３，ｊ＝１，ｋ＝２（＝ｓ）であることから、テーブルＡ（階層順テーブル）のｉ番目のエントリはセグメントＣ、テーブルＢ（削除処理用階層順テーブル）のｓ番目のエントリはセグメントＢとなる。
【００５０】
セグメントＢ，Ｃは何れも階層レベルが「２」であるのでステップ１８０の判定は否定されるが、セグメントＢは、図６において「●」の記号が付されている（オカレンスＢ１参照）ことからも明らかなように、削除基準テーブルに削除基準が登録されているのでステップ１８４の判定が肯定される。これにより、変数ｊの値が２になり（ステップ１９０）、セグメントＢを削除（上書き）しないことが確定する。また、テーブルＢの３番目の領域にセグメントＣが、４番目の領域にストッパが書き込まれると共に、変数ｋの値が３になり（ステップ１９２〜ステップ１９６）、ステップ１９８，２００を経てステップ１７６に戻る。
【００５１】
次は、ｉ＝４，ｊ＝２，ｋ＝３（＝ｓ）であることから、テーブルＡのｉ番目のエントリはセグメントＤ、テーブルＢのｓ番目のエントリはセグメントＣとなる。セグメントＤの階層レベルは「３」であり、セグメントＣよりも階層レベルが下位であるのでステップ１８０の判定が肯定され、テーブルＢの４番目の領域にセグメントＤが、５番目の領域にストッパが書き込まれると共に、変数ｋの値が４になり（ステップ１９２〜ステップ１９６）、ステップ１９８，２００を経てステップ１７６に戻る。
【００５２】
次は、ｉ＝４，ｊ＝２，ｋ＝４（＝ｓ）であるため、テーブルＡのｉ番目のエントリはセグメントＥ、テーブルＢのｓ番目のエントリはセグメントＤとなる。セグメントＤ，Ｅは何れも階層レベルが「３」であるのでステップ１８０の判定は否定される。またセグメントＤは、図６において「×」の記号が付されている（オカレンスＤ１参照）ことからも明らかなように、削除基準テーブルに削除基準が登録されていないので、ステップ１８４の判定が否定され、変数ｓが１だけデクリメントされて３になる（ステップ１８６）が、ｊ≠ｓ（ｊ＝２）であるのでステップ１８８の判定が否定され、ステップ１８０に戻る。
【００５３】
ｓ＝３になったため、テーブルＡのｉ番目のエントリはセグメントＥのままであるのに対し、テーブルＢのｓ番目のエントリはセグメントＣとなるが、セグメントＥはセグメントＣよりも階層レベルが下位であるのでステップ１８０の判定が肯定され、テーブルＢの４番目の領域（すなわちセグメントＤが書き込まれていた領域）にセグメントＥが、５番目の領域にストッパが書き込まれると共に、変数ｋの値が４になり（ステップ１９２〜ステップ１９６）、ステップ１９８，２００を経てステップ１７６に戻る。
【００５４】
次は、ｉ＝５，ｊ＝２，ｋ＝４（＝ｓ）であるため、テーブルＡのｉ番目のエントリはセグメントＦ、テーブルＢのｓ番目のエントリはセグメントＥとなる。セグメントＦは階層レベルが「２」であり、セグメントＥよりも上位であるのでステップ１８０の判定は否定される。またセグメントＥは、図６において「×」の記号が付されている（オカレンスＥ１参照）ことからも明らかなように、削除基準テーブルに削除基準が登録されていないので、ステップ１８４の判定が否定され、変数ｓが１だけデクリメントされて３になる（ステップ１８６）が、ｊ≠ｓ（ｊ＝２）であるのでステップ１８８の判定が否定され、ステップ１８０に戻る。
【００５５】
ｓ＝３になったため、テーブルＡのｉ番目のエントリはセグメントＦのままであるのに対し、テーブルＢのｓ番目のエントリはセグメントＣとなるが、セグメントＥはセグメントＣよりも階層レベルが下位であるのでステップ１８０の判定が肯定され、テーブルＢの４番目の領域（すなわちセグメントＤが書き込まれていた領域）にセグメントＥが、５番目の領域にストッパが書き込まれると共に、変数ｋの値が４になり（ステップ１９２〜ステップ１９６）、ステップ１９８，２００を経てステップ１７６に戻る。
【００５６】
次は、ｉ＝６，ｊ＝２，ｋ＝３（＝ｓ）であることから、テーブルＡのｉ番目のエントリはセグメントＧ、テーブルＢのｓ番目のエントリはセグメントＦとなる。セグメントＧの階層レベルは「３」であり、セグメントＦよりも階層レベルが下位であるのでステップ１８０の判定が肯定され、テーブルＢの４番目の領域にセグメントＧが、５番目の領域にストッパが書き込まれると共に、変数ｋの値が４になり（ステップ１９２〜ステップ１９６）、ステップ１９８，２００を経てステップ１７６に戻る。
【００５７】
次は、ｉ＝７，ｊ＝２，ｋ＝４（＝ｓ）であることから、テーブルＡのｉ番目のエントリはセグメントＨ、テーブルＢのｓ番目のエントリはセグメントＧとなる。セグメントＨはセグメントＧと階層レベルが同位であるのでステップ１８０の判定が否定される。セグメントＧは、図６において「●」の記号が付されている（オカレンスＧ１参照）ことからも明らかなように、削除基準テーブルに削除基準が登録されているのでステップ１８４の判定が肯定される。これにより、変数ｊの値が４になり（ステップ１９０）、セグメントＦ及びセグメントＧを削除（上書き）しないことが確定する。
【００５８】
なお、セグメントＦは削除基準テーブルに削除基準が登録されていないが、関連付けられた下位階層のセグメントＧの削除基準が削除基準テーブルに登録されているために、削除（上書き）の対象から除外される。そして、テーブルＢの５番目の領域にセグメントＨが、６番目の領域にストッパが書き込まれ、変数ｋの値が５になる（ステップ１９２〜ステップ１９６）。
【００５９】
上記のループを変数ｉが階層順テーブルの最終エントリに相当する値になるまで繰り返すと、ステップ１９８の判定が否定されてステップ２０２へ移行し、変数ｋの値を変数ｓに代入する。次のステップ２０４では、テーブルＢのｓ番目のエントリのセグメントの削除基準が削除基準テーブルに登録されているか否かを検索する。またステップ２０６では、ステップ２０４の検索によって該当する削除基準が抽出されたか否か判定する。
【００６０】
判定が肯定された場合には階層順テーブル圧縮処理を終了するが、判定が否定された場合はステップ２０８へ移行し、テーブルＢのｓ番目の領域にストッパを書き込むことで、当該セグメントをテーブルＢから削除する。次のステップ２１０では変数ｓを１だけデクリメントし、ステップ２１２では変数ｓの値が変数ｊの値に一致したか否か判定する。判定が否定された場合にはステップ２０４に戻り、判定が肯定された場合には階層順テーブル圧縮処理を終了する。
【００６１】
これにより、例えば図７（Ａ）の階層順テーブルにおける最終エントリがセグメントＨであるとすると、セグメントＨは削除基準テーブルに削除基準が登録されていないので、先のステップ１９２でテーブルＢに一旦書き込まれた後に、ストッパで上書きされることでテーブルＢから削除され、例えば図７（Ａ）に示す階層順テーブルから、セグメントＣ，Ｄ，Ｅ，Ｈが削除されて圧縮された階層順テーブル（図７（Ｂ）参照：本発明のアクセス順序テーブルに相当）が得られることになる。上記の階層順テーブル圧縮処理が終了すると、ＤＢスキャン処理（図３）のステップ１０４へ移行する。
【００６２】
上述した階層順テーブル圧縮処理は、例えば階層順テーブルをスキャンしながら削除対象のセグメントを記憶していき、最終エントリまでスキャンした後に、階層順テーブルを再度スキャンし、削除対象でないと判断したセグメントのみをワークエリアに順にコピーすることで削除処理用の階層順テーブルを作成するアルゴリズムによっても実現できるが、このアルゴリズムでは階層順テーブルを２回スキャンする必要があるので削除処理用の階層順テーブルの作成に時間がかかるという欠点がある。
【００６３】
これに対し、図４に示したアルゴリズムでは、階層順テーブに登録されているセグメントを順にスキャンし、各セグメントをワークエリアに順にコピーする際に、既にワークエリアにコピーしたセグメントのうち削除可能なセグメントが有るか否かを判定し、削除可能と判断したセグメントをコピーするセグメントで上書きすることで削除処理用の階層順テーブルを作成するので、階層順テーブルのスキャンが１回で済み、削除処理用の階層順テーブルをより短時間で作成することができる。
【００６４】
一方、ＤＢスキャン処理では階層順テーブルを用いて処理が行われるが、ステップ１００の判定が肯定されて階層順テーブル圧縮処理が行われた場合には、階層順テーブル圧縮処理で生成（圧縮）された階層順テーブル（すなわち本発明に係るアクセス順序テーブル）を用いて処理が行われる。また。ＤＢスキャン処理のステップ１０４以降は、請求項１に記載の処理手段に対応しており、請求項２〜請求項４に記載の第２のステップに相当する処理である。
【００６５】
ステップ１０４では変数ｎに１（初期値）を代入する。ステップ１０６では、階層順テーブルの最上位エントリのセグメント（図７の例ではルートセグメントであるセグメントＡ）の各オカレンスの中に、後述するステップ１１２以降の処理を行っていないオカレンスが存在しているか否か検索し、次のステップ１１０では、上記の検索によって該当するオカンレンスが抽出されたか否か判定する。
【００６６】
該当するオカレンス（例えば図６に示すオカレンスＡ１）が抽出された場合には、ステップ１１０の判定が肯定されてステップ１１２へ移行し、ステップ１０８の検索によって抽出されたオカレンスを親ｎ（この場合は「親１」）として記憶する。また、ステップ１１４では変数Ｘｎ（この場合はＸ１）に１（初期値）を代入する。
【００６７】
ステップ１１６では、階層順テーブル上で親ｎのセグメントからＸｎ番目のエントリを参照する。ステップ１１８では該当エントリが存在しているか否か判定する。判定が肯定された場合にはステップ１２０へ移行し、セグメントα（任意のセグメントを指し示すポインタ）として該当エントリのセグメントを設定する。次のステップ１２２では、セグメントαは親ｎのセグメントより階層レベルが下位か否か判定する。判定が肯定された場合にはステップ１２４へ移行する。ステップ１２４では、親ｎと関連付けられたセグメントαの各オカレンスのうち未処理のオカレンスを検索し、次のステップ１２６では、ステップ１２４の検索によって該当するオカンレンスが抽出されたか否か判定する。
【００６８】
ステップ１２６の判定が否定された場合にはステップ１４２へ移行し、変数Ｘｎを１だけインクリメントしてステップ１１６に戻る。一方、ステップ１２６の判定が肯定された場合にはステップ１２７へ移行し、該当オカレンスのデータを預金明細照会ＤＢから読み出した後に、ステップ１２８でＤＢ操作処理を行う。なお、このＤＢ操作処理については後述する。次のステップ１３０では変数ｎの値を１だけインクリメントし、ステップ１３２では、ステップ１２８のＤＢ操作処理を行ったオカレンスを親ｎとして記憶し、ステップ１３４では変数Ｘｎに１（初期値）を代入する。
【００６９】
ステップ１３６では、該当オカンレンスはインデックス情報ｉＤＸが登録されたオカレンス（例えば図６に（ｉＤＸ）と表記されたオカレンスＥ１〜オカレンスＥ３）か否か判定する。判定が否定された場合には、何ら処理を行うことなくステップ１１６に戻る。また、判定が肯定された場合にはステップ１３８へ移行し、該当オカレンスに登録されているインデックス情報ｉＤＸに基づいて、該当オカレンスと関連付けられた明細情報を預金明細照会ＤＢから読み出す。そして次のステップ１４０では、読み出した明細情報に対して前述のＤＢ操作処理を行った後に、ステップ１１６に戻る。
【００７０】
また、ステップ１１８又はステップ１２２の判定が否定された場合にはステップ１４４へ移行し、変数ｎを１だけデクリメントする。次のステップ１４６では、ステップ１４４のデクリメントによってｎよりも小さくなったか否か判定する。判定が否定された場合にはステップ１１６へ戻り、判定が肯定された場合にはステップ１０６に戻る。
【００７１】
上述したステップ１１２〜１４６を、図６に示すＤＢ構造に対して図７（Ａ）に示す階層順テーブルを使用してスキャンを行う場合を例にとり、更に説明すると、まずステップ１１２でオカレンスＡ１が親１として設定されると共に、ステップ１１４で変数Ｘ１に１が代入された後に、ステップ１１６の検索により、親１（オカレンスＡ１）のセグメント（セグメントＡ）からＸ１（＝１）番目のセグメントとしてセグメントＢが抽出される。セグメントＢは親１のセグメント（セグメントＡ）よりも下位であるためステップ１２２の判定が肯定され、ステップ１２６の検索により、親１（オカレンスＡ１）と関連付けられたセグメントＢの未処理オカレンスとしてオカレンスＢ１が抽出される。
【００７２】
オカレンスＢ１に対してＤＢ操作処理（ステップ１２８）が行われた後に、オカレンスＢ１と関連付けられた下位のオカレンスを検索するために、オカレンスＢ１が親２とされ、変数Ｘ２が１に初期設定されて（ステップ１３０〜ステップ１３４）ステップ１１６に戻る。
【００７３】
続いて、ステップ１１６の検索により、親２（オカレンスＢ１）のセグメント（セグメントＢ）からＸ２（＝１）番目のセグメントとしてセグメントＣが抽出されるが、セグメントＣは親２のセグメント（セグメントＢ）と階層レベルが同位であり、オカレンスＢ１と関連付けられた下位のオカレンスは存在しないと判断できるので、ステップ１２２の判定が否定されて変数ｎが１に戻され、ステップ１１６に戻る。
【００７４】
次に、ステップ１１６の検索により、オカレンスＡ１からＸ１（＝１）番目のセグメントとして再度セグメントＢが抽出され、ステップ１２４の検索によってオカレンスＢ２が抽出される。そして、前述のオカレンスＢ１と同様に、オカレンスＢ２に対してＤＢ操作処理（ステップ１２８）が行われた後に、オカレンスＢ２と関連付けられた下位のオカレンスを検索するために、オカレンスＢ２が親２とされ、変数Ｘ２が１とされてステップ１１６に戻り、ステップ１１６の検索により、親２（オカレンスＢ２）のセグメント（セグメントＢ）からＸ２（＝１）番目のセグメントとしてセグメントＣが抽出されるが、セグメントＣは親２のセグメント（セグメントＢ）と階層レベルが同位のため、ステップ１２２の判定が否定されて変数ｎが１に戻され、ステップ１１６に戻る。
【００７５】
続いて、ステップ１１６の検索により、オカレンスＡ１からＸ１（＝１）番目のセグメントとして再度セグメントＢが抽出されるが、オカレンスＡ１と関連付けられたセグメントＢの未処理のオカレンスは存在していないので、ステップ１２６の判定が否定され、変数Ｘ１が２とされてステップ１１６に戻る。
【００７６】
次に、ステップ１１６の検索により、オカレンスＡ１からＸ１（＝２）番目のセグメントとして再度セグメントＣが抽出され、セグメントＣは親１のセグメント（セグメントＡ）よりも階層レベルが下位であるためステップ１２２の判定が肯定され、ステップ１２４の検索によってオカレンスＣ１が抽出される。そして、オカレンスＣ１に対してＤＢ操作処理（ステップ１２８）が行われた後に、オカレンスＣ１と関連付けられた下位のオカレンスを検索するために、オカレンスＣ１が親２とされ、変数Ｘ２が１とされてステップ１１６に戻る。
【００７７】
続いて、ステップ１１６の検索により、親２（オカレンスＣ１）のセグメント（セグメントＣ）からＸ２（＝１）番目のセグメントとしてセグメントＤが抽出される。
【００７８】
そして、以下同様にして、ＤＢ操作処理の対象のオカレンスが抽出され抽出されたオカレンスに対してＤＢ操作処理（ステップ１２８）を行った後に、抽出されたオカレンスと関連付けられた下位のオカレンスが存在しているか否かが検索され、該当するオカレンスが存在していなければ抽出されたオカレンスと同一セグメントのオカレンスが存在しているか否かが検索され、該当するオカレンスが存在していなければ抽出されたオカレンスと同一の親に関連付けられた他のオカレンスが存在しているか否かが検索され、該当するオカレンスが存在していなければ、検索によって既に抽出されたより階層レベルの高い親と関連付けられたオカレンスが存在しているか否かが検索されることになる。
【００７９】
ステップ１０６の検索によって抽出されたルートセグメントのオカレンスと直接又は間接的に関連付けられた全てのオカレンスをスキャンすると、ステップ１４６の判定が肯定されてステップ１０６に戻る。そして、ステップ１０６の検索によって該当するオカレンスが抽出された場合には、抽出されたオカレンスを起点としてステップ１１２以降の処理を繰り返し、ステップ１０６の検索によって該当するオカレンスが抽出されなかった場合には、ステップ１１０の判定が否定されてＤＢスキャン処理を終了する。
【００８０】
次に、ＤＢ操作処理について図５のフローチャートを参照して説明する。ステップ２２０では、実行が指示された処理が不要データの削除か否か判定する。判定が否定された場合にはステップ２２２へ移行し、処理対象のオカレンス又は明細情報に対して指示された処理（例えば所定の条件に合致しているか否かを判断し、合致していればデータをＨＤＤ４０の別領域に保存する等）を実行する。
【００８１】
一方、実行が指示された処理が不要データの削除であれば、ステップ２２０の判定が肯定されてステップ２２４へ移行し、処理対象のオカレンス又は明細情報に対応するセグメントの削除基準が削除基準テーブルに登録されているか否かを判定する。判定が否定された場合には何ら処理を行うことなくＤＢ操作処理を終了する。
【００８２】
また、処理対象のオカレンス又は明細情報に対応するセグメントの削除基準が削除基準テーブルに登録されていた場合には、ステップ２２４の判定が肯定されてステップ２２６へ移行し、ＤＢスキャン処理（図３）のステップ１２７又はステップ１３８で読み出したデータに対し、削除基準テーブルに登録されている削除基準（処理対象のオカレンス又は明細情報に対応するセグメントの削除基準）に従って所定の判定処理（例えば加減算や絶対値比較、日付比較、ビット比較等）を行うことにより、処理対象のオカレンス又は明細情報が削除基準に合致しているか否か判定する。
【００８３】
判定が否定された場合は何ら処理を行うことなくＤＢ操作処理を終了する。また、ステップ２２６の判定が肯定された場合にはステップ２２８へ移行し、処理対象のオカレンス又は明細情報と関連付けられた下位のオカレンス又は明細情報が存在しているか否かを検索する。そして、次のステップ２３０では、処理対象のオカレンス又は明細情報を（ステップ２２８の検索によってオカレンス又は明細情報が抽出された場合には、これらのオカレンス又は明細情報も）預金明細照会ＤＢから削除する。
【００８４】
前述のように、ＤＢスキャン処理では、階層順テーブルに基づいてスキャン対象のＤＢ（預金明細照会ＤＢ）の構造を認識してＤＢのスキャンを行っているので、図６に示すＤＢの階層順テーブルとして図７（Ａ）に示すテーブルを用いた場合には、ＤＢの各オカレンスが、『Ａ１→Ｂ１→Ｂ２→Ｃ１→Ｄ１→Ｅ１(idx)→Ｅ１(明細)→Ｅ２(idx)→Ｅ２(明細)→Ｃ２→Ｄ２→Ｄ３→Ｅ３(idx)→Ｅ３(明細)→Ｆ１→Ｇ１→Ｈ１→Ｈ２→Ｆ２→Ｇ２→Ｇ３』の順序でアクセス（スキャン）されることになる。
【００８５】
一方、図６に示すＤＢの階層順テーブルとして、前述した階層順テーブル圧縮処理を経た図７（Ｂ）に示すテーブルを用いた場合には、該テーブルに登録されていないセグメントＣ，Ｄ，Ｅ，Ｈの各オカレンス（図６にハッチングを付して示すオカレンス）は存在しないものと認識されるので、ＤＢの各オカレンスのうち、セグメントＣ，Ｄ，Ｅ，Ｈ以外のセグメントの各オカレンスのみが『Ａ１→Ｂ１→Ｂ２→Ｆ１→Ｇ１→Ｆ２→Ｇ２→Ｇ３』の順序でアクセス（スキャン）されることになる。
【００８６】
本実施形態では、ＤＢスキャン処理により預金明細照会ＤＢに対して不要データの削除を行う場合に、階層順テーブル圧縮処理を経た階層順テーブルを用い、該テーブルに登録されているセグメント（削除基準テーブルに削除基準が登録されているか、又は削除基準が登録されていない下位のセグメントと関連付けられているセグメント）の各オカレンスのみをアクセスする（読み出す）ので、前出のスキャン順序を比較しても明らかなように、預金明細照会ＤＢからのデータの読み出し回数を大幅に減少させることができ、読み出しに比較的長い時間がかかるデータ（ＤＢ本体と物理的に別のＨＤＤに記憶されているデータ（本実施形態ではＨＤＤ４０Ｂに記憶されている明細情報))の読み出し回数も少なくなることで、預金明細照会ＤＢをスキャンして不要データを削除することを、従来に比して非常に短い時間で完了させることができる。
【００８７】
なお、上記ではデータベースの各セグメントの物理アドレスを、階層レベル等の情報と共に階層順テーブルに登録しておく例を説明したが、本発明はこれに限定されるものではなく、各セグメントの物理アドレスを別テーブルに記憶すると共に、このテーブルを、例えば図２に示すデータベース管理システム等の管理下におき、特定のセグメントについて物理アドレスの問い合わせがあった場合に、特定のセグメントの物理アドレスを前記テーブルから読み出し、読み出した物理アドレスを問い合わせ元（例えば前述のＤＢスキャン処理を実行するためのアプリケーション・プログラム等）に返すように、データベース管理システム等を構成してもよい。
【００８８】
また、上記では本発明に係る特定データベースの一例として預金明細照会ＤＢを用いて説明したが、本発明は階層構造を有するデータベースであれば、登録されているデータの内容とは無関係に適用可能であり、例えば金融機関の他の業務（例として外国為替業務や融資業務、情報業務等）で用いられる階層構造の他のデータベースにも適用可能であることは言うまでもない。
【００８９】
また、上記ではホスト・コンピュータ１２がＤＢ管理プログラムのうちのＤＢスキャンプログラムを実行することで、階層順テーブル圧縮処理やＤＢ操作処理を含むＤＢスキャン処理が実現される場合を例に説明したが、これに限定されるものではなく、端末側（クライアントＰＣ１４又は専用端末１６等）が所定のプログラムを実行することで実現されるようにしてもよいし、ホスト・コンピュータ１２と端末側が協働して処理を行うことで実現されるようにしてもよい。
【００９０】
更に、上記では本発明に係る所定処理として、削除基準テーブルに削除基準を登録したセグメントの各レコード（オカレンス・明細情報）のうち、対応する削除基準に合致するレコード（不要データ）を削除する処理を例に説明したが、本発明はこれに限定されるものではなく、例えばテーブルに更新基準を登録したセグメントの各レコードのうち、対応する更新基準に合致するレコードを更新する処理や、テーブルに抽出基準を登録したセグメントの各レコードのうち、対応する抽出基準に合致するデータを抽出する処理を適用してもよい。
【００９１】
【発明の効果】
以上説明したように本発明は、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行う前に、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを階層順テーブルから削除したアクセス順序テーブルを階層順テーブルと別に作成し、アクセス順序テーブルを用いて特定データベースに対する所定処理を行うようにしたので、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができる、という優れた効果を有する。
【図面の簡単な説明】
【図１】  本実施形態に係るコンピュータ・システムの概略構成を示すブロック図である。
【図２】  稼働中のホスト・コンピュータにおけるメインメモリの記憶領域の状態の一例を示す概略図である。
【図３】  ＤＢスキャン処理の内容を示すフローチャートである。
【図４】  階層順テーブル圧縮処理の内容を示すフローチャートである。
【図５】  ＤＢ操作処理の内容を示すフローチャートである。
【図６】  本実施形態に係る預金明細照会ＤＢの構成の一例を示す概略図である。
【図７】  （Ａ）は元の階層順テーブル、（Ｂ）は階層順テーブル圧縮処理後の階層順テーブルの一例を示す概略図である。
【符号の説明】
１０    コンピュータ・システム
１２    ホスト・コンピュータ
１４    クライアントＰＣ
１６    専用端末
４０    ＨＤＤ
５０    ＣＤ−ＲＯＭ
【図１】
0003772105.tif 000002
【図２】
0003772105.tif 000003
【図３】
0003772105.tif 000004
【図４】
0003772105.tif 000005
【図５】
0003772105.tif 000006
【図６】
0003772105.tif 000007
【図７】
0003772105.tif 000008