(57)【要約】【課題】  データベースを活用する上での融通性を確保しつつも、一つのまとまった情報である行の情報については、行全体の情報について改竄防止を図ることが可能なデータベース管理方法を提供する。【解決手段】  改竄防止属性の情報を、表のデータベースの行を構成する列の情報として設定、すなわち、表の行毎に設定できるようにした。そして、その行の情報の更新または行の削除を行うに当たって、その行の改竄防止属性の情報を参照し、その情報が改竄防止を示しているか否かを判定する。そして、その結果、改竄防止を示していると判定された場合には、行の情報の更新も行の削除も行わず、また、改竄防止を示していないと判定された場合には、行の情報の更新または行の削除を行うようにした。【選択図】      図２
2006004285.tif 000002
【特許請求の範囲】
【請求項１】
データベースを記憶する記憶装置と、前記記憶装置に記憶されたデータベースの情報の読み出しおよび書き込みを行うとともに所定の演算処理を行う演算処理装置とを備えたコンピュータにおける表のデータベースを管理するデータベース管理方法であって、
前記演算処理装置が、
前記表のデータベースの行を構成する列の情報として、その行の改竄防止属性の情報を設定するステップと、
前記表のデータベースにおいて行の情報の更新または行の削除を行う場合、その行に設定された改竄防止属性の情報を参照し、その改竄防止属性の情報が改竄防止を示しているか否かを判定する改竄防止属性判定ステップと、
前記改竄防止属性判定ステップにおいて、前記改竄防止属性の情報が改竄防止を示していると判定されたときには、前記行の情報の更新も前記行の削除も行わず、また、前記改竄防止属性の情報が改竄防止を示していないと判定されたときには、前記行の情報の更新または前記行の削除を行うステップと
を実行することを特徴とするデータベース管理方法。
【請求項２】
請求項１に記載のデータベース管理方法において、
前記演算処理装置が、さらに、
前記表のデータベースの行を構成する列の情報として、その行の削除禁止起算日および削除禁止期間の情報を設定するステップと、
前記表のデータベースにおいて行の削除を行うに場合、その行に設定された前記削除禁止起算日および前記削除禁止期間の情報を参照し、その行を削除しようとする日が前記削除禁止起算日以降の前記削除禁止期間内に含まれているか否かを判定する削除禁止期間判定ステップと、
前記改竄防止属性判定ステップにおける判定の結果、前記改竄防止属性の情報が改竄防止を示し、かつ、前記削除禁止期間判定ステップにおける判定の結果、前記行を削除しようとする日が前記削除禁止起算日以降の前記削除禁止期間内に含まれていなかったときには、前記行の削除を行うステップと
を実行することを特徴とするデータベース管理方法。
【請求項３】
請求項１または請求項２に記載のデータベース管理方法を、コンピュータに実行させるためのプログラムであることを特徴とするデータベース管理プログラム。
【請求項４】
データベースを記憶する記憶装置と、前記記憶装置に記憶されたデータベースの情報の読み出しおよび書き込みを行うとともに所定の演算処理を行う演算処理装置とを備えたコンピュータによって、表のデータベースを管理するデータベース管理装置であって、
前記演算処理装置が、前記表のデータベースの行を構成する列の情報として、その行の改竄防止属性の情報を設定する改竄防止属性設定手段と、
前記演算処理装置が、前記表のデータベースにおいて行の情報の更新または行の削除を行う場合、その行に設定された改竄防止属性の情報を参照し、その改竄防止属性の情報が改竄防止属性を示しているか否かを判定する改竄防止属性判定手段と、
前記改竄防止属性判定手段により、前記改竄防止属性の情報が改竄防止を示していると判定された場合には、前記演算処理装置が前記行の情報の更新も前記行の削除も行わず、また、前記改竄防止属性の情報が改竄防止を示していないと判定されたときには、前記演算処理装置が前記行の情報の更新または前記行の削除を行う行更新・削除手段と
を備えたことを特徴とするデータベース管理装置。
【請求項５】
請求項４に記載のデータベース管理装置において、
前記演算処理装置が、前記表のデータベースの行を構成する列の情報として、削除禁止起算日および削除禁止期間の情報を設定する削除禁止期間設定手段と、
前記演算処理装置が、前記表のデータベースにおいて行の削除を行う場合、その行に設定された前記削除禁止起算日および前記削除禁止期間の情報を参照し、その行を削除しようとする日が前記削除禁止起算日以降の前記削除禁止期間内に含まれているか否かを判定する削除禁止期間判定手段と、
前記改竄防止属性判定手段により、前記改竄防止属性の情報が改竄防止を示していると判定され、かつ、前記削除禁止期間判定手段により、前記行を削除しようとする日が前記削除禁止起算日以降の前記削除禁止期間内に含まれていないと判定された場合には、前記演算処理装置が前記行の削除を行う削除禁止期間外行削除手段と
を備えることを特徴とするデータベース管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータにおいて管理されるデータベースに係るデータベース管理方法、管理プログラムおよび管理装置に関する。
【背景技術】
【０００２】
一般に、データベースには、その保護のために、アクセス権を設定する機能が備えられている。データベースに作成された表については、その表の所有者、データベース管理者またはデータベース管理者によってアクセス権を設定された者のみが、その表にアクセスすることができる。しかしながら、悪意ある第三者が、その表の所有者等アクセス権を有する者になりすました場合には、悪意ある第三者は、その表の内容を更新したり、削除したりすることができる。従って、アクセス権設定だけでは、悪意ある第三者による表の改竄の可能性を除去することはできない。
【０００３】
この問題を解決するため、特許文献１には、表そのものに改竄防止機能を埋め込んだデータベース管理方法が開示されている。その方法によれば、データベースに作成される表には、表毎に改竄防止属性を設定できるものとしている。そして、いったん改竄防止属性が設定された表においては、その表の所有者等、表のアクセス権者であっても、その表における情報の更新は、一切できないとものし、また、行の削除は、その行に含まれる情報によって指定される期間内にはできないとしている。
【０００４】
従って、この方法によれば、いったん登録された表の情報は、誰であっても、一切更新できず、また、その表の行は、その行の情報によって指定された期間外にならないと、削除できない。この方法は、表の改竄に対しては、大きな効果を期待することができるが、逆に、行の情報の修正（更新）が実質上できなくなるので、データベースを活用する上での融通性が失われてしまう。
【０００５】
そこで、その融通性を確保することを目的に、特許文献１においては、表の列に対して改竄防止属性を設定する方法が開示されている。その方法によれば、改竄防止属性は、列の情報について設定するものとしている。従って、列の情報のうち重要な列の情報については、更新や削除が禁止される。しかしながら、一般に、データベースの表においては、行毎の情報に一つのまとまった意味を持たせることが多い。例えば、ある会員情報を管理する表であれば、氏名、入会日、会員番号などが列の情報を構成し、一人の会員の情報は、一行にまとめられた情報として表現される。従って、重要な情報を含んだ列の情報について改竄防止属性を設定すれば、その列の情報については改竄防止を図ることができるが、改竄防止属性を設定しない列の情報については、改竄防止属性を図ることができない。すなわち、一行にまとめられた情報の一部に改竄される可能性のある情報が残るのでは、改竄防止の方法として不十分であり、中途半端と言わざるを得ない。
【特許文献１】特開２００４−８６８７２号公報（段落００１１〜００２８、図１〜図１４）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以上のように、特許文献１に開示されている改竄防止のためのデータベースの管理方法は、データベースを活用する上での融通性が損なわれる、または、改竄防止が不十分で中途半端であるという問題点を含んでいる。
【０００７】
以上の従来技術の問題点に鑑み、本発明の課題は、データベースを活用する上での融通性を確保しつつも、一つのまとまった情報である行の情報については、行全体の情報について改竄防止を図ることが可能なデータベース管理方法、管理プログラムおよび管理装置を提供することにある。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、本発明においては、改竄防止の属性をデータベースの表の行毎に設定できるようにした。すなわち、本発明においては、データベースを管理するコンピュータの演算処理装置は、表のデータベースの行を構成する項目の情報として改竄防止属性の情報を設定しておき、その後、その行の情報の更新または行の削除を行うに当たって、その行の改竄防止属性の情報を参照し、その改竄防止属性の情報が改竄防止を示しているか否かを判定するようにした。そして、その判定において、改竄防止属性の情報が改竄防止を示していると判定された場合には、行の情報の更新も行の削除も行わず、また、改竄防止属性の情報が改竄防止を示していないと判定された場合には、行の情報の更新または行の削除を行うようにした。
【０００９】
以上のように、本発明においては、表のデータベースの行毎に改竄防止属性が設定されるので、改竄防止属性が設定された行の情報については、そのすべての列の情報について改竄防止が図られる。従って、列毎に改竄防止属性を設定したときのように、一部の列の情報について改竄される可能性が残ることはない。また、改竄防止属性を設定しない行の情報については、改竄の可能性を残すことになるが、表のアクセス権限者は、従来一般に行われていたように、行の情報を更新したり、行を削除したりすることができる。すなわち、本発明においては、行の情報の重要度や属性に合わせて、改竄防止属性を設定することにすれば、データベースを活用する上での融通性が確保される。
【００１０】
また、本発明においては、さらに、データベースを管理するコンピュータの演算処理装置は、表のデータベースの行を構成する列の情報として、削除禁止起算日および削除禁止期間の情報を設定する。そして、その表のデータベースの行を削除するに当たって、その行の改竄防止属性の情報を参照し、その改竄防止属性の情報が改竄防止を示しているか否かを判定し、さらに、その削除禁止起算日および削除禁止期間の情報を参照し、行を削除しようとする日が前記削除禁止起算日以降の前記削除禁止期間内に含まれているか否かを判定する。そして、それらの判定の結果、改竄防止属性の情報が改竄防止を示し、行を削除しようとする日が前記削除禁止起算日以降の前記削除禁止期間内に含まれていなかった場合には、その行を削除するようにした。
【００１１】
以上のように、本発明においては、演算処理装置は、表のデータベースの改竄防止属性を設定した行について、削除禁止起算日および削除禁止期間の情報を設定することができる。そのため、その削除禁止起算日以降削除禁止期間によって定まる期間に含まれない日には、その行の削除が可能となる。従って、改竄防止属性を設定した行は、永遠に削除ができないのではなく、例えば、その行の登録日からある期間を経過すると削除ができるようになる。これによって、データベース活用に際しての融通性が向上する。
【発明の効果】
【００１２】
本発明によれば、データベースを活用する上での融通性を確保しつつも、一つのまとまった情報である行の情報については、行全体の情報について改竄防止を図ることが可能となる。よって、表のデータベースにおいて改竄防止属性を設定した行の情報については、悪意ある第三者がその表のアクセス権限者になりすまして不正に情報を更新したり、削除したりする、すなわち、改竄するのを防止することができる。また、表のアクセス権限者に対しては、改竄防止属性を設定した行の重要な情報を誤って更新したり、削除したりするのを防止することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態について、適宜、図１〜図５を参照しながら詳細に説明する。
【００１４】
＜データベース管理装置の構成＞
図１は、本発明の実施形態に係るデータベース管理装置の構成を示した図である。データベース管理装置は、演算処理装置１１０、メモリ１２０、ハードディスク装置１３０、端末装置１４０を備えたコンピュータ１００によって構成される。そして、メモリ１２０には、ユーザアプリケーションプログラム１２１、データベース管理システム１２２およびオペレーティングシステム１２３の各プログラムが格納される。また、コンピュータ１００の補助記憶装置であるハードディスク装置１３０には、ディクショナリ１３１とデータベース１３２が格納される。
【００１５】
演算処理装置１１０は、メモリ１２０に格納されているプログラムに従って動作し、メモリ１２０に確保された作業領域やハードディスク装置１３０に格納されている情報や、端末装置１４０から入出力される情報に関して種々の演算処理や制御処理を行う。従って、データベース管理装置の基本的な機能は、演算処理装置１１０がメモリ１２０に格納されたデータベース管理システム１２２のプログラムを実行することによって実現される。
【００１６】
ユーザアプリケーションプログラム１２１は、ユーザ（管理者、所有者を含む）がデータベース１３２に表を作成したり、表にアクセスしたりするためのプログラムであり、所定のデータベース操作命令、いわゆるＳＱＬ（Structured Query Language）により記述される。演算処理装置１１０は、ユーザアプリケーションプログラム１２１におけるＳＱＬ命令文を実行することによって、データベース管理システム１２２を起動、実行し、所定のデータベース操作を実現する。なお、ユーザアプリケーションプログラム１２１およびデータベース管理システム１２２は、演算処理装置１１０によりオペレーティングシステム１２３が実行される環境下で、実行される。
【００１７】
データベース１３２は、通常、大容量の記憶領域を確保することが可能なハードディスク装置１３０上に確保される。そして、データベース１３２には、ディクショナリ１３１が付属する。データベース１３２は、構造等が定義された表に対して情報そのものを格納する領域であるが、ディクショナリ１３１は、その表の構造等を定義する情報、すなわち、表の名称や、列の名称、サイズ、その他列の属性を定義する情報等を格納する領域である。従って、ユーザが、データベース１３２に表を作成したり、作成された表にアクセスしたりするに当たっては、その表に関するディクショナリ１３１を作成または参照する必要がある。
【００１８】
＜データベースの管理方法＞
次に、図２および図３を参照しつつ、改竄防止に係るデータベースの管理方法の一例について説明する。ここで、図２は、本実施形態に係る表のデータベースにおいて、行毎の改竄防止を実現するための表定義文の例、および、その表定義文をディクショナリに登録する手順の例を示した図である。また、図３は、本実施形態に係る表のデータベースにおいて、図２に示した表定義文に基づき、行の情報を更新または行を削除する手順の例を示した図である。
【００１９】
（ディクショナリにおける表定義）
図２において、表定義は、ＳＱＬに準拠したＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１によって記述されている。本実施形態におけるＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１は、改竄防止のために特に設けたパラメータＰ１、…、Ｐ４を含んでいる。そのパラメータＰ１、…、Ｐ４が持つ意味については、表２０２に示されているように、パラメータＰ１は、その表に対して改竄防止属性が付されているか否かを示すパラメータであり、パラメータＰ２は、行に設定する改竄防止属性情報（ここでは、改竄防止有効化情報といっている）を保持する列名であり、パラメータＰ３は、削除禁止期間の起算日の情報を保持する列名であり、パラメータＰ４は、削除禁止期間の情報を保持する列名である。
【００２０】
すなわち、図２のＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１の例の場合には、会員マスタという名称の表に対し、パラメータＰ１が「Ｙ」であることによって改竄防止属性を設定することを指定し、パラメータＰ２によって改竄防止属性有効化情報保持列名、つまり、行に設定する改竄防止属性情報が保持される列の名称が「店長承認」であることを指定し、パラメータＰ３によって起算日情報保持列名が「店長承認日」であることを指定し、パラメータＰ４に削除禁止期間情報保持列名称を示す「有効期間」を指定している。
【００２１】
なお、表のデータベースにおいては、各行の情報の各列の情報は、行を構成する項目に相当するので、列の情報を項目と呼び、列名を項目名と呼ぶことがある。
【００２２】
前記したように、ＳＱＬの命令文の１つであるＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１は、ユーザアプリケーションプログラム１２１ａの中に記述される。そして、ユーザアプリケーションプログラム１２１ａにおいてＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１が実行されるとき、まず、ＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１の情報がデータベース管理システム１２２に投入され、データベース管理システム１２２が起動される。
【００２３】
データベース管理システム１２２が起動されると、まず、ＳＱＬ処理部２０５が実行され、データベース管理システム１２２が起動されたときのＳＱＬ命令文（図２の例では、ＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１）の解析が行われ、その解析結果の情報が表定義処理部２０６へ渡される。そして、表定義処理部２０６が実行されると、解析結果の情報に基づき、表の定義情報がディクショナリ１３１に格納される。
【００２４】
図２において、表２０８は、ＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１によってディクショナリ１３１に作成された表定義情報を保持する表の一部を示したものである。すなわち、ＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１によってディクショナリ１３１に、表名列、改竄防止属性列、改竄防止有効化情報保持列名列、起算日情報保持列名列および行削除禁止期間情報保持列名列を含んだ表２０８が作成される。そして、作成された表２０８の各列には、ＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１に基づき、表名列には「会員マスタ」が、改竄防止属性列にはパラメータＰ１で指定された改竄防止属性ありを示す「Ｙ」が、改竄防止有効化情報保持列名列にはパラメータＰ２で指定した「店長承認」が、起算日情報保持列名列にはパラメータＰ３で指定した「店長承認日」が、削除禁止期間情報保持列名列にはパラメータＰ４で指定した「有効期間」が保持される。
【００２５】
（行の更新および削除の手順）
次に、図３において、ＵＰＤＡＴＥ文３０１，３０３，３０５およびＤＥＬＥＴＥ文３０２，３０４，３０６は、図２で定義した「会員マスタ」という表においてその行の情報の更新および行の削除を行うＳＱＬの例を示したものである。これらのＳＱＬは、ユーザアプリケーションプログラム１２１ｂに記述されて、実行される。なお、本実施形態では、これらＳＱＬの実行日を２００４年２月２３日とする。また、データベース１３２の「会員マスタ」の表には、図３の表３１３に示す情報がすでにこの日以前に登録されているものとする。
【００２６】
ＵＰＤＡＴＥ文３０１は、会員番号「０００１」の行を更新するＳＱＬである。ユーザアプリケーションプログラム１２１ｂが実行され、ＵＰＤＡＴＥ文３０１の情報がデータベース管理システム１２２に投入されると、データベース管理システム１２２においてＳＱＬ処理部２０５が実行され、行の更新可否判定の処理が実行される。
【００２７】
すなわち、演算処理装置１１０は、ディクショナリ１３１から操作対象表「会員マスタ」の定義情報（図２の表２０８）と、操作対象表「会員マスタ」（図３の表３１３）の操作対象行である会員番号「０００１」の行の値を取得し、行の更新可否を判定する。図３の例の場合、会員番号「０００１」の行は、改竄防止有効化情報保持列である「店長承認」の値が有効であることを示す「Ｙ」であるため、その更新可否判定の結果は、更新不可となる。
【００２８】
なお、本実施形態では、改竄防止有効化情報保持列の値がナル値の場合は、改竄防止無効、何らかの値が格納されている場合を改竄防止有効とするが、改竄防止有効化情報保持列の値と改竄防止の有効・無効との関係については、特に限定はしない。また、改竄防止有効化情報保持列の値と改竄防止の有効・無効との関係は、図２のＣＲＥＡＴＥ  ＴＡＢＬＥ文２０１のパラメータＰ１〜Ｐ４とは異なるパラメータによって指定してもよい。
【００２９】
ＤＥＬＥＴＥ文３０２は、会員番号「０００１」の行を削除するＳＱＬであり、演算処理装置１１０は、ＵＰＤＡＴＥ文３０１の場合と同様にＳＱＬ処理部２０５を実行することにより、行の削除可否を判定する。図３の例では、会員番号「０００１」の行は改竄防止有効化情報保持列である「店長承認」の値が有効であることを示す「Ｙ」であるため、さらに、削除実行日が起算日情報保持列「店長承認日」の値から削除禁止期間情報保持列「有効期間」の値を加えた日付を超えているか否かを判定する。この場合、起算日が「２０００年５月１０日」、削除禁止期間が「３年」であるので、削除可能となるのは「２００３年５月１１日」以降である。従って、ＤＥＬＥＴＥ文３０２の実行日「２００４年２月２３日」は、削除可能となる「２００３年５月１１日」以降の日付であるため、ＤＥＬＥＴＥ文３０２のＳＱＬ処理部２０５における削除可否判定結果は、削除可となる。
【００３０】
ＳＱＬ処理部２０５で削除可と判定された場合は、ＳＱＬ処理部２０５において、行更新・削除処理部３１０の実行が起動され、行更新・削除処理部３１０が実行されることによって、データベース１３２中の「会員マスタ」表から会員番号「０００１」の行が削除される。
【００３１】
ＵＰＤＡＴＥ文３０３は、会員番号「０００２」の行を更新するＳＱＬであり、ＵＰＤＡＴＥ文３０１と同様にＳＱＬ処理部２０５において行の更新可否が判定される。会員番号「０００２」の行は、改竄防止有効化情報保持列である「店長承認」の値が有効であることを示す「Ｙ」であるため、ＵＰＤＡＴＥ文３０３のＳＱＬ処理部２０５での更新可否判定結果は更新不可となる。
【００３２】
ＤＥＬＥＴＥ文３０４は、会員番号「０００２」の行を削除するＳＱＬであり、ＤＥＬＥＴＥ文３０２と同様にＳＱＬ処理部２０５において行の削除可否が判定される。会員番号「０００２」の行は、改竄防止有効化情報保持列である「店長承認」の値が有効であることを示す「Ｙ」であるため、さらに、削除実行日が起算日情報保持列「店長承認日」の値から削除禁止期間情報保持列「有効期間」の値を加えた日付を超えているか否かを判定する。この場合、起算日が「２００３年２月１２日」、削除禁止期間が「３年」であるので、削除可能となるのは「２００６年２月１３日」以降となる。従って、ＤＥＬＥＴＥ文３０４の実行日「２００４年２月２３日」は、削除可能となる「２００６年２月１３日」以降ではないため、ＤＥＬＥＴＥ文３０４のＳＱＬ処理部２０５での削除可否判定結果は、削除不可となる。
【００３３】
ＵＰＤＡＴＥ文３０５は、会員番号「０００３」の行を更新するＳＱＬであり、ＵＰＤＡＴＥ文３０１と同様にＳＱＬ処理部２０５において行の更新可否が判定される。会員番号「０００３」の行は改竄防止有効化情報保持列である「店長承認」の値が無効であることを示す「ナル値」であるため、ＵＰＤＡＴＥ文３０５のＳＱＬ処理部２０５での更新可否判定結果は、更新可となる。
【００３４】
ＤＥＬＥＴＥ文３０６は、会員番号「０００３」の行を削除するＳＱＬであり、ＤＥＬＥＴＥ文３０２と同様にＳＱＬ処理部２０５において行の削除可否を判定する。会員番号「０００３」の行は改竄防止有効化情報保持列である「店長承認」の値が無効であることを示す「ナル値」であるため、ＤＥＬＥＴＥ文３０６のＳＱＬ処理部２０５での削除可否判定結果は削除可となる。
【００３５】
以上、ＵＰＤＡＴＥ文３０１，３０３，３０５およびＤＥＬＥＴＥ文３０２，３０４，３０６を例に、個々に行の更新および削除が実行される動作を説明したが、その実行結果をまとめて、図３の表３１２に示しておく。
【００３６】
（行更新可否判定、行削除可否判定の処理の流れ）
図４は、ＳＱＬ処理部２０５において演算処理装置１１０によって実行される行更新可否判定処理の流れを示した図である。
【００３７】
図４において、演算処理装置１１０は、まず、ディクショナリ１３１を参照し、更新対象表の改竄防止属性および改竄防止有効化属性保持列名を取得し（ステップＳ４０１）、取得した改竄防止属性の値が改竄防止を示す値であるか否かを判定する（ステップＳ４０２）。その結果、更新対象表の改竄防止属性の値が改竄防止を示す値でなかった場合には（ステップＳ４０２でＮＯ）、更新可と判定する（ステップＳ４０６）。
【００３８】
また、ステップＳ４０２の判定で改竄防止属性の値が改竄防止を示す値であった場合には（ステップＳ４０２でＹＥＳ）、データベース１３２を参照し、ステップＳ４０１で取得した更新対象表の改竄防止有効化属性保持列名で示される更新対象行中の改竄防止有効化情報保持列の値を取得する（ステップＳ４０３）。そして、更新対象行の改竄防止有効化情報保持列の値が改竄防止の有効化を示す値であるか否かを判定し（ステップＳ４０４）、その値が改竄防止の有効化を示す値でなかった場合には（ステップＳ４０４でＮＯ）、更新可と判定する（ステップＳ４０６）。また、ステップＳ４０４の判定で更新対象行の改竄防止有効化情報保持列の値が改竄防止の有効化を示す値であった場合には（ステップＳ４０４でＹＥＳ）、更新不可と判定する（ステップＳ４０５）。
【００３９】
図５は、ＳＱＬ処理部２０５において演算処理装置１１０によって実行される行削除可否判定処理の流れを示した図である。
【００４０】
図５において、演算処理装置１１０は、まず、ディクショナリ１３１を参照し、削除対象表の改竄防止属性、改竄防止有効化属性保持列名、起算日情報保持列名および削除禁止期間情報保持列名を取得し（ステップＳ５０１）、取得した改竄防止属性の値が改竄防止であることを示す値であるか否かを判定する（ステップＳ５０２）。その結果、削除対象表の改竄防止属性の値が改竄防止を示す値でなかった場合には（ステップＳ５０２でＮＯ）、削除可と判定する（ステップＳ５０７）。
【００４１】
また、ステップＳ５０２の判定で改竄防止属性の値が改竄防止を示す値であった場合には（ステップＳ５０２でＹＥＳ）、データベース１３２を参照し、ステップＳ５０１で取得した削除対象表の改竄防止有効化属性保持列名で示される削除対象行中の改竄防止有効化属性保持列の値、起算日情報保持列名で示される削除対象行中の起算日情報保持列の値および削除禁止期間情報保持列名で示される削除対象行中の削除禁止期間列の値を取得する（ステップＳ５０３）。そして、そのステップＳ５０３で取得した削除対象行の改竄防止有効化情報保持列の値が改竄防止の有効化を示す値であるか否かを判定する（ステップＳ５０４）。
【００４２】
このステップＳ５０４の判定で改竄防止有効化属性の値が有効でないことを示す値であった場合には（ステップＳ５０４でＮＯ）、削除可と判定する（ステップＳ５０７）。また、ステップＳ５０４の判定で改竄防止有効化属性の値が有効を示す値であった場合には（ステップＳ５０４でＹＥＳ）、削除を実行しようとしている現在日が、起算日情報保持列の値と削除禁止期間情報保持列の値とにより定まる起算日以降の削除禁止期間内に含まれているか否かを判定する（ステップＳ５０５）。その判定をするには、起算日情報保持列の値をＡ、削除禁止期間情報保持列の値をＢ、現在日をＣとしたとき、Ｃが、Ｃ＜Ａ、または、Ａ＋Ｂ＜Ｃを満たすか否かを判定すればよい。ステップＳ５０５の判定で、現在日が起算日以降の削除禁止期間内に含まれている場合には（ステップＳ５０５でＹＥＳ）、削除可と判定し（ステップＳ５０７）、現在日が起算日以降の削除禁止期間内に含まれていない場合には（ステップＳ５０５でＮＯ）、削除不可と判定する（ステップＳ５０６）。
【００４３】
以上、図１〜図５によって説明したように本実施形態においては、表のデータベースにおいて行毎に改竄防止属性を設定するために、改竄防止有効化情報保持列が利用されている。すなわち、ディクショナリ１３１の表２０８（図２参照）によって、改竄防止有効化情報保持列名として「店長承認」を指定し、データベース１３２における表３１３（図３参照）に「店長承認」の列を設ける。そうしておけば、その表のアクセス権者は、各行の「店長承認」の列の値として「Ｙ」を設定するか否かによって、各行それぞれに改竄防止属性を設定することができる。
【００４４】
以上のようにして、各行それぞれに改竄防止属性を設定しておけば、改竄防止属性が設定された行については、その行の情報の更新または行の削除を制限するデータベースの管理を行うことができる。すなわち、本実施形態に示したように、改竄防止属性が設定された行については、更新は一切行うことができない。また、改竄防止属性が設定された行の削除については、その行に含まれる削除禁止の起算日（「店長承認日」）から削除期間（「有効期間」）内には行うことができない。
【００４５】
このようなデータベースの管理をすることによって、データベースの表のアクセス権者が必要と判断する行の情報は、必要と判断する期間内、悪意ある第三者による改竄から保護される。また、アクセス権者の不注意による誤更新や誤削除からも保護される。一方、改竄防止属性が設定されない行については、アクセス権者は、その行の更新または削除を自由に行うことができる。
【００４６】
なお、以上の本実施形態においては、表そのものに改竄防止属性（パラメータＰ１）を設定し、この表の改竄防止属性の値が「Ｙ」のときのみ、改竄防止有効化情報保持列の値つまり「店長承認」の列の値が有効化されるとしている。しかし、表そのものに改竄防止属性は、特許文献１においても採用されている概念であり、このような表そのものに設定する改竄防止属性は、省略が可能であり、ないものとしても構わない。
【００４７】
また、本実施形態においては、データベース１３２は、リレーショナル・データベースとして説明したが、リレーショナル・データベースに限定されることなく種々のデータベースに適用可能である。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態に係るデータベース管理装置の構成を示した図である。
【図２】本発明の実施形態に係る表のデータベースにおいて、行毎の改竄防止を実現するための表定義文の例、および、その表定義文をディクショナリに登録する手順の例を示した図である。
【図３】本発明の実施形態に係る表のデータベースにおいて、図２に示した表定義文の例に基づき、行の情報を更新または行を削除する手順の例を示した図である。
【図４】本発明の実施形態に係るデータベース管理装置のＳＱＬ処理部において、演算処理装置によって実行される行更新可否判定処理の流れを示した図である。
【図５】本発明の実施形態に係るデータベース管理装置のＳＱＬ処理部において、演算処理装置によって実行される行削除可否判定処理の流れを示した図である。
【符号の説明】
【００４９】
１００  コンピュータ
１１０  演算処理装置
１２０  メモリ
１２１，１２１ａ，１２１ｂ  ユーザアプリケーションプログラム
１２２  データベース管理システム
１２３  オペレーティングシステム
１３０  ハードディスク装置
１３１  ディクショナリ
１３２  データベース
１４０  端末装置
２０５  ＳＱＬ処理部
２０６  表定義処理部
３１０  削除処理部
【図１】
2006004285.tif 000003
【図２】
2006004285.tif 000004
【図３】
2006004285.tif 000005
【図４】
2006004285.tif 000006
【図５】
2006004285.tif 000007