データ処理方法および装置
【課題】 データベース(DB)への通常業務による連続アクセスを保証しながら、過去のある時点のDBの内容に基づく参照・更新処理を可能にする。
【解決手段】 データベース(DB)8を第1記憶エリア9、第2記憶エリア10および第3記憶エリア11に分割して管理する。ここで、第1記憶エリア9は、オンラインシステムの下で動作する通常のアプリケーション(UAP)による現時点の最新データを記憶する。また、第2記憶エリア10は、過去のある時点(t0)で凍結すべきデータ(t0データ)を記憶し、第3記憶エリア11は、該t0データを元に、新たなUAPを実行した結果の更新後のデータ(tnデータ)を記憶する。DBアクセス制御部5は、UAP4から最新あるいは過去のある時点の指定を受けて、DB8の各記憶エリア9,10,11の参照・更新を制御する。
【解決手段】 データベース(DB)8を第1記憶エリア9、第2記憶エリア10および第3記憶エリア11に分割して管理する。ここで、第1記憶エリア9は、オンラインシステムの下で動作する通常のアプリケーション(UAP)による現時点の最新データを記憶する。また、第2記憶エリア10は、過去のある時点(t0)で凍結すべきデータ(t0データ)を記憶し、第3記憶エリア11は、該t0データを元に、新たなUAPを実行した結果の更新後のデータ(tnデータ)を記憶する。DBアクセス制御部5は、UAP4から最新あるいは過去のある時点の指定を受けて、DB8の各記憶エリア9,10,11の参照・更新を制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、任意の時点のデータベースを別の領域に記憶し、そのデータベースの処理を行うデータベース管理技術に関する。
【背景技術】
【0002】
一般にオンラインシステムのデータベース(以下、DBと称す)の日次や月次の処理は、オンライン終了後に、あるいは、DBを閉塞したうえでオンラインシステムから一時的に切り離した後に、バッチ処理で一括してDBを参照することで行っていた。
【0003】
従来、連続無停止システムにおけるDBの更新・検索方法としては、特許文献1や特許文献2に記載のように、DBの更新要求には直ちに対象情報が更新される一方、更新前の情報を保持して、それには更新の時系列情報を付与しておき、検索要求には要求時点の時系列情報に基づいて該当時点の情報を検索できるようにする方法がある。また、DBの回復を容易にしたり、レコードの世代管理を容易にする方法としては、特許文献3に記載のように、レコードの更新時刻や更新前情報を履歴としてDB内に内蔵させることで実現する方法がある。さらに、データセットのバックアップを取得する方法としては、特許文献4に記載のように、UAP実行の保留時間を大幅に短縮しながらある時点で一貫性を持つデータセットのバックアップを取得する方法がある。しかし、これらはいずれも、ある時点でのDBの首尾一貫する内容を読み出すことが目的であり、直接更新することはできない。
【0004】
【特許文献1】特開昭58−62744号公報
【特許文献2】特開平6−35774号公報
【特許文献3】特開平1−166232号公報
【特許文献4】特開平5−210555号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
従来技術では、DBへの本来業務による連続アクセスを保証しながら、過去のある時点のDBの内容(以下、凍結データと称す)に基づいて別途更新処理等を行うためには、ある時点のDBのコピーを作成してからそれを更新することになる。また、オンラインシステム環境下でのUAP開発時は、DBをそのバックアップから回復する作業がUAP実行に先駆けてその都度必要になっていた。
【0006】
本発明の目的は、データベース管理システムにおける日次業務や月次業務などの更新処理を容易に可能とすることにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明では、DBを複数の記憶エリアに分割して管理する。具体的には、オンラインシステムの通常業務のUAPの処理ルート(通常処理ルート)による最新のデータのすべてを保持する第1記憶エリアを中軸にして、該通常処理ルートの過去のある時点(t0時点)に遡るための更新前のデータ(t0データ)を記憶する第2記憶エリアと、該t0データを元に、過去のある時点から新たに別のUAPの処理ルート(別処理ルート)を実行して得られる更新後のデータ(tnデータ)を記憶する第3記憶エリアに分割して管理する。
【0008】
過去のある時点に遡る必要がなくなれば、第2記憶エリアや第3記憶エリアを切り離すだけでよい。また、新たな時点を設定する場合には、初期化した第2記憶エリアや第3記憶エリアを時系列あるいは並列に接続すればよい。これらの操作は、DBの第1記憶エリアへの通常業務によるアクセスを妨げるものではない。したがって、DBへの連続的なアクセスは保証される。
DBを複数の記憶エリアに分割するのに対応して、DBアクセス制御部では、UAPから最新あるいは過去のある時点の指定を受けて、参照要求に対しては所定の記憶エリアを検索する手段と、更新に際しては第1記憶エリアあるいは第3記憶エリアに更新後データを記憶する手段と、また、第1記憶エリアに記憶する際には必要に応じて第2記憶エリアに更新前のデータを退避する手段が組み合わせて用いられる。
【0009】
このように処理することにより、所定条件を満たしたときのデータベースを格納した第2の記憶領域を入力とした処理の更新データを第3の記憶領域に格納できるため、連続運転を行うデータベース管理システムにおける日次業務や月次業務などの更新処理が容易に実現できる。また、DBを複数の記憶エリアで構成して各目的のデータを一元管理するので、従来のように別ファイルにコピーして、重複したデータを持つ必要がない。このため、データの管理が容易になる。さらに、データの重複がないことから、DBの格納スペース効率がよい、DBのコピーに要する時間が節約になる等の効果がある。一方、システムの業務・運用面では、過去の複数の時点のDBの内容を後にまとめて参照できることから、統計処理やバックアップ処理が容易となる。また、DBへの連続的なアクセスを保証しながら、過去のある時点を基点とする更新処理が複数の記憶エリアで多重化できることから、オンライン環境でのUAP開発(テスト作業等)でもDBのスペース量やリロード(再作成)回数を削除でき、効率良くDBを利用できる。
【発明の効果】
【0010】
データベース管理システムにおける日次業務や月次業務などの処理が容易に実現できる。
【発明を実施するための最良の形態】
【0011】
本発明の実施形態の一例を説明する
まず、DBを複数の記憶エリアに分割して管理する。具体的には、オンラインシステムの通常業務のUAPの処理ルート(通常処理ルート)による最新のデータのすべてを保持する第1記憶エリアを中軸にして、該通常処理ルートの過去のある時点(t0時点)に遡るための更新前のデータ(t0データ)を記憶する第2記憶エリアと、該t0データを元に、過去のある時点から新たに別のUAPの処理ルート(別処理ルート)を実行して得られる更新後のデータ(tnデータ)を記憶する第3記憶エリアに分割して管理する。
【0012】
次に、過去のある時点に遡る必要がなくなれば、第2記憶エリアや第3記憶エリアを切り離すだけでよい。また、新たな時点を設定する場合には、初期化した第2記憶エリアや第3記憶エリアを時系列あるいは並列に接続すればよい。これらの操作は、DBの第1記憶エリアへの通常業務によるアクセスを妨げるものではない。したがって、DBへの連続的なアクセスは保証される。
【0013】
DBを複数の記憶エリアに分割するのに対応して、DBアクセス制御部では、UAPから最新あるいは過去のある時点の指定を受けて、参照要求に対しては所定の記憶エリアを検索する手段と、更新に際しては第1記憶エリアあるいは第3記憶エリアに更新後データを記憶する手段と、また、第1記憶エリアに記憶する際には必要に応じて第2記憶エリアに更新前のデータを退避する手段が組み合わせて用いられる。
【0014】
以下に本発明の一実施例を図面により説明する。〈システム環境〉
図1に本実施例のデータベース管理システム(DBMS)が稼働するシステム環境を示す。図1において、中央処理装置(CPU)1、端末群6、システムコンソール7およびデータベース(DB)8でオンラインシステムを構成している。ここで、CPU1にはオペレーティングシステム(OS)2、トランザクション処理モニタ(TPモニタ)3、ユーザアプリケーションプログラム(UAP)4およびDBアクセス制御部5が含まれる。OS2はシステム全体を効率よく運用するソフトウェアである。TPモニタ3は、端末群6から入力されたトランザクションをOS2を介して受信し、目的の業務処理を実行するUAP4に引き渡す。UAP4はDBアクセス制御部5を呼び出してデータの入出力処理を行う。DBアクセス制御部5はUAP4からの参照や更新要求に応じてDB8をアクセスする制御部であり、DB8の構成とともに中心的な部分である。DB8は、本オンラインシステムで動作する本来のUAPの処理(通常の処理ルート)の現時点での最新データを記憶する第1記憶エリア9と、通常の処理ルートの過去のある時点(t0)のデータ(t0データ)を記憶する第2記憶エリア10と、前記t0データをベースに、新たに別のUAPの処理(別の処理ルート)を実行して得られる更新後のデータ(tnデータ)を記憶する第3記憶エリア11で構成される。第2および第3記憶エリア10,11は、実施例における特徴的な構成であり、それぞれの記憶エリア10,11には一つまたは複数のデータセットを割り当てることができるが、図1では説明を簡単にするため一つずつとしている。
【0015】
システムコンソール7からはシステムオペレータによりDBアクセス制御部5への指令、いわゆる各記憶エリア9,10,11に対応するデータセットの動的な接続・切り離し等の指令が投入されるが、図1は接続された状態を示す。〈UAPおよびDBアクセス制御部の構成〉
UAP4からDBアクセス制御部5に対してのDB8をアクセスする要求は、参照系と更新系に大別される。具体的には、アクセスする単位をレコードとすると、参照系とはレコードの参照、更新系とはレコードの置換、レコードの追加、およびレコードの削除である。ここでは、置換・追加・削除の要求を総称して更新要求と呼ぶことにする。図2にUAP4およびDBアクセス制御部5の構成例を示す。
【0016】
UAP4には参照要求手段21と更新要求手段22が含まれる。さらに、参照要求手段21には最新データ211、t0データ212、およびtnデータ213のいずれかを選択する項目が含まれる。更新要求手段22には、最新データ221およびtnデータ222のいずれかを選択する項目が含まれる。なお、更新要求手段22にt0データを選択する項目がないのは、t0データを更新した結果得られるのがtnデータであり、t0データ更新要求は即ちtnデータ更新要求を意味することによる。
【0017】
DBアクセス制御部5は最新データ検索手段231、t0データ検索手段232、tnデータ検索手段233の各検索手段と、最新データ記憶手段241、t0データ記憶手段242、tnデータ記憶手段243の各記憶手段と、第1記憶エリア読み出し制御手段251、第2記憶エリア読み出し制御手段252、第3記憶エリア読み出し制御手段253の各読み出し手段と、第1記憶エリア書き込み制御手段261、第2記憶エリア書き込み制御手段262、第3記憶エリア書き込み制御手段263の各書き込み手段とからなる。実線は参照要求時の制御経路、破線は更新要求時の制御経路を示している。各データの参照要求や更新要求に対する動作については後述する。〈時点設定〉
UAPからのt0やtnの時点設定の仕方には、イベントによる方法とスケジュールによる方法の二通りがある。
【0018】
イベントによる方法とは、UAPから設定要求を発した時刻そのものが設定の時点となるもので、t0データまたはtnデータの記憶を開始する時点と解釈される。
【0019】
スケジュールによる方法とは、UAPから設定要求を発した時刻よりも先のシステム時刻を指定する方法である。つまり、UAPからの予約受け付けを意味し、受付後にシステムが指定の時刻になった時、DBMSは自動的にt0データまたはtnデータの記憶を開始する。〈処理ルートとレコードの更新〉
図3(1)に、通常の処理ルートと別の処理ルートの基本ツリーを示す。DB作成時点31においてDBの初期作成が行われた後に、通常処理ルート(実線で示す)は、該DB作成時点31をベースとして32の時点t0が設定され、現時点33に至っている。このルートが最新データをあらわす。一方、別処理ルート(破線で示す)は、32の時点t0が設定された後に、該時点t0をベースとして34時点tnが設定され、現時点35に至る。この処理ルートがtnデータをあらわす。
【0020】
図3(2)に、それぞれの処理ルートによって一つのレコード(レコードA)が更新されてゆく様子を示す。DB作成時点31の作成36のレコードの内容はAであり、その後、通常処理ルートの更新37によってBとなり、32の時点t0の設定の後の更新38によってCとなる。したがって、最新データはCであり、t0データはBである。一方、t0データのBは、34の時点tnからの別の処理ルートでの更新39によってDとなる。したがって、tnデータはDである。
【0021】
図3(3)に、さらにその後の様子を示す。即ち、34の時点tnからの別の処理ルートで、更新391によってDがEとなる。一方、通常の処理ルートの最新データのCは更新381によってFとなる。この結果、現時点331および351での最新データはF、t0データはB、tnデータはEである。
【0022】
上記時点t0やtnは各処理ルート上に時系列に複数設定してもよい。図4(1)は、時点t0について2回設定した通常処理ルートツリーの例を示したものである。即ち、通常処理ルートは、DB作成時点41の後、一回目の時点t0[1]の設定42、二回目の時点t0[2]の設定43、そして現時点44に至っている。また、図4(2)は、時点tnについて2回設定した別処理ルートツリーの例を示したものである。即ち、これは、DB作成時点45および時点t0の設定46の後、別の処理ルートが、時点t0をベースとする一回目の時点tn[1]の設定47、時点tn[1]をベースとする二回目の時点tn[2]の設定48、そして現時点49に至っている。なお、時点t0、時点tnのいずれの場合も、3回以上の設定についても容易に類推できる。
【0023】
図4は時点t0やtnを同じ処理ルート上に時系列に複数設定する例であったが、時点t0をベースに別の処理ルートを複数設定することも可能である。
【0024】
図5は、同一の時点t0をベースに二つの時点tnを設定して二つの別処理ルートを走行させた例を示したものである。即ち、DB作成時点51および時点t0の設定52の後、通常ルートとは別に、時点t052をベースとする一つ目の時tn1を設定53し、現時点54に至る第1の別処理ルートがある。一方、同じ時点t052をベースとする二つ目の時点tn2を設定55し、現時点56に至る第2の別処理ルートがある。これら二つの処理ルートは、ベースとする時点t0は共通しているが、時点tn以降は独立した処理ルートを形成している。〈DBアクセス制御部の動作〉
図6から図11は、図2のDBアクセス制御部5の各手段の処理フローチャートを示したものである。
【0025】
図6は、最新データの参照要求に対応して動作する最新データ検索手段231のフローチャートである。UAP4から最新データの参照要求211があると、最新データ検索手段231は第1記憶エリア読み出し制御手段251を呼び出し(ステップ2311)、DB8の第1記憶エリア9をアクセスせしめて、目的の最新データを得る。その後、最新データ検索手段231はUAP4に制御を戻す。
【0026】
図7は、最新データの更新要求に対応して動作する最新データ記憶手段241のフローチャートである。UAP4から最新データの更新要求221があると、最新データ記憶手段241は、時点t0が設定されているか判定し(ステップ2411)、設定されていなければ、直ちに第1記憶エリア書き込み制御手段261を呼び出し(ステップ2413)、DB8の第1記憶エリア9に目的の最新データを記憶せしめる。一方、t0が設定されている場合は、まず、更新前のデータをt0データとして第2記憶エリア10に記憶せしめるためにt0データ記憶手段242を呼び出し(ステップ2412)、該t0データ記憶手段242の実行後、当該最新データ記憶手段241は第1記憶エリア書き込み制御手段261を呼び出す。そして、最新データの更新要求の処理が終了すると、最新データ記憶手段241は制御をUAP4に戻す。
【0027】
図8は、上記最新データの更新要求に対応して動作するt0データ記憶手段242の詳細フローチャートである。最新データ記憶手段241から呼び出されたt0データ記憶手段242は、まず、DB8の第2記憶エリア10に該当t0データが記憶されているかを確認するために第2記憶エリア読み出し制御手段252を呼び出し(ステップ2421)、第2記憶エリア10をアクセスせしめる。なお、第2記憶エリア10が時系列t0[1]〜t0[n]に分割されている時には、最後に時点設定t0[n]されたエリアが対象になる。そして、該当t0データがあるかを判定し(ステップ2422)、あれば、なにもせずに最新データ記憶手段241に制御を戻す。一方、該当t0データがない場合には、第1記憶エリア読み出し制御手段251を呼び出し(ステップ2423)、第1記憶エリア9をアクセスせしめる。即ち、第1記憶エリア9に該当データがあれば、それがt0データとなる。次に、第2記憶エリア書き込み制御手段262を呼び出し(ステップ2424)、第1記憶エリア9から読み出した更新前データをt0データとして第2記憶エリア10に記憶せしめる。この場合も、第2記憶エリア10が時系列t0[1]〜t0[n]に分割されている時には最後に時点設定されたエリアが対象になる。また、第1記憶エリアへのレコード追加の場合には、第1記憶エリアにt0データが存在しないので、第2記憶エリアには、その旨を表す空t0データ(後述の図12のデータ部72なし)を書き込む。その後、t0データ記憶手段242は最新データ記憶手段241に制御を戻す。
【0028】
図9は、t0データの参照要求に対応して動作するt0データ検索手段232のフローチャートである。UAP4からt0データの参照要求212があると、t0データ検索手段232は、まず、第2記憶エリア読み出し制御手段252を呼び出し(ステップ2321)、DB8の第2記憶エリア10をアクセスせしめて、該当データがあるかを判定する(ステップ2322)。第2記憶エリア10に該当データがあれば、それが求めるt0データである。t0データ検索手段232は、該第2記憶エリア10から読み出されたt0データをUAP4に渡し、制御をUAP4に戻す。なお、第2記憶エリア10が時系列t0[1]〜t0[n]に分割されていて、t0[1]より順に時点設定がされている場合には、時点t0[i]を指定する参照要求に対応して、該当データをt0[i]→t0[i+1]→・・・t0[n]の順で検索し、最初に見つかったところで検索を終了する。
【0029】
第2記憶エリア10に目的のt0データがない場合、t0データ検索手段232は、第1記憶エリア読み出し制御手段251を呼び出し(ステップ2323)、DB8の第1記憶エリア10をアクセスせしめる。即ち、第1記憶エリア10に該当データがあれば、それが求めるt0データである。そこで、t0データ検索手段232は、該第1記憶エリア9から読み出されたデータをt0データとして得て、制御をUAP4に戻す。
【0030】
図10は、tnデータの参照要求に対応して動作するtnデータ記憶手段233のフローチャートである。UAP4からtnデータの参照要求213があると、tnデータ検索手段233は、まず、第3記憶エリア読み出し制御手段253を呼び出し(ステップ2331)、DB8の第3記憶エリア11をアクセスせしめて、該当tnデータがあるかを判定する(ステップ2332)。第3記憶エリア11に該当データがあれば、それが求めるtnデータである。tnデータ検索手段233は、該第3記憶エリア11から読み出されたtnデータをUAP4に渡し、UAP4に制御を戻す。なお、第3記憶エリア11が時系列tn[1]〜tn[n]に分割されていて、1より順にnまで設定されている場合、tn[1],tn[2]・・・tn[n−1]は参照だけが行われるが、tn[n]は参照と更新が行われるエリアとなる。今、tn[i+1]を指定した参照要求を受け付けたとすると、tn[i]→tn[i−1]→・・・tn[2]→tn[1]の順で該当データを検索し、最初に見つかったところで検索を終了する。最新のtnデータの要求であれば、tn[n]のエリアから検索をはじめる。
【0031】
第3記憶エリア11に目的のtnデータがない場合、tnデータ検索手段233はt0データ検索手段232を呼び出し(ステップ2333)、図9で説明した如く、第2記憶エリア10または更に第1記憶エリア9をアクセスせしめる。即ち、第2または第1記憶エリアに該当するt0データがあれば、それが求めるtnデータである。tnデータ検索手段233は該tnデータをUAP4に渡し、UAP4に制御を戻す。
【0032】
図11は、tnデータの更新要求に対応して動作するtnデータ記憶手段243のフローチャートである。UAP4からtnデータの更新要求222があると、tnデータ記憶手段243は、第3記憶エリア書き込み制御手段263を呼び出し(ステップ2431)、DB8の第3記憶エリア11に目的のtnデータを記憶せしめる。なお、第3記憶エリア11が時系列tn[1]〜tn[n]に分割されていて、1より順にnまで設定されている場合、tn[1],tn[2]・・・tn[n−1]は参照だけが行われるが、tn[n]は参照と更新が行われるエリアとなる。したがって、tnデータはtn[n]のエリアに書き込まれる。
【0033】
以下に、図3の(2)、(3)の例について、図6乃至図11のフローチャートを用いてDBアクセス制御部5の動作を説明する。
【0034】
DB作成時点31の作成36によって、レコードAは既に第1記憶エリア9に記憶されているとする。更新37のレコードBは、時点t0の設定前であるため、最新データ記憶手段241によって直ちに第1記憶エリア書き込み制御手段261に渡され、第1記憶エリア9に記憶される。即ち、第1記憶エリア9のデータはAからBに更新される。
【0035】
時点t0の設定32以降は、参照要求および更新要求に対してDBアクセス制御部の動作は次のようになる。最新データの参照要求に対しては、最新データ検索手段231によって第1記憶エリア読み出し制御手段251が動作し、第1記憶エリア9からレコードBを得る(図6:ステップ2311)。更新38では、レコードCの更新要求に対して、最新データ記憶手段241によってt0データ記憶手段242が呼び出される(図7:ステップ2412)。t0データ記憶手段242は、第2記憶エリア読み出し制御手段252を呼び出すが、第2記憶エリア10に更新前データが記憶されていない通知を該第2記憶エリア読み出し制御手段252より受けて(図8:ステップ2421,2422)、引き続いて第1記憶エリア読み出し制御手段251を呼び出し、更新前データであるレコードBを該第1記憶エリア読み出し制御手段251から受け取って(図8:ステップ2423)、第2記憶エリア書き込み制御手段262に渡す(図8:ステップ2424)。これにより、第2記憶エリア10にレコードBがt0データとして記憶される。一方、更新後のデータであるレコードCは、最新データ記憶手段241によって第1記憶エリア書き込み制御手段261に渡され(図7:ステップ2413)、第1記憶エリア9には、レコードCが更新データとして記憶される。
【0036】
次に、時点tnの設定34があり、tnデータの参照要求が発生したとする。該tnデータの参照要求に対して、tnデータ検索手段233は、最初に第3記憶エリア読み出し制御手段253を呼び出すが、第3記憶エリア11に該当データが記憶されていない通知を該第3記憶エリア読み出し制御手段253から受取り(図10:ステップ2331,2332)、次にt0データ検索手段232を呼び出す(図10:ステップ2333)。t0データ検索手段232は、第2記憶エリア読み出し制御手段252を呼び出し、その結果、第2記憶エリア10にt0データとして記憶されているレコードBを該第2記憶エリア読み出し制御手段252から受け取り(図9:ステップ2321,2322(Yes))、これをtnデータ検索手段233に渡す。こうして、レコードBを得る。その後、tnデータの更新39が発生すると、当該更新要求のレコードDは、tnデータ記憶手段243が呼び出した第3記憶エリア書き込み制御手段263に渡され(図11:ステップ2431)、第3記憶エリア11に記憶される。
【0037】
続いて、tnデータの参照および更新391が発生したとする。まず、tnデータの参照要求に対して、tnデータ検索手段233は、第3記憶エリア読み出し制御手段253を呼び出し、第3記憶エリア11に該当データのレコードDが記憶されていることを該第3記憶エリア読み出し制御手段253から受け取る(図10:ステップ2331,2332(Yes))。この場合、第3記憶エリア11の読み出しだけで、目的のレコードDを得る。その後、更新391の更新要求のレコードEは、tnデータ記憶手段243が呼び出した第3記憶エリア書き込み制御手段263に渡され(図11:ステップ2431)、第3記憶エリア11に記憶される。この結果、第3記憶エリア11にはEがDに置き換わって記憶され、また、第1および第2記憶エリア9,10には、それぞれC、Bが記憶されたままとなる。
【0038】
最後に、最新データの更新381では、最新データ記憶手段241はt0データ記憶手段242を呼び出し(図7:ステップ2412)、t0データ記憶手段242は、第2記憶エリア読み出し制御手段252を呼び出し、第2記憶エリア10に更新前データが記憶されている旨の通知を受けるため(図8:ステップ2421,2422(Yes))、第2記憶エリア書き込み制御手段262の呼び出しをバイパスする。この点が先の更新38の動作と異なる。その後、最新データ記憶手段241は第1記憶エリア書き込み制御手段261を呼び出す(図7:ステップ2413)。結果として、第1記憶エリア9には今回の更新要求のレコードFが記憶され、第2記憶エリア10にはレコードBが記憶されたままとなる。〈第2および第3記憶エリアのデータ形式〉
第1記憶エリア9は、一般に知られている階層モデル、ネットワークモデル、あるいはリレーショナルモデルのDBに適用できる。そのデータの格納形式は、従来のDBのデータ形式そのもので実現できる。しかし、第2および第3記憶エリア10,11については、更新系のレコードアクセスに対して時系列のエリア管理をすべきことから、第1記憶エリア9とは異なるデータ形式が必要となる。すなわち、レコードの追加・削除に関する記録である。
【0039】
具体的な一例として、図12に第2および第3記憶エリア10,11のデータ形式を示す。これは、ヘッダ部71をフラグフィールド711、キー長フィールド712、レコード長フィールド713およびキーフィールド714で構成し、データ部72をレコードフィールド721だけで構成する。フラグフィールド711にはアクセスの種別として更新フラグ・追加フラグ・削除フラグを設定する。キー長フィールド712はキーフィールド714のサイズを表わし、レコード長フィールド713はレコードフィールド721のサイズを表わす。第1記憶エリアへのレコード追加に対しては、第2記憶エリアへはレコード長フィールドの値がゼロ、すなわちデータ部なしの情報をt0データとして記憶する。図8のt0データの記憶でも説明したように、ステップ2423において第1記憶エリアに該当データがないレコード追加の場合でもステップ2424のt0データ記憶が必要であり、データ部なしのt0データを書き出す。また、t0データのレコード削除に対しては、やはり、レコード長フィールドの値がゼロの情報をtnデータとして記憶する。図11のステップ2431でデータ部なしのtnデータを書き出すことになる。
【0040】
このように、第2記憶エリアのt0データおよび第3記憶エリアのtnデータはキーフィールド714によって第1記憶エリアのデータと論理的に関連付けされている。
【0041】
なお、レコードのアクセス性能についても、各手段相互の連携によって向上させることができる。これには、バッファリング手法、あるいは連想による並列実行制御の手法が考えられる。また、第2あるい第3記憶エリアについては、必要に応じてヘッダ部71のキーでの索引を持つ手法がある。また、第2や第3記憶エリアの場合、時系列にn分割しているならば連続する分割エリアを併合することで検索効率(同様にスペース格納効率も)を高めることができる。
【0042】
以上説明したように、データベース管理システムでは、DBを複数の記憶エリアで構成して各目的のデータを一元管理するので、従来のように別ファイルにコピーして、重複したデータを持つ必要がない。このため、データの管理が容易になる。さらに、データの重複がないことから、DBの格納スペース効率がよい、DBのコピーに要する時間が節約になる等の効果がある。一方、システムの業務・運用面では、過去の複数の時点のDBの内容を後にまとめて参照できることから、統計処理やバックアップ処理が容易となる。また、DBへの連続的なアクセスを保証しながら、過去のある時点を基点とする更新処理が複数の記憶エリアで多重化できることから、オンライン環境でのUAP開発(テスト作業等)でもDBのスペース量やリロード(再作成)回数を削除でき、効率良くDBを利用できる。
【図面の簡単な説明】
【0043】
【図1】本発明のオンラインデータベース管理システムが稼働するシステムの全体構成図である。
【図2】本発明によるDBアクセス制御部の一実施例の構成図及びUAPとの関連を示した図である。
【図3】本発明による処理ルートツリーの例およびデータ更新の様子を示す図である。
【図4】処理ルート上に複数の時点設定した例を示す図である。
【図5】独立した複数の処理ルートを設定した例を示す図である。
【図6】DBアクセス制御部の最新データ参照要求の処理フローチャートである。
【図7】DBアクセス制御部の最新データ更新要求の処理フローチャートである。
【図8】DBアクセス制御部のt0データ記憶の処理フローチャートである。
【図9】DBアクセス制御部のt0データ参照要求の処理フローチャートである。
【図10】DBアクセス制御部のtnデータ参照要求の処理フローチャートである。
【図11】DBアクセス制御部のtnデータ更新要求の処理フローチャートである。
【図12】第2および第3記憶エリアのデータ形式の例を示す図である。
【符号の説明】
【0044】
1 中央処理装置(CPU)
2 オペレーティングシステム(OS)
3 トランザクシヨン処理モニタ(TPモニタ)
4 ユーザアプリケーションプログラム(UAP)
5 データベースアクセス制御部
8 データベース(DB)
9 第1記憶エリア
10 第2記憶エリア
11 第3記憶エリア
【技術分野】
【0001】
本発明は、任意の時点のデータベースを別の領域に記憶し、そのデータベースの処理を行うデータベース管理技術に関する。
【背景技術】
【0002】
一般にオンラインシステムのデータベース(以下、DBと称す)の日次や月次の処理は、オンライン終了後に、あるいは、DBを閉塞したうえでオンラインシステムから一時的に切り離した後に、バッチ処理で一括してDBを参照することで行っていた。
【0003】
従来、連続無停止システムにおけるDBの更新・検索方法としては、特許文献1や特許文献2に記載のように、DBの更新要求には直ちに対象情報が更新される一方、更新前の情報を保持して、それには更新の時系列情報を付与しておき、検索要求には要求時点の時系列情報に基づいて該当時点の情報を検索できるようにする方法がある。また、DBの回復を容易にしたり、レコードの世代管理を容易にする方法としては、特許文献3に記載のように、レコードの更新時刻や更新前情報を履歴としてDB内に内蔵させることで実現する方法がある。さらに、データセットのバックアップを取得する方法としては、特許文献4に記載のように、UAP実行の保留時間を大幅に短縮しながらある時点で一貫性を持つデータセットのバックアップを取得する方法がある。しかし、これらはいずれも、ある時点でのDBの首尾一貫する内容を読み出すことが目的であり、直接更新することはできない。
【0004】
【特許文献1】特開昭58−62744号公報
【特許文献2】特開平6−35774号公報
【特許文献3】特開平1−166232号公報
【特許文献4】特開平5−210555号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
従来技術では、DBへの本来業務による連続アクセスを保証しながら、過去のある時点のDBの内容(以下、凍結データと称す)に基づいて別途更新処理等を行うためには、ある時点のDBのコピーを作成してからそれを更新することになる。また、オンラインシステム環境下でのUAP開発時は、DBをそのバックアップから回復する作業がUAP実行に先駆けてその都度必要になっていた。
【0006】
本発明の目的は、データベース管理システムにおける日次業務や月次業務などの更新処理を容易に可能とすることにある。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明では、DBを複数の記憶エリアに分割して管理する。具体的には、オンラインシステムの通常業務のUAPの処理ルート(通常処理ルート)による最新のデータのすべてを保持する第1記憶エリアを中軸にして、該通常処理ルートの過去のある時点(t0時点)に遡るための更新前のデータ(t0データ)を記憶する第2記憶エリアと、該t0データを元に、過去のある時点から新たに別のUAPの処理ルート(別処理ルート)を実行して得られる更新後のデータ(tnデータ)を記憶する第3記憶エリアに分割して管理する。
【0008】
過去のある時点に遡る必要がなくなれば、第2記憶エリアや第3記憶エリアを切り離すだけでよい。また、新たな時点を設定する場合には、初期化した第2記憶エリアや第3記憶エリアを時系列あるいは並列に接続すればよい。これらの操作は、DBの第1記憶エリアへの通常業務によるアクセスを妨げるものではない。したがって、DBへの連続的なアクセスは保証される。
DBを複数の記憶エリアに分割するのに対応して、DBアクセス制御部では、UAPから最新あるいは過去のある時点の指定を受けて、参照要求に対しては所定の記憶エリアを検索する手段と、更新に際しては第1記憶エリアあるいは第3記憶エリアに更新後データを記憶する手段と、また、第1記憶エリアに記憶する際には必要に応じて第2記憶エリアに更新前のデータを退避する手段が組み合わせて用いられる。
【0009】
このように処理することにより、所定条件を満たしたときのデータベースを格納した第2の記憶領域を入力とした処理の更新データを第3の記憶領域に格納できるため、連続運転を行うデータベース管理システムにおける日次業務や月次業務などの更新処理が容易に実現できる。また、DBを複数の記憶エリアで構成して各目的のデータを一元管理するので、従来のように別ファイルにコピーして、重複したデータを持つ必要がない。このため、データの管理が容易になる。さらに、データの重複がないことから、DBの格納スペース効率がよい、DBのコピーに要する時間が節約になる等の効果がある。一方、システムの業務・運用面では、過去の複数の時点のDBの内容を後にまとめて参照できることから、統計処理やバックアップ処理が容易となる。また、DBへの連続的なアクセスを保証しながら、過去のある時点を基点とする更新処理が複数の記憶エリアで多重化できることから、オンライン環境でのUAP開発(テスト作業等)でもDBのスペース量やリロード(再作成)回数を削除でき、効率良くDBを利用できる。
【発明の効果】
【0010】
データベース管理システムにおける日次業務や月次業務などの処理が容易に実現できる。
【発明を実施するための最良の形態】
【0011】
本発明の実施形態の一例を説明する
まず、DBを複数の記憶エリアに分割して管理する。具体的には、オンラインシステムの通常業務のUAPの処理ルート(通常処理ルート)による最新のデータのすべてを保持する第1記憶エリアを中軸にして、該通常処理ルートの過去のある時点(t0時点)に遡るための更新前のデータ(t0データ)を記憶する第2記憶エリアと、該t0データを元に、過去のある時点から新たに別のUAPの処理ルート(別処理ルート)を実行して得られる更新後のデータ(tnデータ)を記憶する第3記憶エリアに分割して管理する。
【0012】
次に、過去のある時点に遡る必要がなくなれば、第2記憶エリアや第3記憶エリアを切り離すだけでよい。また、新たな時点を設定する場合には、初期化した第2記憶エリアや第3記憶エリアを時系列あるいは並列に接続すればよい。これらの操作は、DBの第1記憶エリアへの通常業務によるアクセスを妨げるものではない。したがって、DBへの連続的なアクセスは保証される。
【0013】
DBを複数の記憶エリアに分割するのに対応して、DBアクセス制御部では、UAPから最新あるいは過去のある時点の指定を受けて、参照要求に対しては所定の記憶エリアを検索する手段と、更新に際しては第1記憶エリアあるいは第3記憶エリアに更新後データを記憶する手段と、また、第1記憶エリアに記憶する際には必要に応じて第2記憶エリアに更新前のデータを退避する手段が組み合わせて用いられる。
【0014】
以下に本発明の一実施例を図面により説明する。〈システム環境〉
図1に本実施例のデータベース管理システム(DBMS)が稼働するシステム環境を示す。図1において、中央処理装置(CPU)1、端末群6、システムコンソール7およびデータベース(DB)8でオンラインシステムを構成している。ここで、CPU1にはオペレーティングシステム(OS)2、トランザクション処理モニタ(TPモニタ)3、ユーザアプリケーションプログラム(UAP)4およびDBアクセス制御部5が含まれる。OS2はシステム全体を効率よく運用するソフトウェアである。TPモニタ3は、端末群6から入力されたトランザクションをOS2を介して受信し、目的の業務処理を実行するUAP4に引き渡す。UAP4はDBアクセス制御部5を呼び出してデータの入出力処理を行う。DBアクセス制御部5はUAP4からの参照や更新要求に応じてDB8をアクセスする制御部であり、DB8の構成とともに中心的な部分である。DB8は、本オンラインシステムで動作する本来のUAPの処理(通常の処理ルート)の現時点での最新データを記憶する第1記憶エリア9と、通常の処理ルートの過去のある時点(t0)のデータ(t0データ)を記憶する第2記憶エリア10と、前記t0データをベースに、新たに別のUAPの処理(別の処理ルート)を実行して得られる更新後のデータ(tnデータ)を記憶する第3記憶エリア11で構成される。第2および第3記憶エリア10,11は、実施例における特徴的な構成であり、それぞれの記憶エリア10,11には一つまたは複数のデータセットを割り当てることができるが、図1では説明を簡単にするため一つずつとしている。
【0015】
システムコンソール7からはシステムオペレータによりDBアクセス制御部5への指令、いわゆる各記憶エリア9,10,11に対応するデータセットの動的な接続・切り離し等の指令が投入されるが、図1は接続された状態を示す。〈UAPおよびDBアクセス制御部の構成〉
UAP4からDBアクセス制御部5に対してのDB8をアクセスする要求は、参照系と更新系に大別される。具体的には、アクセスする単位をレコードとすると、参照系とはレコードの参照、更新系とはレコードの置換、レコードの追加、およびレコードの削除である。ここでは、置換・追加・削除の要求を総称して更新要求と呼ぶことにする。図2にUAP4およびDBアクセス制御部5の構成例を示す。
【0016】
UAP4には参照要求手段21と更新要求手段22が含まれる。さらに、参照要求手段21には最新データ211、t0データ212、およびtnデータ213のいずれかを選択する項目が含まれる。更新要求手段22には、最新データ221およびtnデータ222のいずれかを選択する項目が含まれる。なお、更新要求手段22にt0データを選択する項目がないのは、t0データを更新した結果得られるのがtnデータであり、t0データ更新要求は即ちtnデータ更新要求を意味することによる。
【0017】
DBアクセス制御部5は最新データ検索手段231、t0データ検索手段232、tnデータ検索手段233の各検索手段と、最新データ記憶手段241、t0データ記憶手段242、tnデータ記憶手段243の各記憶手段と、第1記憶エリア読み出し制御手段251、第2記憶エリア読み出し制御手段252、第3記憶エリア読み出し制御手段253の各読み出し手段と、第1記憶エリア書き込み制御手段261、第2記憶エリア書き込み制御手段262、第3記憶エリア書き込み制御手段263の各書き込み手段とからなる。実線は参照要求時の制御経路、破線は更新要求時の制御経路を示している。各データの参照要求や更新要求に対する動作については後述する。〈時点設定〉
UAPからのt0やtnの時点設定の仕方には、イベントによる方法とスケジュールによる方法の二通りがある。
【0018】
イベントによる方法とは、UAPから設定要求を発した時刻そのものが設定の時点となるもので、t0データまたはtnデータの記憶を開始する時点と解釈される。
【0019】
スケジュールによる方法とは、UAPから設定要求を発した時刻よりも先のシステム時刻を指定する方法である。つまり、UAPからの予約受け付けを意味し、受付後にシステムが指定の時刻になった時、DBMSは自動的にt0データまたはtnデータの記憶を開始する。〈処理ルートとレコードの更新〉
図3(1)に、通常の処理ルートと別の処理ルートの基本ツリーを示す。DB作成時点31においてDBの初期作成が行われた後に、通常処理ルート(実線で示す)は、該DB作成時点31をベースとして32の時点t0が設定され、現時点33に至っている。このルートが最新データをあらわす。一方、別処理ルート(破線で示す)は、32の時点t0が設定された後に、該時点t0をベースとして34時点tnが設定され、現時点35に至る。この処理ルートがtnデータをあらわす。
【0020】
図3(2)に、それぞれの処理ルートによって一つのレコード(レコードA)が更新されてゆく様子を示す。DB作成時点31の作成36のレコードの内容はAであり、その後、通常処理ルートの更新37によってBとなり、32の時点t0の設定の後の更新38によってCとなる。したがって、最新データはCであり、t0データはBである。一方、t0データのBは、34の時点tnからの別の処理ルートでの更新39によってDとなる。したがって、tnデータはDである。
【0021】
図3(3)に、さらにその後の様子を示す。即ち、34の時点tnからの別の処理ルートで、更新391によってDがEとなる。一方、通常の処理ルートの最新データのCは更新381によってFとなる。この結果、現時点331および351での最新データはF、t0データはB、tnデータはEである。
【0022】
上記時点t0やtnは各処理ルート上に時系列に複数設定してもよい。図4(1)は、時点t0について2回設定した通常処理ルートツリーの例を示したものである。即ち、通常処理ルートは、DB作成時点41の後、一回目の時点t0[1]の設定42、二回目の時点t0[2]の設定43、そして現時点44に至っている。また、図4(2)は、時点tnについて2回設定した別処理ルートツリーの例を示したものである。即ち、これは、DB作成時点45および時点t0の設定46の後、別の処理ルートが、時点t0をベースとする一回目の時点tn[1]の設定47、時点tn[1]をベースとする二回目の時点tn[2]の設定48、そして現時点49に至っている。なお、時点t0、時点tnのいずれの場合も、3回以上の設定についても容易に類推できる。
【0023】
図4は時点t0やtnを同じ処理ルート上に時系列に複数設定する例であったが、時点t0をベースに別の処理ルートを複数設定することも可能である。
【0024】
図5は、同一の時点t0をベースに二つの時点tnを設定して二つの別処理ルートを走行させた例を示したものである。即ち、DB作成時点51および時点t0の設定52の後、通常ルートとは別に、時点t052をベースとする一つ目の時tn1を設定53し、現時点54に至る第1の別処理ルートがある。一方、同じ時点t052をベースとする二つ目の時点tn2を設定55し、現時点56に至る第2の別処理ルートがある。これら二つの処理ルートは、ベースとする時点t0は共通しているが、時点tn以降は独立した処理ルートを形成している。〈DBアクセス制御部の動作〉
図6から図11は、図2のDBアクセス制御部5の各手段の処理フローチャートを示したものである。
【0025】
図6は、最新データの参照要求に対応して動作する最新データ検索手段231のフローチャートである。UAP4から最新データの参照要求211があると、最新データ検索手段231は第1記憶エリア読み出し制御手段251を呼び出し(ステップ2311)、DB8の第1記憶エリア9をアクセスせしめて、目的の最新データを得る。その後、最新データ検索手段231はUAP4に制御を戻す。
【0026】
図7は、最新データの更新要求に対応して動作する最新データ記憶手段241のフローチャートである。UAP4から最新データの更新要求221があると、最新データ記憶手段241は、時点t0が設定されているか判定し(ステップ2411)、設定されていなければ、直ちに第1記憶エリア書き込み制御手段261を呼び出し(ステップ2413)、DB8の第1記憶エリア9に目的の最新データを記憶せしめる。一方、t0が設定されている場合は、まず、更新前のデータをt0データとして第2記憶エリア10に記憶せしめるためにt0データ記憶手段242を呼び出し(ステップ2412)、該t0データ記憶手段242の実行後、当該最新データ記憶手段241は第1記憶エリア書き込み制御手段261を呼び出す。そして、最新データの更新要求の処理が終了すると、最新データ記憶手段241は制御をUAP4に戻す。
【0027】
図8は、上記最新データの更新要求に対応して動作するt0データ記憶手段242の詳細フローチャートである。最新データ記憶手段241から呼び出されたt0データ記憶手段242は、まず、DB8の第2記憶エリア10に該当t0データが記憶されているかを確認するために第2記憶エリア読み出し制御手段252を呼び出し(ステップ2421)、第2記憶エリア10をアクセスせしめる。なお、第2記憶エリア10が時系列t0[1]〜t0[n]に分割されている時には、最後に時点設定t0[n]されたエリアが対象になる。そして、該当t0データがあるかを判定し(ステップ2422)、あれば、なにもせずに最新データ記憶手段241に制御を戻す。一方、該当t0データがない場合には、第1記憶エリア読み出し制御手段251を呼び出し(ステップ2423)、第1記憶エリア9をアクセスせしめる。即ち、第1記憶エリア9に該当データがあれば、それがt0データとなる。次に、第2記憶エリア書き込み制御手段262を呼び出し(ステップ2424)、第1記憶エリア9から読み出した更新前データをt0データとして第2記憶エリア10に記憶せしめる。この場合も、第2記憶エリア10が時系列t0[1]〜t0[n]に分割されている時には最後に時点設定されたエリアが対象になる。また、第1記憶エリアへのレコード追加の場合には、第1記憶エリアにt0データが存在しないので、第2記憶エリアには、その旨を表す空t0データ(後述の図12のデータ部72なし)を書き込む。その後、t0データ記憶手段242は最新データ記憶手段241に制御を戻す。
【0028】
図9は、t0データの参照要求に対応して動作するt0データ検索手段232のフローチャートである。UAP4からt0データの参照要求212があると、t0データ検索手段232は、まず、第2記憶エリア読み出し制御手段252を呼び出し(ステップ2321)、DB8の第2記憶エリア10をアクセスせしめて、該当データがあるかを判定する(ステップ2322)。第2記憶エリア10に該当データがあれば、それが求めるt0データである。t0データ検索手段232は、該第2記憶エリア10から読み出されたt0データをUAP4に渡し、制御をUAP4に戻す。なお、第2記憶エリア10が時系列t0[1]〜t0[n]に分割されていて、t0[1]より順に時点設定がされている場合には、時点t0[i]を指定する参照要求に対応して、該当データをt0[i]→t0[i+1]→・・・t0[n]の順で検索し、最初に見つかったところで検索を終了する。
【0029】
第2記憶エリア10に目的のt0データがない場合、t0データ検索手段232は、第1記憶エリア読み出し制御手段251を呼び出し(ステップ2323)、DB8の第1記憶エリア10をアクセスせしめる。即ち、第1記憶エリア10に該当データがあれば、それが求めるt0データである。そこで、t0データ検索手段232は、該第1記憶エリア9から読み出されたデータをt0データとして得て、制御をUAP4に戻す。
【0030】
図10は、tnデータの参照要求に対応して動作するtnデータ記憶手段233のフローチャートである。UAP4からtnデータの参照要求213があると、tnデータ検索手段233は、まず、第3記憶エリア読み出し制御手段253を呼び出し(ステップ2331)、DB8の第3記憶エリア11をアクセスせしめて、該当tnデータがあるかを判定する(ステップ2332)。第3記憶エリア11に該当データがあれば、それが求めるtnデータである。tnデータ検索手段233は、該第3記憶エリア11から読み出されたtnデータをUAP4に渡し、UAP4に制御を戻す。なお、第3記憶エリア11が時系列tn[1]〜tn[n]に分割されていて、1より順にnまで設定されている場合、tn[1],tn[2]・・・tn[n−1]は参照だけが行われるが、tn[n]は参照と更新が行われるエリアとなる。今、tn[i+1]を指定した参照要求を受け付けたとすると、tn[i]→tn[i−1]→・・・tn[2]→tn[1]の順で該当データを検索し、最初に見つかったところで検索を終了する。最新のtnデータの要求であれば、tn[n]のエリアから検索をはじめる。
【0031】
第3記憶エリア11に目的のtnデータがない場合、tnデータ検索手段233はt0データ検索手段232を呼び出し(ステップ2333)、図9で説明した如く、第2記憶エリア10または更に第1記憶エリア9をアクセスせしめる。即ち、第2または第1記憶エリアに該当するt0データがあれば、それが求めるtnデータである。tnデータ検索手段233は該tnデータをUAP4に渡し、UAP4に制御を戻す。
【0032】
図11は、tnデータの更新要求に対応して動作するtnデータ記憶手段243のフローチャートである。UAP4からtnデータの更新要求222があると、tnデータ記憶手段243は、第3記憶エリア書き込み制御手段263を呼び出し(ステップ2431)、DB8の第3記憶エリア11に目的のtnデータを記憶せしめる。なお、第3記憶エリア11が時系列tn[1]〜tn[n]に分割されていて、1より順にnまで設定されている場合、tn[1],tn[2]・・・tn[n−1]は参照だけが行われるが、tn[n]は参照と更新が行われるエリアとなる。したがって、tnデータはtn[n]のエリアに書き込まれる。
【0033】
以下に、図3の(2)、(3)の例について、図6乃至図11のフローチャートを用いてDBアクセス制御部5の動作を説明する。
【0034】
DB作成時点31の作成36によって、レコードAは既に第1記憶エリア9に記憶されているとする。更新37のレコードBは、時点t0の設定前であるため、最新データ記憶手段241によって直ちに第1記憶エリア書き込み制御手段261に渡され、第1記憶エリア9に記憶される。即ち、第1記憶エリア9のデータはAからBに更新される。
【0035】
時点t0の設定32以降は、参照要求および更新要求に対してDBアクセス制御部の動作は次のようになる。最新データの参照要求に対しては、最新データ検索手段231によって第1記憶エリア読み出し制御手段251が動作し、第1記憶エリア9からレコードBを得る(図6:ステップ2311)。更新38では、レコードCの更新要求に対して、最新データ記憶手段241によってt0データ記憶手段242が呼び出される(図7:ステップ2412)。t0データ記憶手段242は、第2記憶エリア読み出し制御手段252を呼び出すが、第2記憶エリア10に更新前データが記憶されていない通知を該第2記憶エリア読み出し制御手段252より受けて(図8:ステップ2421,2422)、引き続いて第1記憶エリア読み出し制御手段251を呼び出し、更新前データであるレコードBを該第1記憶エリア読み出し制御手段251から受け取って(図8:ステップ2423)、第2記憶エリア書き込み制御手段262に渡す(図8:ステップ2424)。これにより、第2記憶エリア10にレコードBがt0データとして記憶される。一方、更新後のデータであるレコードCは、最新データ記憶手段241によって第1記憶エリア書き込み制御手段261に渡され(図7:ステップ2413)、第1記憶エリア9には、レコードCが更新データとして記憶される。
【0036】
次に、時点tnの設定34があり、tnデータの参照要求が発生したとする。該tnデータの参照要求に対して、tnデータ検索手段233は、最初に第3記憶エリア読み出し制御手段253を呼び出すが、第3記憶エリア11に該当データが記憶されていない通知を該第3記憶エリア読み出し制御手段253から受取り(図10:ステップ2331,2332)、次にt0データ検索手段232を呼び出す(図10:ステップ2333)。t0データ検索手段232は、第2記憶エリア読み出し制御手段252を呼び出し、その結果、第2記憶エリア10にt0データとして記憶されているレコードBを該第2記憶エリア読み出し制御手段252から受け取り(図9:ステップ2321,2322(Yes))、これをtnデータ検索手段233に渡す。こうして、レコードBを得る。その後、tnデータの更新39が発生すると、当該更新要求のレコードDは、tnデータ記憶手段243が呼び出した第3記憶エリア書き込み制御手段263に渡され(図11:ステップ2431)、第3記憶エリア11に記憶される。
【0037】
続いて、tnデータの参照および更新391が発生したとする。まず、tnデータの参照要求に対して、tnデータ検索手段233は、第3記憶エリア読み出し制御手段253を呼び出し、第3記憶エリア11に該当データのレコードDが記憶されていることを該第3記憶エリア読み出し制御手段253から受け取る(図10:ステップ2331,2332(Yes))。この場合、第3記憶エリア11の読み出しだけで、目的のレコードDを得る。その後、更新391の更新要求のレコードEは、tnデータ記憶手段243が呼び出した第3記憶エリア書き込み制御手段263に渡され(図11:ステップ2431)、第3記憶エリア11に記憶される。この結果、第3記憶エリア11にはEがDに置き換わって記憶され、また、第1および第2記憶エリア9,10には、それぞれC、Bが記憶されたままとなる。
【0038】
最後に、最新データの更新381では、最新データ記憶手段241はt0データ記憶手段242を呼び出し(図7:ステップ2412)、t0データ記憶手段242は、第2記憶エリア読み出し制御手段252を呼び出し、第2記憶エリア10に更新前データが記憶されている旨の通知を受けるため(図8:ステップ2421,2422(Yes))、第2記憶エリア書き込み制御手段262の呼び出しをバイパスする。この点が先の更新38の動作と異なる。その後、最新データ記憶手段241は第1記憶エリア書き込み制御手段261を呼び出す(図7:ステップ2413)。結果として、第1記憶エリア9には今回の更新要求のレコードFが記憶され、第2記憶エリア10にはレコードBが記憶されたままとなる。〈第2および第3記憶エリアのデータ形式〉
第1記憶エリア9は、一般に知られている階層モデル、ネットワークモデル、あるいはリレーショナルモデルのDBに適用できる。そのデータの格納形式は、従来のDBのデータ形式そのもので実現できる。しかし、第2および第3記憶エリア10,11については、更新系のレコードアクセスに対して時系列のエリア管理をすべきことから、第1記憶エリア9とは異なるデータ形式が必要となる。すなわち、レコードの追加・削除に関する記録である。
【0039】
具体的な一例として、図12に第2および第3記憶エリア10,11のデータ形式を示す。これは、ヘッダ部71をフラグフィールド711、キー長フィールド712、レコード長フィールド713およびキーフィールド714で構成し、データ部72をレコードフィールド721だけで構成する。フラグフィールド711にはアクセスの種別として更新フラグ・追加フラグ・削除フラグを設定する。キー長フィールド712はキーフィールド714のサイズを表わし、レコード長フィールド713はレコードフィールド721のサイズを表わす。第1記憶エリアへのレコード追加に対しては、第2記憶エリアへはレコード長フィールドの値がゼロ、すなわちデータ部なしの情報をt0データとして記憶する。図8のt0データの記憶でも説明したように、ステップ2423において第1記憶エリアに該当データがないレコード追加の場合でもステップ2424のt0データ記憶が必要であり、データ部なしのt0データを書き出す。また、t0データのレコード削除に対しては、やはり、レコード長フィールドの値がゼロの情報をtnデータとして記憶する。図11のステップ2431でデータ部なしのtnデータを書き出すことになる。
【0040】
このように、第2記憶エリアのt0データおよび第3記憶エリアのtnデータはキーフィールド714によって第1記憶エリアのデータと論理的に関連付けされている。
【0041】
なお、レコードのアクセス性能についても、各手段相互の連携によって向上させることができる。これには、バッファリング手法、あるいは連想による並列実行制御の手法が考えられる。また、第2あるい第3記憶エリアについては、必要に応じてヘッダ部71のキーでの索引を持つ手法がある。また、第2や第3記憶エリアの場合、時系列にn分割しているならば連続する分割エリアを併合することで検索効率(同様にスペース格納効率も)を高めることができる。
【0042】
以上説明したように、データベース管理システムでは、DBを複数の記憶エリアで構成して各目的のデータを一元管理するので、従来のように別ファイルにコピーして、重複したデータを持つ必要がない。このため、データの管理が容易になる。さらに、データの重複がないことから、DBの格納スペース効率がよい、DBのコピーに要する時間が節約になる等の効果がある。一方、システムの業務・運用面では、過去の複数の時点のDBの内容を後にまとめて参照できることから、統計処理やバックアップ処理が容易となる。また、DBへの連続的なアクセスを保証しながら、過去のある時点を基点とする更新処理が複数の記憶エリアで多重化できることから、オンライン環境でのUAP開発(テスト作業等)でもDBのスペース量やリロード(再作成)回数を削除でき、効率良くDBを利用できる。
【図面の簡単な説明】
【0043】
【図1】本発明のオンラインデータベース管理システムが稼働するシステムの全体構成図である。
【図2】本発明によるDBアクセス制御部の一実施例の構成図及びUAPとの関連を示した図である。
【図3】本発明による処理ルートツリーの例およびデータ更新の様子を示す図である。
【図4】処理ルート上に複数の時点設定した例を示す図である。
【図5】独立した複数の処理ルートを設定した例を示す図である。
【図6】DBアクセス制御部の最新データ参照要求の処理フローチャートである。
【図7】DBアクセス制御部の最新データ更新要求の処理フローチャートである。
【図8】DBアクセス制御部のt0データ記憶の処理フローチャートである。
【図9】DBアクセス制御部のt0データ参照要求の処理フローチャートである。
【図10】DBアクセス制御部のtnデータ参照要求の処理フローチャートである。
【図11】DBアクセス制御部のtnデータ更新要求の処理フローチャートである。
【図12】第2および第3記憶エリアのデータ形式の例を示す図である。
【符号の説明】
【0044】
1 中央処理装置(CPU)
2 オペレーティングシステム(OS)
3 トランザクシヨン処理モニタ(TPモニタ)
4 ユーザアプリケーションプログラム(UAP)
5 データベースアクセス制御部
8 データベース(DB)
9 第1記憶エリア
10 第2記憶エリア
11 第3記憶エリア
【特許請求の範囲】
【請求項1】
データを記憶するデータベースと、オンラインシステムの下で動作するアプリケーション(以下、UAPと称す)からの要求により前記データベースのデータを参照および更新するデータベースアクセス制御部(以下、DBアクセス制御部と称す)とを具備するオンラインデータベース管理システムにおいて、
前記データベースを、オンラインシステムの下で動作する通常のUAPの処理ルート(以下、通常処理ルートと称す)による現時点での最新データを記憶する第1記憶エリアと、前記通常処理ルートの過去のある時点(以下、t0時点と称す)でのデータ(以下、t0データと称す)を記憶する第2記憶エリアと、前記t0データを元に、新たなUAPを実行する処理ルート(以下、別処理ルートと称す)による更新後のデータ(以下、tnデータと称す)を記憶する第3記憶エリアとで構成することを特徴とするオンラインデータベース管理システム。
【請求項1】
データを記憶するデータベースと、オンラインシステムの下で動作するアプリケーション(以下、UAPと称す)からの要求により前記データベースのデータを参照および更新するデータベースアクセス制御部(以下、DBアクセス制御部と称す)とを具備するオンラインデータベース管理システムにおいて、
前記データベースを、オンラインシステムの下で動作する通常のUAPの処理ルート(以下、通常処理ルートと称す)による現時点での最新データを記憶する第1記憶エリアと、前記通常処理ルートの過去のある時点(以下、t0時点と称す)でのデータ(以下、t0データと称す)を記憶する第2記憶エリアと、前記t0データを元に、新たなUAPを実行する処理ルート(以下、別処理ルートと称す)による更新後のデータ(以下、tnデータと称す)を記憶する第3記憶エリアとで構成することを特徴とするオンラインデータベース管理システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2007−242061(P2007−242061A)
【公開日】平成19年9月20日(2007.9.20)
【国際特許分類】
【出願番号】特願2007−158157(P2007−158157)
【出願日】平成19年6月15日(2007.6.15)
【分割の表示】特願2002−168035(P2002−168035)の分割
【原出願日】平成8年11月13日(1996.11.13)
【出願人】(000005108)株式会社日立製作所 (27,607)
【出願人】(000233055)日立ソフトウエアエンジニアリング株式会社 (1,610)
【Fターム(参考)】
【公開日】平成19年9月20日(2007.9.20)
【国際特許分類】
【出願日】平成19年6月15日(2007.6.15)
【分割の表示】特願2002−168035(P2002−168035)の分割
【原出願日】平成8年11月13日(1996.11.13)
【出願人】(000005108)株式会社日立製作所 (27,607)
【出願人】(000233055)日立ソフトウエアエンジニアリング株式会社 (1,610)
【Fターム(参考)】
[ Back to top ]