(57)【要約】【課題】  データに有効期限を設定可能なデータベースに有効期限切れのデータが含まれていても、そのデータの使用を回避し、また、データベース使用時のコンピュータの処理負荷を大きく増大させることなく、有効期限切れのデータを自動的に削除していくデータベースの管理方法を提供する。【解決手段】  データベースの検索選択処理３０４ａ又は更新処理３０５では、有効期限切れのデータについての検索選択処理３０４ａ又は更新処理３０５を無効化するようにした。また、データの挿入処理７０３では、有効期限切れのデータの位置に挿入すべき新たなデータを上書きするようにした。さらに、更新処理３０５では、有効期限切れのデータを削除し、アンロード処理９０２／リロード処理９０４では、有効期限が切れのデータのアンロード／リロードをしないようにした。【選択図】      図３
2005149348.tif 000002
【特許請求の範囲】
【請求項１】
アクセス属性情報が期限管理属性であるデータベースを、演算処理を行う際の作業領域となるメモリと、前記演算処理を行う演算処理装置とを少なくとも有したコンピュータにより管理するデータベース管理方法であって、
前記データベースのデータの検索選択処理又は更新処理においては、
前記演算処理装置が、前記データベースから前記検索選択処理又は前記更新処理の対象データの有効期限に関する情報を前記メモリに読み出し、この読み出した有効期限に関する情報に基づき、前記対象データの有効期限を判定し、その判定の結果、前記対象データの有効期限が切れていた場合には、前記対象データについての前記演算処理としての前記検索選択処理又は前記更新処理を無効化すること
を特徴とするデータベース管理方法。
【請求項２】
前記データベースへの新たなデータの挿入処理においては、
前記演算処理装置が、前記データベースに格納されているデータの有効期限に関する情報を前記メモリに読み出し、この読み出した有効期限に関する情報に基づき、前記データの有効期限を判定し、その判定の結果、前記データの有効期限が切れていた場合には、前記データベースにおいて前記データが格納されている位置に、前記挿入する新たなデータを上書きすること
を特徴とする請求項１に記載のデータベース管理方法。
【請求項３】
前記コンピュータに接続された外部記憶装置に対する前記データベースのデータのアンロード処理又はリロード処理においては、
前記演算処理装置が、前記データベースのデータ又は外部記憶装置に格納されているデータを前記メモリに読み出し、この読み出したデータの有効期限に関する情報に基づき、前記読み出したデータの有効期限を判定し、その判定の結果、前記読み出したデータの有効期限が切れていた場合には、前記読み出したデータの前記外部記憶装置又は前記データベースへの書き込み処理を無効化すること
を特徴とする請求項１又は請求項２に記載のデータベース管理方法。
【請求項４】
アクセス属性情報が期限管理属性であるデータベースを管理するデータベース管理プログラムであって、
演算処理を行う際の作業領域となるメモリと、前記演算処理を行う演算処理装置とを少なくとも有したコンピュータの前記演算処理装置に、
前記データベースのデータの検索選択処理又は更新処理においては、前記データベースから前記検索選択処理又は前記更新処理の対象データの有効期限に関する情報を前記メモリに読み出し、この読み出した有効期限に関する情報に基づき、前記対象データの有効期限を判定し、その判定の結果、前記対象データの有効期限が切れていた場合には、前記対象データについての前記演算処理としての前記検索選択処理又は前記更新処理を無効化する手順
を実行させるためのデータベース管理プログラム。
【請求項５】
アクセス属性情報が期限管理属性であるデータベースを管理するデータベース管理装置であって、
演算処理を行う際の作業領域となるメモリと、前記演算処理を行う演算処理装置とを少なくとも有したコンピュータを備え、
前記データベースのデータの検索選択処理において、前記演算処理装置が、前記データベースから前記検索選択処理の対象データの有効期限に関する情報を前記メモリに読み出し、この読み出した有効期限に関する情報に基づき、前記対象データの有効期限を判定し、その判定の結果、前記対象データの有効期限が切れていた場合には、前記対象データについての前記演算処理としての前記検索選択処理を無効化する手段と、
前記データベースへの新たなデータの更新処理において、前記演算処理装置が、前記データベースから前記更新処理の対象データの有効期限に関する情報を前記メモリに読み出し、この読み出した有効期限に関する情報に基づき、前記対象データの有効期限を判定し、その判定の結果、前記対象データの有効期限が切れている場合には、前記対象データを前記データベースから削除する手段と、
前記コンピュータによる前記データベースへの新たなデータの挿入処理において、前記演算処理装置が、前記データベースに格納されているデータの有効期限に関する情報を前記メモリに読み出し、この読み出した有効期限に関する情報に基づき、前記データの有効期限を判定し、その判定の結果、前記データの有効期限が切れていた場合には、前記データベースにおいて前記データが格納されている位置に、前記挿入する新たなデータを上書きする手段と、
前記コンピュータに接続された外部記憶装置に対する前記データベースのデータのアンロード処理又はリロード処理において、前記演算処理装置が、前記データベースのデータ又は外部記憶装置に格納されているデータを前記メモリに読み出し、この読み出したデータの有効期限に関する情報に基づき、前記読み出したデータの有効期限を判定し、その判定の結果、前記読み出したデータの有効期限が切れていた場合には、前記読み出したデータの外部記憶装置又はデータベースへの書き込み処理を無効化する手段と
を備えることを特徴とするデータベース管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースの管理方法、管理プログラム及び管理装置に関する。
【背景技術】
【０００２】
多くのデータベースにおいて、格納するデータに有効期限を設定することができるが、有効期限が切れたデータをそのまま残しておくと、データ量が必要以上に増加し、記憶装置等のコンピュータのリソースを無駄に消費することになる。また、有効期限の切れたデータを誤って使用することもある。そのため、データベースの管理者は、有効期限が切れたデータを定期的に削除する必要があった。
【０００３】
このような場合に、有効期限が切れたデータを人手により削除すると、多大の手数がかかり、削除ミスも多く発生する。そこで、特許文献１及び特許文献２には、コンピュータにより有効期限が切れたデータを削除する方法が開示されている。
【特許文献１】特開平０５−０６１７３８号公報（段落０００６〜００１７、図２）
【特許文献２】特開平０５−０６１７３７号公報（段落００１７〜００２５、図４）
【０００４】
特許文献１に開示されているデータベース管理システムの例によれば、データベースのデータをキーボード又は磁気テープなどの外部記憶媒体から入力するときに、その入力されるデータについて有効期限の判定を行い、有効期限が切れたデータについては、データベースに入力しないようにしている。このようにすれば、データベースのデータを毎日１回、磁気テープなどの外部記憶装置に保管し、また、データベースを使用する日には、その保管されたデータベースを毎日１回、コンピュータのメモリ又はハードディスクに読み出して使用するような場合には、適切かつ有効な方法である。
【０００５】
しかしながら、ハードディスクの大容量化と低価格化が進行したために、データベースのデータは、ハードディスクに格納されたまま使用されることが多くなった。従って、磁気テープ等にデータベースのデータをバックアップのために保管することはあっても、それを毎日入力し直すようなことは通常行われなくなった。そのため、この例に開示されている削除方法では、有効期限切れのデータを十分には削除することができなくなった。すなわち、データベースのデータを一旦バックアップして、そのバックアップされたデータを毎日再入力しない限りは、有効期限切れのデータが混在することになる。これでは、有効期限切れのデータを誤用する可能性が残ることになる。
【０００６】
また、特許文献２に開示されているデータベースの管理方式によれば、データベースのオブジェクトに有効期限が設定されている場合には、そのオブジェクトをアクセスしたときにオブジェクトの有効期限チェックを行い、有効期限が切れたオブジェクトであれば、そのオブジェクトを削除するとしている。このようなデータベースのオブジェクトの削除方法は、有効期限が切れたオブジェクトを確実に削除することができる。
【０００７】
しかしながら、この例に示されているデータの削除方法は、データベースを管理するコンピュータの処理負荷を大きく増大させる不利益を含んでいる。なぜなら、この例によれば、コンピュータは、そのデータをアクセスするたびに毎回必ずそのデータの有効期限をチェックするからである。データベースはそもそもデータの検索を目的として使用され、その検索におけるコンピュータの処理のほとんどはデータの参照で占められる。従って、コンピュータがデータを参照するたびに毎回必ずそのデータの有効期限のチェックを行うのでは、コンピュータの処理負荷はどうしても増大してしまう。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以上の従来技術の問題を鑑み、本発明では、有効期限を設定可能なデータベースにおいて、第１に、有効期限の切れたデータの使用を回避し、第２に、コンピュータの処理負荷を大きく増大させることなく、有効期限の切れたデータを削除し、第３に、その削除をユーザの手を煩わせることなく自動的に行うことを、可能にするようなデータベースの管理方法、管理プログラム及び管理装置を実現することを課題とする。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明では、データベースのデータの検索選択処理又は更新処理において、その対象データの有効期限を判定し、その有効期限が切れている場合には、その対象データについての検索選択処理又は更新処理を無効化するようにした。なお、この無効化の処理において、対象のデータを削除するとしてもよい。
【００１０】
このように検索選択処理又は更新処理の処理を無効化することによって、データベースに有効期限切れのデータが混在していても、その使用を回避することができる。また、これらの処理においては、アクセスした全てのデータについて有効期限の判定を行うのではなく、検索選択処理又は更新処理の対象データについてのみ有効期限の判定を行うようにしたので、コンピュータの処理負荷の増加分は少なくて済む。
【００１１】
また、本発明では、データベースへの新たなデータの挿入処理において、そのデータベースのデータに有効期限が切れたデータがあるか否かを判定し、有効期限が切れたデータがある場合には、その有効期限が切れたデータの位置に、挿入する新たなデータを上書きするようにした。
【００１２】
このように有効期限の切れたデータの位置に挿入すべき新たなデータを上書きすることは、その有効期限の切れたデータを削除することになる。しかも、その削除は、データベースのユーザに意識されることなく、自動的に行われる。また、このような上書きは、不要となるデータの格納領域を再利用することになるので、データベースのデータ格納領域の増大を抑制することにもなる。
【００１３】
さらに、本発明では、データベースのデータのアンロード処理又はリロード処理において、前記処理の対象データの有効期限を判定し、その対象データの有効期限が切れている場合には、その対象データについてのアンロード処理又はリロード処理を無効化するようにした。
【００１４】
このように有効期限切れデータについてはアンロード又はリロードを行わないのは、そのデータを削除することに等しい。従って、アンロード処理又はリロード処理により有効期限切れのデータは、ユーザが意識することなく自動的にデータベースから一挙に削除されることになる。
【発明の効果】
【００１５】
以上、本発明によれば、データに有効期限を設定することができるデータベースにおいて、そのデータベースに有効期限の切れたデータが含まれていても、そのデータの使用を回避することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について、適宜図面を参照しながら詳細に説明する。
【００１７】
図１は、本発明に係るデータベース管理装置の構成を示したブロック図である。図１において、データベース管理装置は、データベースを保管し、制御するコンピュータ１０と、データベースを再編成又はバックアップするための磁気テープ等を記憶媒体とする外部記憶装置２０と、データベースを使用するための指示情報を入力したり、データベースの内容を表示したりするための端末装置３０とにより構成される。
【００１８】
コンピュータ１０は、演算処理装置（ＣＰＵ：Central Processing Unit ）１００と、メモリ１１０と、ハードディスク等の補助記憶装置１５０とにより構成される。ここで、メモリ１１０には、演算処理装置１００を動作させるためのプログラムとして、ユーザアプリケーションプログラム（ＵＡＰ：User Application Program、以下、ＵＡＰと略称する。）１２０、データベース管理システム（ＤＢＭＳ：Data Base Management System、以下、ＤＢＭＳと略称する。）１３０、及び、オペレーティングシステム（ＯＳ：Operating System）１４０が格納されるとともに、それらのプログラムが実行されるときの作業領域として使用される。また、補助記憶装置１５０には、データベース１７０およびその構造を定義するディクショナリ１６０が格納される。
【００１９】
図２は、本実施形態におけるデータベースの表定義文、及び、期限管理定義表の例を示した図である。“ＳＱＬ１”２０１及び“ＳＱＬ２”２０２は、データベース操作言語ＳＱＬ（Structured Query Language）による表定義文（ＣＲＥＡＴＥ  ＴＡＢＬＥ文）の例である。図２において、“ＳＱＬ１”２０１の表定義文は、“表１を作成し、表１に、ＩＤ、終了日、・・・の列を設け、表１の属性は、パラメータＰ１〜Ｐ３の値に従う”ことを表している。
【００２０】
ここで、パラメータＰ１〜Ｐ３の意味は、図２の表２０５に示されている。すなわち、パラメータＰ１の値がＹであれば、期限管理属性ありの表であることを、Ｎであれば、期限管理属性なしの表であることを意味する。また、パラメータＰ２は、データの有効期間を示す日付又は期間（日数）を、パラメータＰ３は、有効期間保持列名つまり有効期限日を格納する表の列名を意味する。従って、“ＳＱＬ１”２０１における表定義文の後半のパラメータ部分は、“表１は期限管理属性ありで、そのデータの有効期間は７日間で、その有効期間をデータとして表１の列名が終了日の列に保持する”ことを意味する。つまり、表１の終了日の列へは、データが挿入される際に、データ挿入日の７日後の日付が格納されることになる。
【００２１】
同様に“ＳＱＬ２”２０２の表定義文は、“表２を作成し、表２にＩＤ、終了日、・・・の列を設け、表２は期限管理属性ありで、有効期間をデータとしてその列名が終了日の列に保持する”ことを意味する。ただし、ここではパラメータＰ２つまり有効期間が定義されていないので、この場合には、表２にデータを挿入するときにその都度、有効期間を指定する必要がある。
なお、図２には、“表１”２０６及び“表２”２０７が示されているが、その“表１”２０６及び“表２”２０７には、ＩＤと終了日以外の列の図示は省略されている。
【００２２】
“ＳＱＬ１”２０１及び“ＳＱＬ２”２０２のような表定義文は、ＵＡＰ１２０においてユーザによるデータベースの定義に際して用いられ、それらは、ＤＢＭＳ１３０においてＤＢ（Data Base）定義処理２０３として実行される。そして、これらの表定義文が実行されると、データベース１７０に“表１”２０６及び“表２”２０７の領域が割り当てられるとともに、ディクショナリ１６０に期限管理定義表２０４が作成される。
【００２３】
以下、図２において定義された“表１”２０６及び“表２”２０７を例にしつつ、本発
明に係るデータベース管理のための基本処理について説明する。
【００２４】
図３は、データベース１７０に対する検索処理、更新処理及び削除処理のＳＱＬの文例、並びに、それらの処理に係る表の例を示した図である。また、図４は、検索処理における検索選択処理の処理の流れを示した図、図５は、更新処理の処理の流れを示した図、図６は、削除処理の処理の流れを示した図である。ここで、検索選択処理とは、検索処理３０４のうち、検索条件に適合して選択されたデータについて実行される処理をいう。
【００２５】
まず、図３及び図４に従い、検索処理について説明する。
データベースにおける検索処理は、ＳＱＬのＳＥＬＥＣＴ文を用いて行われる。例えば、図３に示すように、ＵＡＰ１２０において“ＳＱＬ３”３０１のようなＳＥＬＥＣＴ文があれば、ＤＢＭＳ１３０は、その文に記載された条件（図示せず）に従い、検索処理３０４を実行する。そして、検索処理３０４において、検索条件に適合したデータについては、さらに、以下に説明する検索選択処理３０４ａを実行する。
【００２６】
図４において、検索選択処理３０４ａが開始されると、ＤＢＭＳ１３０は、まず、ＳＥＬＥＣＴ文が指定した表（例えば、表１）について検索条件に適合して選択された行を１件取り出す（Ｓ４１）。このとき、選択された行が存在しないときは（Ｓ４２でＮｏ）、そのまま検索選択処理を終了する。一方、選択された行が存在するときには（Ｓ４２でＹｅｓ）、期限管理定義表２０４を参照して、指定された表の期限管理属性を判定する（Ｓ４３）。その結果、その表が期限管理属性なしの場合には（Ｓ４３でＮｏ）、この検索選択処理の上位処理へ検索結果を返却して（Ｓ４５）、検索選択処理を終了する。また、その表が期限管理属性ありの場合には（Ｓ４３でＹｅｓ）、その表の選択された行の終了日の列を参照し、その行のデータの有効期限が切れているか否かを判定する（Ｓ４４）。その結果、その行のデータの有効期限が切れていない場合には（Ｓ４４でＮｏ）、この検索選択処理の上位処理へ検索結果を返却して（Ｓ４５）、検索選択処理を終了する。一方、有効期限が切れている場合には（Ｓ４４でＹｅｓ）、ステップＳ４１へ戻って、次に存在する検索して選択された行を取り出し、ステップ４２以下の処理を行う。
以上のように、図４の処理の流れにおいて、検索して選択された行の有効期限が切れている場合には（Ｓ４４でＹｅｓ）、結局、何の処理も行われない。つまり、その行は、読み飛ばされることになる。
【００２７】
図３に戻って、さらに具体的に説明する。ここでは“ＳＱＬ３”３０１のＳＥＬＥＣＴ文が表３０７に示すように２００３年８月５日に実行され、そのとき“表１”２０６ａにおいてＩＤが００１及び００２の行が検索条件に適合して選択されたものとする。
まず、選択されたＩＤが００１の行を取り出す。そして、ディクショナリ１６０の期限管理定義表２０４を参照して、“表１”２０６ａが期限管理属性ありの表と判定する。さらに、ＩＤが００１の行の有効期限を判定する。すると、ＩＤが００１の行は、有効期限が２００３年８月１日なので、有効期限が切れており、この行は読み飛ばされる。そこで、次に選択された行であるＩＤが００２の行が取り出される。ＩＤが００２の行の有効期限は８月８日であるので、有効期限内である。その結果、ＩＤが００２の行のデータが検索選択処理の出力として、検索選択処理の上位処理へ返却されることになる。
【００２８】
以上のように、本実施形態における検索選択処理においては、期限管理属性ありの表に期限切れのデータが存在していても、そのデータは読み飛ばされる。従って、期限切れのデータが誤って利用されることはない。
また、ＳＥＬＥＣＴ文による検索条件に対する適合性のチェックは、データベースの指定された表全体の行について行われるものの、検索選択処理により行うデータの有効期限の判定は、検索して選択された、つまり、検索条件に適合したデータについてだけしか行われない。よって、データの有効期限の判定に伴うコンピュータの処理量の増加を抑制することができる。
【００２９】
次に、図３及び図５に従い、更新処理について説明する。
データベースにおける更新処理は、ＳＱＬのＵＰＤＡＴＥ文を用いて行われる。例えば、図３に示すように、ＵＡＰ１２０において“ＳＱＬ４”３０２のようなＵＰＤＡＴＥ文があれば、ＤＢＭＳ１３０は、その文の指示に従い、更新処理３０５を実行する。
【００３０】
図５において、更新処理３０５が開始されると、ＵＰＤＡＴＥ文で指定された表（例えば、表１）から更新する行を１行取り出す（Ｓ５１）。このとき、更新する行が存在しないときは（Ｓ５２でＮｏ）、そのまま更新処理を終了する。一方、更新する行が存在するときには（Ｓ５２でＹｅｓ）、期限管理定義表２０４を参照して、指定された表の期限管理属性を判定する（Ｓ５３）。そして、その表が期限管理属性なしの場合には（Ｓ５３でＮｏ）、更新する行のデータを更新し（Ｓ５５）、更新処理を終了する。また、その表が期限管理属性ありの場合には（Ｓ５３でＹｅｓ）、その行の終了日の列を参照し、その行のデータの有効期限が切れているか否かを判定する（Ｓ５４）。その結果、その行のデータの有効期限が切れていない場合には（Ｓ５４でＮｏ）、更新する行のデータを更新し（Ｓ５５）、更新処理を終了する。一方、有効期限が切れている場合には（Ｓ５４でＹｅｓ）、その行のデータを削除して（Ｓ５６）、更新処理を終了する。
図５の処理の流れにおいて、更新する行の有効期限が切れている場合には（Ｓ５４でＹｅｓ）、結局、その行のデータの更新は行われず、代わりにその行のデータの削除が行われる。
【００３１】
図３に戻って、さらに具体的に説明する。ここでは“ＳＱＬ４”３０２のＵＰＤＡＴＥ文が、“表１”２０６ａにおいてＩＤが００２及び００３の行を更新するという文（図示せず）であるものとし、その文が表３０７に示されている２００３年８月１０日に実行されたとする。
その場合には、まず、ディクショナリ１６０の期限管理定義表２０４が参照され、“表１”２０６ａが期限管理属性ありの表と判定されて、さらにその行のデータの有効期限が判定される。すると、ＩＤが００２の行は、有効期限が２００３年８月８日なので、有効期限切れとなり、削除される。また、ＩＤが００３の行は有効期限が２００３年８月１５日なので、有効期限内であり、この行のデータは、削除されず更新される。
【００３２】
以上のように、本実施形態においては、期限管理属性ありの表に期限切れのデータが存在している場合に、そのデータが更新されるときには、更新される代わりに削除される。よって、期限切れのデータが誤って利用されることはない。また、この更新処理には、期限切れのデータを自動的に削除する作用が備わっている。すなわち、この更新処理により、ＤＢＭＳ１３０のユーザは意識することも処置することもなく、期限切れのデータは、その都度、削除される。
【００３３】
次に、図３及び図６に従い、削除処理について説明する。
データベースにおける削除処理は、ＳＱＬのＤＥＬＥＴＥ文を用いて行われる。例えば、図３に示すように、ＵＡＰ１２０において、ＳＱＬ５”３０３のようなＤＥＬＥＴＥ文があれば、ＤＢＭＳ１３０は、その文の指示に従い、削除処理３０６を実行する。
【００３４】
図６において、削除処理３０６が開始されると、ＤＥＬＥＴＥ文で指定された例えば表１から削除する行を１行取り出す（Ｓ６１）。このとき、更新する行が存在しないときは（Ｓ６２でＮｏ）、そのまま削除処理を終了する。一方、削除する行が存在するときには（Ｓ６２でＹｅｓ）、期限管理属性を判定することもなく、また、その行のデータの有効期限を判定することもなく、その行のデータを削除し（Ｓ６３）、削除処理を終了する。
【００３５】
次に、図７及び図８に従い、挿入処理について説明する。ここで、図７は、データベース１７０に対する挿入処理のＳＱＬの文例、及び、その処理に係る表の例を示した図である。また、図８は、挿入処理の処理の流れを示した図である。
【００３６】
データベースにおける挿入処理は、ＳＱＬのＩＮＳＥＲＴ文を用いて行われる。例えば、図７に示すように、ＵＡＰ１２０に“ＳＱＬ６”７０１や“ＳＱＬ７”７０２のようなＩＮＳＥＲＴ文があれば、ＤＢＭＳ１３０は、その文の指示に従い、挿入処理７０３を実行することになる。
【００３７】
図８において、挿入処理７０３が開始されると、期限管理定義表２０４を参照して、ＩＮＳＥＲＴ文が指定する表（例えば、表１）について期限管理属性を判定する（Ｓ８１）。その結果、その表が期限管理属性なしの場合には（Ｓ８１でＮｏ）、新しい行にＩＮＳＥＲＴ文が指定するデータを挿入し（Ｓ８３）、挿入処理を終了する。また、その表が期限管理属性ありの場合には（Ｓ８１でＹｅｓ）、その表について有効期限切れの行があるか否かを判定する（Ｓ８２）。その結果、その表に有効期限切れの行がない場合には（Ｓ８２でＮｏ）、ＩＮＳＥＲＴ文が指定するデータを新しい行に挿入し（Ｓ８３）、挿入処理を終了する。一方、その表に有効期限切れの行があった場合には（Ｓ８２でＹｅｓ）、その有効期限切れの行にＩＮＳＥＲＴ文が指定するデータを上書きする（Ｓ８４）。
すなわち、図８の処理の流れにおいて、挿入しようとしている表に有効期限が切れている行が存在する場合には、その行に挿入しようとしているデータを上書きする。
【００３８】
図７に戻って、図８の処理の流れを具体的に説明する。“ＳＱＬ６”７０１のＩＮＳＥＲＴ文は、“表１においてＩＤの列のデータが００４である行を挿入する”を意味する文である。この文が図７中の表７０４にあるように２００３年８月５日に実行された場合には、まず、ディクショナリ１６０の期限管理定義表２０４を参照すると、“表１”２０６ａが期限管理属性ありとされているので、さらに、“表１”２０６ａに有効期限切れの行があるか否か判定する。このとき、ＩＤが００１の行は、有効期限が２００３年８月１日なので、有効期限切れとなっている。従って、ＩＤが００１の行の位置に、ＩＤが００４の行のデータが上書きされる。ここで、この行の終了日の列には、この文の実行日に７日が加算された２００３年８月１２日の日付が格納される。従って、“表１”２０６ａは、“ＳＱＬ６”７０１のＩＮＳＥＲＴ文がされると、“表１”２０６ｂとなる。
【００３９】
また、“ＳＱＬ７”７０２のＩＮＳＥＲＴ文は、“表２において、ＩＤ及び終了日それぞれの列のデータが００５及び２００３年９月１日である行を、挿入する”を意味する文である。この文が図７中の表７０４にあるように２００３年８月２０日に実行された場合には、まず、ディクショナリ１６０の期限管理定義表２０４を参照すると、“表２”２０７ａが期限管理属性有りとされているので、さらに、“表２”２０７ａに有効期限切れの行があるか否か判定する。すると、有効期限切れの行はないので、“表２”２０７ａの新しい行に、ＩＤが００５の行が作成され、その行の終了日の列には２００３年９月１日という日付が格納される。従って、“表２”２０７ａは、“ＳＱＬ７”７０２のＩＮＳＥＲＴ文がされると、“表２”２０７ｂとなる。
【００４０】
以上のように、本実施形態においては、期限管理属性ありの表に新たなデータが挿入されるとき、その表に有効期限切れのデータが存在している場合には、その有効期限切れのデータの位置に新たなデータが上書きされる。従って、この上書きには、有効期限切れのデータを自動的に削除する作用が備わっており、ＤＢＭＳ１３０のユーザは、意識することも処置することもなく、新しいデータを挿入すると、期限切れのデータが削除される。
【００４１】
次に、図９、図１０及び図１１に従い、本実施形態におけるデータベースのアンロード／リロード処理について説明する。ここで、図９は、本実施形態におけるデータベースのアンロード／リロード処理による表の変遷の状況の例を示した図である。また、図１０は、アンロード処理の処理の流れを示す図、図１１は、リロード処理の処理の流れを示す図である。ここで、アンロード処理とは、データベースの内容を磁気テープ等の外部記憶装置の記憶媒体に格納する処理をいい、リロード処理とは、磁気テープ等にアンロードされたデータベースの内容を、通常、ハードディスクで構成されるデータベース１７０へ書き戻す処理をいう。このようなアンロード／リロード処理は、主としてデータベースのバックアップや再編成に際して用いられる。
【００４２】
図１０において、アンロード処理９０２が開始されると、まず、アンロードするデータベースの表から１行のデータを取り出す（Ｓ１０１）。そのとき、アンロードする行が存在しないときは（Ｓ１０２でＮｏ）、データのアンロードが完了したものとして、アンロード処理を終了する。一方、アンロードする行が存在するときには（Ｓ１０２でＹｅｓ）、期限管理定義表２０４（図２参照）を参照して、アンロードする表の期限管理属性を判定する（Ｓ１０３）。その結果、その表が期限管理属性なしの場合には（Ｓ１０３でＮｏ）、その行のデータを磁気テープ等の外部記憶装置２０に記録する（アンロードする：Ｓ１０５）。また、その表が期限管理属性ありの場合には（Ｓ１０３でＹｅｓ）、アンロードする行のデータの有効期限を判定する（Ｓ１０４）。その結果、そのデータの有効期限が切れていない場合には（Ｓ１０４でＮｏ）、その行のデータを磁気テープ等の外部記憶装置２０に記録する（アンロードする：Ｓ１０５）。一方、アンロードするデータの有効期限が切れていた場合には（Ｓ１０４でＹｅｓ）、データのアンロードを行わないで、アンロードするデータベースの表から次の行のデータを取り出す処理（Ｓ１０１）に戻る。また、ステップＳ１０５でデータをアンロードすると、アンロードするデータベースの表から次の行のデータを取り出す処理（Ｓ１０１）に戻る。
【００４３】
次に、図１１において、リロード処理９０３が開始されると、まず、リロードする外部記憶装置２０から１行のデータを取り出す（Ｓ１１１）。そのとき、リロードする行が存在しないときは（Ｓ１１２でＮｏ）、データはすべてリロードし終えたものとして、リロード処理を終了する。一方、リロードする行が存在するときには（Ｓ１１２でＹｅｓ）、期限管理定義表２０４（図２参照）を参照して、リロードする表の期限管理属性を判定する（Ｓ１１３）。そして、その表が期限管理属性なしの場合には（Ｓ１１３でＮｏ）、その行のデータをデータベース１１７へ格納する（リロードする：Ｓ１１５）。また、その表が期限管理属性ありの場合には（Ｓ１１３でＹｅｓ）、リロードする行のデータの有効期限を判定する（Ｓ１１４）。その結果、そのデータの有効期限が切れていない場合には（Ｓ１１４でＮｏ）、その行のデータをデータベース１１７へ格納する（リロードする：Ｓ１１５）。一方、リロードするデータの有効期限が切れていた場合には（Ｓ１１４でＹｅｓ）、データのリロードを行わないで、リロードする外部記憶装置２０から次の１行のデータを取り出す処理（Ｓ１１１）に戻る。また、ステップＳ１１５でデータをリロードすると、リロードする外部記憶装置２０から次の１行のデータを取り出す処理（Ｓ１１１）に戻る。
【００４４】
図９に戻って、アンロード／リロード処理によって表の内容がどのように変遷するかを具体的に説明する。データベース１７０の“表１”９０１ａについて、アンロード処理９０２が２００３年８月５日に行われると、ＩＤが００１のデータは、終了日が２００３年８月１日なので、データの有効期限が切れていることになり、外部記憶装置２０にアンロードされない。その結果、外部記憶装置２０には、“表１”９０３のように格納される。
また、アンロードされて、外部記憶装置２０に格納された“表１”９０３について、２００３年８月１０日にリロード処理９０４が行われると、ＩＤが００２のデータは、終了日が２００３年８月８日なので、データの有効期限が切れていることになり、リロードされない。その結果、データベース１７０には“表１”９０１ｂのように書き戻される。
【００４５】
以上のように、本実施形態において、期限管理属性ありの表をアンロード／リロードするとき、期限切れのデータは、読み飛ばされ、アンロード／リロードされない。従って、期限切れのデータは、アンロード／リロード処理に際し、削除されることになる。すなわち、アンロード／リロード処理を実行すると、期限切れのデータは、ユーザが意識することも処置することもなく、自動的に削除される。
【００４６】
以上、本発明を最良の実施形態によって説明したが、実施形態の一部がこの最良の実施の形態と異なる場合であっても、本発明の課題を解決することができる。
【００４７】
例えば、挿入処理においては、期限切れのデータが存在している場合には、その期限切れのデータの位置に挿入するデータを上書きする（図８、Ｓ８４）としたが、期限切れのデータを探す処理（図８、Ｓ８２）を行ってまで、挿入するデータを上書きする必要はない。挿入するデータは、単に空白行に挿入する（図８、Ｓ８３）としても構わない。
この場合には、コンピュータの処理負荷は軽減されるが、有効期限切れのデータが自動的に削除される効果は、減退することになる。しかし、検索選択処理及び更新処理において、有効期限切れのデータを使用しないようにしている限りは、有効期限切れのデータを誤用する問題は生じない。
【００４８】
また、本実施形態では、更新処理において、更新する行のデータが期限切れであった場合、その更新する行のデータを削除する（図５、Ｓ５６）としているが、必ずしも、削除する必要はなく、単にデータの更新をしないとするだけでも構わない。この場合には、有効期限切れのデータが自動的に削除される効果は、減退することになるが、有効期限切れのデータを更新する誤りは回避することができる。
【００４９】
また、本実施形態では、検索選択処理において、その対象のデータが有効期限切れのデータであった場合（図４、Ｓ４４でＹｅｓ）に、そのデータを削除していないが、そのデータを削除するように変更しても構わない。この場合には、有効期限切れのデータが自動的に削除される効果は向上するが、検索時のコンピュータの処理負荷はやや大きくなる。
【図面の簡単な説明】
【００５０】
【図１】本発明に係るデータベース管理装置の構成を示したブロック図である。
【図２】本発明の実施形態におけるデータベースの表定義文、及び、期限管理定義表の例を示した図である。
【図３】本発明の実施形態におけるデータベースに対する検索処理、更新処理及び削除処理のＳＱＬの文例、並びに、それらの処理に係る表の例を示した図である。
【図４】本発明の実施形態における検索選択処理の処理の流れを示した図である。
【図５】本発明の実施形態における更新処理の処理の流れを示した図である。
【図６】本発明の実施形態における削除処理の処理の流れを示した図である。
【図７】本発明の実施形態におけるデータベースに対する挿入処理のＳＱＬの文例、並びに、その処理に係る表の例を示した図である。
【図８】本発明の実施形態における挿入処理の処理の流れを示した図である。
【図９】本発明の実施形態におけるデータベースのアンロード処理／リロード処理による表の変遷の状況の例を示した図である。
【図１０】本発明の実施形態におけるアンロード処理の処理の流れを示した図である。
【図１１】本発明の実施形態におけるリロード処理の処理の流れを示した図である。
【符号の説明】
【００５１】
１０      コンピュータ
１００    演算処理装置
１１０    メモリ
１３０    データベース管理システム
１７０    データベース
３０４    検索処理
３０４ａ  検索選択処理
３０５    更新処理
３０６    削除処理
７０３    挿入処理
９０２    アンロード処理
９０４    リロード処理
【図１】
2005149348.tif 000003
【図２】
2005149348.tif 000004
【図３】
2005149348.tif 000005
【図４】
2005149348.tif 000006
【図５】
2005149348.tif 000007
【図６】
2005149348.tif 000008
【図７】
2005149348.tif 000009
【図８】
2005149348.tif 000010
【図９】
2005149348.tif 000011
【図１０】
2005149348.tif 000012
【図１１】
2005149348.tif 000013