(57)【特許請求の範囲】
【請求項１】
データベースを管理するシステムであって、
第１の装置と、第２の装置とを含み、
前記第１の装置は、
複数のレコードのそれぞれについてデータを保持する第１のデータベースと、
一のレコードの更新要求に応じて、当該一のレコードについて前記第１のデータベースに保持されたデータを更新する第１の更新部と
を含み、
前記第２の装置は、
前記複数のレコードのそれぞれについて前記第１のデータベースに保持されたことがあるデータを、前記第１のデータベースに当該データが保持されていた期間に関連付けて保持する第２のデータベースと、
前記一のレコードについて前記第１のデータベースに保持されたデータの更新が行われたことに応じて、前記第２のデータベースが、当該一のレコードについて当該更新の後に前記第１のデータベースに保持されることとなった更新後データを、当該更新後データが前記第１のデータベースに保持されることとなった期間に関連付けて保持し、かつ、当該一のレコードについて当該更新の前に前記第１のデータベースに保持されていた更新前データを、当該更新前データが前記第１のデータベースに保持されていた期間に関連付けて保持するように、当該第２のデータベースを更新する第２の更新部と
を含む、システム。
【請求項２】
前記第１の装置は、前記一のレコードについて指定時点で前記第１のデータベースに保持されていたデータの検索要求に応じて、当該検索要求を前記第２の装置に転送する転送部を更に含み、
前記第２の装置は、前記検索要求の転送に応じて、前記一のレコードについて前記指定時点を含む期間に関連付けて前記第２のデータベースに保持されているデータを検索する検索部を更に含む、請求項１のシステム。
【請求項３】
前記検索部は、前記指定時点よりも前に行われた前記第１のデータベースの更新の全てが前記第２のデータベースに反映された後に、前記一のレコードについて前記指定時点を含む期間に関連付けて前記第２のデータベースに保持されているデータを検索する、請求項２のシステム。
【請求項４】
前記検索部は、前記第１のデータベースが更新されたかどうかを最後に調べた時点が、前記指定時点よりも後である場合に、前記一のレコードについて前記指定時点を含む期間に関連付けて前記第２のデータベースに保持されているデータを検索する、請求項３のシステム。
【請求項５】
前記転送部は、前記一のレコードについて現時点で前記第１のデータベースに保持されているデータの検索が要求されると、現時点を前記指定時点とした前記検索要求を前記第２の装置に転送する、請求項２乃至請求項４の何れかのシステム。
【請求項６】
前記第２の装置は、前記第２のデータベースに保持されたデータを、前記第１の装置が前記第１のデータベースに保持されたデータを検索するよりも高速に検索可能な装置である、請求項２乃至請求項５の何れかのシステム。
【請求項７】
データベースを管理する方法であって、
複数のレコードのそれぞれについてデータを保持する第１のデータベースを含む第１の装置と、
前記複数のレコードのそれぞれについて前記第１のデータベースに保持されたことがあるデータを、前記第１のデータベースに当該データが保持されていた期間に関連付けて保持する第２のデータベースを含む第２の装置と
を含み、
前記第１の装置は、一のレコードの更新要求に応じて、当該一のレコードについて前記第１のデータベースに保持されたデータを更新し、
前記第２の装置は、前記一のレコードについて前記第１のデータベースに保持されたデータの更新が行われたことに応じて、前記第２のデータベースが、当該一のレコードについて当該更新の後に前記第１のデータベースに保持されることとなった更新後データを、当該更新後データが前記第１のデータベースに保持されることとなった期間に関連付けて保持し、かつ、当該一のレコードについて当該更新の前に前記第１のデータベースに保持されていた更新前データを、当該更新前データが前記第１のデータベースに保持されていた期間に関連付けて保持するように、当該第２のデータベースを更新する、方法。
【請求項８】
前記第２の装置は、前記第２のデータベースに保持されたデータを、前記第１の装置が前記第１のデータベースに保持されたデータを検索するよりも高速に検索可能な装置である、請求項７の方法。
【請求項９】
前記第１の装置は、前記一のレコードについて指定時点で前記第１のデータベースに保持されていたデータの検索要求に応じて、当該検索要求を前記第２の装置に転送し、
前記第２の装置は、前記検索要求の転送に応じて、前記一のレコードについて前記指定時点を含む期間に関連付けて前記第２のデータベースに保持されているデータを検索する、請求項８の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースを管理するシステム及び方法に関する。
【背景技術】
【０００２】
データベースを利用した業務処理を行うにあたり、過去の特定の時点でデータベースに記録されていた整合性の取れたデータ（静止点データ）を参照したいニーズは多い。例えば、２４時間３６５日稼動するシステムで、所定の時刻までに行われた取引全体に対するバッチ処理を行う場合や、取引条件が変動する商品を扱うシステムで、売り上げと割引率やポイント設定との関連を分析する場合等に、上記ニーズが生ずる。
【０００３】
従来は、このようなニーズに対して、特定の時点に対する静止点データベースを作成する手法が採用されていた（例えば、特許文献１参照）。
【０００４】
特許文献１は、ＤＢＭＳで、アプリケーションプログラムの要求に応じて、基表更新機能が、基表及び基表に付随する回復開始点を更新し、更新ログ記録機能が、基表に対する更新ログを記録し、所定のタイミングで、バックアップ機能が、基表の内容をバックアップファイルに出力し、基表に付随する回復開始点をバックアップファイルに付随する回復開始点にコピーし、その後、ユーザによって静止点及び基表が指定されると、複製生成機能が、指定された基表のバックアップファイルを、更新ログの、バックアップファイルに付随する回復開始点から静止点までの部分で更新することにより、静止点における基表の複製である対象表を生成する技術を開示する。
【０００５】
この静止点データベースを作成する手法は有効な方法ではある。しかしながら、任意の時点における静止点データを利用するための手法としては不向きである。
【０００６】
そこで、静止点データを参照したいというニーズに対する別の手法として、テンポラルデータベースを使用する方法が考えられている（例えば、非特許文献１参照）。ここで、テンポラルデータベースとは、現在及び過去のデータを有効期間と共に格納するデータベースである。このテンポラルデータベースを使用することにより、時刻を指定して任意の時点のデータを参照することが可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−８６２４１号公報
【非特許文献】
【０００８】
【非特許文献１】「テンポラル表」、［online］、日本アイ・ビー・エム株式会社、［平成２６年１０月９日検索］、インターネット＜URL：http://www-01.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.admin/src/tpc/db2z_temporaltables.dita?lang=ja＞
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、テンポラルデータベースを使用して静止点データを参照する方法には、次のような性能上の問題点がある。
【００１０】
第１の問題点は、データベースを更新する際の負荷が増大してしまうという点である。これは、単一のＵＰＤＡＴＥ命令が内部的に、現在のデータに対する更新命令及び過去のデータに対する挿入命令として処理されるからである。
【００１１】
第２の問題点は、データベースを参照する際の負荷が増大してしまうという点である。これは、現在のデータ及び過去のデータの両方から目的のデータを検索することになるからである。
【００１２】
本発明の目的は、データベースに保持されたことがあるデータを参照可能にするためのデータベースの更新を行う際の負荷を軽減することにある。
【００１３】
本発明の他の目的は、任意の時点でデータベースに保持されていたデータを参照する際の負荷を軽減することにある。
【課題を解決するための手段】
【００１４】
かかる目的のもと、本発明は、データベースを管理するシステムであって、第１の装置と、第２の装置とを含み、第１の装置は、複数のレコードのそれぞれについてデータを保持する第１のデータベースと、一のレコードの更新要求に応じて、一のレコードについて第１のデータベースに保持されたデータを更新する第１の更新部とを含み、第２の装置は、複数のレコードのそれぞれについて第１のデータベースに保持されたことがあるデータを保持する第２のデータベースと、一のレコードについて第１のデータベースに保持されたデータの更新とは非同期に、一のレコードについて更新の前に第１のデータベースに保持されていたデータを、一のレコードについて第２のデータベースが保持するように、第２のデータベースを更新する第２の更新部とを含む、システムを提供する。
【００１５】
ここで、第２のデータベースは、第１のデータベースに保持されたことがあるデータを、第１のデータベースにデータが保持されていた期間に関連付けて保持する、ものであってよい。
【００１６】
また、第１の装置は、一のレコードについて指定時点で第１のデータベースに保持されていたデータの検索要求に応じて、検索要求を第２の装置に転送する転送部を更に含み、第２の装置は、検索要求の転送に応じて、一のレコードについて指定時点を含む期間に関連付けて第２のデータベースに保持されているデータを検索する検索部を更に含む、ものであってよい。
【００１７】
また、検索部は、指定時点よりも前に行われた第１のデータベースの更新の全てが第２のデータベースに反映された後に、一のレコードについて指定時点を含む期間に関連付けて第２のデータベースに保持されているデータを検索する、ものであってよい。
【００１８】
また、検索部は、第１のデータベースが更新されたかどうかを最後に調べた時点が、指定時点よりも後である場合に、一のレコードについて指定時点を含む期間に関連付けて第２のデータベースに保持されているデータを検索する、ものであってよい。
【００１９】
また、転送部は、一のレコードについて現時点で第１のデータベースに保持されているデータの検索が要求されると、現時点を指定時点とした検索要求を第２の装置に転送する、ものであってよい。
【００２０】
更に、第２の装置は、第２のデータベースに保持されたデータを、第１の装置が第１のデータベースに保持されたデータを検索するよりも高速に検索可能な装置であってよい。
【００２１】
また、本発明は、データベースを管理するシステムであって、第１の装置と、データベースに保持されたデータを第１の装置よりも高速に検索可能な第２の装置とを含み、第１の装置は、複数のレコードのそれぞれについてデータを保持する第１のデータベースと、一のレコードについて指定時点で第１のデータベースに保持されていたデータの検索要求に応じて、検索要求を第２の装置に転送する転送部とを含み、第２の装置は、複数のレコードのそれぞれについて第１のデータベースに保持されたことがあるデータを、第１のデータベースにデータが保持されていた期間に関連付けて保持する第２のデータベースと、検索要求の転送に応じて、一のレコードについて指定時点を含む期間に関連付けて第２のデータベースに保持されているデータを検索する検索部とを含む、システムも提供する。
【００２２】
更に、本発明は、データベースを管理する方法であって、複数のレコードのそれぞれについてデータを保持する第１のデータベースを含む第１の装置と、複数のレコードのそれぞれについて第１のデータベースに保持されたことがあるデータを保持する第２のデータベースを含む第２の装置とを含み、第１の装置は、一のレコードの更新要求に応じて、一のレコードについて第１のデータベースに保持されたデータを更新し、第２の装置は、一のレコードについて第１のデータベースに保持されたデータの更新とは非同期に、一のレコードについて更新の前に第１のデータベースに保持されていたデータを、一のレコードについて第２のデータベースが保持するように、第２のデータベースを更新する、方法も提供する。
【００２３】
ここで、第２の装置は、第２のデータベースに保持されたデータを、第１の装置が第１のデータベースに保持されたデータを検索するよりも高速に検索可能な装置であってよい。その場合、第２のデータベースは、第１のデータベースに保持されたことがあるデータを、第１のデータベースにデータが保持されていた期間に関連付けて保持し、第１の装置は、一のレコードについて指定時点で第１のデータベースに保持されていたデータの検索要求に応じて、検索要求を第２の装置に転送し、第２の装置は、検索要求の転送に応じて、一のレコードについて指定時点を含む期間に関連付けて第２のデータベースに保持されているデータを検索する、ものであってよい。
【発明の効果】
【００２４】
本発明によれば、データベースに保持されたことがあるデータを参照可能にするためのデータベースの更新を行う際の負荷が軽減される。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態におけるＤＢシステムの機能構成例を示した図である。
【図２】本発明の実施の形態におけるＤＢシステムのＤＢ更新時の動作例を説明するための図である。
【図３】（ａ）〜（ｃ）は、テンポラルＤＢの更新時における内容の遷移について示した図である。
【図４】本発明の実施の形態におけるＤＢシステムのＤＢ参照時の動作例を説明するための図である。
【図５】メインフレームを構成するＤＢＭＳの動作例を示したフローチャートである。
【図６】メインフレームを構成する更新ログ捕捉部の動作例を示したフローチャートである。
【図７】ＤＢ専用装置を構成する更新ログ適用部の動作例を示したフローチャートである。
【図８】ＤＢ専用装置を構成する照会処理部の動作例を示したフローチャートである。
【図９】本発明の実施の形態を適用可能なコンピュータのハードウェア構成例を示した図である。
【発明を実施するための形態】
【００２６】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【００２７】
［本実施の形態の概要］
本実施の形態では、静止点データを参照したいデータベース（以下、「ＤＢ」と称する）を、メインフレームに通常のＤＢとして格納し、ＤＢ専用装置にテンポラルＤＢとして格納する。そして、ＤＢの更新時には、メインフレーム上のＤＢを更新し、この更新をキャプチャしてＤＢ専用装置のテンポラルＤＢを更新する。また、特定の静止点データを参照したい場合、メインフレームのＤＢＭＳに対し、照会対象時刻を指定したＳＱＬを発行する。すると、メインフレームのＤＢＭＳは、ＤＢ専用装置にＳＱＬ処理を依頼する。これにより、ＤＢ専用装置は、テンポラルＤＢに照会対象時刻のデータを照会し、照会結果をメインフレームに返す。その際、ＤＢ専用装置側で反映された更新のメインフレーム上での更新時刻である更新反映済時刻が照会対象時刻に追い付いていない場合、更新反映済時刻が照会対象時刻に追い付くのを待ってデータを照会する。
【００２８】
また、オプションとして、現在のデータを参照するために、本実施の形態の仕組みを使用してもよい。この場合、ＤＢＭＳは、ＳＱＬが発行された時刻を照会対象時刻としてＳＱＬに付加し、ＤＢ専用装置にＳＱＬ処理を依頼する。
【００２９】
［本実施の形態におけるＤＢシステムの機能構成］
図１は、このような概略動作を実現するためのＤＢシステムの機能構成例を示した図である。図示するように、このＤＢシステムは、メインフレーム１０と、ＤＢ専用装置２０とを含む。メインフレーム１０は、第１の装置の一例であり、業務処理を実行する汎用のコンピュータ装置である。そして、メインフレーム１０は、ＤＢ１１と、ＤＢＭＳ１２と、アプリケーション１３と、更新ログ記憶部１４と、更新ログ捕捉部１５とを含む。ＤＢ専用装置２０は、第２の装置の一例であり、複数のプロセッサを用いて高速にデータを検索可能な装置である。そして、ＤＢ専用装置２０は、テンポラルＤＢ２１と、更新ログ適用部２２と、照会処理部２３とを含む。また、メインフレーム１０とＤＢ専用装置２０とは、通信手段（図示せず）で接続されているものとする。
【００３０】
まず、メインフレーム１０の構成要素について説明する。
【００３１】
ＤＢ１１は、業務処理で用いられる通常のＤＢである。尚、ここでは、「通常のＤＢ」という文言を、レコードごとにデータが更新されると更新前のデータが更新後のデータによって置き換えられて常に最新のデータが保持されるＤＢという意味で用いている。本実施の形態では、複数のレコードのそれぞれについてデータを保持する第１のデータベースの一例として、ＤＢ１１を設けている。
【００３２】
ＤＢＭＳ１２は、ＤＢ１１を管理するための各種処理を実行するプログラムである。また、ＤＢＭＳ１２は、アプリケーション１３が発行したＳＱＬを振り分ける機構を有する。具体的には、ＤＢに対する更新のための更新ＳＱＬに基づいてＤＢ１１を更新し、ＤＢに対する照会のための照会ＳＱＬのうち照会対象時刻を指定しない照会ＳＱＬに基づいてＤＢ１１を参照する。これに対し、ＤＢに対する照会のための照会ＳＱＬのうち照会対象時刻を指定した照会ＳＱＬは照会処理部２３に転送する。本実施の形態では、一のレコードについて第１のデータベースに保持されたデータを更新する第１の更新部の一例として、また、一のレコードについて指定時点で第１のデータベースに保持されていたデータの検索要求を第２の装置に転送する転送部の一例として、ＤＢＭＳ１２を設けている。
【００３３】
アプリケーション１３は、ＤＢ１１を用いて業務処理を実行するプログラムである。そのために、アプリケーション１３は、更新ＳＱＬ又は照会ＳＱＬを発行する。
【００３４】
更新ログ記憶部１４は、ＤＢ１１に対する更新が行われた際に、その更新の種別である更新種別と、その更新が行われた時刻を示す更新タイムスタンプと、その更新の内容である更新内容とを含む更新ログを記憶する。
【００３５】
更新ログ捕捉部１５は、更新ログ記憶部１４に記憶された更新ログを定期的に読み取り、更新種別、更新タイムスタンプ、更新内容を更新ログ適用部２２に送信する。尚、前回の読み取り後に更新ログが記憶されていなければ、更新ログの読み取りを実施した読み取り実施時刻を更新ログ適用部２２に送信する。本実施の形態では、第１のデータベースが更新されたかどうかを最後に調べた時点の一例として、読み取り実施時刻を用いている。
【００３６】
次に、ＤＢ専用装置２０の構成要素について説明する。
【００３７】
テンポラルＤＢ２１は、ＤＢ１１の現在及び過去のデータを有効期間と共に格納するＤＢである。以下では、テンポラルＤＢ２１を、現在及び過去のデータを有効期間と共に格納する１つの表からなるものとして説明するが、現在のデータを有効期間と共に格納するテンポラル表と、過去のデータを有効期間と共に格納するヒストリー表とからなるものとしてもよい。また、以下では、有効期間を、テンポラルＤＢ２１に格納されたものとして説明するが、現在及び過去のデータに何らかの形で関連付けられていれば、必ずしもテンポラルＤＢ２１に格納されていなくてよい。本実施の形態では、複数のレコードのそれぞれについて第１のデータベースに保持されたことがあるデータを保持する第２のデータベースの一例として、テンポラルＤＢ２１を設けている。
【００３８】
更新ログ適用部２２は、更新ログ捕捉部１５から送られた情報に基づいてテンポラルＤＢ２１を更新する。その際、更新種別がＩＮＳＥＲＴであれば、データを挿入し、そのデータに対する有効期間の開始点に更新タイムスタンプを記録する。更新種別がＵＰＤＡＴＥであれば、対象データをコピーし、コピーされたデータに対する有効期間の終了点に更新タイムスタンプを記録した後に、対象データを更新し、更新されたデータに対する有効期間の開始点に同じ更新タイムスタンプを記録する。更新種別がＤＥＬＥＴＥであれば、対象データに対する有効期間の終了点に更新タイムスタンプを記録する。本実施の形態では、一のレコードについて更新の前に第１のデータベースに保持されていたデータを、一のレコードについて第２のデータベースが保持するように、第２のデータベースを更新する第２の更新部の一例として、更新ログ適用部２２を設けている。また、ＤＢＭＳ１２は、ＤＢ１１を更新すると更新ログを記憶し、更新ログ適用部２２は、更新ログ捕捉部１５が定期的に読み出した更新ログに基づいてテンポラルＤＢ２１を更新する。従って、更新ログ適用部２２は、ＤＢ１１の更新と非同期にテンポラルＤＢ２１を更新するものと捉えることができる。つまり、更新ログ適用部２２は、一のレコードについて第１のデータベースに保持されたデータの更新とは非同期に第２のデータベースを更新する第２の更新部の一例でもある。
【００３９】
照会処理部２３は、ＤＢＭＳ１２から送られた照会ＳＱＬに基づいて、指定された照会対象時刻に有効であったデータをテンポラルＤＢ２１から取り出す。本実施の形態では、指定時点の一例として、照会対象時刻を用いており、一のレコードについて指定時点を含む期間に関連付けて第２のデータベースに保持されているデータを検索する検索部の一例として、照会処理部２３を設けている。
【００４０】
［本実施の形態におけるＤＢシステムの全体動作］
（ＤＢ更新時の動作）
図２は、本実施の形態におけるＤＢシステムのＤＢ更新時の動作例を説明するための図である。
【００４１】
図示するように、まず、アプリケーション１３が更新ＳＱＬを発行し、これにより、ＤＢＭＳ１２がＤＢ１１を更新し、更新内容等を含む更新ログを更新ログ記憶部１４に書き込む（ステップＡ）。
【００４２】
次に、更新ログ捕捉部１５が、更新ログ記憶部１４から更新ログを読み込み、更新内容等を含む更新ログを更新ログ適用部２２に伝送する（ステップＢ）。
【００４３】
次いで、更新ログ適用部２２が、更新ログ捕捉部１５から伝送された更新内容等に基づいてテンポラルＤＢ２１を更新する（ステップＣ）。その際、更新ログ適用部２２は、ＤＢＭＳ１２が更新ログに記録した更新タイムスタンプを更新反映済時刻として保持しておく。
【００４４】
ここで、テンポラルＤＢ２１の更新時における内容の遷移について説明する。図３（ａ）〜（ｃ）は、このような内容の遷移について示した図である。図では、ＤＢ１１として、保険の補償に関する情報を格納したＤＢを例にとっている。従って、テンポラルＤＢ２１は、「保険契約ＩＤ」列及び「補償範囲」列を持つ。これらは、ＤＢ１１が有していた列である。また、テンポラルＤＢ２１は、データの更新履歴を管理するために、「期間開始時」列及び「期間終了時」列も持つ。これらは、ＤＢ１１が有しておらず、テンポラルＤＢ２１において新たに追加された列である。尚、図では、「保険契約ＩＤ」列が「Ａ１２３」であるレコードのみを抜き出して示す。
【００４５】
図３（ａ）は、ＤＢ１１に対し、「保険契約ＩＤ」列が「Ａ１２３」であり、「補償範囲」列が「１２０００」であるレコードについてＩＮＳＥＲＴ命令を実行した時のテンポラルＤＢ２１の内容を示した図である。図示するように、テンポラルＤＢ２１には、このレコードが挿入される。その際、ＩＮＳＥＲＴ命令の実行時に記録された更新タイムスタンプが「期間開始時」列に書き込まれる。この例では、「２０１０−１２−０８−１１．１９．３９」が書き込まれている。また、この時点では、「期間終了時」列には値が記録されておらず、最大値となっている。
【００４６】
図３（ｂ）は、ＤＢ１１に対し、「保険契約ＩＤ」列が「Ａ１２３」であるレコードについて、「補償範囲」列の「１２０００」を「１５０００」に変更するＵＰＤＡＴＥ命令を実行した時のテンポラルＤＢ２１の内容を示した図である。図示するように、テンポラルＤＢ２１には、まず、更新前のレコード全体が過去のデータとして保存される。その際、ＵＰＤＡＴＥ命令の実行時に記録された更新タイムスタンプが「期間終了時」列に書き込まれる。この例では、「２０１０−１２−０８−１３．０４．０７」が書き込まれている。また、テンポラルＤＢ２１では、更新されたレコードの「期間開始時」列に同じ更新タイムスタンプが書き込まれる。
【００４７】
図３（ｃ）は、ＤＢ１１に対し、「保険契約ＩＤ」列が「Ａ１２３」であるレコードについて、「補償範囲」列が「１５０００」である状態でＤＥＬＥＴＥ命令を実行した時のテンポラルＤＢ２１の内容を示した図である。図示するように、テンポラルＤＢ２１には、まず、更新前のレコード全体が過去のデータとして保存される。その際、ＤＥＬＥＴＥ命令の実行時に記録された更新タイムスタンプが「期間終了時」列に書き込まれる。この例では、「２０１０−１２−０８−１５．０４．１１」が書き込まれている。
【００４８】
（ＤＢ参照時の動作）
図４は、本実施の形態におけるＤＢシステムのＤＢ参照時の動作例を説明するための図である。
【００４９】
図示するように、まず、アプリケーション１３が照会対象時刻を指定して照会ＳＱＬを発行し、これにより、ＤＢＭＳ１２がＤＢ専用装置２０の照会処理部２３にデータの照会を依頼する（ステップＤ）。
【００５０】
次に、照会処理部２３が、テンポラルＤＢ２１に、照会対象時刻のデータを照会する（ステップＥ）。その際、照会処理部２３は、更新ログ適用部２２に対し、更新反映済時刻が照会対象時刻よりも後であることを確認する。そして、更新反映済時刻が照会対象時刻よりも後でなければ、更新反映済時刻が照会対象時刻よりも後になるのを待って、照会対象時刻のデータを照会する。つまり、例えば、テンポラルＤＢ２１に反映されていない更新があれば、その更新の反映が完了するのを待って、データを照会する。
【００５１】
次いで、照会処理部２３は、この照会の結果を、ＤＢＭＳ１２経由でアプリケーション１３に返す（ステップＦ）。具体的には、任意の照会対象時刻を指定したＳＥＬＥＣＴ命令に応じて、「期間開始時」列の時刻と「期間終了時」列の時刻との間に照会対象時刻があるという条件を満たすデータを返す。
【００５２】
［本実施の形態におけるＤＢシステムの各構成要素の動作］
（ＤＢＭＳの動作）
図５は、メインフレーム１０を構成するＤＢＭＳ１２の動作例を示したフローチャートである。尚、ＤＢＭＳ１２は、アプリケーション１３が発行したＳＱＬを受け付けることにより、動作を開始する。
【００５３】
動作を開始すると、ＤＢＭＳ１２は、まず、アプリケーション１３から受け付けたＳＱＬが更新ＳＱＬであるか照会ＳＱＬであるかを判定する（ステップ１０１）。
【００５４】
その結果、アプリケーション１３から受け付けたＳＱＬが更新ＳＱＬであると判定すれば、ＤＢＭＳ１２は、この更新ＳＱＬに基づいてＤＢ１１を更新する（ステップ１０２）。そして、更新種別、更新タイムスタンプ、更新内容を含む更新ログを更新ログ記憶部１４に記憶する（ステップ１０３）。
【００５５】
一方、アプリケーション１３から受け付けたＳＱＬが照会ＳＱＬであると判定すれば、ＤＢＭＳ１２は、照会対象時刻が指定されていない場合は、この照会ＳＱＬに基づいてＤＢ１１にデータを照会し、照会対象時刻が指定されている場合は、ＤＢ専用装置２０の照会処理部２３にこの照会ＳＱＬを転送することにより、データの照会を依頼する（ステップ１０４）。
【００５６】
（更新ログ捕捉部の動作）
図６は、メインフレーム１０を構成する更新ログ捕捉部１５の動作例を示したフローチャートである。尚、更新ログ捕捉部１５は、一定時間間隔で動作するものとする。
【００５７】
動作を開始すると、更新ログ捕捉部１５は、まず、更新ログ記憶部１４に前回の読み取り後に更新ログが記憶されたかどうかを判定する（ステップ１５１）。
【００５８】
その結果、前回の読み取り後に更新ログが記憶されたと判定すれば、その更新ログを更新ログ適用部２２に伝送する（ステップ１５２）。尚、この更新ログには、上述したように、更新種別、更新タイムスタンプ、更新内容が含まれる。
【００５９】
一方、前回の読み取り後に更新ログが記憶されていないと判定すれば、更新ログの読み取りを実施した読み取り実施時刻を更新ログ適用部２２に伝送する（ステップ１５３）。
【００６０】
（更新ログ適用部の動作）
図７は、ＤＢ専用装置２０を構成する更新ログ適用部２２の動作例を示したフローチャートである。尚、更新ログ適用部２２は、更新ログ捕捉部１５が伝送した情報を受け付けることにより、動作を開始する。
【００６１】
動作を開始すると、更新ログ適用部２２は、まず、更新ログ捕捉部１５が伝送した情報が更新ログであるかどうかを判定する（ステップ２０１）。
【００６２】
その結果、更新ログ捕捉部１５が伝送した情報が更新ログであると判定すれば、更新ログ適用部２２は、更新ログに含まれる更新内容に基づいて、テンポラルＤＢ２１を更新する（ステップ２０２）。その際、更新ログに含まれる更新種別に応じて、テンポラルＤＢ２１を更新する。具体的には、更新種別がＩＮＳＥＲＴである場合は、テンポラルＤＢ２１に対してレコードを追加し、更新ログの更新タイムスタンプをこのレコードの「期間開始時」列に記録する。更新種別がＵＰＤＡＴＥである場合は、テンポラルＤＢ２１における該当レコードをコピーし、更新ログの更新タイムスタンプを、このコピーされたレコードの「期間終了時」列に記録する。その後、テンポラルＤＢ２１における該当レコードを更新し、更新ログの更新タイムスタンプを、このオリジナルのレコードの「期間開始時」列に記録する。更新種別がＤＥＬＥＴＥである場合は、テンポラルＤＢ２１における該当レコードの「期間終了時」列に更新ログの更新タイムスタンプを記録する。
【００６３】
その後、更新ログ適用部２２は、更新ログに含まれる更新タイムスタンプを更新反映済時刻として記憶する（ステップ２０３）。
【００６４】
一方、更新ログ捕捉部１５が伝送した情報が更新ログでないと判定すれば、つまり、読み取り実施時刻であると判定すれば、更新ログ適用部２２は、読み取り実施時刻を更新反映済時刻として記憶する（ステップ２０４）。
【００６５】
（照会処理部の動作）
図８は、ＤＢ専用装置２０を構成する照会処理部２３の動作例を示したフローチャートである。尚、照会処理部２３は、ＤＢＭＳ１２が転送した照会ＳＱＬを受け付けることにより、動作を開始する。
【００６６】
動作を開始すると、照会処理部２３は、まず、更新反映済時刻が照会対象時刻よりも後であるという条件が満たされているかどうかを判定する（ステップ２５１）。この判定は、照会対象時刻のデータに対する更新がテンポラルＤＢ２１に反映済みであるかどうかを調べるためのものである。ここで、更新反映済時刻としては、更新ログ適用部２２に記憶されたものを用いればよく、照会対象時刻としては、照会ＳＱＬに付加して送られたものを用いればよい。
【００６７】
その結果、更新反映済時刻が照会対象時刻よりも後であるという条件が満たされていないと判定すれば、照会処理部２３は、条件が満たされるのを待つ。即ち、例えば、タイマのタイムアップを待ち（ステップ２５２）、タイムアップすれば、条件が満たされているかどうかを再び判定する（ステップ２５１）。そして、更新反映済時刻が照会対象時刻よりも後であるという条件が満たされたと判定すれば、照会処理部２３は、テンポラルＤＢ２１に照会対象時刻のデータを照会する（ステップ２５３）。その後、照会処理部２３は、データの照会結果をメインフレーム１０のＤＢＭＳ１２に返す（ステップ２５４）。これにより、データ照会結果は、アプリケーション１３に返されることになる。
【００６８】
（オプションの動作）
アプリケーション１３が照会対象時刻を指定せずに照会ＳＱＬを発行した場合にＤＢ専用装置２０が整合性のある照会を行う機能を、オプションの機能として設けてもよい。この機能を実現するには、図５において、ステップ１０１でＳＱＬが照会ＳＱＬであると判定した場合におけるステップ１０４の前に、ＳＱＬの発行時刻を照会対象時刻として照会ＳＱＬに付加するステップを設けるとよい。
【００６９】
［本実施の形態の効果］
本実施の形態では、ＤＢ専用装置２０側だけにテンポラルＤＢ２１を持つようにした。これにより、ＤＢ専用装置２０のテンポラルＤＢ２１から任意の時点の静止点データを参照できるようになった。また、メインフレーム１０上では、通常のＤＢであるＤＢ１１だけが更新されるため、通常の更新負荷で済むようになった。更に、メインフレーム１０上のＤＢ１１をロックすることなく、ＲＥＰＥＡＴＡＢＬＥ ＲＥＡＤが保障された状態で静止点データを照会できるようになった。
【００７０】
加えて、本実施の形態では、ＤＢ専用装置２０をＤＢの参照を高速に行うことが可能な装置とした。これにより、ＤＢ専用装置２０上で高速に静止点データが照会されるため、メインフレーム１０には照会処理の負荷がかからないようになった。
【００７１】
［本実施の形態を適用可能なコンピュータのハードウェア構成］
図９は、本実施の形態を適用可能なコンピュータ９０のハードウェア構成例を示した図である。図示するように、コンピュータ９０は、演算手段であるＣＰＵ（Central Processing Unit）９０ａと、Ｍ／Ｂ（マザーボード）チップセット９０ｂを介してＣＰＵ９０ａに接続されたメインメモリ９０ｃと、同じくＭ／Ｂチップセット９０ｂを介してＣＰＵ９０ａに接続された表示機構９０ｄとを備える。また、Ｍ／Ｂチップセット９０ｂには、ブリッジ回路９０ｅを介して、ネットワークインターフェイス９０ｆと、磁気ディスク装置（ＨＤＤ）９０ｇと、音声機構９０ｈと、キーボード／マウス９０ｉと、光学ドライブ９０ｊとが接続されている。
【００７２】
尚、図９において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ９０ａとＭ／Ｂチップセット９０ｂの間や、Ｍ／Ｂチップセット９０ｂとメインメモリ９０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット９０ｂと表示機構９０ｄとの間は、ＡＧＰ（Accelerated Graphics Port）を介して接続されてもよいが、表示機構９０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット９０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ブリッジ回路９０ｅと接続する場合、ネットワークインターフェイス９０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置９０ｇについては、例えば、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いることができる。更に、キーボード／マウス９０ｉ、及び、光学ドライブ９０ｊについては、ＵＳＢ（Universal Serial Bus）を用いることができる。
【００７３】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００７４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００７５】
１０…メインフレーム、１１…ＤＢ、１２…ＤＢＭＳ、１３…アプリケーション、１４…更新ログ記憶部、１５…更新ログ捕捉部、２０…ＤＢ専用装置、２１…テンポラルＤＢ、２２…更新ログ適用部、２３…照会処理部
【図１】
0006508648.tif 000002
【図２】
0006508648.tif 000003
【図３】
0006508648.tif 000004
【図４】
0006508648.tif 000005
【図５】
0006508648.tif 000006
【図６】
0006508648.tif 000007
【図７】
0006508648.tif 000008
【図８】
0006508648.tif 000009
【図９】
0006508648.tif 000010