(57)【要約】【課題】データベース間の参照関係が破壊された場合でも導出先のデータベースのデータを再現すること。【解決手段】データ再現装置１０は、参照関係記憶部１１と、導出方法記憶部１２と、参照候補抽出部１３と、復旧方法抽出部１４とを有する。参照関係記憶部１１は、他のＤＢ（ＤＢ：DataBase）における所定のオブジェクトの導出時に参照される参照ＤＢと、参照ＤＢから導出されるオブジェクトを格納する導出ＤＢとの参照関係を記憶する。導出方法記憶部１２は、導出ＤＢと、オブジェクトの導出過程で実行される加工処理との関係を導出方法として記憶する。参照候補抽出部１３は、参照関係に基づき、再現対象ＤＢから参照関係を探索することにより参照候補ＤＢを抽出する。復旧方法抽出部１４は、導出方法に基づき、参照候補ＤＢ及び再現対象ＤＢの間でオブジェクトの導出までに実行される加工処理の過程を探索することにより復旧方法を抽出する。【選択図】図１
2011165147.tif 000002
【特許請求の範囲】
【請求項１】
他のデータベースにおける所定のオブジェクトを導出する際に参照される参照データベースと、前記参照データベースを参照して導出されるオブジェクトを格納する導出データベースとのデータベース間の参照関係を記憶する参照関係記憶部と、
前記オブジェクトが導出される導出データベースと、前記オブジェクトが導出される過程で実行される加工処理との関係を導出方法として記憶する導出方法記憶部と、
前記参照関係記憶部に記憶されたデータベース間の参照関係に基づき、再現の対象とされた再現対象データベースから参照関係を探索することにより、前記オブジェクトの導出時に参照させる候補である参照候補データベースを抽出する参照候補抽出部と、
前記導出方法記憶部に記憶された導出方法に基づき、前記参照候補抽出部によって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理の過程を探索することにより復旧方法を抽出する復旧方法抽出部と
を有することを特徴とするデータ再現装置。
【請求項２】
前記参照候補データベース及び前記復旧方法の組ごとに当該復旧方法を実行し終えるまでに要する復旧所要時間時間を取得する復旧所要時間取得部と、
前記参照候補抽出部によって抽出された参照候補データベース及び前記復旧方法抽出部によって取得された復旧方法の組のうち、前記復旧所要時間取得部によって取得された復旧所要時間が最も短い組を、前記オブジェクトの再現時に使用するデータベース及び復旧方法の組として選択する選択部と
をさらに有することを特徴とする請求項１に記載のデータ再現装置。
【請求項３】
前記導出方法記憶部は、
前記導出方法として、前記加工処理が行われたオブジェクトを加工前のオブジェクトに戻す逆処理をさらに記憶するものであって、
前記復旧方法抽出部は、
前記導出方法記憶部に記憶された導出方法に基づき、前記参照候補抽出部によって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理及び逆処理の過程を探索することにより復旧方法を取得することを特徴とする請求項１または２に記載のデータ再現装置。
【請求項４】
他のデータベースにおける所定のオブジェクトを導出する際に参照される参照データベースと、前記参照データベースを参照して導出されるオブジェクトを格納する導出データベースとのデータベース間の参照関係を記憶する参照関係記憶部に記憶されたデータベース間の参照関係に基づき、再現の対象とされた再現対象データベースから参照関係を探索することにより、前記オブジェクトの導出時に参照させる候補である参照候補データベースを抽出する参照候補抽出手順と、
前記オブジェクトが導出される導出データベースと、前記オブジェクトが導出される過程で実行される加工処理との関係を導出方法として記憶する導出方法記憶部に記憶された導出方法に基づき、前記参照候補抽出手順によって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理の過程を探索することにより復旧方法を抽出する復旧方法抽出手順と
をコンピュータに実行させることを特徴とするデータ再現プログラム。
【請求項５】
コンピュータが、
他のデータベースにおける所定のオブジェクトを導出する際に参照される参照データベースと、前記参照データベースを参照して導出されるオブジェクトを格納する導出データベースとのデータベース間の参照関係を記憶する参照関係記憶部に記憶されたデータベース間の参照関係に基づき、再現の対象とされた再現対象データベースから参照関係を探索することにより、前記オブジェクトの導出時に参照させる候補である参照候補データベースを抽出する参照候補抽出ステップと、
前記オブジェクトが導出される導出データベースと、前記オブジェクトが導出される過程で実行される加工処理との関係を導出方法として記憶する導出方法記憶部に記憶された導出方法に基づき、前記参照候補抽出ステップによって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理の過程を探索することにより復旧方法を抽出する復旧方法抽出ステップと
を実行することを特徴とするデータ再現方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ再現装置、データ再現プログラム及びデータ再現方法に関する。
【背景技術】
【０００２】
近年、分散して格納されるデータベース（ＤＢ：DataBase）を利用する環境下では、一方のデータベースのデータを参照して導出したデータを他方のデータベースで利用するといった情報の利用が行われる。一例としては、温度の単位が華氏で定義されたデータベースの温度データを摂氏に変換することにより別のデータベースで利用する場合などが挙げられる。
【０００３】
ところが、参照元のデータベースが削除された場合または参照元のデータベースのスキーマ（schema）が変更された場合には、参照元のデータベースとそれを参照して導出される導出先のデータベースとの間で参照関係が破壊される。このようにデータベース間の参照関係が破壊された場合には、参照元のデータベースのデータから導出先のデータベースのデータを導出できなくなる。
【０００４】
なお、スキーマの変更に関する技術としては、スキーマ変更時にデータベースの再構成を行う従来技術１が挙げられる。従来技術１では、あるデータベースのデータを導出する際に参照する参照先がそれまでに参照先とされていた親のデータベースからさらにその親となる祖父のデータベースへ変更されるスキーマの変更を想定している。このようなスキーマの変更が行われた場合に、従来技術１は、新たに参照先とされるデータベースとの間におけるデータの対応付けを自動的に行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−２０１４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の従来技術は、あくまでスキーマが変更された場合にデータベースの再構成を行うものであり、参照元のデータベースから導出時に参照するデータが消失した場合にそのデータ自体を修復するものではない。このため、上記の従来技術では、依然として、データベース間の参照関係が破壊された場合に導出先のデータベースのデータを生成できなくなるという問題が残る。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、データベース間の参照関係が破壊された場合でも導出先のデータベースのデータを再現できるデータ再現装置、データ再現プログラム及びデータ再現方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示するデータ再現装置は、参照関係記憶部を有する。前記参照関係記憶部は、他のデータベースにおける所定のオブジェクトを導出する際に参照される参照データベースと、前記参照データベースを参照して導出されるオブジェクトを格納する導出データベースとのデータベース間の参照関係を記憶する。さらに、前記データ再現装置は、前記オブジェクトが導出される導出データベースと、前記オブジェクトが導出される過程で実行される加工処理との関係を導出方法として記憶する導出方法記憶部を有する。さらに、前記データ再現装置は、前記オブジェクトの導出時に参照させる候補である参照候補データベースを抽出する参照候補抽出部を有する。前記参照候補抽出部は、前記参照関係記憶部に記憶されたデータベース間の参照関係に基づき、再現の対象とされた再現対象データベースから参照関係を探索することにより参照候補データベースを抽出する。さらに、前記データ再現装置は、前記導出方法記憶部に記憶された導出方法に基づき、前記オブジェクトの導出時に用いる復旧方法を抽出する復旧方法抽出部を有する。前記復旧方法抽出部は、前記参照候補抽出部によって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理の過程を探索することにより復旧方法を抽出する。
【発明の効果】
【０００９】
本願の開示するデータ再現装置の一つの態様によれば、データベース間の参照関係が破壊された場合でも導出先のデータベースのデータを再現できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るデータ再現装置の構成を示すブロック図である。
【図２】図２は、実施例２に係るデータ再現装置を含む分散データベースシステムの構成を示すシステム構成図である。
【図３】図３は、実施例２に係るデータ再現装置の構成を示すブロック図である。
【図４】図４は、処理定義テーブルに記憶される情報の構成例を示す図である。
【図５】図５は、オブジェクト管理テーブルに記憶される情報の構成例を示す図である。
【図６】図６は、オブジェクトの参照関係及び導出関係を説明するための説明図である。
【図７】図７は、仮親候補及び親候補の抽出を説明するための説明図である。
【図８】図８は、仮親候補の抽出結果の一例を示す図である。
【図９】図９は、「始祖→削除→再現対象」の導出方法の抽出要領を説明するための説明図である。
【図１０】図１０は、部分集合に該当した場合における親候補の抽出要領を説明するための説明図である。
【図１１】図１１は、部分集合に該当しない場合における親候補の抽出要領を説明するための説明図である。
【図１２】図１２は、部分集合に該当しない場合における親候補の抽出要領を説明するための説明図である。
【図１３】図１３は、親候補のオブジェクト及び再現対象のオブジェクトの復旧方法の抽出結果の一例を示す図である。
【図１４】図１４は、復旧所要時間の算出結果の一例を示す図である。
【図１５】図１５は、実施例２に係るデータ処理装置が実行する全体処理の手順を示すフローチャートである。
【図１６】図１６は、実施例２に係る親候補抽出処理の手順を示すフローチャートである。
【図１７Ａ】図１７Ａは、応用例を説明するための説明図である。
【図１７Ｂ】図１７Ｂは、応用例を説明するための説明図である。
【図１７Ｃ】図１７Ｃは、応用例を説明するための説明図である。
【図１８】図１８は、実施例３に係るデータ再現プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するデータ再現装置、データ再現プログラム及びデータ再現方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例１】
【００１２】
図１は、実施例１に係るデータ再現装置の構成を示すブロック図である。図１に示すように、データ再現装置１０は、参照関係記憶部１１と、導出方法記憶部１２と、参照候補抽出部１３と、復旧方法抽出部１４とを有する。
【００１３】
このうち、参照関係記憶部１１は、他のデータベースにおける所定のオブジェクトを導出する際に参照される参照データベースと、参照データベースを参照して導出されるオブジェクトを格納する導出データベースとのデータベース間の参照関係を記憶する。
【００１４】
導出方法記憶部１２は、オブジェクトが導出される導出データベースと、オブジェクトが導出される過程で実行される加工処理との関係を導出方法として記憶する。
【００１５】
参照候補抽出部１３は、参照関係記憶部１１に記憶されたデータベース間の参照関係に基づき、再現の対象とされた再現対象データベースから参照関係を探索することにより、オブジェクトの導出時に参照させる候補である参照候補データベースを抽出する。
【００１６】
復旧方法抽出部１４は、オブジェクトの導出時に用いる復旧方法を抽出する。この復旧方法抽出部１４は、参照候補抽出部１３によって抽出された参照候補データベースが格納するオブジェクトから再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理の過程を探索することにより復旧方法を抽出する。
【００１７】
このように、実施例１に係るデータ再現装置１０は、データベース間の参照関係が破壊される前に参照データベースとされていた破壊前の参照データベースの代わりにその代替となるデータベースを参照候補データベースとして抽出する。この破壊前の参照データベースが格納するオブジェクトから目的のオブジェクトを導出する導出方法と、参照候補データベースが格納するオブジェクトから再現対象とするオブジェクトを導出する導出方法とが同一であるとは限らない。そこで、実施例１に係るデータ再現装置１０は、参照候補データベースが格納するオブジェクトにどのような加工処理を実行することにより再現対象とするオブジェクトが導出されるのかという加工処理を復旧方法として抽出する。
【００１８】
このため、実施例１に係るデータ再現装置１０では、復旧方法にしたがって加工処理を参照候補データベースが格納するオブジェクトに実行することで、再現対象とするオブジェクトを導出することができる。したがって、実施例１に係るデータ再現装置１０によれば、データベース間の参照関係が破壊された場合でも導出先のデータベースのデータを再現することが可能になる。さらに、実施例１に係るデータ再現装置１０では、破壊前の参照データベースの代わりにその代替となるデータベースが抽出できるので、１つの参照データベースに依存する必要がなくなり、再現対象とするオブジェクトを継続的に導出することも可能になる。
【実施例２】
【００１９】
続いて、実施例２に係るデータ再現装置について説明する。なお、ここでは、データ再現装置を含む分散データベースシステムを説明してからデータ再現装置の構成を説明し、その後、データ再現装置の処理の流れを説明することとする。
【００２０】
［分散データベースシステムの構成］
図２は、実施例２に係るデータ再現装置を含む分散データベースシステムの構成を示すシステム構成図である。図２に示す分散データベースシステムには、データベース（ＤＢ：DataBase）を搭載する情報処理装置２００と、オブジェクト（object）を管理するための管理情報（metadata）を記憶するデータ再現装置１００とが収容される。なお、図２の例では、情報処理装置２００の収容数を３つとしたが、任意の数の情報処理装置を収容することができる。
【００２１】
これらデータ再現装置１００及び情報処理装置２００は、ネットワーク（network）４００を介して互いに通信可能に接続される。なお、ネットワーク４００には、インターネット（Internet）、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。また、ネットワーク４００の接続形態は、有線または無線のいずれを採用することとしてもよい。
【００２２】
情報処理装置２００は、情報処理を行う装置であり、データベースに格納されるデータに対するアクセス要求に応答するＤＢＭＳ（DataBase  Management  System）を搭載する。例えば、ＤＢＭＳは、スキーマ（schema）の定義を受け付けた場合に、スキーマの定義内容をＳＱＬ（Structured  Query  Language）で記述したＳＱＬ文をデータ再現装置１００へ送信することによりスキーマの変更内容を通知する。なお、スキーマの定義は、新規のデータベースを追加する場合や既存のデータベースに新たな項目を追加する場合などになされる。このとき、利用者によって定義されたオブジェクト間の参照関係及び導出方法がスキーマの変更内容としてデータ再現装置１００へ通知される。
【００２３】
ここで、「オブジェクト」とは、データベースに定義された所定の項目に関するデータを指す。また、「参照関係」とは、オブジェクトの導出時に参照される側の親オブジェクトと、その親オブジェクトを参照して導出される子オブジェクトとの関係を指す。また、「導出方法」とは、子オブジェクトと、子オブジェクトが導出される過程で実行される加工処理と、加工処理が行われたオブジェクトを加工前のオブジェクトに戻す逆処理との関係を指す。なお、親オブジェクトは、親オブジェクトが格納された参照データベースとの間で対応付けが行われており、また、子オブジェクトは、子オブジェクトを格納する導出データベースとの間で対応付けが行われているものとする。
【００２４】
また、ＤＢＭＳは、データベースから特定の項目を削除したり、あるいは特定の項目を変更するスキーマの変更を受け付けた場合に、スキーマの変更内容をＳＱＬ（Structured  Query  Language）で記述したＳＱＬ文を生成する。そして、ＤＢＭＳは、このようにして生成したＳＱＬ文をデータ再現装置１００へ送信することによりスキーマの変更内容を通知する。このとき、利用者によって変更されたオブジェクト間の参照関係及び導出方法がスキーマの変更内容としてデータ再現装置１００へ通知される。
【００２５】
また、ＤＢＭＳは、オブジェクトの更新を受け付けた場合に、親オブジェクトを参照して目的の子オブジェクトを導出し、導出した子オブジェクトを導出ＤＢへ格納する。なお、参照ＤＢは、自装置に搭載されたデータベースであってもよいし、他装置に搭載されたデータベースであってもよい。
【００２６】
なお、情報処理装置２００の一形態としては、サーバ（server）やパーソナルコンピュータ（ＰＣ：Personal  Computer）などのコンピュータ（computer）が挙げられる。また、情報処理装置２００は、必ずしも固定して設置される端末装置である必要はなく、携帯電話やＰＨＳ（Personal  Handyphone  System）などの可搬の端末装置であってもよい。
【００２７】
［データ再現装置の構成］
続いて、図２に示したデータ再現装置の構成について説明する。図３は、実施例２に係るデータ再現装置の構成を示すブロック図である。図３に示すように、データ再現装置１００は、通信制御Ｉ／Ｆ部１１０と、記憶部１２０と、制御部１３０とを有する。
【００２８】
このうち、通信制御Ｉ／Ｆ部１１０は、他の装置、例えばネットワーク４００を介して接続される情報処理装置２００との間で通信を行うためのインターフェースである。
【００２９】
記憶部１２０は、例えば、フラッシュメモリ（flash  memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部１２０は、上記の種類の記憶装置に限定されるものではなく、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory)であってもよい。
【００３０】
この記憶部１２０は、制御部１３０で実行されるＯＳ（Operating  System）やＤＢＭＳなどの各種プログラム及びそのプログラムの実行に必要なデータを記憶する。例えば、記憶部１２０は、処理定義テーブル１２０ａと、オブジェクト管理テーブル１２０ｂとを記憶する。
【００３１】
処理定義テーブル１２０ａは、加工処理及び逆処理が定義されたテーブルである。一例として、処理定義テーブル１２０ａは、加工処理の処理識別子ごとに、引数、引数ｔｙｐｅ、加工処理、加工処理時間重み、復旧対象、逆処理及び逆処理時間重みを記憶する。
【００３２】
ここで、加工処理時間重み及び逆処理時間重みは、加工処理または逆処理を実行し終えるまでに要する時間の重み付けであり、加工処理及び逆処理の各処理間で処理の演算量を相対的に比較することができるステップ数などの数値を用いて算出される。このように重み付けを用いるのは、各情報処理装置２００間でＣＰＵやＤｉｓｋの性能が異なり、実際の所要時間を各処理間で単純に比較できないからである。これによって、加工処理及び逆処理の全ての処理間で客観性が担保された値を所要時間の目安として割り当てる。
【００３３】
図４は、処理定義テーブルに記憶される情報の構成例を示す図である。図４に示す処理識別子「処理１」のレコードでは、引数ｖで指定されるテーブルの項目「msg」と引数ｗで指定されるテーブルの「string」とが部分一致または全部一致するＩＤを出力する加工処理がＳＱＬ文により定義されていることを示す。さらに、図４に示す処理識別子「処理１」は、加工処理を実行し終えるまでに要する時間の重み付けが「３」であることも示す。また、処理識別子「処理１」のレコードでは、逆処理「−」が定義されており、その逆処理を終えるまでに要する時間の重み付けが「３」であることも示す。
【００３４】
図４に示す処理識別子「処理２」のレコードでは、引数ｖで指定される項目「msgID」が同一であるもの同士でグループ化することにより得られる「msgID」ごとの件数を出力する加工処理がＳＱＬ文により定義されていることを示す。さらに、図４に示す処理識別子「処理２」は、加工処理を実行し終えるまでに要する時間の重み付けが「１」であることも示す。また、処理識別子「処理２」のレコードでは、逆処理「−」が定義されており、その逆処理を終えるまでに要する時間の重み付けが「１」であることも示す。
【００３５】
図４に示す処理識別子「処理３」のレコードでは、引数ｗで指定される項目が同一であるもの同士で引数ｖにより指定される項目の数値を合計することにより得られた算出結果を出力する加工処理がＳＱＬ文により定義されていることを示す。さらに、図４に示す処理識別子「処理３」は、加工処理を実行し終えるまでに要する時間の重み付けが「１」であることも示す。また、処理識別子「処理３」のレコードでは、逆処理「−」が定義されており、その逆処理を終えるまでに要する時間の重み付けが「１」であることも示す。
【００３６】
図４に示す処理識別子「処理４」のレコードでは、引数ｖで指定される項目を対象に「・・・」という処理結果を出力する加工処理がＳＱＬ文により定義されていることを示す。さらに、図４に示す処理識別子「処理４」は、加工処理を実行し終えるまでに要する時間の重み付けが「２」であることも示す。また、処理識別子「処理４」のレコードでは、逆処理「−」が定義されており、その逆処理を終えるまでに要する時間の重み付けが「２」であることも示す。
【００３７】
図４に示す処理識別子「処理５」のレコードでは、引数ｖで指定される項目を入力とし、ディレクトリ名「/public/ap1/」にあるアプリケーションファイル「f102」に実行させた処理結果を出力する加工処理が定義されていることを示す。さらに、図４に示す処理識別子「処理５」は、加工処理を実行し終えるまでに要する時間の重み付けが「１」であることも示す。また、図４に示す処理識別子「処理５」のレコードでは、ディレクトリ名「/public/ap1/」にあるアプリケーションファイル「f102」による実行結果ｒから復旧対象ｖを逆変換する逆処理が定義されていることを示す。さらに、図４に示す処理識別子「処理５」は、逆処理を実行し終えるまでに要する時間の重み付けが「１」であることも示す。なお、処理５の加工処理及び逆処理は、ＳＱＬの規格に基づく命令文ではなく、利用者によって作成された命令文である。このように利用者が命令文を作成する場合には、ＳＱＬ文により定義される加工処理のようにＤＢＭＳが加工処理から逆処理を算出できないので、利用者が個別に逆処理を処理定義テーブル１２０ａへ定義するのが好ましい。
【００３８】
なお、図４に示す例では、処理１〜処理５の５つのレコードを例示したが、これにより処理定義テーブル１２０ａに登録可能なレコード数が限定されるものではなく、任意の数のレコードを登録することができる。
【００３９】
図３の説明に戻り、オブジェクト管理テーブル１２０ｂは、オブジェクトの管理情報が定義されたテーブルである。一例として、オブジェクト管理テーブル１２０ｂは、オブジェクトの識別子ごとにそのオブジェクトの導出時に参照されるオブジェクトの識別子及び導出方法を記憶する。このようにオブジェクトの導出時に参照される方のオブジェクトを「親オブジェクト」と呼び、親オブジェクトを参照して導出されるオブジェクトを「子オブジェクト」と呼ぶこととする。
【００４０】
図５は、オブジェクト管理テーブルに記憶される情報の構成例を示す図である。図５の例では、オブジェクト（object）を「Ｏｂ」と略記する。図５に示す例で言えば、オブジェクト３０１が他のオブジェクトを参照して導出されないオリジナル（original）のオブジェクトであることを示す。このように親オブジェクトが存在しないオリジナルのオブジェクトを以下では「始祖」と呼ぶこととする。また、オブジェクト３０２がオブジェクト３０１の子オブジェクトであり、オブジェクト３０１に対して処理１、処理２の順に処理を適用することにより導出されることを示す。また、オブジェクト３０３がオブジェクト３０１の子オブジェクトであり、オブジェクト３０１に対して処理１、処理２、処理３の順に処理を適用することにより導出されることを示す。また、オブジェクト３０４がオブジェクト３０１の子オブジェクトであり、オブジェクト３０１に対して処理１、処理２、処理３、処理４、処理５の順に処理を適用することにより導出されることを示す。また、オブジェクト３０５が始祖であり、親オブジェクトの存在しないオリジナルのオブジェクトであることを示す。また、オブジェクト３０６がオブジェクト３０２の子オブジェクトであり、オブジェクト３０２に対して処理３、処理４の順に処理を適用することにより導出されることを示す。また、オブジェクト３０７がオブジェクト３０４及びオブジェクト３０５の子オブジェクトであり、オブジェクト３０４及びオブジェクト３０５に対して処理６を適用することにより導出されることを示す。また、オブジェクト３０８がオブジェクト３０４の子オブジェクトであり、オブジェクト３０４に対して処理５の逆処理、処理７の順に処理を適用することにより導出されることを示す。また、オブジェクト３０９がオブジェクト３０２の子オブジェクトであり、オブジェクト３０２に対して処理８を適用することにより導出されることを示す。
【００４１】
図５に示したオブジェクトの参照関係及び導出関係を図示した場合には、図６に示す通りとなる。図６は、オブジェクトの参照関係及び導出関係を説明するための説明図である。図６に示す例では、オブジェクト３０１を始祖とし、オブジェクト３０２、オブジェクト３０３及びオブジェクト３０４が子オブジェクトとして連なることを示す。このうち、オブジェクト３０２は、オブジェクト３０１に対して処理１、処理２の順に処理を適用することにより導出される。また、オブジェクト３０３は、オブジェクト３０１に対して処理１、処理２、処理３の順に処理を適用することにより導出される。さらに、オブジェクト３０４は、オブジェクト３０１に対して処理１、処理２、処理３、処理４、処理５の順に処理を適用することにより導出される。
【００４２】
図６に示す例では、オブジェクト３０２を親オブジェクトとし、オブジェクト３０６及びオブジェクト３０９が子オブジェクトとして連なることを示す。このうち、オブジェクト３０６は、オブジェクト３０２に対して処理３、処理４の順に処理を適用することにより導出される。また、オブジェクト３０９は、オブジェクト３０２に対して処理８を適用することにより導出される。
【００４３】
図６に示す例では、始祖であるオブジェクト３０５及びオブジェクト３０４を親オブジェクトとし、オブジェクト３０７が子オブジェクトとして連なることを示す。このオブジェクト３０７は、オブジェクト３０４及びオブジェクト３０５に対して処理６を適用することにより導出される。また、図６に示す例では、オブジェクト３０４を親オブジェクトとし、オブジェクト３０８が子オブジェクトとして連なることを示す。このオブジェクト３０８は、オブジェクト３０４に対して処理５の逆処理、処理７の順に処理を適用することにより導出される。
【００４４】
なお、図５及び図６の例では、オブジェクトとデータベースの所在との対応関係を図示していないが、オブジェクト管理テーブル１２０ｂは、これらの対応関係を記憶する。すなわち、オブジェクト管理テーブル１２０ｂは、親オブジェクトに対応付けて親オブジェクトが格納された参照データベースの所在を記憶する。また、オブジェクト管理テーブル１２０ｂは、子オブジェクトに対応付けて子オブジェクトを格納する導出データベースの所在を記憶する。
【００４５】
制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。
【００４６】
この制御部１３０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１３０は、図３に示すように、変更内容更新部１３０ａと、仮親候補抽出部１３０ｂと、親候補抽出部１３０ｃと、復旧所要時間算出部１３０ｄと、選択処理部１３０ｅとを有する。
【００４７】
変更内容更新部１３０ａは、情報処理装置２００から通知されたスキーマの変更内容をオブジェクト管理テーブル１２０ｂへ更新する処理部である。
【００４８】
ここで、変更内容更新部１３０ａは、スキーマの変更内容がデータベースから特定の項目を削除するものであった場合には、削除オブジェクトの識別子が親オブジェクトとして登録されているレコードをオブジェクト管理テーブル１２０ｂから検索する。このとき、変更内容更新部１３０ａは、削除オブジェクトの識別子が親オブジェクトとして登録されているレコードが検索結果として得られた場合に、オブジェクトの削除により参照関係の破壊があったものと検知する。
【００４９】
そして、変更内容更新部１３０ａは、削除オブジェクトの識別子が親オブジェクトとして登録されているレコードを起点に子オブジェクトを探索することにより、削除オブジェクトとの間で参照関係が破壊された既存オブジェクトを抽出する。その後、変更内容更新部１３０ａは、参照関係が破壊された既存オブジェクトのうち削除オブジェクトの子オブジェクトを仮親候補抽出部１３０ｂへ出力する。なお、ここでは、データベースから特定の項目を削除するスキーマの変更内容を例示したが、データベースそのものを削除する場合には、削除されるデータベースの全オブジェクトを対象に特定の項目が削除される場合と同様の処理を行う。
【００５０】
また、変更内容更新部１３０ａは、新規のデータベースを追加したり、または既存のデータベースに新たな項目を追加する変更内容を受け付けた場合には、新規に追加される新規オブジェクトと既存のオブジェクトの間で新たに紐付けられる参照関係を特定する。
【００５１】
このとき、新規オブジェクトが既存のオブジェクトとの間で親オブジェクトとして紐付けられる場合には、変更内容更新部１３０ａは、新規オブジェクトを「親」、既存オブジェクトを「子」とした参照関係を登録するとともにその導出方法を登録する。一方、新規オブジェクトが既存のオブジェクトとの間で子オブジェクトとして紐付けられる場合には、変更内容更新部１３０ａは、新規オブジェクトを「子」、既存オブジェクトを「親」とした参照関係を登録するとともにその導出方法を登録する。
【００５２】
なお、情報処理装置２００から導出方法として通知された加工処理または逆処理の中に新規の処理が存在する場合には、その新規の処理を処理定義テーブル１２０ａへ登録する。また、新規オブジェクトをオブジェクト管理テーブル１２０ｂへ登録する場合には、変更内容更新部１３０ａは、新規オブジェクトに新たな識別子を採番した上で参照関係及び導出方法を登録する。
【００５３】
また、変更内容更新部１３０ａは、データベースから特定の項目を変更する変更内容であった場合には、変更により削除される削除オブジェクトの識別子が親オブジェクトとして登録されているレコードをオブジェクト管理テーブル１２０ｂから検索する。続いて、変更内容更新部１３０ａは、削除オブジェクトの識別子が親オブジェクトとして登録されているレコードを起点に子オブジェクトを探索することにより、削除オブジェクトとの間で参照関係が破壊された既存オブジェクトを収集する。そして、変更内容更新部１３０ａは、参照関係が破壊された既存オブジェクトのうち削除オブジェクトの子オブジェクトを仮親候補抽出部１３０ｂへ出力する。
【００５４】
その後、変更内容更新部１３０ａは、変更により新規に追加される新規オブジェクトと既存のオブジェクトの間で新たに紐付けられる参照関係を特定する。このとき、新規オブジェクトが既存のオブジェクトとの間で親オブジェクトとして紐付けられる場合には、変更内容更新部１３０ａは、新規オブジェクトを「親」、既存オブジェクトを「子」とした参照関係を登録するとともにその導出方法を登録する。一方、新規オブジェクトが既存のオブジェクトとの間で子オブジェクトとして紐付けられる場合には、変更内容更新部１３０ａは、新規オブジェクトを「子」、既存オブジェクトを「親」とした参照関係を登録するとともにその導出方法を登録する。
【００５５】
仮親候補抽出部１３０ｂは、仮親候補とするオブジェクトを抽出する処理部である。これを説明すると、この仮親候補抽出部１３０ｂは、変更内容更新部１３０ａによって参照関係の破壊が検知された場合に、削除オブジェクトの子オブジェクトを再現対象のオブジェクトと定める。そして、仮親候補抽出部１３０ｂは、オブジェクト管理テーブル１２０ｂを参照して、再現対象のオブジェクトが子オブジェクトとして登録されているレコードを起点に親オブジェクトを探索することにより、再現対象のオブジェクトに連なる始祖を抽出する。その後、仮親候補抽出部１３０ｂは、始祖のオブジェクトが子オブジェクトとして登録されているレコードを起点に子オブジェクトを探索することにより、仮親候補とするオブジェクトを抽出する。
【００５６】
図７は、仮親候補及び親候補の抽出を説明するための説明図である。図７に示す符号２１は、オブジェクト３０２との参照関係が破壊されたオブジェクト群であり、代替のオブジェクトによる再現を要する要再現オブジェクトを示す。図７に示す符号２２は、仮親候補として抽出される仮親候補群を示す。図７に示す符号２３は、親候補として抽出される仮親候補群を示す。図７に示す×印では、オブジェクト３０２が削除オブジェクトであることを示す。図７に示す例では、要再現オブジェクト２１に含まれるオブジェクト３０６及びオブジェクト３０９のうち子オブジェクトが連なっていないオブジェクト３０６を再現対象のオブジェクトとする場合を想定する。
【００５７】
図７に示すように、仮親候補抽出部１３０ｂは、図５に示したオブジェクト管理テーブル１２０ｂを参照して、再現対象のオブジェクト３０６が子オブジェクトとして登録されているレコードを起点に親オブジェクトを探索する。これによって、仮親候補抽出部１３０ｂは、再現対象のオブジェクト３０６からオブジェクト３０２を経由して始祖であるオブジェクト３０１を抽出する。
【００５８】
続いて、仮親候補抽出部１３０ｂは、始祖のオブジェクト３０１が子オブジェクトとして登録されているレコードを起点に子オブジェクトを探索する。これによって、仮親候補抽出部１３０ｂは、始祖であるオブジェクト３０１と、その子オブジェクトであるオブジェクト３０３及びオブジェクト３０４とを抽出する。このとき、仮親候補抽出部１３０ｂは、削除オブジェクトであるオブジェクト３０２を抽出しない。そして、仮親候補抽出部１３０ｂは、オブジェクト３０４からその子オブジェクトであるオブジェクト３０７及びオブジェクト３０８を抽出する。このようにして、仮親候補抽出部１３０ｂは、オブジェクト３０１、オブジェクト３０３、オブジェクト３０４、オブジェクト３０７及びオブジェクト３０８を仮親候補群２２として抽出する。なお、仮親候補抽出部１３０ｂは、オブジェクト３０７の親オブジェクトであるオブジェクト３０５は抽出しない。
【００５９】
図８は、仮親候補の抽出結果の一例を示す図である。図８に示すように、親オブジェクトが存在しないオリジナルのオブジェクト３０１、オブジェクト３０１の子オブジェクトであるオブジェクト３０３及びオブジェクト３０４が抽出される。さらに、オブジェクト３０４の子オブジェクトであるオブジェクト３０７が抽出される。さらに、オブジェクト３０４及びオブジェクト３０５の子オブジェクトであるオブジェクト３０８が抽出される。なお、図８に示す例では、始祖であるオブジェクトが１つである場合を例示したが、始祖であるオブジェクトが複数存在する場合には、始祖の数と同じ枚数のテーブルが抽出結果として得られる。
【００６０】
なお、図７及び図８に示す例では、再現対象のオブジェクトから始祖まで親オブジェクトを探索することとしたが、必ずしも始祖まで探索する必要はない。例えば、仮親候補抽出部１３０ｂは、再現対象のオブジェクトから親オブジェクトを探索する回数に制限を設けることにより、始祖ではなく共通の親オブジェクトを探索上限としてもよい。また、仮親候補抽出部１３０ｂは、始祖から子オブジェクトを探索する回数にも制限を設けるようにしてもよい。例えば、仮親候補抽出部１３０ｂは、始祖または共通の親オブジェクトから再現対象のオブジェクト３０６までの探索回数と同じ探索回数しか探索を認めないようにすることもできる。
【００６１】
図３の説明に戻り、親候補抽出部１３０ｃは、仮親候補抽出部１３０ｂによって抽出された仮親候補のオブジェクトの中から親候補とするオブジェクトを抽出するとともに、再現対象のオブジェクトの復旧方法を抽出する処理部である。
【００６２】
これを説明すると、親候補抽出部１３０ｃは、図５に示したオブジェクト管理テーブル１２０ｂを参照して、始祖であるオブジェクトから削除オブジェクトを経由して再現対象オブジェクトまで至る「始祖→削除→再現対象」の導出方法を抽出する。
【００６３】
図９は、「始祖→削除→再現対象」の導出方法の抽出要領を説明するための説明図である。図９に示す例では、図７及び図８の例を同様に、オブジェクト３０２が削除オブジェクトであり、オブジェクト３０６が再現対象のオブジェクトである場合を想定する。図９に示すように、親候補抽出部１３０ｃは、再現対象のオブジェクト３０６が子オブジェクトであり、削除オブジェクトであるオブジェクト３０２が親オブジェクトであるレコードの導出方法「処理４  処理３  オブジェクト３０２」を抽出する。さらに、親候補抽出部１３０ｃは、削除オブジェクト３０２が子オブジェクトであり、始祖であるオブジェクト３０１が親オブジェクトであるレコードの導出方法である「処理２  処理１  オブジェクト３０１」を抽出する。このように再現対象のオブジェクト３０６から親オブジェクトを２回探索することにより、「始祖→削除→再現対象」の導出方法「処理４  処理３  処理２  処理１  オブジェクト３０１」を抽出する。
【００６４】
このように「始祖→削除→再現対象」を抽出すると、親候補抽出部１３０ｃは、図５に示したオブジェクト管理テーブル１２０ｂを参照して、始祖であるオブジェクトから仮親候補まで至る「始祖→仮親候補」の導出方法を抽出する。
【００６５】
例えば、図８に示した仮親候補のうち抽出対象とする仮親候補を始祖のオブジェクト３０１とした場合には、親候補抽出部１３０ｃは、始祖は親オブジェクトが存在しないオリジナルのオブジェクトである。このため、親候補抽出部１３０ｃは、「始祖→オブジェクト３０１」の導出方法「オブジェクト３０１」をそのまま抽出する。また、抽出対象とする仮親候補をオブジェクト３０３とした場合には、親候補抽出部１３０ｃは、オブジェクト３０３が子オブジェクトであり、始祖であるオブジェクト３０１が親オブジェクトであるレコードを検索する。そして、親候補抽出部１３０ｃは、このようにして得られた「始祖→オブジェクト３０３」の導出方法「処理３  処理２  処理１  オブジェクト３０１」を抽出する。
【００６６】
さらに、抽出対象とする仮親候補をオブジェクト３０４とした場合には、親候補抽出部１３０ｃは、オブジェクト３０４が子オブジェクトであり、始祖であるオブジェクト３０１が親オブジェクトであるレコードを検索する。そして、親候補抽出部１３０ｃは、このようにして得られた「始祖→オブジェクト３０４」の導出方法「処理５  処理４  処理３  処理２  処理１  オブジェクト３０１」を抽出する。
【００６７】
また、抽出対象とする仮親候補をオブジェクト３０７とした場合には、親候補抽出部１３０ｃは、オブジェクト３０７が子オブジェクトであり、オブジェクト３０４が親オブジェクトであるレコードを検索する。そして、親候補抽出部１３０ｃは、このようにして得られた「オブジェクト３０４→オブジェクト３０７」の導出方法「処理６  オブジェクト３０４」を抽出する。さらに、親候補抽出部１３０ｃは、オブジェクト３０４が子オブジェクトであり、始祖であるオブジェクト３０１が親オブジェクトであるレコードを検索する。そして、親候補抽出部１３０ｃは、このようにして得られた「始祖→オブジェクト３０７」の導出方法「処理６  処理５  処理４  処理３  処理２  処理１  オブジェクト３０１」を抽出する。
【００６８】
また、抽出対象とする仮親候補をオブジェクト３０８とした場合には、親候補抽出部１３０ｃは、オブジェクト３０８が子オブジェクトであり、オブジェクト３０４が親オブジェクトであるレコードを検索する。そして、親候補抽出部１３０ｃは、このようにして得られた「オブジェクト３０４→オブジェクト３０８」の導出方法「処理７  処理５の逆処理  オブジェクト３０４」を抽出する。さらに、親候補抽出部１３０ｃは、オブジェクト３０４が子オブジェクトであり、始祖であるオブジェクト３０１が親オブジェクトであるレコードを検索する。そして、親候補抽出部１３０ｃは、このようにして得られた「始祖→オブジェクト３０８」の導出方法「処理７  処理５の逆関数  処理５  処理４  処理３  処理２  処理１  オブジェクト３０１」を抽出する。
【００６９】
このようにして、親候補抽出部１３０ｃは、始祖であるオブジェクトから仮親候補まで至る「始祖→仮親候補」の導出方法を仮親候補ごとに抽出する。
【００７０】
その後、親候補抽出部１３０ｃは、「始祖→削除→再現対象」の導出方法と、「始祖→仮親候補」の導出方法とを比較する。このような比較を行うのは、仮親候補のオブジェクトから再現対象のオブジェクトを導出する場合に仮親候補のオブジェクトに対してどの程度の加工処理を付加したり、どの程度の逆処理を行うことで、再現対象のオブジェクトを導出できるのかを求めるためである。
【００７１】
ここで、「始祖→仮親候補」の導出方法が「始祖→削除→再現対象」の導出方法の部分集合である場合には、加工処理及び逆処理のうち加工処理だけを仮親候補のオブジェクトに適用すればよいことがわかる。このような仮親候補のオブジェクトの場合には、加工処理のように利用者によって主体的に登録されない故にオブジェクト管理テーブル１２０ｂに登録されていない可能性が高い逆処理を行う必要がない。このため、親候補抽出部１３０ｃは、「始祖→削除→再現対象」の導出方法のうち「始祖→仮親候補」までの部分を仮親候補で置換する。そして、親候補抽出部１３０ｃは、先の置換により得られた「始祖→仮親候補→再現対象」の導出方法を再現対象のオブジェクトの復旧方法として抽出する。
【００７２】
図１０は、部分集合に該当した場合における親候補の抽出要領を説明するための説明図である。図１０に示す符号３１は、「始祖→削除→再現対象」の導出方法と「始祖→オブジェクト３０１」の導出方法との一致部分を示す。この仮親候補のオブジェクト３０１の場合には、「始祖→オブジェクト３０１」の導出方法「オブジェクト３０１」が「始祖→削除→再現対象」の導出方法「処理４  処理３  処理２  処理１  オブジェクト３０１」の部分集合となる。
【００７３】
このため、親候補抽出部１３０ｃは、「始祖→削除→再現対象」の導出方法「処理４  処理３  処理２  処理１  オブジェクト３０１」における「始祖→オブジェクト３０１」のの導出方法の一致部分３１を仮親候補のオブジェクト３０１で置換する。この場合は、仮親候補のオブジェクト３０１が始祖であるため、仮親候補と置換されても変化する部分はない。このため、親候補抽出部１３０ｃは、仮親候補のオブジェクト３０１を親候補とし、「処理４  処理３  処理２  処理１  オブジェクト３０１」を再現対象のオブジェクトの復旧方法として抽出する。
【００７４】
また、図１０に示す符号３２は、「始祖→削除→再現対象」の導出方法と「始祖→オブジェクト３０１」の導出方法との一致部分を示す。この仮親候補のオブジェクト３０３の場合には、「始祖→オブジェクト３０３」の導出方法「処理３  処理２  処理１  オブジェクト３０１」が「始祖→削除→再現対象」の導出方法「処理４  処理３  処理２  処理１  オブジェクト３０１」の部分集合となる。
【００７５】
このため、親候補抽出部１３０ｃは、「始祖→削除→再現対象」の導出方法「処理４  処理３  処理２  処理１  オブジェクト３０１」における「始祖→オブジェクト３０３」のの導出方法の一致部分３２を仮親候補のオブジェクト３０３で置換する。この場合は、仮親候補のオブジェクト３０３の導出方法が「処理３  処理２  処理１  オブジェクト３０１」である。したがって、親候補抽出部１３０ｃは、仮親候補のオブジェクト３０３を親候補として抽出するとともに、「処理４  オブジェクト３０３」を再現対象のオブジェクトの復旧方法として抽出する。
【００７６】
一方、「始祖→仮親候補」の導出方法が「始祖→削除→再現対象」の導出方法の部分集合ではない場合には、再現対象のオブジェクトにとっては余分な加工処理を仮親候補のオブジェクトに逆処理を適用することにより取り除くことになる。この場合には、仮親候補のオブジェクトに適用する逆処理が処理定義テーブル１２０ａに定義されていなければ仮親候補のオブジェクトから再現対象のオブジェクトを導出できないので、逆処理の定義の有無を確認する。
【００７７】
すなわち、親候補抽出部１３０ｃは、「始祖→削除→再現対象」の導出方法と「始祖→仮親候補」の導出方法との間における一致部分及び不一致部分を抽出する。そして、親候補抽出部１３０ｃは、このようにして抽出した不一致部分の加工処理に対応する逆処理が処理定義テーブル１２０ａに定義されているか否かを判定する。このとき、不一致部分の加工処理に対応する逆処理が１つでも処理定義テーブル１２０ａに定義されていなければ、親候補抽出部１３０ｃは、不一致部分の加工処理に対応する逆処理が定義されていない仮親候補のオブジェクトを親候補から除外する。
【００７８】
一方、親候補抽出部１３０ｃは、不一致部分の加工処理に対応する逆処理が処理定義テーブル１２０ａに全て定義されている場合には、不一致部分の加工処理に対応する逆処理を「始祖→仮親候補」の導出方法に付加する。このとき、「始祖→仮親候補」の導出方法に付加する逆処理が複数存在する場合には、親候補抽出部１３０ｃは、不一致部分の加工処理が並ぶ順序とは逆の順序に並び替えた上で逆処理を付加する。
【００７９】
その上で、親候補抽出部１３０ｃは、不一致部分の加工処理に対応する逆処理が付加された「始祖→仮親候補→再現対象」の導出方法のうち「始祖→仮親候補」の導出方法までの部分を仮親候補のオブジェクトで置換する。そして、親候補抽出部１３０ｃは、仮親候補のオブジェクトを親候補として抽出するとともに、先の置換により得られた「始祖→仮親候補→再現対象」の導出方法を再現対象のオブジェクトの復旧方法として抽出する。
【００８０】
図１１及び図１２は、部分集合に該当しない場合における親候補の抽出要領を説明するための説明図である。図１１に示す符号４１は、「始祖→削除→再現対象」の導出方法と「始祖→オブジェクト３０７」の仮親候補との一致部分を示す。図１１に示す符号４２は、「始祖→削除→再現対象」の導出方法と「始祖→オブジェクト３０７」の仮親候補との不一致部分を示す。また、図１１に示す処理６（＿，オブジェクト３０５）の表記のうちアンダーバーの部分は、第１の引数を示し、処理５の導出結果が挿入される。図１１に示す処理６（＿，オブジェクト３０５）の表記のうちオブジェクト３０５は、第２の引数を示す。図１２に示す符号４３は、「始祖→仮親候補」の導出方法を指す。
【００８１】
図１１に示すように、「始祖→オブジェクト３０７」の導出方法は、「処理６（＿，オブジェクト３０５）  処理５  処理４  処理３  処理２  処理１  オブジェクト３０１」である。一方、「始祖→削除→再現対象」の導出方法は、「処理４  処理３  処理２  処理１  オブジェクト３０１」である。このため、親候補抽出部１３０ｃは、「処理４  処理３  処理２  処理１  オブジェクト３０１」を一致部分４１として抽出する。また、親候補抽出部１３０ｃは、「処理６（＿，オブジェクト３０５）  処理５」を不一致部分４２として抽出する。このとき、処理６のように引数が複数存在する加工処理の場合には、引数とされるオブジェクトの一致部分及び不一致部分も併せて判定される。なお、図１１及び図１２の例では、不一致部分４２に含まれる処理５及び処理６の両方に逆処理が存在するものとして以下の説明を行う。
【００８２】
図１２に示すように、親候補抽出部１３０ｃは、不一致部分の加工処理「処理６  処理５」の順序とは逆の順序に逆処理を並べ替えた上で逆処理「処理５の逆処理、処理６の逆処理」を「始祖→仮親候補」の導出方法に付加する。そして、親候補抽出部１３０ｃは、逆処理が付加された導出方法「処理５の逆処理  処理６の逆処理  処理６  処理５  処理４  処理３  処理２  処理１  オブジェクト３０１」のうち「始祖→仮親候補」の導出方法４３までの部分をオブジェクト３０７で置換する。その後、親候補抽出部１３０ｃは、仮親候補のオブジェクト３０７を親候補として抽出する。それとともに、親候補抽出部１３０ｃは、先の置換により得られた「始祖→仮親候補→再現対象」の導出方法「処理５の逆処理  処理６の逆処理  オブジェクト３０７」を再現対象のオブジェクト３０６の復旧方法として抽出する。
【００８３】
図３の説明に戻り、復旧所要時間算出部１３０ｄは、親候補のオブジェクトごとに再現対象のオブジェクトの復旧所要時間を算出する処理部である。一例としては、復旧所要時間算出部１３０ｄは、親候補抽出部１３０ｃによって再現対象のオブジェクトの復旧方法として抽出された各処理に対応する加工処理時間重み及び逆処理時間重みを図４に示した処理定義テーブル１２０ａから読み出す。そして、復旧所要時間算出部１３０ｄは、このようにして読み出した各処理の加工処理時間重み及び逆処理時間重みを集計することにより、復旧所要時間時間を算出する。なお、かかる復旧所要時間は、親候補抽出部１３０ｃによって抽出された全ての親候補のオブジェクトを対象に算出される。
【００８４】
ここで、図１３に示す親候補及び復旧方法の抽出結果が得られた場合における復旧所要時間の算出要領を説明する。図１３は、親候補のオブジェクト及び再現対象のオブジェクトの復旧方法の抽出結果の一例を示す図である。
【００８５】
まず、図１３に示す親候補のオブジェクト３０１の復旧所要時間を算出する場合について説明する。復旧所要時間算出部１３０ｄは、処理４の加工処理時間重み、処理３の加工処理時間重み、処理２の加工処理時間重み及び処理１の加工処理時間重みを図４に示した処理定義テーブル１２０ａから読み出す。そして、復旧所要時間算出部１３０ｄは、処理４の加工処理時間重み「２」、処理３の加工処理時間重み「１」、処理２の加工処理時間重み「１」及び処理１の加工処理時間重み「３」の合計「６＝２＋１＋１＋３」を計算する。このようにして親候補のオブジェクト３０１の復旧所要時間「６」が算出される。
【００８６】
次に、図１３に示す親候補のオブジェクト３０３の復旧所要時間を算出する場合について説明する。復旧所要時間算出部１３０ｄは、処理４の加工処理時間重みを図４に示した処理定義テーブル１２０ａから読み出す。この場合には、復旧方法として抽出された加工処理が処理４の１つだけである。このため、復旧所要時間算出部１３０ｄは、処理４の加工処理時間重み「２」を親候補のオブジェクト３０３の復旧所要時間とみなす。
【００８７】
次に、図１３に示す親候補のオブジェクト３０４の復旧所要時間を算出する場合について説明する。復旧所要時間算出部１３０ｄは、処理５の逆処理の逆処理時間重みを図４に示した処理定義テーブル１２０ａから読み出す。この場合には、復旧方法として抽出された加工処理が処理５の逆処理１つだけである。このため、復旧所要時間算出部１３０ｄは、処理５の逆処理の逆処理時間重み「１」を親候補のオブジェクト３０４の復旧所要時間とみなす。
【００８８】
図３の説明に戻り、選択処理部１３０ｅは、親候補抽出部１３０ｄによって抽出された親候補オブジェクト及び復旧方法の組のうち、オブジェクトの再現に使用させる親候補オブジェクト及び復旧方法を選択する処理部である。一例としては、選択処理部１３０ｅは、復旧所要時間算出部１３０ｄによって算出された復旧所要時間が最も短い親候補のオブジェクト及び復旧方法の組を選択する。
【００８９】
図１４に示す復旧所要時間の算出結果が得られた場合における親候補のオブジェクト及び復旧方法の選択要領を説明する。図１４は、復旧所要時間の算出結果の一例を示す図である。図１４に示す例で言えば、選択処理部１３０ｅは、親候補のオブジェクト３０１、親候補のオブジェクト３０３及び親候補のオブジェクト３０４のうち最も復旧所要時間が短い親候補のオブジェクト３０４を選択する。
【００９０】
また、選択処理部１３０ｅは、このようにして選択した親候補オブジェクト及び復旧方法に基づき、再現対象のオブジェクトが格納される情報処理装置２００へ復旧指示を行う。一例として、選択処理部１３０ｅは、再現対象のオブジェクトの親オブジェクトを親候補オブジェクトへ変更する参照関係の変更と、親候補オブジェクト及び再現対象のオブジェクトの導出方法に復旧方法を登録する導出方法の登録とを含むスキーマ変更を指示する。これによって、情報処理装置２００の利用者は、オブジェクトの削除または変更により破壊された再現対象のオブジェクトの参照関係をスキーマ変更の指示にしたがって復旧するとともにオブジェクトを再現することが可能になる。
【００９１】
なお、ここでは、情報処理装置２００に復旧指示を行って利用者にスキーマの変更を実行させる例を説明したが、選択処理部１３０ｅがスキーマの変更を自動的に実行するようにしてもよい。また、ここでは、複数の親候補オブジェクト及び復旧方法の組の中から１つの組を選択させる場合を説明したが、親候補抽出部１３０ｄによって抽出された親候補オブジェクト及び復旧方法の組を情報処理装置２００へそのまま通知することしてもよい。
【００９２】
［処理の流れ］
次に、本実施例に係るデータ再現装置の処理の流れを説明する。なお、ここでは、データ再現装置１００によって実行される（１）全体処理を説明してから、親候補抽出部１３０ｃによって実行される（２）親候補抽出処理を説明することとする。
【００９３】
（１）全体処理
図１５は、実施例２に係るデータ処理装置が実行する全体処理の手順を示すフローチャートである。この全体処理は、データ処理装置１００が起動状態である限り、再帰的に実行される処理であり、オブジェクトの削除により参照関係の破壊が検知された場合に起動する。
【００９４】
図１５に示すように、変更内容更新部１３０ａにより参照関係の破壊が検知された場合（ステップＳ１０１肯定）に、仮親候補抽出部１３０ｂは、再現対象オブジェクトを起点に探索を実行することにより、仮親候補オブジェクトを抽出する（ステップＳ１０２）。
【００９５】
そして、親候補抽出部１３０ｃは、仮親候補抽出部１３０ｂによって抽出された仮親候補のオブジェクトの中から親候補とするオブジェクトを抽出するとともに、再現対象のオブジェクトの復旧方法を抽出する親候補抽出処理を行う（ステップＳ１０３）。
【００９６】
続いて、復旧所要時間算出部１３０ｄは、親候補のオブジェクトごとに再現対象のオブジェクトの復旧所要時間を算出する（ステップＳ１０４）。その後、選択処理部１３０ｅは、親候補抽出部１３０ｄによって抽出された親候補オブジェクト及び復旧方法の組のうち、オブジェクトの再現に使用させる親候補オブジェクト及び復旧方法を選択する（ステップＳ１０５）。
【００９７】
そして、選択処理部１３０ｅは、このようにして選択した親候補オブジェクト及び復旧方法に基づき、再現対象のオブジェクトが格納される情報処理装置２００へ復旧指示を行う（ステップＳ１０６）。なお、データ処理装置１００は、上記のステップＳ１０１〜ステップＳ１０６までの処理を繰り返し行う。
【００９８】
（２）親候補抽出処理
図１６は、実施例２に係る親候補抽出処理の手順を示すフローチャートである。この親候補抽出処理は、図１５に示したステップＳ１０２が行われた場合、すなわち仮親候補抽出部１３０ｂによって仮親候補のオブジェクトが抽出された場合に起動する処理である。
【００９９】
図１６に示すように、親候補抽出部１３０ｃは、オブジェクト管理テーブル１２０ｂを参照して、始祖であるオブジェクトから削除オブジェクトを経由して再現対象オブジェクトまで至る「始祖→削除→再現対象」の導出方法を抽出する（ステップＳ３０１）。
【０１００】
続いて、親候補抽出部１３０ｃは、図５に示したオブジェクト管理テーブル１２０ｂを参照して、始祖であるオブジェクトから仮親候補まで至る「始祖→仮親候補」の導出方法を抽出する（ステップＳ３０２）。そして、親候補抽出部１３０ｃは、「始祖→削除→再現対象」の導出方法と、「始祖→仮親候補」の導出方法とを比較する（ステップＳ３０４）。
【０１０１】
このとき、「始祖→仮親候補」が「始祖→削除→再現対象」の部分集合ではない場合（ステップＳ３０４否定）に、親候補抽出部１３０ｃは、「始祖→削除→再現対象」と「始祖→仮親候補」との一致部分及び不一致部分を抽出する（ステップＳ３０５）。そして、親候補抽出部１３０ｃは、このようにして抽出した不一致部分の加工処理に対応する逆処理が処理定義テーブル１２０ａに定義されているか否かを判定する（ステップＳ３０６）。
【０１０２】
ここで、不一致部分の加工処理に対応する逆処理が全て定義されている場合（ステップＳ３０６肯定）には、親候補抽出部１３０ｃは、不一致部分の加工処理に対応する逆処理を「始祖→仮親候補」の導出方法に付加する（ステップＳ３０７）。なお、この時、「始祖→仮親候補」の導出方法に付加する逆処理が複数存在する場合には、親候補抽出部１３０ｃは、不一致部分の加工処理が並ぶ順序とは逆の順序に並び替えた上で逆処理を付加する。
【０１０３】
そして、親候補抽出部１３０ｃは、不一致部分の加工処理に対応する逆処理が付加された「始祖→仮親候補→再現対象」の導出方法のうち「始祖→仮親候補」の導出方法までの部分を仮親候補のオブジェクトで置換する（ステップＳ３０８）。続いて、親候補抽出部１３０ｃは、仮親候補のオブジェクトを親候補として抽出するとともに、先の置換により得られた「始祖→仮親候補→再現対象」の導出方法を再現対象のオブジェクトの復旧方法として抽出する（ステップＳ３０９）。
【０１０４】
一方、不一致部分の加工処理に対応する逆処理が定義されていない場合（ステップＳ３０６否定）には、親候補抽出部１３０ｃは、不一致部分の加工処理に対応する逆処理が定義されていない仮親候補のオブジェクトを親候補から除外する（ステップＳ３１０）。
【０１０５】
また、「始祖→仮親候補」が「始祖→削除→再現対象」の部分集合である場合（ステップＳ３０４肯定）には、親候補抽出部１３０ｃは、「始祖→削除→再現対象」の導出方法のうち「始祖→仮親候補」までの部分を仮親候補で置換する（ステップＳ３０８）。続いて、親候補抽出部１３０ｃは、先の置換により得られた「始祖→仮親候補→再現対象」の導出方法を再現対象のオブジェクトの復旧方法として抽出する（ステップＳ３０９）。
【０１０６】
そして、親候補抽出部１３０ｃは、仮親候補抽出部１３０ｂによって抽出された全ての仮親候補のオブジェクトについて親候補の抽出または除外を行うまで（ステップＳ３１１否定）、上記のステップＳ３０２〜ステップＳ３１０までの処理を繰り返し行う。その後、全ての仮親候補のオブジェクトについて親候補の抽出または除外が行われた場合（ステップＳ３１１肯定）に、親候補抽出部１３０ｃは処理を終了する。
【０１０７】
［実施例２の効果］
上述してきたように、本実施例に係るデータ再現装置１００は、復旧方法にしたがって加工処理及び／又は逆処理を親候補のオブジェクトに実行することで、再現対象とするオブジェクトを導出することができる。したがって、本実施例に係るデータ再現装置１００によれば、データベース間の参照関係が破壊された場合でもオブジェクトを再現することが可能である。
【０１０８】
また、本実施例に係るデータ再現装置１００は、親候補のオブジェクト及び復旧方法の組のうち復旧所要時間が最も短い組を、オブジェクトの再現に使用させる親候補オブジェクト及び復旧方法として選択する。このため、本実施例に係るデータ再現装置１００によれば、オブジェクトの復旧所要時間を短縮するとともに、オブジェクトを導出する情報処理装置２００の処理負荷も軽減することが可能である。
【０１０９】
さらに、本実施例に係るデータ再現装置１００は、オブジェクト管理テーブル１２０ｂを参照して、仮親候補のオブジェクトから再現対象のオブジェクトが導出されるまでの加工処理及び逆処理の過程を探索することにより復旧方法を取得する。このため、本実施例に係るデータ再現装置１００では、再現対象のオブジェクトに連なる親オブジェクトだけでなく、共通の親オブジェクトに連なるオブジェクトまで親候補とするオブジェクトを拡張することができる。それゆえ、本実施例に係るデータ再現装置１００によれば、再現対象のオブジェクトと類似度の高い親候補のオブジェクトを抽出できる可能性を高めることが可能である。
【実施例３】
【０１１０】
さて、これまで開示の装置に関する実施例について説明したが、開示の装置は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、開示の装置に含まれる他の実施例を説明する。
【０１１１】
［応用例］
例えば、上記の実施例２では、仮親候補のオブジェクトの中から復旧所要時間の最も短い親候補のオブジェクトをオブジェクトの再現に使用させる親候補オブジェクト及び復旧方法として選択する場合を説明した。しかし、開示の装置は、復旧所要時間以外の他の基準にしたがって親候補のオブジェクトを選択することもできる。
【０１１２】
図１７Ａ〜図１７Ｃは、応用例を説明するための説明図である。図１７Ａは、オブジェクト３０２の削除前におけるオブジェクト間の参照関係及び導出方法を示す。図１７Ｂは、オブジェクト３０２の代替としてオブジェクト３０６の親オブジェクトをオブジェクト３０４とし、オブジェクト３１１の親オブジェクトをオブジェクト３０７をとする復旧を行った場合におけるオブジェクト間の参照関係及び導出方法を示す。図１７Ｃは、オブジェクト３０２の代替としてオブジェクト３０６及びオブジェクト３１１の親オブジェクトをオブジェクト３０４をとする参照関係の復旧を行った場合におけるオブジェクト間の参照関係及び導出方法を示す。
【０１１３】
図１７Ａに示すように、オブジェクト３０２が削除された場合には、データ再現装置１００は、オブジェクト３０６及びオブジェクト３１１に新たな親オブジェクトを割り当てる。このとき、図１７Ｂに示す参照関係の復旧を行えば、オブジェクト３０４に処理３を適用するだけでオブジェクト３０６を導出できるとともに、オブジェクト３０７に処理５を適用するだけでオブジェクト３１１を導出できる。一方、図１７Ｃに示す参照関係の復旧を行えば、オブジェクト３０６はオブジェクト３０４に処理３を適用するだけで導出できるが、オブジェクト３１１は処理２の逆処理、処理４及び処理５の３つの処理を適用して導出せねばならない。
【０１１４】
このため、図１７Ｃに示す参照関係の復旧を行った方が図１７Ｂに示す参照関係の復旧を行った場合よりも効率的であるかのように見える。確かに、復旧所要時間の面からだけ見れば図１７Ｂに示す参照関係の復旧を行った方が効率的である。しかしながら、図１７Ｂに示す参照関係の復旧を行った場合には、復旧に伴ってオブジェクト３０４及びオブジェクト３０７の２つのオブジェクトが親オブジェクトになっており、オブジェクト間の参照関係の管理面から言えば煩雑化したとも言える。このようにして親オブジェクトの数が増えると、情報処理装置２００でスキーマの削除や変更を行った場合に、参照関係の復旧を行わねばならない回数も増大する。したがって、オブジェクト間の参照関係の管理面から言えば、削除オブジェクトが発生した場合に削除オブジェクトの子オブジェクトを１つの親オブジェクトに集約するのが好ましい。
【０１１５】
このことから、データ再現装置１００では、復旧所要時間とともに総親オブジェクト数を算出し、これら復旧所要時間及び総親オブジェクト数の積算値が最小である親オブジェクトの参照形態を採用することもできる。また、データ再現装置１００は、復旧所要時間とともに総所在ＤＢ数を算出し、これら復旧所要時間及び総所在ＤＢ数の積算値が最小である親オブジェクトの参照形態を採用することもできる。ここで、総所在ＤＢ数とは、再現対象のオブジェクトが異なる装置のデータベースにまたがっている数を示す。また、ここでは、復旧所要時間と、総親オブジェクト数または総所在ＤＢ数と組み合わせて親オブジェクトの参照形態を評価することとしたが、総親オブジェクト数または総所在ＤＢ数だけを用いて総親オブジェクト数または総所在ＤＢ数を評価することもできる。
【０１１６】
また、データ再現装置１００では、再現対象のオブジェクトが格納されるデータベースから親候補のオブジェクトが格納されるデータベースまでのネットワーク距離、例えばｈｏｐ数が小さい親候補のオブジェクトが選択されるように重み付けを行ってもよい。また、データ再現装置１００では、親候補のオブジェクトが格納される情報処理装置２００の信頼性が高い親候補のオブジェクトが選択されるように重み付けを行ってもよい。
【０１１７】
［利用環境］
上記の実施例２で説明したデータ再現装置１００は、スキーマとして任意の内容が定義される場合に適用できる。例えば、スキーマの変更が発生する頻度が高い環境は、データベース間の参照関係が破壊される頻度も高まることからデータ再現装置１００の好適な利用環境の１つとして挙げられる。また、１つのオブジェクトに対し、同一または類似の加工処理を実行することにより導出されるオブジェクトが複数のデータベースに存在する環境もデータ再現装置１００の好適な利用環境として挙げられる。なぜなら、参照関係が破壊される前の参照データベースの代替となるデータベースをより多く抽出できるからである。
【０１１８】
このような利用環境としては、各データベースを利用する利用者が異なる設計思想でスキーマを定義した上で、所望の実験に関する実験結果または分析結果をデータベースへ時系列に蓄積し、その実験結果または分析結果を用いて解析を試みるケースが挙げられる。
【０１１９】
一例としては、組織が製品の障害を分析する状況が想定される。例えば、各部署、各事業所が自身の業務範囲に属する障害に応じてスキーマを定義した上でそのデータの一部のアクセス権を外部に開放し、また、独自の分析結果を蓄積するケースである。この場合には、他部署のデータベースに格納されたデータを参照して応用解析を行っているにもかかわらず、組織変更等を契機として参照先のデータベースが格納する分析結果が変更または削除され、データベース間の参照関係が破壊される。
【０１２０】
他の一例としては、分類法が未確立な植物の実験を行う状況が想定される。例えば、各々の利用者がその時点で判明している植物の分類にしたがってスキーマを定義した状況で新たな分類が発見されたり、既存の分類に誤りが発見されると、利用者は、その分類にしたがってデータベースをさらに細分化するようにスキーマを変更する。この場合には、データベースの特定の項目が変更または削除されることにより、スキーマ変更後にデータベース間の参照関係が破壊される。
【０１２１】
このような利用環境にデータ再現装置１００を適用することにより、データ再現装置１００は最大限の効果を発揮することができる。
【０１２２】
［適用例］
なお、上記の実施例２では、各情報処理装置２００がデータベースを分散して記憶する場合を説明したが、１つの情報処理装置２００が全てのデータベースを集中して記憶することとしてもよい。また、データ再現装置１００がデータベースを記憶することとしてもかまわない。
【０１２３】
また、上記の実施例２では、削除オブジェクトの子オブジェクトを再現対象とする場合を説明したが、削除オブジェクトに連なる子オブジェクトであればいずれの子オブジェクトも再現対象とすることができる。さらに、上記の実施例２では、１つの再現対象のオブジェクトに基づいて親候補のオブジェクトを抽出する場合を説明したが、再現対象のオブジェクトに基づいて親候補のオブジェクトを抽出することもできる。
【０１２４】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１２５】
例えば、親候補抽出部１３０ｃが実行する親候補抽出処理に含まれる復旧方法抽出処理、すなわち各仮親候補の復旧方法を抽出する処理、または、仮親候補の中から親候補を抽出する処理を外部装置に実行させることとしてもよい。また、変更内容更新部１３０ａ、仮親候補抽出部１３０ｂ、親候補抽出部１３０ｃ、復旧所要時間算出部１３０ｄまたは選択処理部１３０ｅをデータ再現装置の外部装置としてネットワーク経由で接続するようにしてもよい。また、変更内容更新部１３０ａと、仮親候補抽出部１３０ｂ、親候補抽出部１３０ｃ、復旧所要時間算出部１３０ｄ、選択処理部１３０ｅを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、データ再現装置の機能を実現するようにしてもよい。また、記憶部１２０に記憶される処理定義テーブル１２０ａ、オブジェクト管理テーブル１２０ｂの全部または一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のデータ再現装置の機能を実現するようにしてもかまわない。
【０１２６】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。例えば、選択処理部１３０ｅは、親候補抽出部１３０ｃによって抽出された親候補及び復旧方法の組のうちオブジェクトの再現に使用する組を自動的に選択する場合を説明した。しかし、例えば、データ再現装置１００または情報処理装置２００に設けられた入力部を介して、親候補抽出部１３０ｃによって抽出された親候補及び復旧方法の組の中から選択を受け付けることとしてもよい。
【０１２７】
また、本実施例において説明した各処理のうち、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。例えば、上記の実施例２では、選択処理部１３０ｅによって複数の親候補の中から親候補を選択して報知する場合を説明した。しかし、選択処理部１３０ｅが選択した親候補を参照先として確定させる更新を処理定義テーブル１２０ａ及びオブジェクト管理テーブル１２０ｂに対して行わせるようにしてもよい。
【０１２８】
［データ再現プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１８を用いて、上記の実施例と同様の機能を有するデータ再現プログラムを実行するコンピュータの一例について説明する。なお、図１８は、実施例３に係るデータ再現プログラムを実行するコンピュータの一例について説明するための図である。
【０１２９】
図１８に示すように、実施例２におけるコンピュータ５００は、操作部５１０ａと、マイク５１０ｂと、スピーカ５１０ｃと、ディスプレイ５２０と、通信部５３０とを有する。さらに、このコンピュータ５００は、ＣＰＵ５５０と、ＲＯＭ５６０と、ＨＤＤ（Hard  Disk  Drive）５７０と、ＲＡＭ（Random  Access  Memory）５８０と有する。これら５１０〜５８０の各部はバス５４０を介して接続される。
【０１３０】
ＲＯＭ５６０には、上記の実施例２で示したスキーマ変更制御部１３０ａと、仮親候補抽出部１３０ｂと、親候補抽出部１３０ｃと、復旧所要時間算出部１３０ｄと、選択処理部１３０ｅと同様の機能を発揮する制御プログラムが予め記憶される。つまり、ＲＯＭ５６０には、図１８に示すように、スキーマ変更制御プログラム５６０ａと、仮親候補探索プログラム５６０ｂと、親候補抽出プログラム５６０ｃと、復旧所要時間算出プログラム５６０ｄと、選択処理プログラム５６０ｅとが記憶される。なお、これらのプログラム５６０ａ〜５６０ｅについては、図３に示したデータ再現装置の各構成要素と同様、適宜統合又は分離しても良い。
【０１３１】
そして、ＣＰＵ５５０が、これらのプログラム５６０ａ〜５６０ｅをＲＯＭ５６０から読み出して実行する。これにより、ＣＰＵ５５０は、各プログラム５６０ａ〜５６０ｅは、スキーマ変更制御プロセス５５０ａ、仮親候補探索プロセス５５０ｂ、親候補抽出プロセス５５０ｃ、復旧所要時間算出プロセス５５０ｄ及び選択処理プロセス５５０ｅとして機能する。なお、各プロセス５５０ａ〜５５０ｅは、図３に示した、スキーマ変更制御部１３０ａと、仮親候補抽出部１３０ｂと、親候補抽出部１３０ｃと、復旧所要時間算出部１３０ｄと、選択処理部１３０ｅとにそれぞれ対応する。
【０１３２】
そして、ＨＤＤ５７０には、処理定義テーブル５７０ａと、オブジェクト管理テーブル５７０ｂとが設けられる。なお、これら処理定義テーブル５７０ａ及びオブジェクト管理テーブル５７０ｂは、図３に示した処理定義テーブル１２０ａ及びオブジェクト管理テーブル１２０ｂに対応する。
【０１３３】
そして、ＣＰＵ５５０は、処理定義テーブル５７０ａ及びオブジェクト管理テーブル５７０ｂを読み出してＲＡＭ５８０に格納する。さらに、ＣＰＵ５５０は、ＲＡＭ５８０に格納された処理定義データ５８０ａと、オブジェクト管理データ５８０ｂとを用いて、データ再現プログラムを実行する。
【０１３４】
なお、上記したデータ再現プログラムについては、必ずしも最初からＨＤＤ５７０やＲＯＭ５６０に記憶させておく必要はない。例えば、コンピュータ５００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ５００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ５００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ５００がこれらから各プログラムを取得して実行するようにしてもよい。
【０１３５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３６】
（付記１）他のデータベースにおける所定のオブジェクトを導出する際に参照される参照データベースと、前記参照データベースを参照して導出されるオブジェクトを格納する導出データベースとのデータベース間の参照関係を記憶する参照関係記憶部と、
前記オブジェクトが導出される導出データベースと、前記オブジェクトが導出される過程で実行される加工処理との関係を導出方法として記憶する導出方法記憶部と、
前記参照関係記憶部に記憶されたデータベース間の参照関係に基づき、再現の対象とされた再現対象データベースから参照関係を探索することにより、前記オブジェクトの導出時に参照させる候補である参照候補データベースを抽出する参照候補抽出部と、
前記導出方法記憶部に記憶された導出方法に基づき、前記参照候補抽出部によって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理の過程を探索することにより復旧方法を抽出する復旧方法抽出部と
を有することを特徴とするデータ再現装置。
【０１３７】
（付記２）前記参照候補データベース及び前記復旧方法の組ごとに当該復旧方法を実行し終えるまでに要する復旧所要時間時間を取得する復旧所要時間取得部と、
前記参照候補抽出部によって抽出された参照候補データベース及び前記復旧方法抽出部によって取得された復旧方法の組のうち、前記復旧所要時間取得部によって取得された復旧所要時間が最も短い組を、前記オブジェクトの再現時に使用するデータベース及び復旧方法の組として選択する選択部と
をさらに有することを特徴とする付記１に記載のデータ再現装置。
【０１３８】
（付記３）前記導出方法記憶部は、
前記導出方法として、前記加工処理が行われたオブジェクトを加工前のオブジェクトに戻す逆処理をさらに記憶するものであって、
前記復旧方法抽出部は、
前記導出方法記憶部に記憶された導出方法に基づき、前記参照候補抽出部によって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理及び逆処理の過程を探索することにより復旧方法を取得する付記１または２に記載のデータ再現装置。
【０１３９】
（付記４）他のデータベースにおける所定のオブジェクトを導出する際に参照される参照データベースと、前記参照データベースを参照して導出されるオブジェクトを格納する導出データベースとのデータベース間の参照関係を記憶する参照関係記憶部に記憶されたデータベース間の参照関係に基づき、再現の対象とされた再現対象データベースから参照関係を探索することにより、前記オブジェクトの導出時に参照させる候補である参照候補データベースを抽出する参照候補抽出手順と、
前記オブジェクトが導出される導出データベースと、前記オブジェクトが導出される過程で実行される加工処理との関係を導出方法として記憶する導出方法記憶部に記憶された導出方法に基づき、前記参照候補抽出手順によって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理の過程を探索することにより復旧方法を抽出する復旧方法抽出手順と
をコンピュータに実行させることを特徴とするデータ再現プログラム。
【０１４０】
（付記５）前記参照候補データベース及び前記復旧方法の組ごとに当該復旧方法を実行し終えるまでに要する復旧所要時間時間を取得する復旧所要時間取得手順と、
前記参照候補抽出手順によって抽出された参照候補データベース及び前記復旧方法抽出手順によって取得された復旧方法の組のうち、前記復旧所要時間取得手順によって取得された復旧所要時間が最も短い組を、前記オブジェクトの再現時に使用するデータベース及び復旧方法の組として選択する選択手順と
をさらにコンピュータに実行させることを特徴とする付記４に記載のデータ再現プログラム。
【０１４１】
（付記６）前記導出方法記憶部は、
前記導出方法として、前記加工処理が行われたオブジェクトを加工前のオブジェクトに戻す逆処理をさらに記憶するものであって、
前記復旧方法抽出手順は、
前記導出方法記憶部に記憶された導出方法に基づき、前記参照候補抽出手順によって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理及び逆処理の過程を探索することにより復旧方法を取得することを特徴とする付記４または５に記載のデータ再現プログラム。
【０１４２】
（付記７）コンピュータが、
他のデータベースにおける所定のオブジェクトを導出する際に参照される参照データベースと、前記参照データベースを参照して導出されるオブジェクトを格納する導出データベースとのデータベース間の参照関係を記憶する参照関係記憶部に記憶されたデータベース間の参照関係に基づき、再現の対象とされた再現対象データベースから参照関係を探索することにより、前記オブジェクトの導出時に参照させる候補である参照候補データベースを抽出する参照候補抽出ステップと、
前記オブジェクトが導出される導出データベースと、前記オブジェクトが導出される過程で実行される加工処理との関係を導出方法として記憶する導出方法記憶部に記憶された導出方法に基づき、前記参照候補抽出ステップによって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理の過程を探索することにより復旧方法を抽出する復旧方法抽出ステップと
を実行することを特徴とするデータ再現方法。
【０１４３】
（付記８）前記参照候補データベース及び前記復旧方法の組ごとに当該復旧方法を実行し終えるまでに要する復旧所要時間時間を取得する復旧所要時間取得ステップと、
前記参照候補抽出ステップによって抽出された参照候補データベース及び前記復旧方法抽出ステップによって取得された復旧方法の組のうち、前記復旧所要時間取得ステップによって取得された復旧所要時間が最も短い組を、前記オブジェクトの再現時に使用するデータベース及び復旧方法の組として選択する選択ステップと
をさらに実行することを特徴とする付記７に記載のデータ再現方法。
【０１４４】
（付記９）前記導出方法記憶部は、
前記導出方法として、前記加工処理が行われたオブジェクトを加工前のオブジェクトに戻す逆処理をさらに記憶するものであって、
前記復旧方法抽出ステップは、
前記導出方法記憶部に記憶された導出方法に基づき、前記参照候補抽出ステップによって抽出された参照候補データベースが格納するオブジェクトから前記再現対象データベースに格納させるオブジェクトが導出されるまでの加工処理及び逆処理の過程を探索することにより復旧方法を取得することを特徴とする付記７または８に記載のデータ再現方法。
【符号の説明】
【０１４５】
１０    データ再現装置
１１    参照関係記憶部
１２    導出方法記憶部
１３    参照候補抽出部
１４    復旧方法抽出部
１００    データ再現装置
１１０    通信制御Ｉ／Ｆ部
１２０    記憶部
１２０ａ  処理定義テーブル
１２０ｂ  オブジェクト管理テーブル
１３０    制御部
１３０ａ  変更内容更新部
１３０ｂ  仮親候補抽出部
１３０ｃ  親候補抽出部
１３０ｄ  復旧所要時間算出部
１３０ｅ  選択処理部
２００    情報処理装置
４００    ネットワーク
【図１】
2011165147.tif 000003
【図２】
2011165147.tif 000004
【図３】
2011165147.tif 000005
【図４】
2011165147.tif 000006
【図５】
2011165147.tif 000007
【図６】
2011165147.tif 000008
【図７】
2011165147.tif 000009
【図８】
2011165147.tif 000010
【図９】
2011165147.tif 000011
【図１０】
2011165147.tif 000012
【図１１】
2011165147.tif 000013
【図１２】
2011165147.tif 000014
【図１３】
2011165147.tif 000015
【図１４】
2011165147.tif 000016
【図１５】
2011165147.tif 000017
【図１６】
2011165147.tif 000018
【図１７Ａ】
2011165147.tif 000019
【図１７Ｂ】
2011165147.tif 000020
【図１７Ｃ】
2011165147.tif 000021
【図１８】
2011165147.tif 000022