(57)【要約】  データベース装置は、データベースと、設定部と、第１登録部と、削除部と、を備える。データベースは、互いに非重複の複数の記憶領域を含み、複数の記憶領域の少なくとも１つに有効期限とデータとを含む１または複数のレコードを記憶する。設定部は、データベースに記憶されたレコードを有効期限切れと判断するための閾値期限として、レコードの状態に基づきタイミングを設定する。第１登録部は、複数の記憶領域の内、登録された最も遅い有効期限が設定された閾値期限以前を示す記憶領域を、アーカイブ対象として特定する。そして、第１登録部は、特定した記憶領域内の全てのレコードをアーカイブファイルに登録する。削除部は、アーカイブファイルに登録された記憶領域内の全てのレコードを、該記憶領域から削除する。
2020049746.tif 000002
【特許請求の範囲】
【請求項１】
互いに非重複の複数の記憶領域を含み、複数の前記記憶領域の少なくとも１つに有効期限とデータとを含む１または複数のレコードを記憶したデータベースと、
前記データベースに記憶された前記レコードを有効期限切れと判断するための閾値期限として、前記レコードの状態に基づきタイミングを設定する設定部と、
複数の前記記憶領域の内、登録された最も遅い有効期限が、設定された前記閾値期限以前を示す前記記憶領域を、アーカイブ対象として特定し、特定した前記記憶領域内の全ての前記レコードをアーカイブファイルに登録する第１登録部と、
前記アーカイブファイルに登録された前記記憶領域内の全ての前記レコードを、該記憶領域から削除する削除部と、
を備えるデータベース装置。
【請求項２】
前記レコードを取得する取得部と、
取得した前記レコードを前記データベースの前記記憶領域に登録する第２登録部と、
を備える、請求項１に記載のデータベース装置。
【請求項３】
前記第２登録部は、
取得した前記レコードを、複数の前記記憶領域の内、取得した該レコードに含まれる有効期限に最も近い有効期限を含む他の前記レコードが登録された前記記憶領域に登録する、
請求項２に記載のデータベース装置。
【請求項４】
前記設定部は、
複数の前記記憶領域のそれぞれ毎に、登録された有効期限の内の最も遅い有効期限を特定し、現在より前で且つ現在に最も近い、特定した該有効期限を、前記閾値期限として設定する、
請求項１〜請求項３の何れか１項に記載のデータベース装置。
【請求項５】
前記設定部は、
複数の前記記憶領域の内の少なくとも１つの空き容量が所定割合以下となったときに、前記閾値期限を設定する、
請求項１〜請求項４の何れか１項に記載のデータベース装置。
【請求項６】
前記記憶領域は、前記データベースにおける予め定めたサイズのブロック領域である、
請求項１〜請求項５の何れか１項に記載のデータベース装置。
【請求項７】
互いに非重複の複数の記憶領域を含み、複数の前記記憶領域の少なくとも１つに有効期限とデータとを含む１または複数のレコードを記憶したデータベースに記憶された前記レコードを有効期限切れと判断するための閾値期限として、前記レコードの状態に基づきタイミングを設定するステップと、
複数の前記記憶領域の内、登録された最も遅い有効期限が、設定された前記閾値期限以前を示す前記記憶領域を、アーカイブ対象として特定し、特定した前記記憶領域内の全ての前記レコードをアーカイブファイルに登録するステップと、
前記アーカイブファイルに登録された前記記憶領域内の全ての前記レコードを、該記憶領域から削除するステップと、
をコンピュータに実行させるためのプログラム。
【請求項８】
互いに非重複の複数の記憶領域を含み、複数の前記記憶領域の少なくとも１つに有効期限とデータとを含む１または複数のレコードを記憶したデータベースに記憶された前記レコードを有効期限切れと判断するための閾値期限として、前記レコードの状態に基づきタイミングを設定するステップと、
複数の前記記憶領域の内、登録された最も遅い有効期限が、設定された前記閾値期限以前を示す前記記憶領域を、アーカイブ対象として特定し、特定した前記記憶領域内の全ての前記レコードをアーカイブファイルに登録するステップと、
前記アーカイブファイルに登録された前記記憶領域内の全ての前記レコードを、該記憶領域から削除するステップと、
を含む、データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データベース装置、プログラム、およびデータ処理方法に関する。
【背景技術】
【０００２】
大量のデータが順次登録されるデータベースを管理するシステムが知られている。例えば、データベースの容量を適切に抑制しつつ、且つ、長期間データを管理する機能として、デジタルアーカイブ機能が知られている。【０００３】
例えば、２つのデータベースを用意し、一方のデータベース内の有効期限切れのデータを検索して他方のデータベースに登録すると共に、該一方のデータベースから有効期限切れのデータを検索して削除する技術が開示されている。また、データベース内の情報を定期的にスナップショット取得し、スナップショット取得した情報をブロック単位で圧縮および暗号化し、他のデータベースに格納する技術が開示されている。また、データベース内の有効期限内のデータについて、有効期限切れのデータの検索および更新を無効化し、有効期限切れのデータの位置への新たなデータの挿入や該有効期限切れのデータの削除を行う技術が開示されている。しかし、従来技術では、データベース管理時の処理負荷が大きかった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２２３０４８号公報
【特許文献２】特許第５８４４５５４号公報
【特許文献３】特開２００５−１４９３４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、データベース管理の負荷軽減を図ることができる、データベース装置、プログラムおよびデータ処理方法を提供することである。
【課題を解決するための手段】
【０００６】
実施形態のデータベース装置は、データベースと、設定部と、第１登録部と、削除部と、を含む。データベースは、互いに非重複の複数の記憶領域を含み、複数の前記記憶領域の少なくとも１つに有効期限とデータとを含む１または複数のレコードを記憶する。設定部は、前記データベースに記憶された前記レコードを有効期限切れと判断するための閾値期限として、前記レコードの状態に基づきタイミングを設定する。第１登録部は、複数の前記記憶領域の内、登録された最も遅い有効期限が設定された前記閾値期限以前を示す前記記憶領域をアーカイブ対象として特定し、特定した前記記憶領域内の全ての前記レコードをアーカイブファイルに登録する。削除部は、アーカイブファイルに登録された前記記憶領域内の全ての前記レコードを、該記憶領域から削除する。
【図面の簡単な説明】
【０００７】
【図１】図１は、データベースシステムを示す模式図である。
【図２】図２は、データベースを示す模式図である。
【図３Ａ】図３Ａは、アーカイブファイルのデータ構成を示す模式図である。
【図３Ｂ】図３Ｂは、データベースを示す模式図である。
【図４】図４は、データベースを示す模式図である。
【図５Ａ】図５Ａは、アーカイブファイルのデータ構成を示す模式図である。
【図５Ｂ】図５Ｂは、データベースを示す模式図である。
【図６】図６は、データ処理の手順を示すシーケンス図である。
【図７】図７は、従来のデータ処理の手順を示すシーケンス図である。
【図８】図８は、ハードウェア構成を示す模式図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、データベース装置、プログラム、およびデータ処理方法を詳細に説明する。
【０００９】
図１は、本実施の形態のデータベースシステム１の一例を示す模式図である。
【００１０】
データベースシステム１は、データベース装置１０と、クライアント端末１２と、を備える。データベース装置１０とクライアント端末１２とは、ネットワーク１４などを介して、有線または無線により通信可能に接続されている。
【００１１】
データベースシステム１は、１または複数のクライアント端末１２を備える。図１には、一例として、２台のクライアント端末１２（クライアント端末１２Ａ、クライアント端末１２Ｂ）を示した。しかし、データベースシステム１に含まれるクライアント端末１２の数は、１または複数であればよく、２台に限定されない。
【００１２】
クライアント端末１２は、ネットワーク１４に接続され、ネットワーク１４を介して他の装置に各種データを送信するＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）機器である。クライアント端末１２は、例えば、テレビ、デジタルカメラ、ＤＶＤプレーヤー、給湯器、各種のセンサ、照明機器、火災報知器、電話機、監視カメラ、などであるが、これらに限定されない。
【００１３】
本実施の形態では、クライアント端末１２は、測定結果などの各種のデータを、時系列でデータベース装置１０へ順次送信する。また、クライアント端末１２は、アクセス要求をデータベース装置１０へ送信する。アクセス要求は、データベース装置１０に記憶されたデータへのアクセスを示す信号であり、データの参照、読取、検索、などの要求を示す信号である。
【００１４】
データベース装置１０は、クライアント端末１２から各種データを受信し、受信したデータを、データベース３０を用いて管理する装置である。本実施の形態では、データベース装置１０は、クライアント端末１２から順次データを受信し、受信したデータを管理する場合を一例として説明する。また、データベース装置１０は、クライアント端末１２から受信したアクセス要求に応じた処理を実行する。
【００１５】
データベース装置１０は、制御部２０と、記憶部２２と、を備える。制御部２０と記憶部２２とは、データや信号を授受可能に接続されている。
【００１６】
記憶部２２は、各種データを記憶する。本実施の形態では、記憶部２２は、ログファイル２８と、データベース３０と、アーカイブファイル３２と、を記憶する。ログファイル２８は、制御部２０で実行された処理を記録するファイルである。例えば、ログファイル２８は、クライアント端末１２から送信されたアクセス要求の受信履歴や、クライアント端末１２から送信されたデータの受信履歴や、制御部２０で実行された各種処理の履歴を記憶する。データベース３０、およびアーカイブファイル３２の詳細は後述する。
【００１７】
制御部２０は、データベース装置１０を制御する。制御部２０は、データベース管理部２４と、アーカイブ処理部２６と、を含む。データベース管理部２４は、取得部２４Ａと、第２登録部２４Ｂと、設定部２４Ｃと、削除部２４Ｄと、を含む。アーカイブ処理部２６は、第１登録部２６Ａを含む。
【００１８】
データベース管理部２４、取得部２４Ａ、第２登録部２４Ｂ、設定部２４Ｃ、削除部２４Ｄ、アーカイブ処理部２６、および第１登録部２６Ａは、例えば、１または複数のプロセッサにより実現される。
【００１９】
例えば、データベース管理部２４、取得部２４Ａ、第２登録部２４Ｂ、設定部２４Ｃ、削除部２４Ｄ、アーカイブ処理部２６、および第１登録部２６Ａは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。これらの各部は、専用のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００２０】
データベース管理部２４は、データベース３０を管理する。データベース３０の管理とは、クライアント端末１２から受信したアクセス要求に応じたデータベース３０へのアクセスや、データベース３０に登録された後述するレコードの更新、削除、検索、などを示す。
【００２１】
データベース管理部２４は、取得部２４Ａと、第２登録部２４Ｂと、設定部２４Ｃと、削除部２４Ｄと、を含む。
【００２２】
取得部２４Ａは、レコードを取得する。レコードは、有効期限とデータとを含む。データは、クライアント端末１２から受信したデータである。有効期限は、データの有効な期限を示す情報である。有効期限は、例えば、タイムスタンプで表される。
【００２３】
例えば、取得部２４Ａは、クライアント端末１２からデータを受信するごとに、受信したデータに有効期限を付与する。有効期限の付与によって、取得部２４Ａは、有効期限とデータとを含むレコードを取得する。
【００２４】
取得部２４Ａは、予め定めた条件に従って、受信したデータに有効期限を付与すればよい。例えば、取得部２４Ａは、データの受信タイミングから所定時間（例えば、１週間、１年、１０年など）後のタイミングを、該データの有効期限として付与する。なお、取得部２４Ａは、データの送信元のクライアント端末１２に応じた期間を予め設定し、データの受信タイミングに、該データの送信元のクライアント端末１２に応じた期間を加算したタイミングを、有効期限として付与してもよい。
【００２５】
なお、取得部２４Ａは、有効期限の付与されたデータをクライアント端末１２から受信してもよい。この場合、取得部２４Ａは、クライアント端末１２から受信した、有効期限付きのデータを、レコードとして用いればよい。
【００２６】
第２登録部２４Ｂは、取得部２４Ａで取得したレコードをデータベース３０へ登録する。
【００２７】
図２は、本実施の形態のデータベース３０のデータ構成の一例を示す模式図である。
【００２８】
本実施の形態では、データベース３０は、互いに非重複の複数の記憶領域を含む。記憶領域は、例えば、複数のレコードＲの集合を格納可能なブロック領域である。言い換えると、記憶領域は、データベース３０を、データベース管理部２４によるレコードＲの管理単位ごとに予め分割した、各領域を示す。以下では、記憶領域を、ブロックＢと称して説明する場合がある。なお、ブロックＢは、データブロックと称される場合もある。レコードＲは、上述したように、有効期限と、データと、を含む。
【００２９】
図２および後述する図３Ａ〜図５Ｂ中、ｔは、タイミングを示す。図２中、レコードＲの各々に含まれるｔ（ｔ０１〜ｔ３３）は、各々、有効期限を示す。なお、ｔの後に示す数値が大きいほど、より遅い（より未来側の）タイミングを示す。すなわち、ｔの後に示す数値が大きいほど、過去から未来へ向かう時系列方向における、より下流側（より未来側）のタイミングを示す。同様に、他の図においても、ｔの後に示す数値が大きいほど、過去から未来へ向かう時系列方向における、より下流側のタイミングを示す。また、図２および後述する図３Ａ〜図５Ｂ中、レコードＲの各々に含まれる“ＤＡＴＡ”は、クライアント端末１２から受信したデータを示す。
【００３０】
図２には、データベース３０が４つのブロックＢ（ブロックＢ１〜ブロックＢ４）を含む場合を一例として示した。しかし、データベース３０が備えるブロックＢの数は、２つ以上であればよく、４つに限定されない。
【００３１】
また、データベース３０内の複数のブロックＢは、データベース３０内における互いに非重複な領域であればよく、サイズは限定されない。すなわち、ブロックＢのサイズは、予め定めたサイズであればよい。また、複数のブロックＢは、互いに同じサイズであってもよいし、異なるサイズであってもよい。本実施形態では、複数のブロックＢが、同じサイズ（固定長ブロック）である場合を一例として説明する。
【００３２】
第２登録部２４Ｂは、取得部２４ＡがレコードＲを取得するごとに、取得したレコードを複数のブロックＢの何れかに登録する。このため、データベース３０は、複数のブロックＢの少なくとも１つに、有効期限とデータとを含む１または複数のレコードＲを記憶したものとなる。
【００３３】
第２登録部２４Ｂは、取得部２４Ａで取得したレコードＲを、データベース３０に含まれる複数のブロックＢの内の何れかに登録すればよい。
【００３４】
例えば、第２登録部２４Ｂは、取得部２４ＡでレコードＲを取得するごとに、取得したレコードＲを登録する対象のブロックＢ（ブロックＢ１〜ブロックＢ４）をランダムに選択し、選択したブロックＢへ該レコードＲを登録すればよい。
【００３５】
また、例えば、第２登録部２４Ｂは、取得部２４ＡでレコードＲを取得すると、ブロックＢの空き容量が所定割合以下となるまで特定のブロックＢへレコードＲを登録し、該ブロックＢの空き容量が所定割合以下となった場合、他のブロックＢへレコードＲを登録してもよい。
【００３６】
また、第２登録部２４Ｂは、有効期限の近い複数のレコードＲが同じブロックＢに登録されるように、レコードＲをブロックＢへ登録してもよい。
【００３７】
この場合、第２登録部２４Ｂは、取得部２４Ａで取得したレコードＲを、データベース３０の複数のブロックＢの内、取得した該レコードＲに含まれる有効期限に最も近い有効期限を含む他のレコードＲが記憶されたブロックＢに、登録すればよい。
【００３８】
図２には、第２登録部２４Ｂが、取得部２４Ａで取得したレコードＲを、該レコードＲに含まれる有効期限に最も近い有効期限を含む他のレコードＲが既に記憶されているブロックＢに登録した形態を、一例として示した。
【００３９】
この場合、図２に示すように、各ブロックＢに、含まれる有効期限が所定範囲内のレコードＲの群が登録されることとなる。
【００４０】
なお、取得部２４Ａは、クライアント端末１２から受信したデータに、受信順に降順の有効期限を付与することで、レコードＲを取得してもよい。そして、第２登録部２４Ｂは、取得部２４Ａで取得されたレコードＲを、該レコードＲの取得順にブロックＢへ登録してもよい。そして、第２登録部２４Ｂは、１のブロックＢの空き容量が所定割合以下となると、次の空のブロックＢに順次レコードＲを登録する処理を繰返してもよい。
【００４１】
図１に戻り説明を続ける。設定部２４Ｃは、データベース３０に記憶されたレコードＲを有効期限切れと判断するための閾値期限として、レコードＲの状態に基づいたタイミングを設定する。
【００４２】
具体的には、本実施の形態では、設定部２４Ｃは、設定部２４Ｃは、データベース３０に記憶されたレコードＲを有効期限切れと判断するための閾値期限として、現在より前のタイミングを設定する。すなわち、本実施の形態では、設定部２４Ｃは、有効期限切れであることを現在のタイミングで判断するのではなく、現在より前のタイミングで判断するように、閾値期限を設定する。
【００４３】
例えば、設定部２４Ｃは、データベース３０に含まれる複数のブロックＢの内の少なくとも１つの空き容量が所定割合以下となったときに、閾値期限を設定する。すなわち、設定部２４Ｃは、データベース３０に含まれる複数のブロックＢの内の少なくとも１つの空き容量が所定割合以下となった時刻を閾値期限として設定する。このため、閾値期限は、現時刻よりも前である。
【００４４】
空き容量を示す所定割合は、データベース３０の構成やデータベース３０に含まれるブロックＢの容量や登録対象のレコードＲに含まれるデータのサイズなどに応じて、予め定めればよい。例えば、空き容量を示す所定割合は、５０％、４０％、３０％、２０％、１０％などである。例えば、空き容量を示す所定割合を２０％と定めたと想定する。この場合、設定部２４Ｃは、複数のブロックＢの内の少なくとも１つの空き容量が２０％以下となったタイミングを“現在”として、閾値期限を設定する。
【００４５】
なお、設定部２４Ｃは、後述するアーカイブ処理部２６から閾値期限問合せ信号を受付けたときに、該受付けたタイミングを“現在”として、閾値期限を設定してもよい。また、設定部２４Ｃは、後述するアーカイブ処理部２６から閾値期限問合せ信号を受付け、且つ、データベース３０に含まれる複数のブロックＢの内の少なくとも一つの空き容量が所定割合以下となったときに、閾値期限を設定してもよい。
【００４６】
設定部２４Ｃは、例えば、現在より１時間、１０時間、１日、１０日、などの期間を遡った時刻を、閾値期限として設定してもよい。なお、遡る期間は、これらに限定されない。例えば、設定部２４Ｃは、現在より１０日前のタイミングを、閾値期限として設定する。
【００４７】
本実施の形態では、設定部２４Ｃは、各ブロックＢに記憶されているレコードＲに含まれる有効期限に応じて、閾値期限を設定する。
【００４８】
詳細には、設定部２４Ｃは、データベース３０に含まれる複数のブロックＢのそれぞれ毎に、登録されている複数のレコードＲに含まれる有効期限の内の最も遅い有効期限を特定する。そして、設定部２４Ｃは、現在より前で、且つ、現在に最も近い、特定した該有効期限を、閾値期限として設定する。
【００４９】
図２を用いて具体的に説明する。例えば、ブロックＢ１に、“ｔ０１”、“ｔ０２”、“ｔ０３”、“ｔ０４”、“ｔ０５”の各々の有効期限を含むレコードＲが登録されていると想定する。このブロックＢ１に登録されている複数のレコードＲにおける、最も遅い有効期限は、“ｔ０５”である。
【００５０】
また、ブロックＢ２に、“ｔ１０”、“ｔ１２”、“ｔ１３”、“ｔ１４”の各々の有効期限を含むレコードＲが登録されていると想定する。このブロックＢ２に登録されている複数のレコードＲにおける、最も遅い有効期限は、“ｔ１４”である。
【００５１】
また、ブロックＢ３に、“ｔ２１”、“ｔ２２”、“ｔ２３”の各々の有効期限を含むレコードＲが登録されていると想定する。このブロックＢ３に登録されている複数のレコードＲにおける、最も遅い有効期限は、“ｔ２３”である。
【００５２】
また、ブロックＢ４に、“ｔ３１”、“ｔ３２”、“ｔ３３”の各々の有効期限を含むレコードＲが登録されていると想定する。このブロックＢ４に登録されている複数のレコードＲにおける、最も遅い有効期限は、“ｔ３３”である。
【００５３】
このとき、現在のタイミングが、例えば、“ｔ１１”であったと想定する。この場合、設定部２４Ｃは、各ブロックＢ（ブロックＢ１〜ブロックＢ４）における最も遅い有効期限“ｔ０５”、“ｔ１４”、“ｔ２３”、“ｔ３３”の内、現在のタイミング“ｔ１１”より前（過去）であり、且つ、現在のタイミング“ｔ１１”に最も近い有効期限である“ｔ０５”を、閾値期限Ｔとして決定する。
【００５４】
なお、第２登録部２４Ｂは、新たなレコードＲをブロックＢへ登録したときに、該ブロックＢに含まれる有効期限の内の最も遅い有効期限を特定し、特定した有効期限を該ブロックＢのヘッダに登録してもよい。この場合、図２に示すように、各ブロックＢのヘッダには、各ブロックＢに含まれるレコードＲの有効期限の内、最も遅い有効期限が登録される。
【００５５】
この場合、設定部２４Ｃは、各ブロックＢのヘッダに登録されている有効期限を読取ることで、各ブロックＢに登録されている最も遅い有効期限を、容易に特定することができる。
【００５６】
図１に戻り説明を続ける。設定部２４Ｃは、設定した閾値期限Ｔを、アーカイブ処理部２６へ出力する。
【００５７】
アーカイブ処理部２６は、アーカイブ処理を実行する機能部である。本実施の形態では、アーカイブ処理部２６は、データベース３０に登録されているレコードＲの少なくとも１つをアーカイブファイル３２へ登録する。言い換えると、アーカイブ処理部２６は、データベース３０に登録されているレコードＲを、データベース管理部２４による管理対象外であるアーカイブファイル３２に登録する。なお、データベース管理部２４は閾値期限Ｔ以前のブロック（つまりレコードＲ）へのアクセスをしないように制御するため、アーカイブ処理部２６は、データベース３０に登録されているレコードＲの読取りを行うが、データベース３０への書込、データベース３０の更新、データベース３０に登録されているレコードＲの削除は実行不可能である。
【００５８】
アーカイブ処理部２６は、第１登録部２６Ａを含む。第１登録部２６Ａは、データベース３０の複数のブロックＢの内、登録されているレコードＲに含まれる有効期限の内の最も遅い有効期限が、設定部２４Ｃで設定された閾値期限Ｔ以前を示すブロックＢを、アーカイブ対象として特定する。閾値期限Ｔ以前の有効期限とは、閾値期限Ｔと同じ有効期限と、該閾値期限Ｔより前の有効期限と、を示す。
【００５９】
そして、第１登録部２６Ａは、特定したブロックＢ内の全てのレコードＲを、データベース３０から読取り、アーカイブファイル３２へ登録する。
【００６０】
図２を用いて具体的に説明する。例えば、設定部２４Ｃが、タイミング“ｔ０５”を、閾値期限Ｔとして設定したと想定する。
【００６１】
この場合、アーカイブ処理部２６は、データベース３０に含まれる複数のブロックＢの内、最も遅い有効期限が、該閾値期限Ｔ（“ｔ０５”）以前であるブロックＢ１を、アーカイブ対象として特定する。
【００６２】
そして、アーカイブ処理部２６は、該ブロックＢ１に登録されている全てのレコードＲを読取り（コピーし）、アーカイブファイル３２へ登録する。このため、アーカイブファイル３２には、図３Ａに示すように、データベース３０のブロックＢ１に登録されている全てのレコードＲが登録される。
【００６３】
図１に戻り説明を続ける。データベース管理部２４の削除部２４Ｄは、第１登録部２６ＡによってレコードＲがアーカイブファイル３２へ登録されると、アーカイブファイル３２にレコードＲが登録されたブロックＢ内の全てのレコードＲを、データベース３０のブロックＢから削除する。
【００６４】
例えば、図２および図３Ａに示すように、第１登録部２６Ａが、ブロックＢ１内の全てのレコードＲをアーカイブファイル３２へ登録したと想定する。この場合、削除部２４Ｄは、データベース３０における、ブロックＢ１内の全てのレコードＲを、データベース３０から削除する。
【００６５】
このため、データベース３０のデータ構成は、例えば、図３Ｂに示すものとなる。図３Ｂは、削除部２４ＤがブロックＢ１内の全てのレコードＲを削除した後の、データベース３０のデータ構成の一例を示す模式図である。
【００６６】
なお、図２には、第２登録部２４Ｂが、取得部２４Ａで取得したレコードＲを、該レコードＲに含まれる有効期限に最も近い有効期限を含む他のレコードＲが既に登録されたブロックＢに登録した形態を、一例として示した。
【００６７】
しかし、上述したように、第２登録部２４Ｂは、取得部２４ＡでレコードＲを取得するごとに、複数のブロックＢ（ブロックＢ１〜ブロックＢ４）の内の１つをランダムに選択し、選択したブロックＢへ該レコードＲを登録してもよい。
【００６８】
この場合、同じ有効期限の設定されたレコードＲや、所定範囲内の有効期限を設定された複数のレコードＲが、複数のブロックＢに分散して登録される場合がある。
【００６９】
図４は、第２登録部２４Ｂが、取得部２４Ａで取得したレコードＲを複数のブロックＢにランダムに登録した場合の、データベース３０のデータ構成の一例を示す模式図である。
【００７０】
図４に示すように、例えば、ブロックＢ１に、“ｔ０１”、“ｔ１２”、“ｔ３２”、“ｔ２２”、“ｔ０３”、“ｔ２４”、“ｔ０５”の各々の有効期限を含むレコードＲが登録されていると想定する。このブロックＢ１に登録されている複数のレコードＲにおける、最も遅い有効期限は、“ｔ３２”である。
【００７１】
また、ブロックＢ２に、“ｔ１１”、“ｔ２１”、“ｔ０２”、“ｔ１２”、“ｔ２３”、“ｔ１４”の各々の有効期限を含むレコードＲが登録されていると想定する。このブロックＢ２に登録されている複数のレコードＲにおける、最も遅い有効期限は、“ｔ２３”である。
【００７２】
また、ブロックＢ３に、“ｔ０１”、“ｔ１２”、“ｔ１３”の各々の有効期限を含むレコードＲが登録されていると想定する。このブロックＢ３に登録されている複数のレコードＲにおける、最も遅い有効期限は、“ｔ１３”である。
【００７３】
また、ブロックＢ４に、“ｔ０１”、“ｔ１２”、“ｔ１５”、“ｔ０３”の各々の有効期限を含むレコードＲが登録されていると想定する。このブロックＢ４に登録されている複数のレコードＲにおける、最も遅い有効期限は、“ｔ１５”である。
【００７４】
このとき、現在のタイミングが、例えば、“ｔ１６”であったと想定する。この場合、設定部２４Ｃは、各ブロックＢ（ブロックＢ１〜ブロックＢ４）にそれぞれ登録された最も遅い有効期限“ｔ３２”、“ｔ２３”、“ｔ１３”、“ｔ１５”の内、現在のタイミング“ｔ１６”より前であり、且つ、現在のタイミング“ｔ１６”に最も近い有効期限である“ｔ１５”を、閾値期限Ｔとして決定する。
【００７５】
なお、上記と同様に、第２登録部２４Ｂは、新たなレコードＲをブロックＢへ登録したときに、該ブロックＢに含まれる複数のレコードＲに含まれる有効期限の内、最も遅い（最も未来の）有効期限を特定し、特定した有効期限を該ブロックＢのヘッダに登録してもよい。この場合、図４に示すように、各ブロックＢのヘッダには、各ブロックＢに含まれるレコードＲの有効期限の内、最も遅い有効期限が登録される。
【００７６】
そして、設定部２４Ｃは、設定した閾値期限Ｔ（“ｔ１５”）を、アーカイブ処理部２６へ出力する。この場合、アーカイブ処理部２６の第１登録部２６Ａは、データベース３０に含まれる複数のブロックＢの内、最も遅い有効期限が、該閾値期限Ｔ（“ｔ１５”）以前であるブロックＢ３およびブロックＢ４を、アーカイブ対象として特定する。
【００７７】
そして、アーカイブ処理部２６は、該ブロックＢ３およびブロックＢ４に登録されている全てのレコードＲを読取り（コピーし）、アーカイブファイル３２へ登録する。このため、アーカイブファイル３２には、図５Ａに示すように、データベース３０のブロックＢ３およびブロックＢ４に登録されている全てのレコードＲが登録される。
【００７８】
すると、データベース管理部２４の削除部２４Ｄが、データベース３０における、ブロックＢ３およびブロックＢ４内の全てのレコードＲを、データベース３０の該ブロックＢ３およびブロックＢ４から削除する。このため、削除部２４ＤによるレコードＲの削除後のデータベース３０は、図５Ｂに示す状態となる。図５Ｂは、削除部２４ＤがレコードＲを削除した後のデータベース３０の一例を示す模式図である。
【００７９】
次に、データベース装置１０で実行するデータ処理の手順の一例を説明する。
【００８０】
図６は、本実施の形態のデータベース装置１０で実行するデータ処理の手順の一例を示す、シーケンス図である。
【００８１】
―データベース３０へのレコードＲ登録―
まず、データベース装置１０のデータベース管理部２４が、クライアント端末１２から受信したデータを含むレコードＲを、データベース３０へ登録する、登録処理を実行する（ステップＳ１００〜ステップＳ１０６）。
【００８２】
詳細には、クライアント端末１２は、データをデータベース装置１０へ送信する（ステップＳ１０２）。データベース管理部２４の取得部２４Ａは、クライアント端末１２から受信したデータに有効期限を付与する（ステップＳ１０４）。ステップＳ１０４の処理によって、取得部２４Ａは、有効期限とデータとを含むレコードを取得する。
【００８３】
第２登録部２４Ｂは、取得部２４Ａで取得したレコードをデータベース３０のブロックＢへ登録する（ステップＳ１０６）。
【００８４】
データベース装置１０は、クライアント端末１２からデータが送信されるごとに、ステップＳ１０２〜ステップＳ１０６の処理を実行する（ステップＳ１００）。このため、データベース３０のブロックＢには、クライアント端末１２から受信したデータと有効期限を含むレコードＲが順次登録される。
【００８５】
―閾値期限Ｔの設定―
次に、データベース装置１０のアーカイブ処理部２６が、閾値期限の設定処理を実行する（ステップＳ１０８〜ステップＳ１１２）。
【００８６】
詳細には、データベース装置１０のアーカイブ処理部２６が、閾値期限問合せ信号をデータベース管理部２４へ送信する（ステップＳ１０８）。閾値期限問合せ信号は、閾値期限Ｔの問合せを示す信号である。アーカイブ処理部２６は、閾値期限問合せ信号をデータベース管理部２４へ送信する。例えば、アーカイブ処理部２６は、アーカイブ処理の開始時に、閾値期限問合せ信号をデータベース管理部２４へ送信する。なお、アーカイブ処理の開始タイミングは任意であり、特定のタイミングに限定されない。
【００８７】
データベース管理部２４の設定部２４Ｃは、閾値期限問合せ信号を受信し、データベース３０に含まれる複数のブロックＢの内の少なくとも一つの空き容量が所定割合以下となったときに、閾値期限Ｔを設定する（ステップＳ１１０）。上述したように、例えば、設定部２４Ｃは、データベース３０に含まれる複数のブロックＢの内の少なくとも１つの空き容量が所定割合以下となったタイミングを“現在”とし、現在より前の閾値期限Ｔを設定する。
【００８８】
このとき、設定部２４Ｃは、データベース３０に含まれる複数のブロックＢの各々における最も遅い有効期限の内、現在より前で、且つ現在に最も近い有効期限を、閾値期限Ｔとして設定する。
【００８９】
そして、設定部２４Ｃは、設定した閾値期限Ｔを、アーカイブ処理部２６へ送信する（ステップＳ１１２）。
【００９０】
―アーカイブ処理―
次に、データベース装置１０のアーカイブ処理部２６が、アーカイブ処理を実行する（ステップＳ１１４）。
【００９１】
詳細には、アーカイブ処理部２６の第１登録部２６Ａは、データベース管理部２４の設定部２４Ｃから受付けた閾値期限Ｔを受付ける。そして、アーカイブ処理部２６の第１登録部２６Ａは、データベース３０における複数のブロックＢの内、登録された最も遅い有効期限が閾値期限Ｔ以前を示すブロックＢを、アーカイブ対象として特定する。そして、アーカイブ処理部２６の第１登録部２６Ａは、アーカイブ対象として特定したブロックＢ内の全てのレコードＲを、データベース３０から読取り、アーカイブファイル３２へ登録する（ステップＳ１１４）。
【００９２】
―アーカイブ済のレコードＲ削除―
次に、データベース装置１０の削除部２４Ｄが、アーカイブ済のレコードＲを、データベース３０から削除する（ステップＳ１１６〜ステップＳ１２０）。
【００９３】
詳細には、アーカイブファイル３２への登録が完了すると、アーカイブ処理部２６の第１登録部２６Ａは、削除指示信号をデータベース管理部２４へ送信する（ステップＳ１１６）。
【００９４】
削除指示信号を受付けたデータベース管理部２４の削除部２４Ｄは、データベース３０における複数のブロックＢの内、登録された最も遅い有効期限が閾値期限Ｔ以前を示すブロックＢ内の全てのレコードＲを削除する（ステップＳ１１８）。すなわち、削除部２４Ｄは、ブロックＢ単位でレコードＲを削除する。そして、データベース管理部２４の削除部２４Ｄは、削除終了信号をアーカイブ処理部２６へ送信し（ステップＳ１２０）、本シーケンスを終了する。
【００９５】
以上説明したように、本実施の形態のデータベース装置１０は、データベース３０と、設定部２４Ｃと、第１登録部２６Ａと、削除部２４Ｄと、を備える。
【００９６】
データベース３０は、互いに非重複の複数の記憶領域（ブロックＢ）を含み、複数の記憶領域（ブロックＢ）の少なくとも１つに、有効期限とデータとを含む１または複数のレコードＲを記憶した、データベースである。設定部２４Ｃは、データベース３０に記憶されたレコードＲを有効期限切れと判断するための閾値期限Ｔとして、レコードＲの状態に基づいたタイミングを設定する。第１登録部２６Ａは、複数の記憶領域（ブロックＢ）の内、登録された最も遅い有効期限が設定された閾値期限Ｔ以前を示す記憶領域（ブロックＢ）を、アーカイブ対象として特定する。そして、第１登録部２６Ａは、特定した記憶領域（ブロックＢ）内の全てのレコードＲをアーカイブファイル３２に登録する。削除部２４Ｄは、アーカイブファイル３２に登録された記憶領域（ブロックＢ）内の全てのレコードＲを、該記憶領域（ブロックＢ）から削除する。
【００９７】
このように、本実施の形態のデータベース装置１０では、データベース３０は、複数のブロックＢ（記憶領域）にレコードＲを記憶する。そして、本実施の形態のデータベース装置１０では、第１登録部２６Ａによるアーカイブファイル３２へのレコードＲのアーカイブと、削除部２４ＤによるレコードＲの削除と、をブロックＢ（記憶領域）単位で実行する。
【００９８】
このため、データベース３０に対するアーカイブファイル３２へのアーカイブ処理と、データベース３０に対するレコードＲの登録や削除などのデータベース管理処理と、を独立して並列で実行することができる。
【００９９】
このため、本実施の形態のデータベース装置１０では、データベース３０の管理の負荷軽減を図ることができる。
【０１００】
また、本実施の形態のデータベース装置１０では、データベース管理部２４の設定部２４Ｃが、レコードＲの状態に基づいたタイミングを閾値期限Ｔとして設定する。そして、アーカイブ処理部２６の第１登録部２６Ａは、データベース３０の複数のブロックＢの内、登録された最も遅い有効期限が閾値期限Ｔ以前を示すブロックＢ内の全てのレコードＲをアーカイブファイル３２へ登録する。データベース管理部２４の削除部２４Ｄは、登録された最も遅い有効期限が閾値期限Ｔ以前を示すブロックＢ内の全てのレコードＲを削除する。
【０１０１】
すなわち、本実施の形態のデータベース装置１０では、データベース３０を複数のブロックＢごとに管理する。そして、データベース装置１０では、登録された最も遅い有効期限が、閾値期限Ｔ以前のブロックＢ内の全てのレコードＲを、アーカイブファイル３２へ登録する。そして、このアーカイブファイル３２への登録後、削除部２４Ｄが、該ブロックＢ内の全てのレコードＲを削除する。
【０１０２】
このため、データベース管理部２４の削除部２４Ｄは、データベース３０における、アーカイブファイル３２へアーカイブされたレコードＲを、ブロックＢ単位で削除することができる。すなわち、削除部２４Ｄは、一つ一つのレコードＲを逐次的に削除せず、ブロックＢそのものを空き状態にするだけで済むため、非常に高速に、かつ低い処理負荷で容易にアーカイブ済のレコードＲを削除することができる。
【０１０３】
従って、本実施の形態のデータベース装置１０では、データベース３０の管理の負荷を低減することができる。
【０１０４】
また、本実施の形態のデータベース装置１０は、有効期限切れと判断するための閾値期限Ｔとして、レコードＲの状態に基づいたタイミングを設定する。
【０１０５】
このため、第１登録部２６Ａがアーカイブファイル３２へのレコードＲの登録処理中に、データベース管理部２４がデータベース３０に対するアクセス要求をクライアント端末１２から受信した場合であっても、データベース３０とアーカイブファイル３２との間でデータの不整合が生じる事を抑制することができる。
【０１０６】
このため、本実施の形態のデータベース装置１０は、上記効果に加えて、データベース３０とアーカイブファイル３２との整合性および一貫性を確保することができる。
【０１０７】
一方、従来では、データベース３０を記憶領域ごとに管理しておらず、また、有効期限と判断するための閾値期限Ｔとして、現在のタイミングを設定していた。このため、従来では、データベースの管理負荷が大きかった。
【０１０８】
図７は、従来のデータ処理の一例を示すシーケンス図である。
【０１０９】
例えば、従来のデータベース装置のアーカイブ処理部２６０は、有効期限切れレコードのアーカイブ指示信号を、データベース管理部２４０へ送信する（ステップＳ２００）。データベース管理部２４０は、データベース内の現在以前の有効期限切れのレコードをデータベースから読取る（ステップＳ２０２）。そして、データベース管理部２４０は、ステップＳ２０２で読取ったレコードをアーカイブファイル３２へ登録する（ステップＳ２０４）。そして、データベース管理部２４０は、アーカイブ処理部２６０へアーカイブ完了信号を送信する（ステップＳ２０６）。
【０１１０】
アーカイブ処理部２６０は、有効期限切れレコードの削除指示信号をデータベース管理部２４０へ送信する。データベース管理部２４０は、該信号を受付けると、データベースから現在以前の有効期限切れレコードを検索し、データベースから削除する（ステップＳ２１０）。そして、データベース管理部２４０は、削除終了信号をアーカイブ処理部２６０へ送信する（ステップＳ２１２）。
【０１１１】
このように、従来技術では、データベースを記憶領域ごとに管理しておらず、データベース管理部２４０は、アーカイブファイルへのアーカイブ処理と、データベースに対するレコードの登録や削除などのデータベース管理処理とを、並列で実行することができなかった。このため、従来では、データベース管理の処理負荷が大きかった。また、従来技術では、アーカイブファイルへの登録時やレコードの削除時に、データベース内の全領域を、データベース管理部２４０側で毎回検索する必要があった。また、従来技術では、データベースのアーカイブ処理を、データベース管理部２４０側で行っていた。また、従来技術では、有効期限切れと判断する閾値期限が現在のタイミングであったため、データベースとアーカイブファイルとの整合性および一貫性を確保することが困難であった。
【０１１２】
一方、本実施の形態のデータベース装置１０では、データベース管理部２４の設定部２４Ｃが、レコードＲの状態に基づいたタイミングを閾値期限Ｔとして設定する。そして、アーカイブ処理部２６の第１登録部２６Ａは、データベース３０の複数のブロックＢの内、登録された最も遅い有効期限が閾値期限Ｔ以前を示すブロックＢ内の全てのレコードＲをアーカイブファイル３２へ登録する。データベース管理部２４の削除部２４Ｄは、登録された最も遅い有効期限が閾値期限Ｔ以前を示すブロックＢ内の全てのレコードＲを削除する。
【０１１３】
従って、本実施の形態のデータベース装置１０では、データベース３０の管理の負荷を低減することができる。
【０１１４】
次に、上記実施の形態のデータベース装置１０のハードウェア構成を説明する。
【０１１５】
図８は、本実施の形態のデータベース装置１０のハードウェア構成の一例を示す模式図である。
【０１１６】
上記実施の形態のデータベース装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５１などの制御装置と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５２やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５３やＨＤＤ（ハードディスクドライブ）などの記憶装置と、各種機器とのインターフェースである通信Ｉ／Ｆ部５４と、各部を接続するバス６１とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１１７】
上記実施の形態のデータベース装置１０では、ＣＰＵ５１が、ＲＯＭ５２からプログラムをＲＡＭ５３上に読み出して実行することにより、上記各機能がコンピュータ上で実現される。
【０１１８】
なお、上記実施の形態のデータベース装置１０で実行される上記各処理を実行するためのプログラムは、ＨＤＤに記憶されていてもよい。また、上記実施の形態のデータベース装置１０で実行される上記各処理を実行するためのプログラムは、ＲＯＭ５２に予め組み込まれて提供されていてもよい。
【０１１９】
また、上記実施の形態のデータベース装置１０で実行される上記処理を実行するためのプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されるようにしてもよい。また、上記実施の形態のデータベース装置１０で実行される上記処理を実行するためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施の形態のデータベース装置１０で実行される上記処理を実行するためのプログラムを、インターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【０１２０】
なお、上記には、本発明の実施の形態を説明したが、上記実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施の形態および変形例やこれらの変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
2020049746.tif 000003
【図２】
2020049746.tif 000004
【図３Ａ】
2020049746.tif 000005
【図３Ｂ】
2020049746.tif 000006
【図４】
2020049746.tif 000007
【図５Ａ】
2020049746.tif 000008
【図５Ｂ】
2020049746.tif 000009
【図６】
2020049746.tif 000010
【図７】
2020049746.tif 000011
【図８】
2020049746.tif 000012
【国際調査報告】
2020049746.tif 000013
2020049746.tif 000014
2020049746.tif 000015