JP3772105B2 - データベース管理装置、方法、プログラム及び記録媒体 - Google Patents
データベース管理装置、方法、プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP3772105B2 JP3772105B2 JP2001288555A JP2001288555A JP3772105B2 JP 3772105 B2 JP3772105 B2 JP 3772105B2 JP 2001288555 A JP2001288555 A JP 2001288555A JP 2001288555 A JP2001288555 A JP 2001288555A JP 3772105 B2 JP3772105 B2 JP 3772105B2
- Authority
- JP
- Japan
- Prior art keywords
- segment
- execution
- record
- registered
- specific
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明はデータベース管理装置、方法、プログラム及び記録媒体に係り、特に、階層構造のデータベースを階層順テーブルに規定された順序でスキャンしながら所定処理を行うデータベース管理装置、該データベース管理装置に適用可能なデータベース管理方法、コンピュータをデータベース管理装置として機能させるためのプログラム、及び該プログラムが記録された記録媒体に関する。
【0002】
【従来の技術】
従来より、データベースに登録すべき情報項目を複数のセグメントに分け、これらのセグメントを階層的に関連付けた階層構造(木構造ともいう)のデータベースが知られている。階層構造のデータベースは、例えばデータベースに登録すべき多数件のデータのうち、特定の情報項目のデータ量が各件毎に一定していない等の場合にも、前記特定の情報項目に対応するセグメントのオカレンス(occurrence)の数を各件毎に増減させる等のように、登録すべきデータに応じてデータ構造を柔軟に変更することができるので、登録データ量に比してデータベースの規模(データベースを記憶するために必要な記憶手段の容量)を抑制できるという特長を有している。
【0003】
ところで、データベースの規模が大きくなると、データベースを複数の記憶装置(例えば直接アクセス記憶装置(DASD:Direct Access Storage Device))に分散させて記憶させる必要が生じてくる。階層構造のデータベースを複数の記憶装置に分散させて記憶させる場合には、例えば一部のセグメントのデータを別の記憶装置に記憶させる等のように、セグメントを単位としてデータを記憶させる記憶装置を分けると共に、個々のセグメントの論理的な関連付け及び個々のセグメントの物理的な記憶位置を規定する階層順テーブルが作成される。これにより、データベースの特定のセグメントのアクセスに際しても、階層順テーブルを参照することでアクセス対象のセグメントの物理的な記憶位置を認識することができる。
【0004】
また、データベースに記憶されているデータのうち不要になったデータを削除することは、データベースの規模が必要以上に肥大化することを回避し、データベースの維持に必要なコストを削減する観点から重要な処理である。しかし、階層構造を採用した金融機関のデータベースでは、例えば特定のセグメントについては解約後1年経過したら該当するデータを削除する必要があり、他の特定のセグメントについては予め設定された日付が到来したら該当するデータを削除する必要があり、別のセグメントについては削除しない等のように、データの削除基準は、データベースにデータを登録して利用する業務の要件に依り、個々のセグメントを単位として大きく相違している。
【0005】
そして、上記の削除処理は、例えば特定セグメントの各オカレンスに順にアクセスすると共に、アクセスしたオカレンスに登録されているデータが特定セグメントに対応する削除基準に合致しているか否かを判定し、削除基準に合致していた場合にはデータ(又はオカレンス自体)を削除する等の処理を行うプログラムを、各々異なる削除基準を個々のセグメント毎に用意することによって実現できるが、このようなプログラムの開発には多大な時間及びコストがかかると共に、プログラムの汎用性に乏しい(特定のデータベースにのみ利用可能で他のデータベースでは利用できない)という問題がある。
【0006】
このため、階層構造のデータベースにおける不要データの削除には、従来、個々のセグメントについての削除基準を削除基準テーブルに登録しておき、階層順テーブルを参照しながら階層構造のデータベースの個々のセグメントの各オカレンスに順にアクセスして逐一全量のデータを読み込み、対応する削除基準が削除基準テーブルに登録されている場合には、読み込んだデータが登録されている削除基準を満たしているか否かを判断し、削除基準を満たしていればデータ(オカレンス)を削除する、というアルゴリズムを用いていた。
【0007】
このアルゴリズムは、階層順テーブルを参照して処理対象のデータベースの構造(セグメントの数や個々のセグメントの論理的な関連付け等)を把握しながら処理対象のデータベースをスキャンしていくので、処理対象のデータベースの構造(セグメントの数や個々のセグメントの論理的な関連付け等)に応じてアルゴリズム自体を変更する必要がなく、削除基準テーブルの内容を書替えるのみで、階層構造を有する他のデータベースにおける不要データの削除にも利用することができ、汎用性に優れている。
【0008】
【発明が解決しようとする課題】
しかし、上記のアルゴリズムでは、特に処理対象のデータベースが多数のオカレンスが設けられた構造である場合に記憶装置からのデータの読み出し回数が膨大なものになり、不要データを削除する処理を完了するまでに非常に長い時間がかかるという問題があった。また、データベースのアクセス処理時間を短縮するために、データベースを複数の記憶装置に分散して記憶する構成を採用する場合もあるが、このような構成は、上記のアルゴリズムを適用して不要データを削除する際には却って不利となり、処理に膨大な時間がかかる(処理対象のデータベースの規模にも依存するが例えば数時間〜十数時間程度)ことになる。
【0009】
また、上述した問題はデータベースに対して不要データの削除を行う場合に限られるものではなく、データベースをスキャンし、データベースに記憶されているデータのうち所定の基準に合致するデータについてのみ、データの更新又は抽出を行う等の場合にも共通する問題であった。
【0010】
本発明は上記事実を考慮して成されたもので、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができるデータベース管理装置、データベース管理方法、プログラム、及び記録媒体を得ることが目的である。
【0011】
【課題を解決するための手段】
上記目的を達成するために請求項1記載の発明に係るデータベース管理装置は、記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、特定データベースに対する前記何れかの処理の実行が指示されると、前記階層順テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する処理手段と、を備えたデータベース管理装置であって、前記処理手段が特定データベースに対して前記実行が指示された処理を行う前に、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成するテーブル作成手段を備え、前記処理手段は、前記テーブル作成手段によって作成されたアクセス順序テーブルを用いて特定データベースに対し前記実行が指示された処理を行うことを特徴としている。
【0012】
請求項1記載の発明では、記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルが階層順テーブル記憶手段に記憶されていると共に、特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルが判断テーブル記憶手段に記憶されている。
【0013】
なお、本発明に係る特定データベースは、単一の記憶装置に記憶されていてもよいし、複数の記憶装置に分散されて記憶されていてもよい。特定データベースが複数の記憶装置に分散されて記憶されている場合であっても、例えば個々のセグメントの物理的な記憶位置を階層順テーブルに記憶させておき、個々のセグメントをアクセスする際に階層順テーブルを参照して物理的な記憶位置を判断することにより、複数の記憶装置に分散されて記憶されている特定データベースを、単一の記憶装置に記憶されているデータベースと同様に取り扱うことができる。
【0014】
また、請求項1記載の発明では、特定データベースに対する前記削除処理、前記更新処理及び前記抽出処理の何れかの処理の実行が指示されると、処理手段により、階層順テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードが順にアクセスされることで、特定データベースがスキャンされると共に、アクセスしたレコードに対応するセグメントについての実行基準が実行基準テーブルに登録されている場合には、アクセスしたレコードが実行基準に合致しているか否かが判断され、実行基準に合致していると判断したレコードに対してのみ前記実行が指示された処理が実行される。
【0015】
なお、本発明におけるレコードはオカレンスであってもよいし、特定のオカレンスと関連付けられて別の記憶装置に記憶されている特定のデータであってもよい。
【0016】
ここで、上記のようにデータベースをスキャンして実行基準に合致するレコードに対して実行が指示された処理を行う場合、データベースの規模が大きくなる(例えばセグメントやオカレンスの数が多くなる)に従って処理時間が大幅に増大する。これに対して請求項1記載の発明では、各レコードに対する所定処理の実行基準が、データベースの全てのセグメントについて登録されることは極めて稀であり、実行が指示された処理を行う可能性のないセグメントについては、実行基準テーブルに実行基準が登録されないことに着目し、処理手段が特定データベースに対して実行が指示された処理を行う前に、テーブル作成手段により、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを階層順テーブルから削除したアクセス順序テーブルを階層順テーブルと別に作成し、処理手段は、テーブル作成手段によって作成されたアクセス順序テーブルを用いて特定データベースに対し実行が指示された処理を行うようにしている。
【0017】
処理手段は、階層順テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスするので、この階層順テーブルに代えて、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを階層順テーブルから削除したアクセス順序テーブルを用いることにより、上記の条件に合致するセグメントの各レコードは処理手段によるアクセス対象から除外されることになる。
【0018】
請求項1記載の発明において、実行基準テーブルに実行基準が登録されているか否かを判断したり、上記の条件に合致するセグメントの実行基準を削除したアクセス順序テーブルを作成することは、特定データベースのデータを実際に読み出したりすることなく実現することができ、処理自体も短時間で完了するので、請求項1記載の発明によれば、特定データベースのデータの読み出し回数を減少させることができ、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができる。
【0019】
また、請求項1記載の発明に係る処理手段及びテーブル作成手段は、例えばコンピュータが所定のプログラムを実行することで実現することができるが、「階層順テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての実行基準が実行基準テーブルに登録されている場合には、アクセスしたレコードが実行基準に合致しているか否か判断し、実行基準に合致していると判断したレコードに対してのみ実行が指示された処理を実行する処理手段」に相当するプログラムが既に存在している環境であれば、処理手段については、実行基準テーブルに代えてアクセス順序テーブルを用いるように上記プログラムを変更するのみで実現することができ、テーブル作成手段に相当するプログラムを新規に開発するのみで、請求項1記載の発明に係るデータベース管理装置を得ることができるので、請求項1記載の発明に係るデータベース管理装置を得るためのプログラム開発に要する時間及びコストも削減することができる。
【0020】
請求項2記載の発明に係るデータベース管理方法は、記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、が設けられたコンピュータが特定の処理を行うことで実現されるデータベース管理方法であって、前記特定の処理は、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第1のステップ、特定データベースに対する前記何れかの処理の実行が指示されると、前記第1のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第2のステップを含むことを特徴としているので、請求項1記載の発明と同様に、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができる。
【0021】
請求項3記載の発明に係るプログラムは、記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、が設けられたコンピュータに特定の処理を実行させるためのプログラムであって、前記特定の処理は、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第1のステップ、特定データベースに対する前記何れかの処理の実行が指示されると、前記第1のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第2のステップを含むことを特徴としている。
【0022】
請求項3記載の発明に係るプログラムは、上記第1及び第2のステップを含む特定の処理、すなわちコンピュータを、請求項1に記載のデータベース管理装置として機能させるためのプログラムであるので、コンピュータが前記プログラムを実行することにより、請求項1記載の発明と同様に、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができる。
【0023】
請求項4記載の発明に係る記録媒体は、記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、が設けられたコンピュータに特定の処理を実行させるためのプログラムが記録された記録媒体であって、前記特定の処理は、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第1のステップ、特定データベースに対する前記何れかの処理の実行が指示されると、前記第1のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第2のステップを含むことを特徴としている。
【0024】
請求項4記載の発明に係る記録媒体には、上記第1及び第2のステップを含む処理、すなわちコンピュータを、請求項1に記載のデータベース管理装置として機能させるためのプログラムが記録されているので、コンピュータが前記記録媒体に記録されたプログラムを読み出して実行することにより、請求項1記載の発明と同様に、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができる。
【0025】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図1には、金融機関の各種業務を支援するために金融機関に設置されたコンピュータ・システム10が示されている。コンピュータ・システム10は、本発明に係るデータベース管理装置としての機能を兼ね備えたホスト・コンピュータ12を含んで構成されている。
【0026】
金融機関の各部署にはクライアントPC14又は専用端末16が多数台設置されており、それぞれのクライアントPC14は通信制御用サーバ18及びイントラネット20を介してホスト・コンピュータ12に各々接続されている。また、それぞれの専用端末16は、ターミナル・アダプタ(TA)22、モデム24、公衆電話網等から成る公衆通信網26を介してホスト・コンピュータ12に各々接続されている。なお、図1ではホスト・コンピュータ12を単一のコンピュータとして示しているが、これに限定されるものではなく、複数台のコンピュータで構成しても良いことは言うまでもない。
【0027】
ホスト・コンピュータ12はワークステーション又は汎用の大型コンピュータから成り、CPU12A、ROM12B、RAM12C、入出力ポート12Dを備え、これらがアドレスバス、データバス、制御バス等のバス12Eを介して互いに接続されて構成されている。入出力ポート12Dには、モデム28を介して公衆通信網26に接続され公衆通信網26を介して専用端末16と通信を行うための通信制御装置30、ディスプレイ32、マウス34、キーボード36、イントラネット20を介してクライアントPC14と通信を行うための通信制御用サーバ38、本発明に係る記憶装置としてのHDD40、及びCD−ROMからの情報の読み出しを行うCD−ROMドライブ42が各々接続されている。
【0028】
ホスト・コンピュータ12のHDD40には、本発明に係る特定データベースに対応する預金明細照会データベース(預金明細照会DB)と、該預金明細照会DBの階層順テーブル及び削除基準テーブルが記憶されている(何れも詳細は後述)と共に、後述するデータベース(DB)スキャン処理を含むDB管理処理をCPU12Aによって実行するためのDB管理プログラム(DB管理システムを実現するためのプログラム)がHDD40にインストールされており、更にオペレーティング・システム(OS)のプログラムもインストールされている。
【0029】
なお、HDD40に記憶されている階層順テーブルは本発明の階層順テーブルに、削除基準テーブルは本発明の実行基準テーブルに対応しており、HDD40は請求項1等に記載の階層順テーブル記憶手段及び判断テーブル記憶手段にも対応している。
【0030】
DB管理プログラムをホスト・コンピュータ12にインストール(移入)するには幾つかの方法があるが、例えばDB管理プログラムをセットアッププログラムと共にCD−ROM50に記録しておき、CD−ROM50をホスト・コンピュータ12のCD−ROMドライブ42にセットし、CPU12Aに対して前記セットアッププログラムの実行を指示すれば、CD−ROM50からDB管理プログラムが順に読み出され、読み出されたDB管理プログラムがHDD40に順に書き込まれることで、DB管理プログラムのインストールが行われる。
【0031】
なお、DB管理プログラムは請求項3に記載のプログラムに対応していると共に、請求項4に記載の記録媒体に記録されているプログラムにも対応しており、上記態様におけるCD−ROM50は請求項4に記載の記録媒体に対応している。
【0032】
また、上記のようにCD−ROM50を用いてDB管理プログラムをインストールすることに代えて、DB管理プログラムが、当初は公衆通信網26やイントラネット20、或いはその他のコンピュータ・ネットワーク(例えばLAN、インターネット、無線通信ネットワーク等)を介してホスト・コンピュータ12と接続される他の情報処理機器(例えばネットワークサーバ)の記憶装置に記憶されており、ホスト・コンピュータ12が前記情報処理機器と通信することで、前記情報処理機器からホスト・コンピュータ12へ伝送され、HDD40にインストールされてホスト・コンピュータ12で実行される構成を採用してもよい。
【0033】
次に本実施形態の作用を説明する。金融機関は顧客に対してエレクトロニック・バンキング(EB)と称するサービスを提供している。このEBは、家庭や企業に設置されたコンピュータ(又は専用端末)を顧客が操作することで、預金の残高照会、入出金照会、口座振り込み、振り替え等の各種サービスを顧客に対してオンラインで提供するものである。ホスト・コンピュータ12のHDD40に記憶されている預金明細照会DBは、上記のEB業務を支援するEBシステムに対し、預金為替システムが支援する預金為替業務によって発生した資金の移動の明細を表す情報(預金明細情報)を受け渡すことを目的として、預金明細情報を保有するデータベースである。
【0034】
本実施形態に係る預金明細照会DBは、例として図6に示すように、預金明細情報を構成する各種情報のうち予め定められた互いに異なるカテゴリの情報を登録するための複数のセグメントが、階層的に関連付けられた構造を有している。例えば図6に示すDBは、セグメントA〜セグメントHの8種類のセグメントから成り、最上位の第1階層にはセグメントA(ルートセグメント)、第2階層にはセグメントB,C,F、第3階層にはセグメントD,E,G,Hが各々設けられ、セグメントB,C,FはセグメントAと関連付けされ、セグメントD,EはセグメントCと関連付けされ、セグメントG,HはセグメントFと関連付けされた構造を有している。
【0035】
また、各セグメントは任意の数のオカレンスを作成可能とされており、預金明細照会DBに記憶する預金明細情報のうちの特定カテゴリの情報のデータ量が大きい等の場合には、預金明細情報の登録に際し、特定カテゴリの情報を登録するためのセグメントとして複数のオカレンスが作成され、作成されたオカレンスに特定カテゴリの情報が各々登録される。
【0036】
例えば図6では、セグメントBにはオカレンスB1,B2が、セグメントCにはオカレンスC1,C2が、セグメントDにはオカレンスD1〜D3が、セグメントEにはオカレンスE1〜E3が、セグメントFにはオカレンスF1,F2が、セグメントGにはオカレンスG1〜G3が、セグメントHにはオカレンスH1,H2が各々作成されており、オカレンスD1,E1,E2はオカレンスC1と関連付けされ、オカレンスD2,D3,E3はオカレンスと関連付けされ、オカレンスG1,H1,H2はオカレンスF1と関連付けされ、オカレンスG2,G3はオカレンスF2と関連付けされている。
【0037】
また、預金明細情報はデータ量が膨大であるため、HDD40は実際には複数のHDDから構成されており(例として図6に示すHDD40A,40Bを参照)、預金明細情報のうちの一部の情報(明細情報)は、預金明細照会DB本体が記憶されているHDD(図6の例ではHDD40A)と別のHDD(図6の例ではHDD40B)に記憶されている。例えば図6では、明細情報E1〜E3がHDD40Bに記憶されており、HDD40Aに記憶されている預金明細照会DB本体のうちセグメントEの各オカレンスE1〜E3には、明細情報E1〜E3を指し示すインデックス情報iDXが登録されている。
【0038】
一方、階層順テーブルは、例として図7(A)に示すように、預金明細照会DBを構成する全てのセグメントについて、階層レベルと物理アドレス(物理的な記憶位置)が各々登録されて構成されている。階層順テーブルへの各セグメントの登録順序は各セグメントの関連付けを考慮して定められており、階層順テーブルを参照することで各セグメントの関連付けを認識できるようになっている。すなわち、階層順テーブルに登録されている階層レベルが2以下(ルートセグメント以外)の各セグメントは、階層順テーブルにおける各セグメントの登録位置から上側に辿ったときに、最初に出現する、各セグメントよりも階層レベルが1階層上位のセグメント(例えばセグメントEであればセグメントC)に関連付けされていると判断することができる。
【0039】
また、削除基準テーブルは、預金明細照会DBを構成するセグメントのうち、対応するオカレンスを削除する可能性のあるセグメントについて、オカレンスを削除するか否かの基準を登録したテーブルである。例として図6では「●」「×」の記号を付して示すように、セグメントB,Gについて削除基準テーブルに削除基準が登録されている。
【0040】
ホスト・コンピュータ12の電源が投入されると、図2に示すように、OSのプログラムやDB管理プログラム、通信管理ソフト等のプログラムがメインメモリ(RAM12C)にロードされ、これらのプログラムが実行されることで、OSやDB管理システムが稼働する。また、DB管理プログラムのロード時に、メインメモリの記憶領域の一部が共通領域(図2参照)として確保され、階層順テーブル及び削除基準テーブルがHDD40から共通領域にコピーされる。共通領域にコピーされた階層順テーブル及び削除基準テーブルは、ホスト・コンピュータ12の電源が投入されている間、共通領域に常駐する。
【0041】
次に図3のフローチャートを参照し、本発明に係るデータベース管理方法が適用されたDBスキャン処理について説明する。このDBスキャン処理は、預金明細照会DBの不要データ削除等のように、預金明細照会DBをスキャンしながら行うべき複数種の処理の何れかの実行が指示された場合に実行される処理であり、実行すべき処理をオペレータが所定時刻に実行すべきジョブとして予め登録しておくことにより、所定時刻が到来すると実行される。
【0042】
DBスキャン処理はホスト・コンピュータ12のCPU12AがDB管理プログラムの一部であるDBスキャンプログラムを実行することによって実現され、まず図2に示すように、メインメモリの記憶領域の一部が、DBスキャンプログラムを稼働するための領域として確保された後に、この領域を使用して図3に示す一連の処理が順次実行される。なお、以下では図6に示すデータベース構造を用いて処理のアルゴリズムを説明する。
【0043】
ステップ100では、実行が指示された処理が不要データの削除か否か判定する。不要データの削除を行う場合には、ステップ100の判定が肯定されてステップ102へ移行し、以下で説明する階層順テーブル圧縮処理を行う。なお、実行が指示された処理が不要データの削除以外の処理であった場合には、ステップ100の判定が否定されることで、階層順テーブル圧縮処理を行うことなくステップ104へ移行する。また、階層順テーブル圧縮処理は請求項1に記載のテーブル作成手段に対応しており、請求項2〜請求項4に記載の第1のステップに相当する処理である。
【0044】
図4に示すように、階層順テーブル圧縮処理では、ステップ170において、メインメモリの共通領域に記憶(常駐)している階層順テーブルの1番目及び2番目のエントリのセグメントを、メインメモリのDBスキャンプログラム稼働領域に設けられたワークエリア(図2に示す削除処理用階層順テーブル作成領域)の1番目及び2番目の領域に各々コピーする。なお、以下では便宜的に、階層順テーブルをテーブルAと称し、階層順テーブル圧縮処理によってワークエリアに作成される削除処理用階層順テーブルをテーブルBと称する。
【0045】
次のステップ172では、テーブルBの終わりを意味する所定の情報(ストッパと称する)をテーブルBの3番目の領域に書き込み、ステップ174では、変数i,j,kの初期値として、変数iに3を、変数jに1を、変数kに2を代入する。なお、変数iはテーブルAから読み出すセグメントの位置を、変数jはテーブルBに登録されているセグメントのうち削除(上書き)しないことが確定した最終セグメントの位置を、変数kはテーブルBの最終エントリの位置を表している。ステップ176ではテーブルA(階層順テーブル)のi番目のエントリのセグメントの情報(階層レベル等)を参照する。
【0046】
ステップ178では変数kの値を変数sに代入し、次のステップ180では、テーブルAのi番目のエントリのセグメントは、テーブルBのs番目のエントリのセグメントよりも階層レベルが下位であるか否か判定する。判定が肯定された場合にはステップ192へ移行するが、判定が否定された場合にはステップ182へ移行し、テーブルBのs番目のエントリのセグメントの削除基準が削除基準テーブルに登録されているか否かを検索する。またステップ184では、ステップ182の検索によって該当する削除基準が抽出されたか否か判定する。
【0047】
判定が肯定された場合にはステップ190へ移行し、変数sの値を変数jに打入した後にステップ192へ移行する。また、ステップ184の判定が否定された場合にはステップ186へ移行し、変数sの値を1だけデクリメントする。次のステップ188では、変数sの値が変数jの値に等しいか否か判定する。判定が否定された場合にはステップ180に戻り、ステップ180以降を繰り返すが、判定が肯定された場合にはステップ192へ移行する。従って、ステップ180、ステップ184、ステップ188の何れかの判定が肯定される迄の間は、ステップ180〜ステップ188が繰り返されることになる。
【0048】
ステップ192では、テーブルAのi番目のエントリのセグメントをテーブルBのs+1番目の領域にコピーし、次のステップ194ではテーブルBのs+2番目の領域にストッパを書き込む。ステップ196では変数sに1を加算した値を変数kに代入する。また、次のステップ198では、テーブルAのi番目のエントリのセグメントがテーブルAの最終エントリに相当するセグメントか否か判定する。判定が否定された場合にはステップ200において、変数iの値を1だけインクリメントした後にステップ176に戻る。従って、ステップ198の判定が肯定される迄の間はステップ176〜ステップ200が繰り返されることになる。
【0049】
上述したステップ176〜200のループを、図7(A)に示す階層順テーブルを例に更に説明すると、前記ループを最初に実行するときには、テーブルBにはセグメントA,Bがコピーされており、i=3,j=1,k=2(=s)であることから、テーブルA(階層順テーブル)のi番目のエントリはセグメントC、テーブルB(削除処理用階層順テーブル)のs番目のエントリはセグメントBとなる。
【0050】
セグメントB,Cは何れも階層レベルが「2」であるのでステップ180の判定は否定されるが、セグメントBは、図6において「●」の記号が付されている(オカレンスB1参照)ことからも明らかなように、削除基準テーブルに削除基準が登録されているのでステップ184の判定が肯定される。これにより、変数jの値が2になり(ステップ190)、セグメントBを削除(上書き)しないことが確定する。また、テーブルBの3番目の領域にセグメントCが、4番目の領域にストッパが書き込まれると共に、変数kの値が3になり(ステップ192〜ステップ196)、ステップ198,200を経てステップ176に戻る。
【0051】
次は、i=4,j=2,k=3(=s)であることから、テーブルAのi番目のエントリはセグメントD、テーブルBのs番目のエントリはセグメントCとなる。セグメントDの階層レベルは「3」であり、セグメントCよりも階層レベルが下位であるのでステップ180の判定が肯定され、テーブルBの4番目の領域にセグメントDが、5番目の領域にストッパが書き込まれると共に、変数kの値が4になり(ステップ192〜ステップ196)、ステップ198,200を経てステップ176に戻る。
【0052】
次は、i=4,j=2,k=4(=s)であるため、テーブルAのi番目のエントリはセグメントE、テーブルBのs番目のエントリはセグメントDとなる。セグメントD,Eは何れも階層レベルが「3」であるのでステップ180の判定は否定される。またセグメントDは、図6において「×」の記号が付されている(オカレンスD1参照)ことからも明らかなように、削除基準テーブルに削除基準が登録されていないので、ステップ184の判定が否定され、変数sが1だけデクリメントされて3になる(ステップ186)が、j≠s(j=2)であるのでステップ188の判定が否定され、ステップ180に戻る。
【0053】
s=3になったため、テーブルAのi番目のエントリはセグメントEのままであるのに対し、テーブルBのs番目のエントリはセグメントCとなるが、セグメントEはセグメントCよりも階層レベルが下位であるのでステップ180の判定が肯定され、テーブルBの4番目の領域(すなわちセグメントDが書き込まれていた領域)にセグメントEが、5番目の領域にストッパが書き込まれると共に、変数kの値が4になり(ステップ192〜ステップ196)、ステップ198,200を経てステップ176に戻る。
【0054】
次は、i=5,j=2,k=4(=s)であるため、テーブルAのi番目のエントリはセグメントF、テーブルBのs番目のエントリはセグメントEとなる。セグメントFは階層レベルが「2」であり、セグメントEよりも上位であるのでステップ180の判定は否定される。またセグメントEは、図6において「×」の記号が付されている(オカレンスE1参照)ことからも明らかなように、削除基準テーブルに削除基準が登録されていないので、ステップ184の判定が否定され、変数sが1だけデクリメントされて3になる(ステップ186)が、j≠s(j=2)であるのでステップ188の判定が否定され、ステップ180に戻る。
【0055】
s=3になったため、テーブルAのi番目のエントリはセグメントFのままであるのに対し、テーブルBのs番目のエントリはセグメントCとなるが、セグメントEはセグメントCよりも階層レベルが下位であるのでステップ180の判定が肯定され、テーブルBの4番目の領域(すなわちセグメントDが書き込まれていた領域)にセグメントEが、5番目の領域にストッパが書き込まれると共に、変数kの値が4になり(ステップ192〜ステップ196)、ステップ198,200を経てステップ176に戻る。
【0056】
次は、i=6,j=2,k=3(=s)であることから、テーブルAのi番目のエントリはセグメントG、テーブルBのs番目のエントリはセグメントFとなる。セグメントGの階層レベルは「3」であり、セグメントFよりも階層レベルが下位であるのでステップ180の判定が肯定され、テーブルBの4番目の領域にセグメントGが、5番目の領域にストッパが書き込まれると共に、変数kの値が4になり(ステップ192〜ステップ196)、ステップ198,200を経てステップ176に戻る。
【0057】
次は、i=7,j=2,k=4(=s)であることから、テーブルAのi番目のエントリはセグメントH、テーブルBのs番目のエントリはセグメントGとなる。セグメントHはセグメントGと階層レベルが同位であるのでステップ180の判定が否定される。セグメントGは、図6において「●」の記号が付されている(オカレンスG1参照)ことからも明らかなように、削除基準テーブルに削除基準が登録されているのでステップ184の判定が肯定される。これにより、変数jの値が4になり(ステップ190)、セグメントF及びセグメントGを削除(上書き)しないことが確定する。
【0058】
なお、セグメントFは削除基準テーブルに削除基準が登録されていないが、関連付けられた下位階層のセグメントGの削除基準が削除基準テーブルに登録されているために、削除(上書き)の対象から除外される。そして、テーブルBの5番目の領域にセグメントHが、6番目の領域にストッパが書き込まれ、変数kの値が5になる(ステップ192〜ステップ196)。
【0059】
上記のループを変数iが階層順テーブルの最終エントリに相当する値になるまで繰り返すと、ステップ198の判定が否定されてステップ202へ移行し、変数kの値を変数sに代入する。次のステップ204では、テーブルBのs番目のエントリのセグメントの削除基準が削除基準テーブルに登録されているか否かを検索する。またステップ206では、ステップ204の検索によって該当する削除基準が抽出されたか否か判定する。
【0060】
判定が肯定された場合には階層順テーブル圧縮処理を終了するが、判定が否定された場合はステップ208へ移行し、テーブルBのs番目の領域にストッパを書き込むことで、当該セグメントをテーブルBから削除する。次のステップ210では変数sを1だけデクリメントし、ステップ212では変数sの値が変数jの値に一致したか否か判定する。判定が否定された場合にはステップ204に戻り、判定が肯定された場合には階層順テーブル圧縮処理を終了する。
【0061】
これにより、例えば図7(A)の階層順テーブルにおける最終エントリがセグメントHであるとすると、セグメントHは削除基準テーブルに削除基準が登録されていないので、先のステップ192でテーブルBに一旦書き込まれた後に、ストッパで上書きされることでテーブルBから削除され、例えば図7(A)に示す階層順テーブルから、セグメントC,D,E,Hが削除されて圧縮された階層順テーブル(図7(B)参照:本発明のアクセス順序テーブルに相当)が得られることになる。上記の階層順テーブル圧縮処理が終了すると、DBスキャン処理(図3)のステップ104へ移行する。
【0062】
上述した階層順テーブル圧縮処理は、例えば階層順テーブルをスキャンしながら削除対象のセグメントを記憶していき、最終エントリまでスキャンした後に、階層順テーブルを再度スキャンし、削除対象でないと判断したセグメントのみをワークエリアに順にコピーすることで削除処理用の階層順テーブルを作成するアルゴリズムによっても実現できるが、このアルゴリズムでは階層順テーブルを2回スキャンする必要があるので削除処理用の階層順テーブルの作成に時間がかかるという欠点がある。
【0063】
これに対し、図4に示したアルゴリズムでは、階層順テーブに登録されているセグメントを順にスキャンし、各セグメントをワークエリアに順にコピーする際に、既にワークエリアにコピーしたセグメントのうち削除可能なセグメントが有るか否かを判定し、削除可能と判断したセグメントをコピーするセグメントで上書きすることで削除処理用の階層順テーブルを作成するので、階層順テーブルのスキャンが1回で済み、削除処理用の階層順テーブルをより短時間で作成することができる。
【0064】
一方、DBスキャン処理では階層順テーブルを用いて処理が行われるが、ステップ100の判定が肯定されて階層順テーブル圧縮処理が行われた場合には、階層順テーブル圧縮処理で生成(圧縮)された階層順テーブル(すなわち本発明に係るアクセス順序テーブル)を用いて処理が行われる。また。DBスキャン処理のステップ104以降は、請求項1に記載の処理手段に対応しており、請求項2〜請求項4に記載の第2のステップに相当する処理である。
【0065】
ステップ104では変数nに1(初期値)を代入する。ステップ106では、階層順テーブルの最上位エントリのセグメント(図7の例ではルートセグメントであるセグメントA)の各オカレンスの中に、後述するステップ112以降の処理を行っていないオカレンスが存在しているか否か検索し、次のステップ110では、上記の検索によって該当するオカンレンスが抽出されたか否か判定する。
【0066】
該当するオカレンス(例えば図6に示すオカレンスA1)が抽出された場合には、ステップ110の判定が肯定されてステップ112へ移行し、ステップ108の検索によって抽出されたオカレンスを親n(この場合は「親1」)として記憶する。また、ステップ114では変数Xn(この場合はX1)に1(初期値)を代入する。
【0067】
ステップ116では、階層順テーブル上で親nのセグメントからXn番目のエントリを参照する。ステップ118では該当エントリが存在しているか否か判定する。判定が肯定された場合にはステップ120へ移行し、セグメントα(任意のセグメントを指し示すポインタ)として該当エントリのセグメントを設定する。次のステップ122では、セグメントαは親nのセグメントより階層レベルが下位か否か判定する。判定が肯定された場合にはステップ124へ移行する。ステップ124では、親nと関連付けられたセグメントαの各オカレンスのうち未処理のオカレンスを検索し、次のステップ126では、ステップ124の検索によって該当するオカンレンスが抽出されたか否か判定する。
【0068】
ステップ126の判定が否定された場合にはステップ142へ移行し、変数Xnを1だけインクリメントしてステップ116に戻る。一方、ステップ126の判定が肯定された場合にはステップ127へ移行し、該当オカレンスのデータを預金明細照会DBから読み出した後に、ステップ128でDB操作処理を行う。なお、このDB操作処理については後述する。次のステップ130では変数nの値を1だけインクリメントし、ステップ132では、ステップ128のDB操作処理を行ったオカレンスを親nとして記憶し、ステップ134では変数Xnに1(初期値)を代入する。
【0069】
ステップ136では、該当オカンレンスはインデックス情報iDXが登録されたオカレンス(例えば図6に(iDX)と表記されたオカレンスE1〜オカレンスE3)か否か判定する。判定が否定された場合には、何ら処理を行うことなくステップ116に戻る。また、判定が肯定された場合にはステップ138へ移行し、該当オカレンスに登録されているインデックス情報iDXに基づいて、該当オカレンスと関連付けられた明細情報を預金明細照会DBから読み出す。そして次のステップ140では、読み出した明細情報に対して前述のDB操作処理を行った後に、ステップ116に戻る。
【0070】
また、ステップ118又はステップ122の判定が否定された場合にはステップ144へ移行し、変数nを1だけデクリメントする。次のステップ146では、ステップ144のデクリメントによってnよりも小さくなったか否か判定する。判定が否定された場合にはステップ116へ戻り、判定が肯定された場合にはステップ106に戻る。
【0071】
上述したステップ112〜146を、図6に示すDB構造に対して図7(A)に示す階層順テーブルを使用してスキャンを行う場合を例にとり、更に説明すると、まずステップ112でオカレンスA1が親1として設定されると共に、ステップ114で変数X1に1が代入された後に、ステップ116の検索により、親1(オカレンスA1)のセグメント(セグメントA)からX1(=1)番目のセグメントとしてセグメントBが抽出される。セグメントBは親1のセグメント(セグメントA)よりも下位であるためステップ122の判定が肯定され、ステップ126の検索により、親1(オカレンスA1)と関連付けられたセグメントBの未処理オカレンスとしてオカレンスB1が抽出される。
【0072】
オカレンスB1に対してDB操作処理(ステップ128)が行われた後に、オカレンスB1と関連付けられた下位のオカレンスを検索するために、オカレンスB1が親2とされ、変数X2が1に初期設定されて(ステップ130〜ステップ134)ステップ116に戻る。
【0073】
続いて、ステップ116の検索により、親2(オカレンスB1)のセグメント(セグメントB)からX2(=1)番目のセグメントとしてセグメントCが抽出されるが、セグメントCは親2のセグメント(セグメントB)と階層レベルが同位であり、オカレンスB1と関連付けられた下位のオカレンスは存在しないと判断できるので、ステップ122の判定が否定されて変数nが1に戻され、ステップ116に戻る。
【0074】
次に、ステップ116の検索により、オカレンスA1からX1(=1)番目のセグメントとして再度セグメントBが抽出され、ステップ124の検索によってオカレンスB2が抽出される。そして、前述のオカレンスB1と同様に、オカレンスB2に対してDB操作処理(ステップ128)が行われた後に、オカレンスB2と関連付けられた下位のオカレンスを検索するために、オカレンスB2が親2とされ、変数X2が1とされてステップ116に戻り、ステップ116の検索により、親2(オカレンスB2)のセグメント(セグメントB)からX2(=1)番目のセグメントとしてセグメントCが抽出されるが、セグメントCは親2のセグメント(セグメントB)と階層レベルが同位のため、ステップ122の判定が否定されて変数nが1に戻され、ステップ116に戻る。
【0075】
続いて、ステップ116の検索により、オカレンスA1からX1(=1)番目のセグメントとして再度セグメントBが抽出されるが、オカレンスA1と関連付けられたセグメントBの未処理のオカレンスは存在していないので、ステップ126の判定が否定され、変数X1が2とされてステップ116に戻る。
【0076】
次に、ステップ116の検索により、オカレンスA1からX1(=2)番目のセグメントとして再度セグメントCが抽出され、セグメントCは親1のセグメント(セグメントA)よりも階層レベルが下位であるためステップ122の判定が肯定され、ステップ124の検索によってオカレンスC1が抽出される。そして、オカレンスC1に対してDB操作処理(ステップ128)が行われた後に、オカレンスC1と関連付けられた下位のオカレンスを検索するために、オカレンスC1が親2とされ、変数X2が1とされてステップ116に戻る。
【0077】
続いて、ステップ116の検索により、親2(オカレンスC1)のセグメント(セグメントC)からX2(=1)番目のセグメントとしてセグメントDが抽出される。
【0078】
そして、以下同様にして、DB操作処理の対象のオカレンスが抽出され抽出されたオカレンスに対してDB操作処理(ステップ128)を行った後に、抽出されたオカレンスと関連付けられた下位のオカレンスが存在しているか否かが検索され、該当するオカレンスが存在していなければ抽出されたオカレンスと同一セグメントのオカレンスが存在しているか否かが検索され、該当するオカレンスが存在していなければ抽出されたオカレンスと同一の親に関連付けられた他のオカレンスが存在しているか否かが検索され、該当するオカレンスが存在していなければ、検索によって既に抽出されたより階層レベルの高い親と関連付けられたオカレンスが存在しているか否かが検索されることになる。
【0079】
ステップ106の検索によって抽出されたルートセグメントのオカレンスと直接又は間接的に関連付けられた全てのオカレンスをスキャンすると、ステップ146の判定が肯定されてステップ106に戻る。そして、ステップ106の検索によって該当するオカレンスが抽出された場合には、抽出されたオカレンスを起点としてステップ112以降の処理を繰り返し、ステップ106の検索によって該当するオカレンスが抽出されなかった場合には、ステップ110の判定が否定されてDBスキャン処理を終了する。
【0080】
次に、DB操作処理について図5のフローチャートを参照して説明する。ステップ220では、実行が指示された処理が不要データの削除か否か判定する。判定が否定された場合にはステップ222へ移行し、処理対象のオカレンス又は明細情報に対して指示された処理(例えば所定の条件に合致しているか否かを判断し、合致していればデータをHDD40の別領域に保存する等)を実行する。
【0081】
一方、実行が指示された処理が不要データの削除であれば、ステップ220の判定が肯定されてステップ224へ移行し、処理対象のオカレンス又は明細情報に対応するセグメントの削除基準が削除基準テーブルに登録されているか否かを判定する。判定が否定された場合には何ら処理を行うことなくDB操作処理を終了する。
【0082】
また、処理対象のオカレンス又は明細情報に対応するセグメントの削除基準が削除基準テーブルに登録されていた場合には、ステップ224の判定が肯定されてステップ226へ移行し、DBスキャン処理(図3)のステップ127又はステップ138で読み出したデータに対し、削除基準テーブルに登録されている削除基準(処理対象のオカレンス又は明細情報に対応するセグメントの削除基準)に従って所定の判定処理(例えば加減算や絶対値比較、日付比較、ビット比較等)を行うことにより、処理対象のオカレンス又は明細情報が削除基準に合致しているか否か判定する。
【0083】
判定が否定された場合は何ら処理を行うことなくDB操作処理を終了する。また、ステップ226の判定が肯定された場合にはステップ228へ移行し、処理対象のオカレンス又は明細情報と関連付けられた下位のオカレンス又は明細情報が存在しているか否かを検索する。そして、次のステップ230では、処理対象のオカレンス又は明細情報を(ステップ228の検索によってオカレンス又は明細情報が抽出された場合には、これらのオカレンス又は明細情報も)預金明細照会DBから削除する。
【0084】
前述のように、DBスキャン処理では、階層順テーブルに基づいてスキャン対象のDB(預金明細照会DB)の構造を認識してDBのスキャンを行っているので、図6に示すDBの階層順テーブルとして図7(A)に示すテーブルを用いた場合には、DBの各オカレンスが、『A1→B1→B2→C1→D1→E1(idx)→E1(明細)→E2(idx)→E2(明細)→C2→D2→D3→E3(idx)→E3(明細)→F1→G1→H1→H2→F2→G2→G3』の順序でアクセス(スキャン)されることになる。
【0085】
一方、図6に示すDBの階層順テーブルとして、前述した階層順テーブル圧縮処理を経た図7(B)に示すテーブルを用いた場合には、該テーブルに登録されていないセグメントC,D,E,Hの各オカレンス(図6にハッチングを付して示すオカレンス)は存在しないものと認識されるので、DBの各オカレンスのうち、セグメントC,D,E,H以外のセグメントの各オカレンスのみが『A1→B1→B2→F1→G1→F2→G2→G3』の順序でアクセス(スキャン)されることになる。
【0086】
本実施形態では、DBスキャン処理により預金明細照会DBに対して不要データの削除を行う場合に、階層順テーブル圧縮処理を経た階層順テーブルを用い、該テーブルに登録されているセグメント(削除基準テーブルに削除基準が登録されているか、又は削除基準が登録されていない下位のセグメントと関連付けられているセグメント)の各オカレンスのみをアクセスする(読み出す)ので、前出のスキャン順序を比較しても明らかなように、預金明細照会DBからのデータの読み出し回数を大幅に減少させることができ、読み出しに比較的長い時間がかかるデータ(DB本体と物理的に別のHDDに記憶されているデータ(本実施形態ではHDD40Bに記憶されている明細情報))の読み出し回数も少なくなることで、預金明細照会DBをスキャンして不要データを削除することを、従来に比して非常に短い時間で完了させることができる。
【0087】
なお、上記ではデータベースの各セグメントの物理アドレスを、階層レベル等の情報と共に階層順テーブルに登録しておく例を説明したが、本発明はこれに限定されるものではなく、各セグメントの物理アドレスを別テーブルに記憶すると共に、このテーブルを、例えば図2に示すデータベース管理システム等の管理下におき、特定のセグメントについて物理アドレスの問い合わせがあった場合に、特定のセグメントの物理アドレスを前記テーブルから読み出し、読み出した物理アドレスを問い合わせ元(例えば前述のDBスキャン処理を実行するためのアプリケーション・プログラム等)に返すように、データベース管理システム等を構成してもよい。
【0088】
また、上記では本発明に係る特定データベースの一例として預金明細照会DBを用いて説明したが、本発明は階層構造を有するデータベースであれば、登録されているデータの内容とは無関係に適用可能であり、例えば金融機関の他の業務(例として外国為替業務や融資業務、情報業務等)で用いられる階層構造の他のデータベースにも適用可能であることは言うまでもない。
【0089】
また、上記ではホスト・コンピュータ12がDB管理プログラムのうちのDBスキャンプログラムを実行することで、階層順テーブル圧縮処理やDB操作処理を含むDBスキャン処理が実現される場合を例に説明したが、これに限定されるものではなく、端末側(クライアントPC14又は専用端末16等)が所定のプログラムを実行することで実現されるようにしてもよいし、ホスト・コンピュータ12と端末側が協働して処理を行うことで実現されるようにしてもよい。
【0090】
更に、上記では本発明に係る所定処理として、削除基準テーブルに削除基準を登録したセグメントの各レコード(オカレンス・明細情報)のうち、対応する削除基準に合致するレコード(不要データ)を削除する処理を例に説明したが、本発明はこれに限定されるものではなく、例えばテーブルに更新基準を登録したセグメントの各レコードのうち、対応する更新基準に合致するレコードを更新する処理や、テーブルに抽出基準を登録したセグメントの各レコードのうち、対応する抽出基準に合致するデータを抽出する処理を適用してもよい。
【0091】
【発明の効果】
以上説明したように本発明は、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行う前に、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを階層順テーブルから削除したアクセス順序テーブルを階層順テーブルと別に作成し、アクセス順序テーブルを用いて特定データベースに対する所定処理を行うようにしたので、データベースをスキャンして実行基準に合致するレコードに対して削除又は更新又はデータの抽出を行うことを短時間で完了させることができる、という優れた効果を有する。
【図面の簡単な説明】
【図1】 本実施形態に係るコンピュータ・システムの概略構成を示すブロック図である。
【図2】 稼働中のホスト・コンピュータにおけるメインメモリの記憶領域の状態の一例を示す概略図である。
【図3】 DBスキャン処理の内容を示すフローチャートである。
【図4】 階層順テーブル圧縮処理の内容を示すフローチャートである。
【図5】 DB操作処理の内容を示すフローチャートである。
【図6】 本実施形態に係る預金明細照会DBの構成の一例を示す概略図である。
【図7】 (A)は元の階層順テーブル、(B)は階層順テーブル圧縮処理後の階層順テーブルの一例を示す概略図である。
【符号の説明】
10 コンピュータ・システム
12 ホスト・コンピュータ
14 クライアントPC
16 専用端末
40 HDD
50 CD−ROM
Claims (4)
- 記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、
前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、
特定データベースに対する前記何れかの処理の実行が指示されると、前記階層順テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する処理手段と、
を備えたデータベース管理装置であって、
前記処理手段が特定データベースに対して前記実行が指示された処理を行う前に、特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成するテーブル作成手段を備え、
前記処理手段は、前記テーブル作成手段によって作成されたアクセス順序テーブルを用いて特定データベースに対し前記実行が指示された処理を行う
ことを特徴とするデータベース管理装置。 - 記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、
前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、
が設けられたコンピュータが特定の処理を行うことで実現されるデータベース管理方法であって、
前記特定の処理は、
特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第1のステップ、
特定データベースに対する前記何れかの処理の実行が指示されると、前記第1のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致している と判断した前記レコードに対してのみ前記実行が指示された処理を実行する第2のステップ
を含むことを特徴とするデータベース管理方法。 - 記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、
前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、
が設けられたコンピュータに特定の処理を実行させるためのプログラムであって、
前記特定の処理は、
特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第1のステップ、
特定データベースに対する前記何れかの処理の実行が指示されると、前記第1のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセスしたレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第2のステップ
を含むことを特徴とするプログラム。 - 記憶装置に記憶された、互いに異なるカテゴリの情報を登録するための複数のセグメントが階層的に関連付けられた構造を有すると共に、特定カテゴリの情報を登録するためのレコードを各セグメントに任意の数作成可能とされた特定データベースをスキャンする際の、前記特定データベースの個々のセグメントを単位とするアクセス順序を規定する階層順テーブルを記憶する階層順テーブル記憶手段と、
前記特定データベースの特定のセグメントの各レコードに対する、レコードを削除する削除処理、レコードに登録されているデータを更新する更新処理、及び、レコードに登録されているデータを抽出する抽出処理の何れかの処理の実行基準を、個々のセグメントを単位として、特定データベースの各セグメントのうちの任意のセグメントについて登録した実行基準テーブルを記憶する判断テーブル記憶手段と、
が設けられたコンピュータに特定の処理を実行させるためのプログラムが記録された記録媒体であって、
前記特定の処理は、
特定データベースの各セグメントのうち、実行基準テーブルに実行基準が登録されておらず、かつ関連付けられた下位階層のセグメントが存在しないか又は関連付けられた下位階層の各セグメントも実行基準テーブルに実行基準が登録されていないセグメントを検索し、検索によって抽出されたセグメントを前記階層順テーブルから削除したアクセス順序テーブルを前記階層順テーブルと別に作成する第1のステップ、
特定データベースに対する前記何れかの処理の実行が指示されると、前記第1のステップで作成したアクセス順序テーブルに規定されたアクセス順序に従って個々のセグメントの各レコードに順にアクセスすると共に、アクセスしたレコードに対応するセグメントについての前記実行基準が前記実行基準テーブルに登録されている場合には、前記アクセス したレコードが前記実行基準に合致しているか否か判断し、前記実行基準に合致していると判断した前記レコードに対してのみ前記実行が指示された処理を実行する第2のステップ
を含むことを特徴とする記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001288555A JP3772105B2 (ja) | 2001-09-21 | 2001-09-21 | データベース管理装置、方法、プログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001288555A JP3772105B2 (ja) | 2001-09-21 | 2001-09-21 | データベース管理装置、方法、プログラム及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003099300A JP2003099300A (ja) | 2003-04-04 |
JP3772105B2 true JP3772105B2 (ja) | 2006-05-10 |
Family
ID=19111182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001288555A Expired - Fee Related JP3772105B2 (ja) | 2001-09-21 | 2001-09-21 | データベース管理装置、方法、プログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3772105B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7333992B2 (en) * | 2003-05-22 | 2008-02-19 | Microsoft Corporation | System and method for identifying and storing changes made to a table |
CN104217165B (zh) * | 2014-09-16 | 2016-07-06 | 百度在线网络技术(北京)有限公司 | 文件的处理方法及装置 |
CN113157736B (zh) * | 2021-04-28 | 2024-01-05 | 联通沃音乐文化有限公司 | 分布式数据库中的查询计划优化方法及*** |
-
2001
- 2001-09-21 JP JP2001288555A patent/JP3772105B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003099300A (ja) | 2003-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6711566B2 (en) | Database processing method and apparatus using handle | |
US9087101B2 (en) | Document management techniques to account for user-specific patterns in document metadata | |
US6449607B1 (en) | Disk storage with modifiable data management function | |
JP2000222195A (ja) | 修正プログラムを継承したプログラムの自動生成方法、プログラム自動生成装置及び修正プログラムを継承したプログラムを自動生成するプログラムを記録した記録媒体 | |
JP7223097B2 (ja) | 仕訳データ作成装置、仕訳データ作成方法および仕訳データ作成プログラム | |
US20080098013A1 (en) | Data access and communication system | |
JP3772105B2 (ja) | データベース管理装置、方法、プログラム及び記録媒体 | |
US7856457B1 (en) | Uniquely identifying an object before it is stored in a database | |
CN112181248A (zh) | 一种历史列表的操作方法和装置 | |
JP2001147923A (ja) | 類似文書検索装置、類似文書検索方法及び記録媒体 | |
JP7312157B2 (ja) | 信用情報照会装置、信用情報照会方法、および、信用情報照会プログラム | |
JP7250652B2 (ja) | 引落結果更新装置、引落結果更新方法および引落結果更新プログラム | |
JP6947596B2 (ja) | 入金処理装置、入金処理方法、及び入金処理プログラム | |
JPH11184889A (ja) | イメージデータ管理装置 | |
JPH07334406A (ja) | マルチメディアデータベースシステム | |
JP4209858B2 (ja) | データベース管理装置及びプログラム | |
KR20000014913A (ko) | 온라인 개인 디렉토리 제공 서비스 시스템 및 그방법 | |
JP4447808B2 (ja) | 更新データの提供方法 | |
CN113177828A (zh) | 一种物品推荐方法、装置、设备及存储介质 | |
US20010021933A1 (en) | Data processing system with file memory and data processing method | |
JP2000123038A (ja) | データベース装置、データベースアクセス方法及びデータベースアクセスプログラムを記録した記録媒体 | |
AU2004201570B2 (en) | Data access and communication system | |
JPH10289254A (ja) | 情報管理システムおよび記録媒体 | |
JPH05181715A (ja) | マスタ管理方式 | |
JPH02253451A (ja) | データベース管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050920 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051025 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060213 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150217 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |