(57)【要約】データ抽出装置がデータベースからページＡ１，Ｂ１，Ｃ１を含むデータ群（２１）を抽出する場合、抽出処理部は、排他制御部を介してページＡ１に対してのみ処理排他を獲得し、ページＡ１に含まれるレコードを読み出した後、ページＡ１に対する処理排他を解除し、つぎにページＢ１に対する処理排他を獲得する。このように、読み出しをおこなうページに対してのみ処理排他を獲得し、他のページに対するアクセスを許可することで、データ抽出処理中におけるデータ群（２１）に対する更新を可能とする。さらに、更新処理部による更新動作を監視し、データベースの更新がおこなわれた場合にその変更内容を更新ログとして記憶し、この更新ログを用いて抽出したデータを抽出処理の開始時点の値に戻すことで、データ群（２１）について、抽出処理開始時点における値を取得する。
2004023308.tif 000002
【特許請求の範囲】
【請求項１】
データベースが記憶した複数のデータを順次読み出すデータ抽出処理をおこなうデータ抽出方法であって、
前記データ抽出処理の開始から終了までの間に前記データベースが記憶したデータの更新があった場合、当該データの更新内容を更新履歴として取得する更新履歴取得工程と、
前記更新履歴をもとに、前記データ抽出処理が抽出した前記複数のデータの内容を、前記データ抽出処理の開始時点の内容に書き換える書き換え工程と、
を含むことを特徴とするデータ抽出方法。
【請求項２】
前記データ抽出処理が抽出する複数のデータのうち、抽出を実行中のデータに対する更新を禁止し、抽出を実行済みのデータおよび抽出の実行前のデータに対する更新を許可する排他制御工程をさらに含むことを特徴とする請求の範囲第１項に記載のデータ抽出方法。
【請求項３】
前記更新履歴取得工程は、前記データ抽出処理が抽出する複数のデータのうち、前記データ抽出処理による抽出が終了したデータについて、当該データの更新履歴の取得を終了することを特徴とする請求の範囲第２項に記載のデータ抽出方法。
【請求項４】
データベースが記憶した複数のデータを順次読み出すデータ抽出処理をおこなうデータ抽出装置であって、
前記データ抽出処理の開始から終了までの間に前記データベースが記憶したデータの更新があった場合、当該データの更新内容を更新履歴として取得する更新履歴取得手段と、
前記更新履歴をもとに、前記データ抽出処理が抽出した前記複数のデータの内容を、前記データ抽出処理の開始時点の内容に書き換える書き換え手段と、
を備えたことを特徴とするデータ抽出装置。
【請求項５】
前記データ抽出処理が抽出する複数のデータのうち、抽出を実行中のデータに対する更新を禁止し、抽出を実行済みのデータおよび抽出の実行前のデータに対する更新を許可する排他制御手段をさらに備えたことを特徴とする請求の範囲第４項に記載のデータ抽出装置。
【請求項６】
前記更新履歴取得手段は、前記データ抽出処理が抽出する複数のデータのうち、前記データ抽出処理による抽出が終了したデータについて、当該データの更新履歴の取得を終了することを特徴とする請求の範囲第５項に記載のデータ抽出装置。
【請求項７】
前記データベースが記憶した複数のデータの更新動作を実行する更新用プロセッサと、前記データ抽出処理を実行する抽出用プロセッサと、を独立に設けたことを特徴とする請求の範囲第４項から請求の範囲第６項のいずれか一つに記載のデータ抽出装置。
【発明の詳細な説明】
【技術分野】  この発明は、データベースが記憶した複数のデータを順次読み出すデータ抽出処理をおこなうデータ抽出方法およびデータ抽出装置に関し、特に、データベースに対する処理排他を短縮したデータ抽出方法およびデータ抽出装置に関する。
【背景技術】  従来、データの共有化、統合管理、高い独立性を目的として、データをあらかじめ定義した形で集中して管理するデータベースが利用されてきた。一般に、データベースはネットワークなどを介して複数の端末に接続され、各端末が利用するデータを一元管理している。したがって各端末がデータベースに記憶した所望のデータの読み出しおよび書き込みをおこなうことで、複数の端末でデータの共有が実現できる。
このように、データベースを複数の端末で共有する場合、データベースが記憶したデータの二重更新を避けるため、排他制御をおこなう必要がある。排他制御は、データ管理において、複数の端末が同時に同じデータにアクセスできないようにする制御である。すなわち、データベースが記憶するデータに対してある端末がアクセスしている場合、アクセス終了までそのデータに対する他の端末からのアクセスを許可せずに待機させることにより、データが同時に更新されることを防止する。所定のデータに対して他のアクセスを許可しない状態にすることを、データに対して処理排他を獲得する、と言う。
従来、バックアップなどの目的のために、データベースが記憶したデータを大量に読み出す場合、読み出すデータ全体に対して処理排他を獲得する必要があった。ここで、データベースから大量のデータを読み出す操作をデータの抽出と言う。
バックアップなどのデータ抽出では、所定の時点におけるデータの内容を読み出して記憶するが、抽出に必要な時間はデータ量に応じて増大する。したがって、データ抽出の途中で、抽出対象に含まれるデータに対するアクセスを許可した場合、抽出対象データの一部が変更され、各データの値がデータ抽出開始時点の値ではなく、そのデータを読み出した時点での値となり、抽出開始時点のデータを得ることができなくなる可能性がある。さらに抽出するデータの間に相関関係がある場合、データ間の相関関係に不整合を引き起こす危険がある。
このため、従来は、データ抽出の開始から終了まで、抽出対象となる全てのデータに対して処理排他を獲得することで、データ内容に不整合が生じることを防ぎ、データ抽出開始時点における各データの値を読み出すようにしていた。
しかしながら、従来のデータ抽出の方法では、データ抽出開始からデータ抽出終了までの間、抽出対象となるデータの更新ができないという問題点があった。
特に、抽出するデータ量が大きい場合、データ抽出に必要な処理排他の時間は大きくなる。一般に、データベースの更新に求められるレスポンスは、数百ミリ秒程度であるが、データ抽出に必要な処理排他の時間はこの値に比して遥かに大きく、データベースの更新レスポンスを大きく低下させる。
逆に、データベースの更新レスポンスを確保するためには、データベースが更新されない状態を選別してデータ抽出をおこなうことが必要であり、データ抽出を開始する時点に制限があった。また、データベースが常に更新可能な状態にあるデータベースにおいてはデータ抽出が実行できず、データ抽出のために更新を停止させる必要があるという問題点があった。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、データベースに対する処理排他を短縮し、更新レスポンスを低下させることなく、任意の時点でデータ抽出を実行可能なデータ抽出方法およびデータ抽出装置を提供することを目的とする。
【発明の開示】
上述した課題を解決し、目的を達成するため、本発明に係るデータ抽出方法およびデータ抽出装置は、データベースが記憶した複数のデータを順次読み出すデータ抽出処理をおこなうデータ抽出方法であって、前記データ抽出処理の開始から終了までの間に前記データベースが記憶したデータの更新があった場合、当該データの更新内容を更新履歴として取得する更新履歴取得工程と、前記更新履歴をもとに、前記データ抽出処理が抽出した前記複数のデータの内容を、前記データ抽出処理の開始時点の内容に書き換える書き換え工程と、を含むことを特徴とする。
この発明によれば、データ抽出処理を実行中にデータベースに対しておこなわれたデータ更新を更新履歴として記憶し、データ抽出処理によって抽出したデータの内容を、更新履歴を用いてデータ抽出処理開始時点の値に書き換えることで、データ抽出処理開始時点におけるデータ内容を得ることができる。
また、本発明に係るデータ抽出方法およびデータ抽出装置は、前記データ抽出処理が抽出する複数のデータのうち、抽出を実行中のデータに対する更新を禁止し、抽出を実行済みのデータおよび抽出の実行前のデータに対する更新を許可する排他制御工程をさらに含むことを特徴とする。
この発明によれば、データ抽出方法およびデータ抽出装置は、抽出を実行中のデータに対して処理排他を獲得し、抽出を実行済みのデータおよび抽出の実行前のデータに対する処理排他を獲得しないので、抽出対象のデータに対しても更新可能とし、更新のレスポンスを向上している。
また、本発明に係るデータ抽出方法およびデータ抽出装置では、前記更新履歴取得工程は、前記データ抽出処理が抽出する複数のデータのうち、前記データ抽出処理による抽出が終了したデータについて、当該データの更新履歴の取得を終了することを特徴とする。
この発明によれば、データ抽出方法およびデータ抽出装置は、複数のデータを順次読み出し、読み出しが終了したデータについては更新履歴の取得を終了することで、更新履歴の取得を必要最小限としている。
また、本発明に係るデータ抽出装置は、前記データベースが記憶した複数のデータの更新に用いるデータベースバッファと、前記データ抽出処理に用いる抽出用バッファメモリと、を独立に設けたことを特徴とする。
この発明によれば、抽出に用いる抽出用バッファメモリを更新に用いるデータベースバッファメモリに対して独立したメモリとすることで、抽出処理と更新処理とが同じデータに対して同時に行われた場合にも、抽出処理のための処理排他によって、更新処理を阻害する時間を極力短くすることができる。
本発明に係るデータ抽出装置は、前記データベースが記憶した複数のデータの更新動作を実行する更新用プロセッサと、前記データ抽出処理を実行する抽出用プロセッサと、を独立に設けたことを特徴とする。
この発明によれば、更新を実行するプロセッサを、抽出を実行するプロセッサに対して独立したプロセッサとすることで、抽出処理がプロセッサの処理能力を大量に使用している場合においても更新用の処理能力を確保することができる。
この発明に係るデータ抽出装置では、抽出用バッファメモリを用意し、抽出したページをデータベース用のバッファから抽出用バッファメモリに複写する。このように、レコードが複数個格納されたページ単位で複写をおこなうことで、データベースバッファからレコード単位で複写をおこなう場合に比して少ない時間で複写することができ、処理排他を短縮することができる。
さらに、抽出処理と更新処理が同じデータに対して同時に行われた場合にも、抽出処理のための処理排他によって、更新処理を阻害する時間を極力短くすることができる。
【図面の簡単な説明】  第１図は、本実施の形態におけるデータ抽出方法の概念を説明する説明図であり、第２図は、データ抽出装置の構成を示す構成図であり、第３図は、データベースからページＡ１を抽出する場合を説明する説明図であり、第４図は、データベースからページＢ１を抽出する場合を説明する説明図であり、第５図は、データベースからページＣ２を抽出する場合を説明する説明図であり、第６図は、データ抽出装置１におけるデータ抽出の処理動作を説明するフローチャートであり、第７図は、データ最旧化部１８による最旧化の処理動作を説明するフローチャートであり、第８図は、形式変換部１９によるデータ形式の変換処理の動作を説明するフローチャートである。
【発明を実施するための最良の形態】  以下に添付図面を参照して、この発明に係るデータ抽出方法およびデータ抽出装置の好適な実施の形態を詳細に説明する。
第１図は、本実施の形態におけるデータ抽出方法の概念を説明する説明図である。第１図において、データベース２は、データ抽出装置１を介してネットワーク３に接続されている。また、データベース５は、データ抽出装置４を介してネットワーク３に接続されている。さらに、端末６がネットワーク３に接続されている。
データベース２は、その内部にデータ群２１，２２を記憶している。データベース２の内部におけるデータ管理は、ページと呼称される入出力単位を用いておこなう。データ群２１は、ページＡ１，Ｂ１，Ｃ１を含んで構成され、データ群２２は、ページＨ１，Ｉ１，Ｊ１を含んで構成される。
一方、データ郡２１およびデータ群２２において、データの内容はレコードと呼称される単位をもちいて各ページ内に記憶する。データベースに対する外部からのデータの入出力は、このレコードを単位としておこなう。
端末６がデータベース２に記憶されたデータ群２１に含まれるデータを更新する場合、端末６はネットワーク３を介してデータ抽出装置１にアクセスする。データ抽出装置１内部の更新処理部１１は、端末６からのアクセスをもとに排他制御部１３を介して所望のデータの処理排他を獲得し、データの読み出しおよび書き込みをおこなう。このデータ更新はレコード単位でおこなわれるため、更新処理部１１があるレコードに対してアクセスする場合、排他制御部１３は、そのレコードを記憶しているページに対して処理排他を獲得する。
一方、データベース２に記憶されたデータ群２１を抽出し、データベース５に記憶する場合、まず、抽出処理部１２が排他制御部１３を介して抽出するデータの処理排他を獲得し、データ抽出を開始する。ここで、抽出処理部１２は、抽出するデータ群２１に含まれるページＡ１，Ｂ１，Ｃ１に対して順次処理排他を獲得する。
すわなち、抽出処理部１２は、最初にページＡ１に対してのみ処理排他を獲得し、ページＡ１に含まれるレコードを読み出した後、ページＡ１に対する処理排他を解除し、つぎにページＢ１に対する処理排他を獲得する。
このように、読み出しをおこなうページに対してのみ処理排他を獲得し、他のページに対するアクセスを許可することで、データ抽出処理中におけるデータ群２１に対する更新を可能にしている。
さらに、データ抽出中におこなわれた更新によって抽出したデータに不整合が生じる事を防ぐため、データ抽出装置１は、更新処理部１１による更新動作を監視し、データベースの更新がおこなわれた場合にその変更内容を更新ログとして記憶する。データ抽出装置１は、この更新ログを用いて抽出したデータを抽出処理の開始時点の値に戻すことで、データ群２１について、抽出処理開始時点における値を取得する事ができる。
つぎに、データ抽出装置１の具体的な構成について説明する。第２図は、データ抽出装置の構成を示す構成図である。第２図において、データ抽出装置１は、第１図に示した更新処理部１１、抽出処理部１２、排他制御部１３に加え、入出力処理部１０、抽出制御部１４、ログ取得部１５、抽出データ記憶部１６、ログ記憶部１７、データ最旧化部１８および形式変換部１９を備えている。また、抽出処理部１２は抽出用バッファメモリ１２ａを備えている。
入出力処理部１０は、データベース２に対するアクセスをネットワーク３から受信する。入出力処理部１０は、データベース２が記憶するデータの更新を要求するアクセスを受信した場合、受信したアクセスを更新処理部１１に出力する。また、入出力処理部１０は、データベース２が記憶するデータの抽出を要求するアクセスを受信した場合、受信したアクセスを抽出制御部１４に出力する。
更新処理部１１は、入出力処理部１０がデータの更新を要求するアクセスを受信した場合に、更新するデータを記憶しているページに対する処理排他を獲得し、データの更新をおこなう。
抽出制御部１４は、データ抽出を要求するアクセスを入出力処理部１０が受信した場合に、ログ取得部１５に更新ログの取得開始を指示するコマンドを出力し、抽出処理部１２にデータ抽出の開始を指示するコマンドを出力する。
抽出処理部１２は、抽出制御部１４からのコマンドを受け、データベース２からデータの抽出を開始する。この時、抽出処理部１２は、抽出するデータ群を構成するページについて、順次処理排他を獲得してデータ抽出をおこなう。また、抽出処理部１２は、この抽出処理によってページ自体をページイメージとして抽出し、抽出データ記憶部１６に記憶する。
ログ取得部１５は、抽出制御部１４からのコマンドを受け、更新処理部１１の監視を開始する。この監視中に更新処理部１１がデータベース２の更新をおこなった場合、ログ取得部１５は、更新処理部１１がおこなった更新内容を更新ログとしてログ記憶部１７に記憶する。更新ログには、更新されたデータ、およびその更新内容を記録する。
データ最旧化部１８は、抽出データ記憶部１６に記憶されたページイメージとログ記憶部１７に記憶された更新ログとをもとにデータの最旧化をおこなう。データの最旧化とは、抽出処理の開始以後に変更された内容が抽出したページイメージに含まれる場合、更新ログの内容を用いてページイメージの内容を抽出処理の開始時点の内容に戻す処理をいう。データ最旧化部は、最旧化したページイメージを形式変換部１９に出力する。
形式変換部１９は、データ最旧化部１８から受信したページイメージに含まれるデータを必要に応じて所望の形式に変換し、入出力処理部１０に出力する。データベース２の内部における入出力はページ単位でおこなうが、抽出したページに含まれるデータの取り扱いには、汎用性のある形式にすることが望ましいので、形式変換部１９によって変換を実行した後、入出力処理部１０を介してネットワーク３に出力する。
ここで、抽出用バッファメモリ１２ａについて説明する。抽出処理部１２に接続された抽出用バッファメモリ１２ａは、データベース２からページイメージを抽出する際の一時記憶として機能する。すなわち、抽出処理部１２は、データベース２からページイメージを読み出す場合に、抽出するページの処理排他を獲得した後、読み出したページイメージを抽出用バッファメモリ１２ａに記憶させた時点でページイメージの読み出しが終了したと判断し、そのページに対する処理排他を解除する。
このように、読み出したページイメージを抽出用バッファメモリ１２ａに記憶した時点でページに対する処理排他を解除し、処理排他の解除後に抽出用バッファメモリ１２ａに記憶したページイメージを抽出データ記憶部１６に記憶させることで、各ページを読み出すために必要な処理排他の時間は、抽出用バッファメモリ１２ａの容量と読み書き速度によって決定されることとなる。
したがって、高速に読み書き可能で、十分な容量を有する抽出用バッファメモリ１２ａを設けることで各ページに対する処理排他の時間を短くすることができる。
なお、抽出用バッファメモリ１２ａによる処理の高速化のため、データベースにデータベースバッファメモリを設けることが望ましい。データベースにデータベースバッファメモリを設け、データの抽出および更新の際に必要なデータを予めデータベースバッファメモリに記憶させておくことで、データ更新時およびデータ抽出時に必要な処理排他の時間をさらに短縮することができる。
同様に、更新処理部１１と、抽出処理部１２とは独立したプロセッサによって実現する。データ抽出は連続して大量のデータを読み出すため、データ抽出中は常にプロセッサが稼動している状態となる。したがって、同一のプロセッサでデータ抽出と更新とを実行させた場合、データ抽出処理がプロセッサの処理能力を消費し、更新処理に用いることができる処理能力を減少させ、更新時の処理速度を低下させる。更新処理部１１と抽出処理部１２とを独立したプロセッサによって実現することで、更新処理に用いる処理能力を確保し、更新時の処理速度の低下を回避することができる。
つぎに、第３図〜第５図を参照し、データ抽出装置１におけるデータ抽出についてさらに説明する。データ抽出装置１がデータベース２からページＡ１，Ｂ１，Ｃ１を読み出す場合、まず、ログ取得部１５が更新処理部１１の監視を開始し、つぎに抽出処理部１２がデータベース２内部のページＡ１に対する処理排他を獲得する（第３図）。したがって、更新処理部１１は、ページＡ１に対するアクセスができなくなる。一方で、抽出処理部１２は、ページＢ１およびページＣ１に対しては処理排他を獲得していないので、更新処理部１１は、ページＢ１およびページＣ１に対して自由にアクセス可能である。
第３図に示すように、ページＡ１はレコードａ１０，ａ２０，ａ３０を記憶している。また、ページＢ１はレコードｂ１０，ｂ２０，ｂ３０を記憶しており、ページＣ１はレコードｃ１０，ｃ２０，ｃ３０を記憶している。抽出処理部１２は、このページＡ１を読み出して抽出データ記憶部１６に記憶した後、データベース２内部のページＡ１に対する処理排他を解除する。
ページＡ１の抽出終了後、抽出処理部１２は、ページＢ１に対する処理排他を獲得する（第４図）。したがって、更新処理部１１は、ページＢ１に対するアクセスができなくなる。一方で、抽出処理部１２がページＡ１およびページＣ１に対しては処理排他を獲得していないので、更新処理部１１は、ページＡ１およびページＣ１に対して自由にアクセス可能である。
第４図に示すように、抽出処理部１２は、ページＢ１に対する処理排他を獲得した後、ページＢ１を読み出して抽出データ記憶部１６に記憶する。抽出処理部１２がページＢ１を抽出している間、更新処理部１１は、他のページを更新することができる。ここでは、更新処理部１１は、ページＡ１のレコードａ３０をレコードａ３１に書き換えてページＡ２とし、ページＣ１のレコードｃ２０をレコードｃ２１に書き換えてページＣ２としている。
ログ取得部１５は、更新処理部１１がレコードの更新をおこなった場合に、更新ログを作成してログ記憶部１７に記憶する。第４図では、更新ログとしてレコードｃ２０がレコードｃ２１に書き換えられた事を示す情報が記憶されている。また、この更新ログには、必要に応じて更新されたレコードを特定するための情報が付加される。
なお、第４図においては、ログ取得部１５は、ページＣ２に関するログを取得し、ログ記憶部１７に記憶しているが、ページＡ２に関するログは取得していない。これは、抽出処理部１２がページＡ１の抽出を既に終了しているので、ページＡ１のページＡ２への更新ログが不必要なためである。
抽出処理部１２は、ページＢ１を読み出して抽出データ記憶部１６に記憶した後、データベース２内部のページＢ１に対する処理排他を解除する。
ページＢ１の抽出終了後、抽出処理部１２は、ページＣ２に対する処理排他を獲得する（第５図）。したがって、更新処理部１１は、ページＣ２に対するアクセスができなくなる。一方で、抽出処理部１２がページＡ２およびページＢ１に対して処理排他を獲得していないので、更新処理部１１は、ページＡ２およびページＢ１に対して自由にアクセス可能である。ここで、抽出処理部１２が読み出すページＣ２は、更新処理部１１によってページＣ１から更新されているが、抽出処理部１２はこの更新されたページＣ２をそのまま読み出して抽出データ記憶部１６に記憶する。したがって、抽出データ記憶部１６に記憶されるページＣ２は、更新処理部１１によって更新されたとおり、レコードｃ２１を記憶していることとなる。
データ最旧化部１８は、ログ記憶部１７が記憶する更新ログをもとに、抽出データ記憶部１６が記憶するページの最旧化をおこなう。第５図では、ログ記憶部１７がレコードｃ２０をレコードｃ２１に更新した事を示す情報を記憶しているので、データ最旧化部１８は、抽出データ記憶部１６が記憶するページから、レコードｃ２１を記憶しているページ、すなわちページＣ２を検出し、レコードｃ２１をレコードｃ２０に変更することで、ページＣ１を生成する。
このように、ログ記憶部１７が記憶した更新ログに対応するページを最旧化することで、データ最旧化部１８は、データ抽出を開始した時点におけるページＣ１，Ｃ２，Ｃ３を得ることができる。
つぎに、第６図を参照し、データ抽出装置１におけるデータ抽出の処理動作について詳細に説明する。第６図において、まず、抽出処理部１２が、抽出するデータ全体に対する処理排他を獲得する（ステップＳ１０１）。つぎに、抽出制御部１４が、ログ取得部１５に更新ログの取得開始を指示するコマンドを送信し、更新ログの取得を開始する（ステップＳ１０２）。その後、抽出処理部１２は、抽出するデータ全体に対する処理排他を解除する（ステップＳ１０３）。
ここで、抽出処理部１２が抽出するデータ全体に対して処理排他を獲得した状態で更新ログの取得を開始するのは、データ更新動作の実行中と更新ログの取得開始とが同時に発生した場合、更新ログの取得開始時に実行されていたデータ更新が最旧化処理時に反映されず、データ内容に不整合が生ずるためである。
更新ログの取得開始を指示するコマンドをログ取得部１５に送信する動作は非常に短時間で実行可能であるため、抽出するデータ全体に対する処理排他は、非常に短時間となり、データ更新の処理に影響を与えることはない。
つぎに、抽出処理部１２は、抽出するデータのうち、最初のページを抽出対象データに指定する（ステップＳ１０４）。データベース２は、この抽出対象ページがデータベースバッファメモリに存在するか否かを判定する（ステップＳ１０５）。データベース２が抽出対象ページをデータベースバッファメモリに記憶していない場合、すなわち、抽出対象ページのイメージがデータベースバッファメモリに存在しない場合（ステップＳ１０５，Ｎｏ）、データベース２は、データベースバッファメモリに抽出対象ページを読み出す（ステップＳ１０６）。
データベースバッファメモリに抽出対象ページのイメージが存在する場合（ステップＳ１０５，Ｙｅｓ）、またはデータベースバッファメモリに抽出対象ページを読み出した（ステップＳ１０６）後、抽出処理部１２は抽出対象ページに対する処理排他を獲得する（ステップＳ１０７）。つづいて、抽出処理部１２は、抽出対象ページを読み出して抽出用バッファメモリ１２ａに記憶する（ステップＳ１０８）。
ステップＳ１０８の後、抽出制御部１４は、処理対象ページに対する更新ログの取得を終了し（ステップＳ１０９）、つぎに抽出処理部１４が抽出対象ページに対する処理排他を解除する（ステップＳ１１０）。また、抽出処理部１２は、抽出用バッファメモリ１２ａに記憶した抽出対象ページを適宜抽出データ記憶部１６に記憶する（ステップＳ１１１）。
つぎに、抽出処理部１２は、抽出するデータの全てのページを読み出したかを判定する（ステップＳ１１２）。まだ読み出していないページが存在する場合（ステップＳ１１２，Ｎｏ）、抽出処理部１２は、つぎのページを処理対象ページに指定して（ステップＳ１１３）、ステップＳ１０５に移行する。このように抽出するデータに含まれる各ページを順次読み出し、全てのページを読み出した場合に（ステップＳ１１２，Ｙｅｓ）、データ抽出処理を終了する。
つぎに、第７図を参照し、データ最旧化部１８による最旧化の処理動作について詳細に説明する。データ最旧化部１８がデータの最旧化をおこなう場合、まず、ログ記憶部に記憶した更新ログの検索準備をおこなう（ステップＳ２０１）。この検索準備は、たとえば更新ログを対応するページ毎に並べ替える操作である。ログ取得部１５は、更新処理部１１の動作を監視して随時更新ログの取得をおこなうため、更新ログは通常、時系列のデータとして得られる。一方で、最旧化処理はページ単位でおこなう。したがって、予め更新ログを対応するページ毎に並べ替えておくことで、各ページに対応する更新ログの検索を高速化することができる。
検索準備（Ｓ２０１）の終了後、データ最旧化部１８は、抽出したページのうち、最初のページを最旧化対象ページに指定する（ステップＳ２０２）。つづいて、データ最旧化部１８は、抽出データ記憶部１６から最旧化対象ページを読み出す（ステップＳ２０３）。さらに、データ最旧化部１８は、読み出した最旧化対象ページに対応する更新ログをログ記憶部１７から検索する（ステップＳ２０４）。データ最旧化部１８は、読み出した最旧化対象ページに検索したログファイルを用いて最旧化を実行する（ステップＳ２０５）。
つぎに、データ最旧化部１８は、抽出するデータの全てのページを最旧化したかを判定する（ステップＳ２０６）。まだ最旧化していないページが存在する場合（ステップＳ２０６，Ｎｏ）、データ最旧化部１８は、つぎのページを最旧化対象ページに指定して（ステップＳ２０７）、ステップＳ２０３に移行する。このように抽出した各ページについて対応する更新ログを検索して順次最旧化し、全てのページを最旧化した場合に（ステップＳ２０６，Ｙｅｓ）、最旧化処理を終了する。
つぎに、第８図を参照し、形式変換部１９によるデータ形式の変換処理の動作について詳細に説明する。まず、形式変換部１９は、データ最旧化部１８によって最旧化されたデータを受信し（ステップＳ３０１）、最旧化済みページのうち、最初のページを変換対象ページに指定する（ステップＳ３０２）。
つづいて、形式変換部１９は、変換対象ページが有するレコードのうち、最初のレコードを変換対象レコードに指定する（ステップＳ３０３）。形式変換部１９は、この変換対象レコードを所望のファイル形式に変換し（ステップＳ３０４）、変換したレコードを出力する（ステップＳ３０５）。
つぎに、形式変換部１９は、変換対象ページが有する全てのレコードを変換したかを判定する（ステップＳ３０６）。まだ変換していないレコードが存在する場合（ステップＳ３０６，Ｎｏ）、形式変換部１９は、つぎのレコードを変換対象レコードに指定して（ステップＳ３０７）、ステップＳ３０４に移行する。
一方、変換対象ページが有する全てのレコードを変換した場合（ステップＳ３０６，Ｙｅｓ）、形式変換部１９は、全てのページを変換したかを判定する（ステップＳ３０８）。変換前のページがある場合（ステップＳ３０８，Ｎｏ）、形式変換部１９は、つぎのページを形式対象ページに指定して（ステップＳ３０９）、ステップＳ３０３に移行する。このように、最旧化した各ページについて順次形式変換をおこない、全てのページを形式変換した場合に（ステップＳ３０８，Ｙｅｓ）、データ形式の変換処理を終了する。
上述してきたように、本実施の形態にかかるデータ抽出装置１では、データベース２からデータ群２１を抽出する場合に、抽出を実行中のページに対してのみ処理排他を獲得し、他のページに対しては自由にアクセス可能とすることで、更新レスポンスを低下させることなくデータ群２１を抽出することが可能となる。
また、データ抽出中にデータベースに更新が行われた場合、その更新内容を更新ログとして記憶し、この更新ログを用いて抽出したデータの内容をデータ抽出開始時の値に最旧化するので、データの内容に不整合が生じることを防止し、データ抽出開始時点における各データの値を得ることができる。
さらに、データ抽出装置１は、データ抽出開始時に更新ログの取得を開始した後、抽出が終了したページについては更新ログの取得を終了し、未抽出のページについてのみデータ抽出をおこなうようにすることで、更新ログの容量を小さくしている。
また、データベースの入出力に用いるデータベースバッファと抽出用バッファメモリ１２ａとを独立して設けているので、抽出処理によってメモリ容量を大量に使用している状態であっても、更新用のメモリ容量を確保し、更新時の処理速度の低下を回避している。
さらに、更新処理部１１と抽出処理部１２とを独立したプロセッサによって実現することで、更新処理に用いる処理能力を確保し、更新時の処理速度の低下を回避している。
なお、上述した実施の形態では、取得した更新ログをページイメージの最旧化にのみ使用しているが、この更新ログをデータベースのリカバリに用いるようにしてもよい。この場合、最旧化のために独自にログを取得する必要がなくなり、ＣＰＵのログ作成にかかるコストを軽減することができる。最旧化とリカバリとで同一のログを使用する場合、抽出が終了したページに対しても更新ログの取得を継続する必要がある。
また、上述の実施の形態では、データ抽出方法の実行に特に適したデータ抽出装置について説明したが、この実施の形態に示した機能をソフトウェアによって実現することで、任意のコンピュータ端末上で実行可能なデータ抽出プログラムとして実施することができる。
以上説明したように、本発明によれば、データ抽出処理を実行中にデータベースに対しておこなわれたデータ更新を更新履歴として記憶し、データ抽出処理によって抽出したデータの内容を、更新履歴を用いてデータ抽出処理開始時点の値に書き換えることで、データ抽出処理開始時点におけるデータ内容を得ることができるので、任意の時点におけるデータ抽出が可能なデータ抽出方法およびデータ抽出装置を提供することができるという効果を奏する。
また、本発明にかかるデータ抽出方法およびデータ抽出装置は、抽出を実行中のデータに対して処理排他を獲得し、抽出を実行済みのデータおよび抽出の実行前のデータに対する処理排他を獲得しないので、抽出対象の各データに対する処理排他を短縮し、更新のレスポンスを低下させることなくデータ抽出を実行可能なデータ抽出方法およびデータ抽出装置を提供することができるという効果を奏する。
また、本発明にかかるデータ抽出方法およびデータ抽出装置は、複数のデータを順次読み出し、読み出しが終了したデータについては更新履歴の取得を終了することで、必要以上に更新履歴の保存領域を使用することなくデータ抽出を実行可能なデータ抽出方法およびデータ抽出装置を簡易な構成で提供することができるという効果を奏する。
本発明によれば、更新を実行するプロセッサを、抽出を実行するプロセッサに対して独立したプロセッサとすることで、抽出処理がプロセッサの処理能力を大量に使用している場合においても更新用の処理能力を確保するので、データ抽出の実行中であっても更新レスポンスを確保可能なデータ抽出方法およびデータ抽出装置を提供することができるという効果を奏する。
【産業上の利用可能性】  以上のように、本発明にかかるデータ抽出方法およびデータ抽出装置は、データベースの運用に対して有用であり、特に無停止稼動のデータベースから、更新のレスポンスを維持しつつデータ抽出をおこなう場合に有用である。
【図１】
2004023308.tif 000003
【図２】
2004023308.tif 000004
【図３】
2004023308.tif 000005
【図４】
2004023308.tif 000006
【図５】
2004023308.tif 000007
【図６】
2004023308.tif 000008
【図７】
2004023308.tif 000009
【図８】
2004023308.tif 000010
【国際調査報告】
2004023308.tif 000011
2004023308.tif 000012