(57)【要約】【課題】  保存しているデータの操作に必要なリソースを低減する。【解決手段】  本発明は、複数の異なる時刻ごとに、保存対象データを取得して保存するデータ保存システムに関する。そして、データ保存システムは、任意の時刻に取得した保存対象データである基準保存対象データの全体データを保存する手段と、基準保存対象データよりも前の時刻で取得した保存対象データである前方保存対象データの全体データを保持する手段と、基準保存対象データの全体データと、前方保存対象データの全体データとの差分データを生成する手段と、生成した差分データを保存する差分データ手段とを有することを特徴とする。【選択図】      図１
2009282563.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なる時刻ごとに、保存対象データを取得して保存するデータ保存システムにおいて、
任意の時刻に取得した保存対象データである基準保存対象データの全体データを保存する基準全体データ保存手段と、
上記基準保存対象データよりも前の時刻で取得した保存対象データである前方保存対象データの全体データを保持する前方全体データ保持手段と、
上記基準全体データ保存手段が保存している全体データと、上記前方全体データ保持手段が保持している全体データとの差分データを生成する差分データ生成手段と、
上記差分データ生成手段が生成した差分データを保存する差分データ保存手段と
を有することを特徴とするデータ保存システム。
【請求項２】
上記差分データ生成手段は、上記基準全体データ保存手段が保存している全体データに対して、上記前方全体データ保持手段が保持している全体データにおいて、少なくとも削除されているデータと、更新されているデータと、追加されているデータとを抽出し、抽出したデータに基づいて差分データを生成することを特徴とする請求項１に記載のデータ保存システム。
【請求項３】
上記基準保存対象データは、最新に取得した保存対象データであることを特徴とする請求項１又は２に記載のデータ保存システム。
【請求項４】
上記前方保存対象データは、上記基準保存対象データの直前に取得した保存対象データであることを特徴とする請求項１〜３のいずれかに記載のデータ保存システム。
【請求項５】
複数の異なる時刻ごとに、保存対象データを取得して保存するデータ保存システムに搭載されたコンピュータを、
任意の時刻に取得した保存対象データである基準保存対象データの全体データを保存する基準全体データ保存手段と、
上記基準保存対象データよりも前の時刻で取得した保存対象データである前方保存対象データの全体データを保持する前方全体データ保持手段と、
上記基準全体データ保存手段が保存している全体データと、上記前方全体データ保持手段が保持している全体データとの差分データを生成する差分データ生成手段と、
上記差分データ生成手段が生成した差分データを保存する差分データ保存手段と
して機能させることを特徴とするデータ保存プログラム。
【請求項６】
複数の異なる時刻ごとに、保存対象データを取得して保存するデータ保存システムにおけるデータ保存方法において、
基準全体データ保存手段、前方全体データ保持手段、差分データ生成手段、差分データ保存手段を有し、
上記基準全体データ保存手段は、任意の時刻に取得した保存対象データである基準保存対象データの全体データを保存し、
上記前方全体データ保持手段は、上記基準保存対象データよりも前の時刻で取得した保存対象データである前方保存対象データの全体データを保持し、
上記差分データ生成手段は、上記基準全体データ保存手段が保存している全体データと、上記前方全体データ保持手段が保持している全体データとの差分データを生成し、
上記差分データ保存手段は、上記差分データ生成手段が生成した差分データを保存する
ことを特徴とするデータ保存方法。
【請求項７】
１又は複数のノードから、上記ノードの監視に関するデータを収集して、上記ノードの監視を行う監視装置において、上記ノードから収集したデータを、請求項１〜４のいずれかに記載のデータ保存システムを用いて保存することを特徴とする監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ保存システム、プログラム及び方法、並びに監視装置に関し、例えば、複数の時刻でデータを収集して保存するシステムに適用し得る。
【背景技術】
【０００２】
従来のデータベースなどにおけるデータバックアップや、データバックアップにおけるバージョン管理機能は、データのフルバックアップを定期的、または任意に取得するとともに現在までのデータの差分バックアップを可能とするものであった。また、データの過去のバージョンの削除には、そのバージョンまでの差分情報とフルバックアップデータから削除対象を検出し、削除対象のフルバックアップデータと差分情報を削除するものであった（非特許文献１参照）。
【０００３】
また、従来のいわゆるバージョン管理システム（例えば、ＣＶＳ（Ｃｏｎｃｕｒｒｅｎｔ  Ｖｅｒｓｉｏｎｓ  Ｓｙｓｔｅｍ）やＳｕｂｖｅｒｓｉｏｎなど）においては、一番古いデータをフルデータとして保持し、その後のバージョン変更の際は変更した差分情報のみを管理していく方法であった（非特許文献２参照）。
【非特許文献１】松信嘉範著、「現場で使えるＭｙＳＱＬ」、２００６年３月翔泳社発行
【非特許文献２】Ｋａｒｌ  Ｆｏｇｅｌ著、竹内里佳、でびあんぐる翻訳、「ＣＶＳ−バージョン管理システム−」、２０００年５月オーム社発行
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１に記載のデータベースでは、データのバージョン間の差分バックアップが可能であったが、過去の情報を取り出す際にはフルバックアップしたデータから、順次差分バックアップを適用することによる取り出し方法しかなく、任意のバージョン以前のデータを削除することも困難であった。また、従来のデータベースのフルバックアップを定常的に行う場合、管理するバージョンの数が大きくなるにつれて、バージョン管理を行うシステムの磁気ディスクを圧迫する。また、過去のバージョンのデータの取り出しや削除に要する処理性能も高速に処理することができない。
【０００５】
また、非特許文献２に記載のＣＶＳでは、過去のバージョンのあるデータを取り出す際、一番古いバージョンのフルデータに差分情報を一つずつ適用して指定した過去のバージョンのすべてのデータを復元してから所望のデータを取り出す処理となるので、高速に処理することができない。また、任意のバージョン以前のデータを削除することは不可能である。
【０００６】
このため、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）によるＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）のデータ取得によるネットワーク監視やＰｉｎｇによる死活監視などによってネットワークの情報を短周期（例えば、５分周期程度）に大量（例えば、２６万件程度）に収集し、過去のネットワークの状態も保持しておかなければならないような監視装置においては、従来のデータベースのバックアップ方法では、任意の時間のネットワーク上に存在するノードの負荷状態や接続状態などの検索や任意の過去バージョンのデータの削除は、処理に要する時間がかかり効率が悪く、かつ大量のバックアップデータにより磁気ディスクを圧迫してしまうため、多くのリソースを必要としていた。また、ＣＶＳでは任意の過去バージョンのデータの削除は実現不可能である。
【０００７】
そのため、保存しているデータの操作に必要なリソースを低減することができるデータ保存システム、プログラム及び方法、並びに監視装置が望まれている。
【課題を解決するための手段】
【０００８】
第１の本発明のデータ保存システムは、（１）複数の異なる時刻ごとに、保存対象データを取得して保存するデータ保存システムにおいて、（２）任意の時刻に取得した保存対象データである基準保存対象データの全体データを保存する基準全体データ保存手段と、（３）上記基準保存対象データよりも前の時刻で取得した保存対象データである前方保存対象データの全体データを保持する前方全体データ保持手段と、（４）上記基準全体データ保存手段が保存している全体データと、上記前方全体データ保持手段が保持している全体データとの差分データを生成する差分データ生成手段と、（５）上記差分データ生成手段が生成した差分データを保存する差分データ保存手段とを有することを特徴とする。
【０００９】
第２の本発明のデータ保存プログラムは、（１）複数の異なる時刻ごとに、保存対象データを取得して保存するデータ保存システムに搭載されたコンピュータを、（２）任意の時刻に取得した保存対象データである基準保存対象データの全体データを保存する基準全体データ保存手段と、（３）上記基準保存対象データよりも前の時刻で取得した保存対象データである前方保存対象データの全体データを保持する前方全体データ保持手段と、（４）上記基準全体データ保存手段が保存している全体データと、上記前方全体データ保持手段が保持している全体データとの差分データを生成する差分データ生成手段と、（５）上記差分データ生成手段が生成した差分データを保存する差分データ保存手段として機能させることを特徴とする。
【００１０】
第３の本発明のデータ保存方法は、（１）複数の異なる時刻ごとに、保存対象データを取得して保存するデータ保存システムにおけるデータ保存方法において、（２）基準全体データ保存手段、前方全体データ保持手段、差分データ生成手段、差分データ保存手段を有し、（３）上記基準全体データ保存手段は、任意の時刻に取得した保存対象データである基準保存対象データの全体データを保存し、（４）上記前方全体データ保持手段は、上記基準保存対象データよりも前の時刻で取得した保存対象データである前方保存対象データの全体データを保持し、（５）上記差分データ生成手段は、上記基準全体データ保存手段が保存している全体データと、上記前方全体データ保持手段が保持している全体データとの差分データを生成し、（６）上記差分データ保存手段は、上記差分データ生成手段が生成した差分データを保存することを特徴とする。
【００１１】
第４の本発明の監視装置は、（１）１又は複数のノードから、上記ノードの監視に関するデータを収集して、上記ノードの監視を行う監視装置において、（２）上記ノードから収集したデータを、第１の本発明のデータ保存システムを用いて保存することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、保存しているデータの操作に必要なリソースを低減することができる。
【発明を実施するための最良の形態】
【００１３】
（Ａ）主たる実施形態
以下、本発明によるデータ保存システム、プログラム及び方法、並びに、監視装置の一実施形態を、図面を参照しながら詳述する。なお、この実施形態の監視装置は、１又は複数のノードから監視に係るデータを収集し保存するものであって、この実施形態のデータ保存システムを適用したものである。
【００１４】
（Ａ−１）実施形態の構成
図１は、この実施形態のデータ保存システム１の機能的構成を示すブロック図である。
【００１５】
図１では、データ保存システム１は、３つのデータ収集対象２（２−１〜２−３）からそれぞれデータを収集して、各時刻のバージョンのデータを保存し、クライアント３から要求があると、その要求に応じたデータを保存しているデータから抽出して、クライアント３に返答するものである。なお、図１においては、データ収集対象２は、３つ配置されているが、単数であっても良く、その数は限定されないものである。
【００１６】
データ収集対象２は、データ保存システム１が収集する対象のデータを記憶しているものであり、例えば、ネットワークノードに格納されているＭＩＢのデータベースや、データベースサーバに搭載された記憶装置などが挙げられる。データ収集対象２は、コンピュータ上のデータや、データを格納したファイルなどであっても良く限定されないものであるが、この実施形態では、例として、データ収集対象２は、ネットワークノードに搭載されているＭＩＢデータのデータベースであり、データ保存システム１は、それぞれ異なるネットワークノードのステータス情報（以下、「ｓｔａｔｕｓ情報」という）を収集して保存するものとして説明する。なお、データ保存システム１は、一つのノードから複数のデータ（ＭＩＢデータ）を収集するようにしても良いが、この実施形態においては、全てのノードについてｓｔａｔｕｓ情報のみを収集するものとして説明する。ｓｔａｔｕｓ情報としては、例えば、ＡＣＴ（当該ネットワークノードが活動状態であることを表す）、ＢＵＳＹ（当該ネットワークノードがビジー状態であることを表す）などの情報が収集されるものとする。
【００１７】
データ保存システム１は、データ収集対象２（２−１〜２−３）から収集対象のデータを収集し、収集した時刻ごとにバージョン管理して保存する。そして、データ保存システム１は、任意のバージョンのデータを検索して、検出したデータを出力する。データ保存システム１による検出したデータの出力は、ディスプレイ等の表示装置に表示出力させたり、プリンタ等の印刷装置に印刷出力させたり、ディスク装置等の記憶装置に記憶させたりしてもよく、その出力する方式は限定されないものであるが、この実施形態においては、データ保存システム１は、クライアント３からの要求に応じて、任意の時刻（バージョン）のデータを検索し、検出したデータをクライアント３に返答するものとする。
【００１８】
また、この実施形態において、データ保存システム１は、クライアント３からの要求に応じたタイミングで、データ収集対象２からデータを収集するものとして説明するが、定期的にデータ収集するようにしても良いし、ユーザが直接データ保存システム１を操作するようにしても良いし、ランダムに設定されたタイミングでデータ収集するようにしても良く、データ保存システム１において、データ収集対象２からデータ収集するタイミングは限定されないものである。
【００１９】
従来のデータを保存するシステムでは、まず最初にデータ収集対象からデータを収集すると、全てのデータ収集対象のデータを収集して、その全体のデータ（以下、「フルデータ」という）保存し、次の時点でデータ収集対象からデータを収集すると、保存しているフルデータとの差分だけを抽出して保存する。一方、この実施形態のデータ保存システム１では、従来のシステムとは逆に、最新の時刻に収集したバージョンについてフルデータ（全てのデータ収集対象２−１〜２−３から同時期に収集したデータ全体）を保存し、それより前の時刻のバージョンについては、最新のバージョンのフルデータを基準とした差分を保持している。データ保存システム１において上述のような最新のフルデータを基準とした差分のデータを生成する方法としては、例えば、一つ前のバージョンのフルデータについて既に保持している状態で、最新のバージョンのフルデータを収集した場合に、２つのフルデータの差分を抽出するようにしても良い。そして、データ保存システム１は、その抽出した差分を保存することを繰り返すことにより、データを収集した時刻（バージョン）ごとのデータを保存する。
【００２０】
このように、データ保存システム１は、データ収集対象から収集したデータについて、時刻（バージョン）ごとのデータ保存を行い、さらに、所望の時刻（バージョン）のデータを検索して抽出するものである。
【００２１】
クライアント３は、データ保存システム１を操作するクライアント装置であり、例えば、データ保存システム１に対するデータ収集指示や、データ保存システム１に対する過去バージョンのデータ検索要求や、データ保存システム１に対する過去バージョンのデータの削除指示などを行うものである。
【００２２】
次に、データ保存システム１の各構成要素の詳細について説明する。
【００２３】
データ保存システム１は、データ収集部１１、一時記憶部１２、今回データ格納部１３、差分抽出部１４、データベース１５、過去バージョンデータ検索部１６、前回データ削除部１７を有している。データ保存システム１は、例えば、パソコンなどの情報処理装置（１台に限定されず、複数台を分散処理し得るようにしたものであっても良い。）上に、実施形態のデータ保存プログラム（固定データを含む）をインストールすることにより、構築してもよく、機能的には図１のように表すことができる。
【００２４】
データ収集部１１は、データ収集対象２−１〜２−３からデータ収集対象となるデータを読込む手段である。データ収集部１１が、データ収集対象２−１〜２−３から、収集対象のデータを読み込む手段としては、有線又は無線のネットワークを介して接続しても良いし、直接有線又は無線のインタフェースにより接続しても良い。また、例えば、ＤＡＴ（Ｄｉｇｉｔａｌ  Ａｕｄｉｏ  Ｔａｐｅ）やＣＤなどの記録媒体によってオフラインでデータを読み込むようにしても良く、データを読み込む方法は限定されないものである。
【００２５】
データ収集部１１は、データ収集対象２からのデータ収集を行い、収集したデータを一旦、一時記憶部１２に保持する。また、データ収集部１１は、データ収集対象２−１〜２−３からデータ収集をしたタイミングごとに、データベース１５における、バージョン番号登録部１５１のｖｅｒｓｉｏｎ＿ｃｏｕｎｔカラムの値を１加算して更新する。また、データ収集部１１は、クライアント３からの操作に応じて、データ収集対象２からデータを収集するようにしても良い。
【００２６】
差分抽出部１４は、一時記憶部１２に保持されている最新の収集データと、今回データ格納部１３に保持されている前回収集されたデータとの差分を抽出し、その結果をデータベース１５（差分データ管理テーブル１５３）に追加する。
【００２７】
前回データ削除部１７は、前回収集したデータをデータ削除するものである。前回データ削除部１７は、差分抽出部１４において差分の抽出処理が終了すると、フルデータテーブル１５２に格納されている前回収集したデータの一括削除を行う。
【００２８】
今回データ格納部１３は、前回データ削除部１７により、フルデータテーブル１５２に格納されている前回収集したデータの削除が完了すると、一時記憶部１２に保持されている最新のフルデータを、フルデータテーブル１５２に保存する。なお、今回データ格納部１３に格納されるデータの形式は、後述するフルデータテーブル１５２の内容と同様の形式である。
【００２９】
過去バージョンデータ検索部１６は、クライアント３から、過去バージョンのデータ検索要求があった際に、データベース１５内のデータを検索し、クライアント３から要求のあったデータが検出された場合には、そのデータを、クライアント３に返答する。また、クライアント３から過去バージョンのデータ削除指示があった場合に、にデータベース１５内のテーブル内を検索し、削除対象のバージョン管理情報を削除するようにしても良い。
【００３０】
一時記憶部１２は、データ収集部１１が収集した最新のフルデータを、一時的に保存する記憶手段である。
【００３１】
データベース１５は、データ保存システム１において、収集したデータ及び、収集したデータを管理するデータベースであり、バージョン番号登録部１５１、フルデータテーブル１５２、差分データ管理テーブル１５３を有している。
【００３２】
図２は、バージョン番号登録部１５１に保存する内容の例について示した説明図である。
【００３３】
バージョン番号登録部１５１は、データベース１５における、バージョン番号テーブルである。バージョン番号登録部１５１は、例えば、図１に示すような形式のデータを格納する欄（以下、「カラム」という）を持つ。
【００３４】
バージョン番号登録部１５１は、図１に示すようにｖｅｒｓｉｏｎ＿ｃｏｕｎｔというカラムを有している。ｖｅｒｓｉｏｎ＿ｃｏｕｎｔは、データ収集部１１がデータ収集対象２−１〜２−３からデータを収集するたびに１ずつ加算される変数である。また、ｖｅｒｓｉｏｎ＿ｃｏｕｎｔは、データ保存システム１のシステム起動時のデフォルト値は「０」であるものとして説明する。このようにして、バージョン番号登録部１５１により、例えば、最新のバージョンのデータが何番目のバージョンであるかなどを管理している。
【００３５】
図３は、フルデータテーブル１５２に保存する内容について示した説明図である。
【００３６】
フルデータテーブル１５２は、データベース１５における、フルデータを管理するためのテーブルである。フルデータテーブル１５２は、図３に示すようにｎａｍｅ、ｄａｔｅ、ｓｔａｔｕｓという３つのカラムを有するデータを記憶するものである。なお、この実施形態では、データベース１５は、データ収集対象２−１〜２−３から収集した情報を、データ収集対象２ごとに保存するものとして説明する。
【００３７】
「ｎａｍｅ」カラムは、保存するデータを識別する識別子であり、フルデータテーブル１５２内でユニークな内容が設定されるものである。
【００３８】
ｎａｍｅカラムに設定される内容は、上述の通りフルデータテーブル１５２内でユニークな内容であれば、データ収集対象２−１〜２−３に係るノードのノード名（例えば、ホスト名など）や、ランダムな内容や、連続する番号など、設定する内容は限定されないものである。
【００３９】
「ｓｔａｔｕｓ」カラムは、「ｎａｍｅ」カラムに対応するデータ収集対象２から取得したｓｔａｔｕｓ情報を格納するカラムである。この実施形態においては、説明を簡易にするために、各データ収集対象２から収集するデータはｓｔａｔｕｓのみであるものとして説明するが、上述の通り複数のデータを格納しても良いし、収集したデータがデータを格納したファイルである場合には、当該ファイルをフルデータテーブル１５２にリンク（例えば、ファイルを別の記憶領域に格納し、フルデータテーブル１５２においてその格納場所を明示する）させるようにしても良く、データ収集対象２から収集するデータの内容は限定されないものである。「ｓｔａｔｕｓ」カラムには、上述の通り、例えば「ＡＣＴ」や「ＢＵＳＹ」などの情報が格納されるものとする。
【００４０】
「ｄａｔｅ」カラムは、「ｓｔａｔｕｓ」カラムに格納する情報を取得した時刻の情報を格納するカラムである。
【００４１】
図４は、差分データ管理テーブル１５３に保存する内容について示した説明図である。
【００４２】
差分データ管理テーブル１５３は、データベース１５において、フルデータテーブル１５２との差分のデータをバージョンごとに管理するテーブルである。
【００４３】
差分データ管理テーブル１５３には、前回収集時に収集したフルデータと比較して、追加されたデータ（以下、「追加データ」という）、削除されたデータ（以下「削除データ」という）、更新されたデータ（以下「更新データ」という）が記憶される。
【００４４】
追加データは、前回データ収集時と比較して、新しく追加されたデータが収集された場合に発生するものである。この実施形態では、例えば、データ収集対象２が追加された場合に追加データが発生する。
【００４５】
削除データは、前回データ収集時と比較して、削除されたデータがあった場合に発生するものである。この実施形態では、例えば、収集対象からはずされた（削除された）データ収集対象２があった場合に発生する。
【００４６】
更新データは、前回データ収集時と比較して、更新されたデータがあった場合に発生するものである。この実施形態では、例えば、同じデータ収集対象２について収集したデータが前回収集時と異なっていた場合に発生する。
【００４７】
差分データ管理テーブル１５３は、図４に示すようにｎａｍｅ、ｄａｔｅ、ｓｔａｔｕｓ、ａｄｄ、ｄｅｌ、ｕｐｄａｔｅという６つのカラムを有するものとして説明する。
【００４８】
ｎａｍｅ、ｄａｔｅ、ｓｔａｔｕｓについては、上述のフルデータテーブル１５２のものとほぼ同様のものであるので詳しい説明を省略する。
【００４９】
「ａｄｄ」カラムは、当該データが追加データであるか否か、及び、追加データであればどの時刻（バージョン）で追加されたかを示すものである。追加データでない場合（すなわち、削除、又は、更新データである場合）には、ａｄｄカラムには「ＮＵＬＬ」が格納され、追加データである場合には、追加される直前のバージョンの番号（すなわち、ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ−１）の値が格納される。また、この実施形態では、差分データ管理テーブル１５３において、追加データのｓｔａｔｕｓ及びｄａｔｅには「ＮＵＬＬ」が入力されるものとする。
【００５０】
「ｄｅｌ」カラムは、当該データが削除データであるか否か、及び、削除データであれば、どの時刻（バージョン）で削除されたかを示すものである。削除データでない場合（すなわち、追加、又は、更新データである場合）には、ｄｅｌカラムには「ＮＵＬＬ」が格納され、削除データである場合には、削除される直前のバージョンの番号（すなわち、ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ−１）の値が格納される。また、ｓｔａｔｕｓカラムには、削除される直前のｓｔａｔｕｓカラムのデータが格納されるものとする。
【００５１】
「ｕｐｄａｔｅ」カラムは、当該データが更新データであるか否か、及び、更新データであれば、どの時刻（バージョン）で更新されたかを示すものである。更新データでない場合（すなわち、追加、又は、削除データである場合）には、ｕｐｄａｔｅカラムには「ＮＵＬＬ」が格納され、更新データである場合には、更新される直前のバージョンの番号（すなわち、ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ−１）の値が格納される。更新データである場合には、ｓｔａｔｕｓカラムには、更新される直前のｓｔａｔｕｓカラムのデータが格納されるものとする。
【００５２】
（Ａ−２）実施形態の動作
次に、以上のような構成を有するこの実施形態のデータ保存システムの動作（実施形態のデータ保存方法）を説明する。
【００５３】
（Ａ−２−２）差分データ抽出
まず、データ保存システム１において、データ収集対象２からデータを収集し、前回収集したデータと、今回収集したデータとの差分データ生成し、差分データ管理テーブル１５３に保存する動作について説明する。
【００５４】
図５は、データ保存システム１において、差分データのうち、削除データ及び更新データについて生成して保存する動作について示したフローチャートである。
【００５５】
まず、データ保存システム１においてシステム起動があったものとする（Ｓ１０１）。
【００５６】
次に、クライアント３からデータ保存システム１に、データ収集の要求が通知されると、データ保存システム１では、データ収集部１１により、データ収集対象２−１〜２−３から、収集対象のデータが収集され、一時記憶部１２に保持される（Ｓ１０２）。
【００５７】
次に、データ保存システム１では、バージョン番号登録部１５１のｖｅｒｓｉｏｎ＿ｃｏｕｎｔの値に１が加算される（Ｓ１０３）。
【００５８】
次に、バージョン番号登録部１５１のｖｅｒｓｉｏｎ＿ｃｏｕｎｔの値が、１であるか否か、すなわち、データ保存システム１において、最初のデータ収集かどうかが判定され、ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝１であれば、後述するステップＳ１０７から動作し、ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝１でなければ、後述するステップＳ１０５の処理から動作する（Ｓ１０４）。
【００５９】
上述のＳ１０４において、ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝１でないと判定された場合には、データ保存システム１では、フルデータテーブル１５２に保持している前回収集分のデータと一時記憶部１２に保持している今回収集分のデータの差分データが抽出され、差分データ管理テーブル１５３に格納する処理が行われる（Ｓ１０５）。なお、上述のＳ１０５における処理の詳細については後述する。
【００６０】
次に、データ保存システム１では、フルデータテーブル１５２に保持されている前回収集分のデータが削除される（Ｓ１０６）。
【００６１】
上述のステップＳ１０４でｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝１と判定された場合、又は、上述のステップＳ１０６で前回収集分のデータが削除処理された場合には、データ保存システム１では、フルデータテーブル１５２に一時記憶部１２が保持している今回収集分のデータが保持される。
【００６２】
そして、データ保存システム１はスリープ状態に移行し、次回のデータ収集指示がクライアント３からあると、上述のステップＳ１０２から再度動作する（Ｓ１０８）。
【００６３】
次に、上述のステップＳ１０５における、差分データ抽出の動作の詳細について説明する。データ保存システム１において、差分データ抽出は削除および更新データの動作と、追加データ動作で内容が異なるため、この実施形態においては、まず、削除及び更新データを抽出する動作について説明し、その後に追加データを抽出する動作について説明する。なお、データ保存システム１において、削除データ、更新データ、追加データを抽出する順番は限定されないものである。
【００６４】
図６は、データ保存システム１において差分データのうち、削除及び更新データを生成して保存する動作について示したフローチャートである。
【００６５】
まず、差分抽出部１４では、差分データ抽出の処理が開始されると（Ｓ２０１）、フルデータテーブル１５２に格納されている前回収集分のデータが取得される（Ｓ２０２）。
【００６６】
次に、差分抽出部１４では、取得した前回収集分のデータからｎａｍｅカラムに格納されているデータが１件取り出される（Ｓ２０３）。
【００６７】
次に、上述のステップＳ２０３において取り出されたデータと一致するものが、一時記憶部１２に保持されている今回収集分のデータに存在するか否かが判定され（Ｓ２０４）、該当するデータが存在すると判定された場合には、後述するステップＳ２０６から動作し、該当するデータが存在しないと判定された場合には後述するステップＳ２０５から動作する。
【００６８】
上述のステップＳ２０４において、該当するデータが存在しないと判定された場合には、上述のステップＳ２０３で取り出されたデータは、前回データ収集した時刻かから、今回データ収集した時刻の間に削除されたデータであるため、削除データが作成されて、差分データ管理テーブル１５３に格納される（Ｓ２０５）。なお、ステップＳ２０５における、削除データ作成の動作の詳細については後述する。
【００６９】
一方、上述のステップＳ２０４において、該当するデータが存在すると判定された場合には、上述のステップＳ２０３で取り出されたデータと、上述のステップＳ２０４において検出されたデータとの間で、ｎａｍｅカラム、ｄａｔｅカラム、Ｓｔａｔｕｓカラムの全てについて内容が一致するか否か判定される（Ｓ２０６）。ステップＳ２０６において、２つのデータでｎａｍｅカラム、ｄａｔｅカラム、Ｓｔａｔｕｓカラムの全ての内容が一致する場合には、前回データ収集した時刻と、今回データ収集した時刻との間で、当該データは更新されていないことを示し、後述するステップＳ２０８から動作し、いずれかの内容が一致しない場合は更新されたことを示し、後述するステップＳ２０７から動作する。
【００７０】
上述のステップＳ２０６において、前回データ収集した時刻と、今回データ収集した時刻との間で、当該データが更新されたと判定された場合には、上述のステップＳ２０３で取り出されたデータについて、更新データが作成され、差分データ管理テーブル１５３に格納される（Ｓ２０７）。なお、ステップＳ２０７において、更新データが作成され、差分データ管理テーブル１５３に格納される動作の詳細については後述する。
【００７１】
上述のステップＳ２０５〜２０７のいずれかの処理が終了すると、上述のステップＳ２０２において取得されたデータの全てについて、上述のステップＳ２０４又はＳ２０６の判定が行われたか否かを判定され、Ｓ２０４、Ｓ２０６の判定が行われていないデータがある場合は、上述のステップＳ２０３の処理から再度動作する（Ｓ２０８）。
【００７２】
そして、上述のステップＳ２０８の判定において、すべてのデータについてＳ２０４、Ｓ２０６の判定が行われたと判定された場合には、削除および更新データの抽出処理が終了する（Ｓ２０９）。
【００７３】
図７は、データ保存システム１において差分データのうち、追加データを生成して保存する動作について示したフローチャートである。
【００７４】
差分抽出部１４では、上述の図６に示す処理により、削除及び更新データの抽出の動作が終了すると、差分データのうち、追加データの抽出の動作が開始される（Ｓ３０１）。
【００７５】
そして、差分抽出部１４では、フルデータテーブル１５２に格納されている前回収集分のデータが取得される（Ｓ３０２）。
【００７６】
次に、差分抽出部１４では、一時記憶部１２に格納されている今回収集分のデータからｎａｍｅカラムに格納されているデータが１件取り出される（Ｓ３０３）。
【００７７】
次に、上述のステップＳ３０３において取り出されたデータと一致するものが、上述のステップＳ３０２で取得した前回集分のデータに存在するか否かが判定され（Ｓ３０４）、該当するデータが存在すると判定された場合には、後述するステップＳ３０６から動作し、該当するデータが存在しないと判定された場合には後述するステップＳ３０５から動作する。
【００７８】
上述のステップＳ３０４において、該当するデータが存在しないと判定された場合には、上述のステップＳ３０３で取り出されたデータは、前回データ収集した時刻かから、今回データ収集した時刻の間に追加されたデータであるため、追加データが作成され、差分データ管理テーブル１５３に格納される（Ｓ３０５）。なお、ステップＳ３０５における、追加データが作成され、差分データ管理テーブル１５３に格納される動作の詳細については後述する。
【００７９】
上述のステップＳ３０４において、該当するデータが存在すると判定された場合、又は、上述のステップＳ３０５の処理が終了すると、上述のステップＳ３０３において取得された今回収集分のデータの全てについて、上述のステップＳ３０４の判定が行われたか否かを判定され、ステップＳ３０４の判定が行われていないデータがある場合は、上述のステップＳ３０３の処理から再度動作する（Ｓ３０６）。
【００８０】
そして、上述のステップＳ３０６の判定において、すべてのデータについてＳ３０４の判定が行われたと判定された場合には、差分データのうち追加データの抽出処理が終了し（Ｓ３０７）、削除データ、更新データ、追加データの全てについて抽出の処理が完了する。
【００８１】
次に、上述のステップＳ２０５における、削除データの格納の動作について説明する。
【００８２】
図８は、差分抽出部１４により削除データを生成され保存される動作について説明したフローチャートである。
【００８３】
まず、上述のステップＳ２０５において、削除データの差分データ管理テーブル１５３への格納処理が開始されると（Ｓ４０１）、上述のステップＳ２０３により取り出されたデータ（前回収集分のデータの一部）について、差分データ管理テーブル１５３にエントリが追加され、該当するｎａｍｅカラム、ｄａｔｅカラム、Ｓｔａｔｕｓカラムの内容が入力される（Ｓ４０２）。
【００８４】
上述のステップＳ４０２で、差分データ管理テーブル１５３に追加されたエントリのｄｅｌカラムに前回収集分のデータのバージョン番号すなわち、バージョン番号登録部１５１のｖｅｒｓｉｏｎ＿ｃｏｕｎｔカラムの値から１を減算した数値が格納される（Ｓ４０３）。
【００８５】
そして、上述のステップＳ４０２で、差分データ管理テーブル１５３に追加されたエントリの、ａｄｄカラムとｕｐｄａｔｅカラムには「ｎｕｌｌ」が格納され（Ｓ４０４）、削除データ格納の動作は終了する（Ｓ４０５）。
【００８６】
次に、上述のステップＳ２０７における、更新データの格納の動作について説明する。
【００８７】
図９は、差分抽出部１４による更新データの生成及び保存の動作について示したフローチャートである。
【００８８】
まず、上述のステップＳ２０７において、更新データの差分データ管理テーブル１５３への格納処理が開始されると（Ｓ５０１）、上述のステップＳ２０３により取り出されたデータについて、差分データ管理テーブル１５３にエントリが追加され、該当するｎａｍｅカラム、ｄａｔｅカラム、Ｓｔａｔｕｓカラムの内容が入力される（Ｓ５０２）。
【００８９】
上述のステップＳ５０２で、差分データ管理テーブル１５３に追加されたエントリのｕｐｄａｔｅカラムに前回収集分のデータのバージョン番号すなわち、バージョン番号登録部１５１のｖｅｒｓｉｏｎ＿ｃｏｕｎｔカラムの値から１を減算した数値が格納される（Ｓ５０３）。
【００９０】
そして、上述のステップＳ５０２で、差分データ管理テーブル１５３に追加されたエントリの、ａｄｄカラムとｄｅｌカラムには「ｎｕｌｌ」が格納され（Ｓ５０４）、更新データ格納の動作は終了する（Ｓ５０５）。
【００９１】
追加データの差分データ管理テーブル１５３への追加手順を図７に示し、以下に図７の手順の詳細説明を示す。
【００９２】
図１０は、差分抽出部１４による追加データの保存及び格納の動作について説明したフローチャートである。
【００９３】
まず、上述のステップＳ３０５において、追加データの差分データ管理テーブル１５３への格納処理が開始されると（Ｓ６０１）、差分データ管理テーブル１５３にｎａｍｅカラム、ｄａｔｅカラム、Ｓｔａｔｕｓカラムにｎｕｌｌを格納したエントリが追加される（Ｓ６０２）。
【００９４】
上述のステップＳ６０２で、差分データ管理テーブル１５３に追加されたエントリのａｄｄカラムに前回収集分のデータのバージョン番号すなわち、バージョン番号登録部１５１のｖｅｒｓｉｏｎ＿ｃｏｕｎｔカラムの値から１を減算した数値が格納される（Ｓ６０３）。
【００９５】
そして、上述のステップＳ６０２で、差分データ管理テーブル１５３に追加されたエントリの、ｕｐｄａｔｅカラムとｄｅｌカラムには「ｎｕｌｌ」が格納され（Ｓ６０４）、追加データ格納の動作は終了する（Ｓ６０５）。
【００９６】
以上のように、この実施形態のデータ保存システム１にでは、データ収集及び差分データ抽出を行なう。このような手順によりフルデータテーブル１５２には常に最新のバージョンのデータのみが保持され、差分データ管理テーブル１５３にはバージョン間の差分データが前回収集分のバージョン番号とともに管理されるため、バージョンごとにフルデータを保存しなくてもよい構成となる。
【００９７】
（Ａ−２−２）差分データ抽出の具体例
次に、データ保存システム１の、データベース１５において、フルデータ及び差分データが具体的にどのように、フルデータテーブル１５２、及び、差分データ管理テーブル１５３に格納されるのかについて説明する。
【００９８】
図１５は、フルデータテーブル１５２に格納されるデータの説明図である。
【００９９】
図１５（ａ）は、１回目にデータ収集した時刻（ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝１の時点）においてフルデータテーブル１５２に格納されるデータの例について示した説明図である。図１５（ｂ）は、２回目にデータ収集した時刻（ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝２の時点）においてフルデータテーブル１５２に格納されるデータの例について示した説明図である。図１５（ｃ）は、３回目にデータ収集した時刻（ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝３の時点）においてフルデータテーブル１５２に格納されるデータの例について示した説明図である。
【０１００】
図１６は、差分データ管理テーブル１５３に格納されるデータの説明図である。図１６（ａ）は、２回目にデータ収集した時刻（ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝２の時点）において差分データ管理テーブル１５３に格納されるデータの例について示した説明図である。図１６（ｂ）は、３回目にデータ収集した時刻（ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝３の時点）において差分データ管理テーブル１５３に格納されるデータの例について示した説明図である。
【０１０１】
なお、図１５及び１６において、データ収集対象２−１、２−２、２−３に対応するｎａｍｅカラムに設定する内容は、それぞれ「ノードＡ」、「ノードＢ」、「ノードＣ」であるものとして説明する。
【０１０２】
２回目にデータ収集した時刻（ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝２の時点）では、図１５（ａ）の内容がフルデータテーブル１５２に格納され、図１５（ｂ）の内容が一時記憶部１２に格納されたものとすると、上述の図５〜図１０のフローチャートに示す動作により、図１６（ａ）の内容が作成され、差分データ管理テーブル１５３に格納される。この時点では、ノードＡ及びノードＢのデータが更新されているため、Ｌ２２１及びＬ２２２のデータが更新データとして追加格納されている。
【０１０３】
次に、３回目にデータ収集した時刻（ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ＝３の時点）で、図１５（ｂ）の内容がフルデータテーブル１５２に格納され、図１５（ｃ）の内容が一時記憶部１２に格納されたものとすると、上述の図５〜図１０のフローチャートに示す動作により差分データが追加され、図１６（ｂ）の内容が、差分データ管理テーブル１５３に格納される。この時点では、ノードＢ及びノードＣのデータが更新されているため、Ｌ２３１及びＬ２３２のデータが更新データとして追加格納されている。
【０１０４】
（Ａ−２−３）任意のデータの検索
次に、データ保存システム１において過去のバージョンのデータの検索をする動作について説明する。
【０１０５】
図１１〜図１３は、データ保存システム１においてデータ保存システム１における過去のバージョンのデータの検索する動作について示したフローチャートである。
【０１０６】
図１１〜図１３では、データ収集システムが起動中で現在のバージョン番号登録部１５１のｖｅｒｓｉｏｎ＿ｃｏｕｎｔがｍであるとき、すなわち過去にデータ収集した回数がｍ回であるときに、クライアント３から、ＶｅｒＳｉｏｎ＿ｃｏｕｎｔがｎ（ｍ＞ｎであること）の時点におけるｎａｍｅが「Ａ」である過去のデータを検索する要求があったものとする。
【０１０７】
過去バージョンデータ検索部１６において、ｖｅｒｓｉｏｎ＿ｃｏｕｎｔがｎの時点におけるｎａｍｅがＡのデータの検索が開始されると（Ｓ７０１）、まず、差分データ管理テーブル１５３において、ｎａｍｅ＝Ａかつｄｅｌカラムの値（以下、「ｄｅｌ＿ｎｕｍ」という）がｎ以上ｍ以下のデータのエントリの中で、ｄｅｌカラムのｄｅｌ＿ｎｕｍが最小であるエントリ（以下、「ｄｅｌ＿ｅｎｔｒｙ」という）が検索される（Ｓ７０２）。
【０１０８】
過去バージョンデータ検索部１６では、上述のＳ７０２において、該当するｄｅｌ＿ｅｎｔｒｙが検出されたか否かの判定が行われ（Ｓ７０３）、該当するｄｅｌ＿ｅｎｔｒｙが検出された場合には、後述するステップＳ７０４の処理から動作し、ｄｅｌ＿ｅｎｔｒｙが検出されなかった場合には、後述するＳ７０５の処理から動作する。
【０１０９】
上述のステップＳ７０３において、該当するｄｅｌ＿ｅｎｔｒｙが検出されなかったと判定された場合には、変数Ｘにバージョン番号ｍが代入され（Ｓ７０５）、後述するステップＳ７０６の処理から動作する。
【０１１０】
上述のステップＳ７０３において、該当するｄｅｌ＿ｅｎｔｒｙが検出されたと判定された場合には、変数Ｘにｄｅｌ＿ｅｎｔｒｙのｄｅｌカラムの値が代入され（Ｓ７０４）、後述のステップＳ７０６の処理から動作する。なお、上述のステップＳ７０４において、該当するｄｅｌ＿ｅｎｔｒｙが検出されたということは、現在のバージョンのデータに検索対象のｎａｍｅ＝Ａのデータ持っていた場合、検索結果で得られるｎａｍｅ＝Ａのデータは現在のバージョンのデータとは異なる系統であることになる。この実施形態では、検索結果のデータの系列が現在のバージョンのデータと異なる系列のデータであっても過去の系列のデータを返すことができる検索を実行する処理を後述するＳ７０６以降において説明する。
【０１１１】
上述のステップＳ７０４又はＳ７０５の処理の後、差分データ管理テーブル１５３より、ｎａｍｅ＝“Ａ”で、かつ、ａｄｄカラムの値（以下、「ａｄｄ＿ｎｕｍ」という）がｎ以上Ｘ以下のデータのエントリ（以下、「ａｄｄ＿ｅｎｔｒｙ」という）が検索される（Ｓ７０６）。
【０１１２】
そして、上述のステップＳ７０６において、該当するａｄｄ＿ｅｎｔｒｙが検出されたか否かの判定が行われ（Ｓ７０７）、該当するａｄｄ＿ｅｎｔｒｙが検出された場合には、後述するステップＳ７０８の処理から動作し、検出されなかった場合には、後述するステップＳ８０１（図１２参照）の処理から動作する。
【０１１３】
上述のステップＳ７０７において、該当するａｄｄ＿ｅｎｔｒｙが検出された場合には、検索結果は、未登録であり、その検索結果が、クライアント３に返答され、処理が終了する（Ｓ７０８）。
【０１１４】
上述のステップＳ７０７において、該当するａｄｄ＿ｅｎｔｒｙが検出されなかった場合には、過去バージョンデータ検索部１６により、差分データ管理テーブル１５３において、ｎａｍｅ＝“Ａ”で、かつ、ｕｐｄａｔｅカラムの値（以下、「ｕｐｄａｔｅ＿ｎｕｍ」という）がｎ以上Ｘ以下のデータのエントリの中でｕｐｄａｔｅカラムのｕｐｄａｔｅ＿ｎｕｍが最小であるエントリ（以下、「ｕｐｄａｔｅ＿ｅｎｔｒｙ」という）が検索される（Ｓ８０１）。
【０１１５】
上述のステップＳ８０１において、該当するｕｐｄａｔｅ＿ｅｎｔｒｙが検出されたか否かが判定され（Ｓ８０２）、該当するｕｐｄａｔｅ＿ｅｎｔｒｙが検出された場合には、後述するステップＳ８０３の処理から動作し、該当するｕｐｄａｔｅ＿ｅｎｔｒｙが検出されなければ、後述するステップＳ９０１（図１３参照）の処理から動作する。
【０１１６】
上述のステップＳ８０２において、該当するｕｐｄａｔｅ＿ｅｎｔｒｙが検出されなかったと判定された場合には、ｕｐｄａｔｅ＿ｅｎｔｒｙのエントリデータが検索結果としてクライアント３に返答して処理が終了される（Ｓ８０３）。
【０１１７】
上述のステップＳ７０２において、該当するｄｅｌ＿ｅｎｔｒｙが検出されたか否かが判定され（Ｓ９０１）、該当するｄｅｌ＿ｅｎｔｒｙが検出されていた場合には、後述するステップＳ９０２の処理から動作し、該当するｄｅｌ＿ｅｎｔｒｙが検出されていなかった場合には、後述するステップＳ９０３の処理から動作する。
【０１１８】
上述のステップＳ９０１において、該当するｄｅｌ＿ｅｎｔｒｙが検出されていたと判定された場合には、ｄｅｌ＿ｅｎｔｒｙのエントリデータを検索結果としてクライアント３に返答して処理が終了される（Ｓ９０２）。
【０１１９】
上述のステップＳ９０１において、該当するｄｅｌ＿ｅｎｔｒｙが検出されていなかったと判定された場合には、過去バージョンデータ検索部１６により、フルデータテーブル１５２において、ｎａｍｅ＝”Ａ”のエントリ（以下、「ｆｕｌｌｄａｔａ＿ｅｎｔｒｙ」という）が検索される（Ｓ９０３）。
【０１２０】
上述のステップＳ９０４において、該当するｆｕｌｌｄａｔａ＿ｅｎｔｒｙが検出されたか否かが判定され（Ｓ９０４）、該当するｆｕｌｌｄａｔａ＿ｅｎｔｒｙが検出されていた場合には、後述するステップＳ９０５の処理から動作し、該当するｆｕｌｌｄａｔａ＿ｅｎｔｒｙが検出されていなかった場合には、後述するステップＳ９０６の処理から動作する。
【０１２１】
上述のステップＳ９０４において、該当するｆｕｌｌｄａｔａ＿ｅｎｔｒｙが検出されていたと判定された場合には、ｆｕｌｌｄａｔａ＿ｅｎｔｒｙのエントリデータを検索結果としてクライアント３に返答して処理が終了される（Ｓ９０５）。
【０１２２】
一方、上述のステップＳ９０４において、該当するｆｕｌｌｄａｔａ＿ｅｎｔｒｙが検出されていなかったと判定された場合には、検索結果は未登録としてクライアント３に返答して処理が終了される（Ｓ９０６）。
【０１２３】
以上が、データ保存システム１における過去のバージョンのデータ検索の動作の詳細である。上述の図１１〜１３に示す動作により検索したい過去のバージョンのデータをフルデータとして展開してから検索対象のデータの検索を実行するような手順は必要とせずに、容易に検索を行うことが可能である。
【０１２４】
（Ａ−２−４）過去バージョンのデータ削除
図１４は、データ保存システム１における過去のデータ（指定バージョンより古いバージョンのデータ）を削除する動作について示したフローチャートである。
【０１２５】
図１４では、例として、現在のバージョン番号登録部１５１のｖｅｒｓｉｏｎ＿ｃｏｕｎｔがｍであるとき、すなわち現在のバージョン番号がｍであるときに、クライアント３から、ｖｅｒｓｉｏｎ＿ｃｏｕｎｔがｎ（ｍ＞ｎであること）より古いデータを削除する指示があったものとする。
【０１２６】
クライアント３から、ｖｅｒｓｉｏｎ＿ｃｏｕｎｔがｎより古いバージョンのデータ削除の要求があると、データ保存システム１では、過去バージョンデータ検索部１６により、その処理が開始される（Ｓ１００１）。
【０１２７】
そして、差分データ管理テーブル１５３において、ａｄｄカラムの値がｎ以下、またはｕｐｄａｔｅカラムの値がｎ以下、またはｄｅｌカラムの値がｎ以下であるエントリがすべて一括削除され、処理が終了する（Ｓ１００２）。
【０１２８】
上述のような動作により、指定バージョンより古いバージョンのデータの削除する際に、フルバックアップデータと差分情報から、指定バージョンのデータを検出して削除を実行するような手順は必要とせずに、容易に削除を行うことが可能である。
【０１２９】
（Ａ−３）実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
【０１３０】
データ保存システム１では、最新のバージョンのデータのみをフルデータテーブル１５２に保持し、差分データ管理テーブル１５３にバージョン間の差分データを管理することによって、バージョンごとにフルバックアップをとらなくてもよい構成が可能となり、データ保存システム１において必要となる記憶容量を低減することができる。
【０１３１】
また、データ保存システム１では、過去の任意のバージョンの任意のデータを検索する際、検索したい過去のバージョンのデータをフルデータとして展開してから検索対象のデータの検索を実行するような手順は必要とせずに、差分データ管理テーブル１５３内の検索のみで容易にかつ高速に過去のバージョンの対象のデータ検索が可能となるため、データの検出に必要とする処理量を低減することができる。
【０１３２】
さらに、データ保存システム１では、検索対象の任意のデータと同じ系列のデータを検索結果として取り出すか、取り出さないか、というような選択が実装方法によって可能である。
【０１３３】
さらにまた、データ保存システム１では、指定バージョンより古いバージョンのデータの削除する際に、フルバックアップデータと差分情報から、指定バージョンのデータを検出して削除を実行するような手順は必要とせずに、差分データ管理テーブル１５３内の条件一致削除のみで削除を行うことが可能となり、削除に必要とする処理量や記憶容量を低減することができる。また、これにより、バージョン管理システムに使用するマシンの維持管理も容易になる。例えば、差分データ管理テーブル１５３に対して１行ほどのＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）文で指定バージョンより古いデータをすべての削除することが可能である。
【０１３４】
このように、データ保存システム１では、保存しているデータについて、任意のバージョンのデータの検索や削除などの操作を行う場合に必要となる処理量や記憶容量などのリソースを低減することができる。これは特に、短周期で大量のデータを収集する必要がある場合には、より多くのリソースを低減することができるという効果を奏する。
【０１３５】
（Ｂ）他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【０１３６】
（Ｂ−１）上記の実施形態における、データ保存システム１を、例えば、ネットワーク機器や、各種サーバなどのノードから、ＳＮＭＰによるＭＩＢのデータ取得を収集する監視装置に適用し、監視システムの収集データの保存をするようにしても良い。その他にも、上記の実施形態におけるデータ保存システムを複数の時刻でデータを保存するシステムや装置に適用しても良い。
【０１３７】
特に、監視情報の収集を短周期（例えば、５分周期程度）に大量（例えば、２６万件程度）に収集し、過去のネットワークの状態も保持しておかなければならないような監視装置に適用した場合、任意の時刻のネットワーク上に存在するノードの負荷状態や接続状態などの検索や任意の過去バージョンのデータの削除が、より少ない処理量で可能となり、必要とする記憶容量も低減することができる。
【０１３８】
（Ｂ−２）上記の実施形態において、データ保存システム１では、最新のバージョンのフルデータと過去の各時刻におけるバージョンの差分データを保存しているが、最新のバージョンに限定されず、それ以前の時刻に取得したフルデータを保存し、そのフルデータ（以下、「基準フルデータ」という）を基準として、基準フルデータ以前の時刻に取得したフルデータ（以下、「前方フルデータ」という）に係る差分データを保存するようにしても良い。また、データ保存システム１では、基準フルデータ以後の時刻に収集されたフルデータ（以下、「後方フルデータ」という）に係る差分データを保存するようにしても良い。後方フルデータに係る差分データの抽出は、既存のデータ保存（バックアップ）を行うシステムに適用されている手順と同様の手順を適用することにより実現できる。
【０１３９】
なお、前方フルデータは、基準フルデータの直前にデータ収集対象から収集したデータに限定されるものではない。また、後方フルデータも、基準フルデータの直後にデータ収集対象から収集したデータに限定されるものではない。また、上記の実施形態において、データ保存システム１では、最新のバージョンのフルデータのみを保存しているが、複数のバージョンについてフルデータを保存し、複数のフルデータを基準フルデータとして、それらの基準フルデータの以前や以降の差分データを保存するようにしても良い。
【０１４０】
（Ｂ−３）上記の実施形態では、上述の図１１〜図１３に示すフローチャートの処理により、任意のバージョンの任意のデータを検索する動作について説明したが、クライアント３が、任意のバージョンのデータをすべて復元することを指定した場合は、例えば、フルデータテーブル１５２の全てのデータについて上述の図１１〜図１３のデータ検索を行うようにしても良い。
【０１４１】
また、例えば、フルデータテーブル１５２に、差分データ管理テーブル１５３の追加データ、削除データ、更新データに対応する処理を順次行って、指定のバージョンまで遡ったデータを復元するようにしても良い。例えば、追加データがあった場合には、逆に該当するデータを削除し、削除データがあった場合には、逆に該当するデータを追加し、更新データがあった場合には、逆にそのデータの更新を戻す逆更新を行うことを、それぞれのバージョンごとの全ての差分データについて行い、指定のバージョンまで遡ることができる。それぞれのバージョンの差分データはａｄｄカラム、ｄｅｌカラム、ｕｐｄａｔｅカラムのいずれかに入力されているバージョン番号（ｖｅｒｓｉｏｎ＿ｃｏｕｎｔ）を確認することにより認識できるため、例えば、現在のｖｅｒｓｉｏｎ＿ｃｏｕｎｔが５で、復元が指定されたバージョンが２であれば、バージョン番号が４の差分データ、３の差分データ、２の差分データと、順番に上述の処理を適用していけば、指定されたバージョン（２）のデータを全て復元することができる。
【図面の簡単な説明】
【０１４２】
【図１】実施形態に係るデータ保存システムの機能的構成を示すブロック図である。
【図２】実施形態に係るデータベースのうち、バージョン番号登録部に保存する内容について示した説明図である。
【図３】実施形態に係るデータベースのうち、フルデータテーブルに保存する内容について示した説明図である。
【図４】実施形態に係るデータベースのうち、差分データ管理テーブルに保存する内容について示した説明図である。
【図５】実施形態に係る実施形態に係るデータ保存システムにおいて、差分データを生成して保存する動作について示したフローチャートである。
【図６】実施形態に係るデータ保存システムにおいて差分データのうち、削除及び更新データを生成して保存する動作について示した説明図である。
【図７】実施形態に係るデータ保存システムにおいて差分データのうち、追加データを生成して保存する動作について示した説明図である。
【図８】実施形態に係るデータ保存システムにおいて差分データのうち、削除データを生成して保存する動作の詳細について示した説明図である。
【図９】実施形態に係るデータ保存システムにおいて差分データのうち、更新データを生成して保存する動作の詳細について示した説明図である。
【図１０】実施形態に係るデータ保存システムにおいて差分データのうち、追加データを生成して保存する動作の詳細について示した説明図である。
【図１１】実施形態に係るデータ保存システムにおいて、過去のバージョンのデータを検索する動作について示したフローチャート（１）である。
【図１２】実施形態に係るデータ保存システムにおいて、過去のバージョンのデータを検索する動作について示したフローチャート（２）である。
【図１３】実施形態に係るデータ保存システムにおいて、過去のバージョンのデータを検索する動作について示したフローチャート（３）である。
【図１４】実施形態に係るデータ保存システムにおける指定バージョンより古いバージョンのデータを削除する動作について示したフローチャートである。
【図１５】実施形態に係るフルデータテーブルに格納されるデータの具体例を示した説明図である。
【図１６】実施形態に係る差分データ管理テーブルに格納されるデータの具体例を示した説明図である。
【符号の説明】
【０１４３】
１…データ保存システム、１１…データ収集部、１２…一時記憶部、１３…今回データ格納部、１４…差分抽出部、１５…データベース、１６…過去バージョンデータ検索部、１７…前回データ削除部、１５１…バージョン番号登録部、１５２…フルデータテーブル、１５３…差分データ管理テーブル、２、２−１〜２−３…データ収集対象、３…クライアント。
【図１】
2009282563.tif 000003
【図２】
2009282563.tif 000004
【図３】
2009282563.tif 000005
【図４】
2009282563.tif 000006
【図５】
2009282563.tif 000007
【図６】
2009282563.tif 000008
【図７】
2009282563.tif 000009
【図８】
2009282563.tif 000010
【図９】
2009282563.tif 000011
【図１０】
2009282563.tif 000012
【図１１】
2009282563.tif 000013
【図１２】
2009282563.tif 000014
【図１３】
2009282563.tif 000015
【図１４】
2009282563.tif 000016
【図１５】
2009282563.tif 000017
【図１６】
2009282563.tif 000018