(57)【要約】【課題】追記型のＭＶＣＣにおけるオーバヘッドを減らすこと。【解決手段】管理情報記憶部２ａが、テーブル全体及び列の管理情報を記憶する。列の管理情報には、書き換え可能フラグが含まれる。また、定義処理部２１が、アノテーションとして一度だけ書き換え可能であることを示すｌｉｎｅａｒを含む列定義を受け付けて、書き換え可能フラグをｔｒｕｅに設定する。そして、更新部２２が、書き換え可能フラグがｔｒｕｅである列を書き換えにより更新する。【選択図】図２
2018085042.tif 000002
【特許請求の範囲】
【請求項１】
多版型同時実行制御を関係データベースに対して行うデータベース管理装置において、
テーブルの管理に用いられる管理情報を記憶する管理情報記憶部と、
前記テーブルに含まれる列のうち１つ以上の列について更新を１度だけ許可する許可情報が付加されたテーブル定義を受け付けて前記テーブルの管理情報を前記許可情報を含めて前記管理情報記憶部に格納する定義処理部と、
前記テーブルの更新の際に、前記許可情報に基づいて追記型又は書き換え型で更新を行う更新部と
を有することを特徴とするデータベース管理装置。
【請求項２】
前記更新部は、前記許可情報が付加された全ての列について１度目の更新であるか否かを判定し、前記許可情報が付加された全ての列が１度目の更新である場合に前記書き換え型で更新を行うことを特徴とする請求項１に記載のデータベース管理装置。
【請求項３】
前記更新部は、前記書き換え型で更新を行った際に、書き換えを行ったレコードの列の列管理情報として、更新を行ったトランザクションを識別するトランザクション識別子を書き込み、
前記列管理情報を用いて列が可視であるか否かを判定し、可視である場合に列の値を応答する参照部をさらに有することを特徴とする請求項２に記載のデータベース管理装置。
【請求項４】
前記定義処理部は、前記許可情報が付加された列のデータ型が固定長であるか否かを判定し、固定長である場合に、前記テーブルの管理情報を前記許可情報を含めて前記管理情報記憶部に格納することを特徴とする請求項１、２又は３に記載のデータベース管理装置。
【請求項５】
多版型同時実行制御を関係データベースに対して行うデータベース管理装置と、前記データベース管理装置が記憶するデータを用いて情報処理を行う情報処理装置とを有する情報処理システムにおいて、
前記データベース管理装置は、
テーブルの管理に用いられる管理情報を記憶する管理情報記憶部と、
前記テーブルに含まれる列のうち１つ以上の列について更新を１度だけ許可する許可情報が付加されたテーブル定義を受け付けて前記テーブルの管理情報を前記許可情報を含めて前記管理情報記憶部に格納する定義処理部と、
前記テーブルの更新の際に、前記許可情報に基づいて追記型又は書き換え型で更新を行う更新部と
を有することを特徴とする情報処理システム。
【請求項６】
多版型同時実行制御を関係データベースに対して行うデータベース管理装置によるデータベース管理方法において、
テーブルに含まれる列のうち１つ以上の列について更新を１度だけ許可する許可情報が付加されたテーブル定義を受け付けて前記テーブルの管理情報を前記許可情報を含めて管理情報記憶部に格納し、
前記テーブルの更新の際に、前記管理情報記憶部に格納された前記許可情報に基づいて追記型又は書き換え型で更新を行う
処理をコンピュータが実行することを特徴とするデータベース管理方法。
【請求項７】
多版型同時実行制御を関係データベースに対して行うデータベース管理プログラムにおいて、
テーブルに含まれる列のうち１つ以上の列について更新を１度だけ許可する許可情報が付加されたテーブル定義を受け付けて前記テーブルの管理情報を前記許可情報を含めて管理情報記憶部に格納し、
前記テーブルの更新の際に、前記管理情報記憶部に格納された前記許可情報に基づいて追記型又は書き換え型で更新を行う
処理をコンピュータに実行させることを特徴とするデータベース管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラムに関する。
【背景技術】
【０００２】
データベース管理システムには、多版型同時実行制御（ＭＶＣＣ：MultiVersion  Concurrency  Control）の機能を備えるものがある。ここで、ＭＶＣＣとは、複数のトランザクションによる同時アクセスがあるときに、トランザクション毎に内容が異なって見えるようにする機構である。
【０００３】
図１０は、ＭＶＣＣによるデータの見え方の例を示す図である。図１０は、テーブルＴ＿１の更新を行うトランザクションＡの実行中に、別のトランザクションＢがテーブルＴ＿１を参照する場合を示す。図１０に示すように、トランザクションＡは、ＵＰＤＡＴＥ文により、ｃｏｌ＿０が１であるレコードのｃｏｌ＿１を−１に更新する。すると、Ｔ＿１の１行目のｃｏｌ＿１はＮＵＬＬから−１に更新される。そして、トランザクションＡは更新のコミット（ｃｏｍｍｉｔ）を行う。
【０００４】
一方、トランザクションＢは、トランザクションＡの処理が終了する前にｓｅｌｅｃｔによりＴ＿１を参照する。このとき、Ｔ＿１には、トランザクションＡとトランザクションＢの両方からのアクセスがあるので、トランザクションＡによる更新がトランザクションＢからは見えない。すなわち、トランザクションＢから見えるＴ＿１の１行目のｃｏｌ＿１はＮＵＬＬである。
【０００５】
同時実行制御には、ロック機構が用いられることもあるが、ロック機構と比較すると、ＭＶＣＣには、読み込みロックの獲得と書き込みロックの獲得が競合しないという利点がある。
【０００６】
ＭＶＣＣの実現方法の１つに追記型のＭＶＣＣがある。追記型のＭＶＣＣは、テーブルデータの更新時に中身を書き換えるのではなく、更新後のデータをテーブルに追記する。図１１は、追記型によるＭＶＣＣの実現例を示す図である。図１１において、ｘｉｄは各トランザクションを識別するためのトランザクションＩＤである。
【０００７】
図１１に示すように、Ｔ＿１は、ｃｏｌ＿１とｃｏｌ＿２の他に、ｘｍｉｎとｘｍａｘの列を有する。ｘｍｉｎは、レコードを追記したトランザクションのトランザクションＩＤを示す。ｘｍａｘは、レコードを削除又は更新したトランザクションのトランザクションＩＤを示す。
【０００８】
例えば、Ｔ＿１の最初の行は、トランザクションＩＤが９０であるトランザクションによってＴ＿１に追加されている。なお、ｉｎｖａｌｉｄは、ｘｍａｘの初期値を示し、レコードの削除又は更新が行われていないことを示す。そして、ＵＰＤＡＴＥ文により、トランザクションＩＤが１００であるトランザクションＡが１行目を更新すると、１行目のｘｍａｘは１００に更新され、３行目が追加される。すなわち、ｃｏｌ＿１が−１に更新されたレコードがＴ＿１に追加される。
【０００９】
追記型のＭＶＣＣには、行の読み込みと書き込みが競合しない、更新データを別領域に保存する場合に必要となるポインタ操作が不要である等の利点がある。
【００１０】
なお、入力された複数のトランザクションが処理を行う項目に対して、その項目を一度だけ検索し、検索した項目に対して、複数のトランザクションの更新処理を順次メインメモリ内で行い、最後に更新した結果だけをデータベースに書き込む技術がある。この技術によれば、複数のトランザクションを効率よく処理することができる。
【００１１】
また、長大データ等の通常運用外のデータを記憶する外置きファイルと、該外置きファイルを管理する外置きファイル管理手段と、外置きファイルのリストを記憶する外置きファイルリスト格納ファイルとを有するデータベース管理システムがある。このデータベース管理システムは、ページの最古のバージョンを記憶するベースページ領域のファイルと共に、外置きファイルと外置きファイルリスト格納ファイルもファイルに直接アクセスしてバックアップする。したがって、このデータベース管理システムは、一般の利用者が複数のトランザクションを実行しているような通常運用状態であってもデータベースを構成するファイルに直接アクセスして単純な作業工程でバックアップを行うことができる。
【００１２】
また、データを更新又は削除することでデータベース内に生じる不要領域のサイズとページにおける不要領域の比率が閾値を超えた場合に、当該ページの不要領域に属するデータを不要領域の位置から解放することで、不要領域修復処理を効率よく行う技術がある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００９−２７１６６５号公報
【特許文献２】特開２００３−１６２４３８号公報
【特許文献３】特開２００８−１８１２９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
追記型のＭＶＣＣには、データの更新時に、一部のデータだけを更新する場合でもレコード全体をコピーする必要があるため、コピーのオーバーヘッドが大きいという問題がある。図１２は、追記型のＭＶＣＣの問題を説明するための図である。図１２に示すように、レコードＢのレコードＢ’への更新において、更新部分はレコード全体のわずかな部分である場合にも、レコードＢ全体をコピーする必要があり、オーバーヘッドが大きくなる。
【００１５】
また、追記型のＭＶＣＣでは、レコードＢのように削除又は更新されて無効となった無効領域を再利用する処理が必要になるが、無効領域の再利用のための処理のオーバヘッドも大きい。
【００１６】
本発明は、１つの側面では、追記型ＭＶＣＣのオーバーヘッドを少なくすることを目的とする。
【課題を解決するための手段】
【００１７】
１つの態様では、情報処理装置は、多版型同時実行制御を関係データベースに対して行うデータベース管理装置である。データベース管理装置は、管理情報記憶部と、定義処理部と、更新部とを有する。管理情報記憶部は、テーブルの管理に用いられる管理情報を記憶する。定義処理部は、テーブルに含まれる列のうち１つ以上の列について更新を１度だけ許可する許可情報が付加されたテーブル定義を受け付けてテーブルの管理情報を許可情報を含めて管理情報記憶部に格納する。更新部は、テーブルの更新の際に、許可情報に基づいて追記型又は書き換え型で更新を行う。
【発明の効果】
【００１８】
１つの側面では、本発明は、追記型ＭＶＣＣのオーバーヘッドを少なくすることができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、実施例に係るデータベース管理装置によるレコードの更新を説明するための図である。
【図２】図２は、実施例に係る情報処理システムの構成を示す図である。
【図３】図３は、テーブルの列の管理情報の例を示す図である。
【図４】図４は、書き換え可能列を含むレコードのデータ構造を示す図である。
【図５】図５は、書き換え可能列を判定する処理のフローを示すフローチャートである。
【図６】図６は、レコード更新処理のフローを示すフローチャートである。
【図７】図７は、レコード参照処理のフローを示すフローチャートである。
【図８】図８は、書き換え可能列の可視性の判定例を示す図である。
【図９】図９は、実施例に係るデータベース管理プログラムを実行するコンピュータのハードウェア構成を示す図である。
【図１０】図１０は、ＭＶＣＣによるデータの見え方の例を示す図である。
【図１１】図１１は、追記型によるＭＶＣＣの実現例を示す図である。
【図１２】図１２は、追記型のＭＶＣＣの問題を説明するための図である。
【発明を実施するための形態】
【００２０】
以下に、本願の開示するデータベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００２１】
まず、実施例に係るデータベース管理装置によるレコードの更新について説明する。図１は、実施例に係るデータベース管理装置によるレコードの更新を説明するための図である。図１に示すように、実施例に係るデータベース管理装置は、レコードＢの一部のデータを更新する場合に、レコードＢの一部を書き換えてレコードＢ’とする。図１では、更新箇所５が書き換えられた部分である。
【００２２】
ただし、書き換えを行うデータには制限があり、固定長のデータで更新が１度だけ行われるデータについてのみ書き換えによる更新が許される。更新によりサイズが大きくなる場合、データが記憶されている領域を更新データで書き換えることができない。また、更新が１度だけであれば、更新前の値はデフォルト値又は未定義値であるので、過去のデータの保管が不要となるが、更新が２度以上になると、過去のデータの保管が必要となる。
【００２３】
実施例に係るデータベース管理装置は、固定長のデータで更新が１度だけ行われるデータについてだけの更新である場合に、データの書き換えを行うことによって、レコード全体をコピーするオーバヘッドを減らすことができる。
【００２４】
なお、更新が１度だけ行われるデータの例としては、商品の購入顧客ＩＤ、購入顧客名、購入年月日、購入店舗名等を含む売上データがある。購入顧客ＩＤ、購入顧客名、購入年月日、購入店舗名等は、登録時にデータが不足して一度に全ては入力されず、後から一部のデータが追加されることがよくある。
【００２５】
次に、実施例に係る情報処理システムの構成について説明する。図２は、実施例に係る情報処理システムの構成を示す図である。図２に示すように、実施例に係る情報処理システム１は、データベース管理装置２と、端末装置３と、情報処理装置４とを有する。
【００２６】
データベース管理装置２は、追記型のＭＶＣＣの機能を有するリレーショナルデータベース管理装置である。データベース管理装置２は、情報処理装置４が利用するデータをリレーショナルデータベースとして記憶する。
【００２７】
端末装置３は、データベースの管理に用いられる装置である。端末装置３は、データベース管理者からアノテーション（annotation）の入ったテーブル定義文を受け付け、データベース管理装置２に送る。ここで、アノテーションの入ったテーブル定義文とは、列が一度だけ更新可能であることをアノテーションにより指定するテーブル定義文である。
【００２８】
以下に、列が一度だけ更新可能であることをアノテーションにより指定するテーブル定義文の例を示す。
ＣＲＥＡＴＥ  ＴＡＢＬＥ  ＜ｔａｂｌｅｎａｍｅ＞  （＜ｃｏｌｄｅｆ＞＋）
＜ｃｏｌｄｅｆ＞  ：：＝  ＜ｃｏｌｎａｍｅ＞  ＜ｔｙｐｅ＞＜ａｎｎｏｔａｔｉｏｎ＞｜...
【００２９】
「ＣＲＥＡＴＥ  ＴＡＢＬＥ」は、テーブルの定義であることを示す。＜ｔａｂｌｅｎａｍｅ＞は、定義するテーブルの名前である。＜ｃｏｌｄｅｆ＞＋は、列の定義が１つ以上あることを示す。＜ｃｏｌｄｅｆ＞  ：：＝は、列の定義を示す。＜ｃｏｌｎａｍｅ＞は、列の名前である。＜ｔｙｐｅ＞は、列のデータ型である。＜ａｎｎｏｔａｔｉｏｎ＞｜...は、いくつかのアノテーションがあってもよいことを示す。
【００３０】
例えば、ＣＲＥＡＴＥ  ＴＡＢＬＥ  ｔ  （ｃｏｌ＿０  ｉｎｔ，ｃｏｌ＿１  ｉｎｔ  ｌｉｎｅａｒ）は、テーブルｔのｃｏｌ＿１が１度だけ更新可能であることを定義する。「ｌｉｎｅａｒ」は、１度だけ更新可能であることを指定するアノテーションである。なお、「ｌｉｎｅａｒ」は一例であり、１度だけ更新可能であることを指定するアノテーションとして他の単語を用いてもよい。
【００３１】
情報処理装置４は、情報処理を行う装置であり、データベース管理装置２が管理するデータを利用する。なお、ここでは説明の便宜上、１台の情報処理装置４のみを示したが、複数の情報処理装置４がデータベース管理装置２が管理するデータを利用してもよい。
【００３２】
データベース管理装置２は、管理情報記憶部２ａと、データベース２ｂと、ＭＶＣＣ部２０とを有する。管理情報記憶部２ａは、データベース２ｂを管理するための情報を記憶する。具体的には、管理情報記憶部２ａは、テーブル全体の管理情報、テーブルの列の管理情報等を記憶する。なお、ここでは、テーブル全体の管理情報と、テーブルの列の管理情報とを合わせてテーブルの管理情報と呼ぶ。
【００３３】
図３は、テーブルの列の管理情報の例を示す図である。図３に示すように、テーブルの列の管理情報には、テーブル名、列名、型、書き換え可能フラグ等の属性の値がある。テーブル名は、列が属するテーブルの名前であり、例えばＴ＿１である。列名は、列を識別する名前であり、例えばｃｏｌ＿１である。型は、列のデータ型であり、例えばｉｎｔ（整数）である。テーブル名、列名、型等は、従来のデータベース管理装置が列の管理情報として記憶する情報である。
【００３４】
書き換え可能フラグは、列が書き換え可能か否かを示す情報である。値はｔｒｕｅ又はｆａｌｓｅである。値がｔｒｕｅである場合は、列は書き換え可能であり、値がｆａｌｓｅである場合には、列は書き換え可能ではない。書き換え可能フラグは、データベース管理装置２で列に関して追加された管理情報である。
【００３５】
データベース２ｂは、情報処理装置４が利用するデータすなわちテーブルを記憶する。テーブルには、１つ以上のレコードが含まれる。レコードには、書き換え可能列が含まれる場合がある。
【００３６】
図４は、書き換え可能列を含むレコードのデータ構造を示す図である。図４に示すように、レコードには、ヘッダーデータ３１とユーザーデータ３２とが含まれる。ヘッダーデータ３１は、レコードに関するデータであり、ユーザーデータ３２は、テーブルの１行分のデータである。
【００３７】
ヘッダーデータ３１には、従来ヘッダーデータ３３と書き換え可能列管理データ３４とが含まれる。従来ヘッダーデータ３３は、従来のデータベース管理装置のヘッダーデータに含まれるデータであり、従来ヘッダーデータ３３には、ｔ＿ｘｍｉｎ、ｔ＿ｘｍａｘが含まれる。
【００３８】
ここで、ｔ＿ｘｍｉｎは、レコードを追記したトランザクションのトランザクションＩＤであり、ｔ＿ｘｍａｘは、レコードを削除又は更新したトランザクションのトランザクションＩＤである。
【００３９】
書き換え可能列管理データ３４は、書き換え可能列を管理するためのデータであり、書き換え可能列毎にｃ＿ｘｍｉｎを含む。ここで、ｃ＿ｘｍｉｎは、対応する列を更新したトランザクションのトランザクションＩＤである。
【００４０】
ＭＶＣＣ部２０は、ＭＶＣＣを行う。ＭＶＣＣ部２０は、定義処理部２１と、更新部２２と、参照部２３とを有する。定義処理部２１は、テーブル定義文を処理し、テーブル全体の管理情報、列の管理情報等を管理情報記憶部２ａに格納する。定義処理部２１は、列に書き換え可能であることを示すアノテーションがあり、列のデータ型が固定長である場合には、列の書き換え可能フラグをｔｒｕｅとする。
【００４１】
更新部２２は、データベース２ｂの更新処理を行う。更新部２２は、レコードを更新する際に、更新する列に書き換え可能でない列が含まれる場合には、追記による更新を行う。一方、更新する列が全て書き換え可能である場合には、更新部２２は、書き換えによる更新を行う。ただし、書き換え可能列の更新が２回目以上である場合には、更新部２２は、更新を行わない。
【００４２】
参照部２３は、データベース２ｂの参照処理を行う。参照部２３は、レコードの参照要求に対して、レコード全体が可視であるか否かを判定し、可視でない場合には、レコードの応答を行わない。また、参照部２３は、レコードに書き換え可能列が含まれる場合には、列毎に可視性を判定し、可視でない列については応答するレコードにデフォルト値を設定する。
【００４３】
次に、定義処理部２１が書き換え可能列を判定する処理のフローについて説明する。なお、書き換え可能列を判定する処理は、定義処理部２１による処理の一部である。図５は、書き換え可能列を判定する処理のフローを示すフローチャートである。図５に示すように、定義処理部２１は、Ｒを各列の定義として、Ｒ毎にステップＳ１〜ステップＳ４の処理を行う。
【００４４】
すなわち、定義処理部２１は、Ｒに書き換え可能アノテーションがあるか否かを判定し（ステップＳ１）、ない場合には、次の列を処理する。一方、Ｒに書き換え可能アノテーションがある場合には、定義処理部２１は、列のデータ型が固定長であるか否かを判定する（ステップＳ２）。
【００４５】
そして、列のデータ型が固定長である場合には、定義処理部２１は、書き換え可能列にＲを追加し（ステップＳ３）、列のデータ型が固定長でない場合には、エラー情報を出力する（ステップＳ４）。
【００４６】
そして、全てのＲについてステップＳ１〜ステップＳ４の処理が終了すると、定義処理部２１は、書き換え可能列の情報を参照して、管理情報を更新する（ステップＳ５）。
【００４７】
このように、定義処理部２１が、各列の定義に基づいて書き換え可能列を判定することによって、データベース管理装置２は、書き換え可能列の更新及び参照を行うことができる。
【００４８】
次に、更新部２２によるレコード更新処理のフローについて説明する。図６は、レコード更新処理のフローを示すフローチャートである。図６に示すように、更新部２２は、更新する列が全て書き換え可能であるか否かを判定し（ステップＳ１１）、更新する列に書き換え可能でない列がある場合には、追記による更新を行う（ステップＳ１２）。
【００４９】
一方、更新する列が全て書き換え可能である場合には、更新部２２は、Ｃを更新列として、Ｃ毎にステップＳ１３〜ステップＳ１５の処理を行う。すなわち、更新部２２は、Ｃに対応するｃ＿ｘｍｉｎがｉｎｖａｌｉｄであるか否かを判定し（ステップＳ１３）、ｉｎｖａｌｉｄでない場合には、これまでに書き換えた列に対応するｃ＿ｘｍｉｎを元に戻しエラー終了する（ステップＳ１４）。ここで、元に戻すとは、デフォルト値に戻すことである。
【００５０】
一方、Ｃに対応するｃ＿ｘｍｉｎがｉｎｖａｌｉｄである場合には、更新部２２は、列の値と、対応するｃ＿ｘｍｉｎとを書き換える（ステップＳ１５）。そして、更新部２２は、全てのＣについてステップＳ１３〜ステップＳ１５の処理を行うと、レコード更新処理を終了する。
【００５１】
このように、更新部２２は、書き換え可能列に対応するｃ＿ｘｍｉｎがｉｎｖａｌｉｄであるか否かを判定することによって、書き換え可能列が２回以上書き換えられることを防ぐことができる。
【００５２】
次に、参照部２３によるレコード参照処理のフローについて説明する。図７は、レコード参照処理のフローを示すフローチャートである。図７に示すように、参照部２３は、参照されるレコードに対する可視性を判断する（ステップＳ２１）。このとき、参照部２３は、参照されるレコードのｔ＿ｘｍｉｎ及びｔ＿ｘｍａｘを用いて可視性を判断する。そして、参照部２３は、判断結果が可視であるか否かを判定し（ステップＳ２２）、可視でない場合には、レコードは不可視なので終了する（ステップＳ２３）。
【００５３】
一方、判断結果が可視である場合には、参照部２３は、応答のレコード領域を準備してＲとし（ステップＳ２４）、レコードが属するテーブルの管理情報を取得する（ステップＳ２５）。そして、参照部２３は、Ｃを書き換え可能列として、Ｃ毎にステップＳ２６〜ステップＳ２８の処理を行う。
【００５４】
すなわち、参照部２３は、Ｃに対する可視性を判断する（ステップＳ２６）。ここで、参照部２３は、Ｃに対応するｃ＿ｘｍｉｎを用いて可視性を判断する。そして、参照部２３は、判断結果が可視であるか否かを判定し（ステップＳ２７）、可視でない場合には、Ｃは不可視なので、ＲのＣ列にデフォルト値を設定する（ステップＳ２８）。
【００５５】
そして、参照部２３は、全てのＣについてステップＳ２６〜ステップＳ２８の処理を行うと、Ｒを応答する（ステップＳ２９）。
【００５６】
このように、参照部２３は、レコードの可視性とともに書き換え可能列の可視性を判断することによって、参照可能なデータだけを応答することができる。
【００５７】
次に、書き換え可能列の可視性の判定例について説明する。図８は、書き換え可能列の可視性の判定例を示す図である。図８では、ｃｏｌ＿１が書き換え可能列であり、ｃｏｌ＿１＿ｘｍｉｎは、ｃｏｌ＿１を書き換えたトランザクションのトランザクションＩＤを示す。
【００５８】
図８に示すように、Ｔ＿１の先頭のレコードのｃｏｌ＿１は、トランザクションＩＤが１００であるトランザクションＡによって−１に書き換えられる。そして、トランザクションＡの実行中に、トランザクションＩＤが１０１であるトランザクションＢがＴ＿１の先頭のレコードを参照すると、トランザクションＢのトランザクションＩＤ（１０１）はｃｏｌ＿１＿ｘｍｉｎ（１００）より大きい。したがって、ｃｏｌ＿１は不可視と判定され、トランザクションＢへの応答では、ｃｏｌ＿１の値はＮＵＬＬである。
【００５９】
上述してきたように、実施例では、管理情報記憶部２ａが、テーブル全体及び列の管理情報を記憶する。列の管理情報には、書き換え可能フラグが含まれる。また、定義処理部２１が、アノテーションとしてｌｉｎｅａｒを含む列定義を受け付けて、列のデータ型が固定長である場合に、書き換え可能フラグをｔｒｕｅに設定する。そして、更新部２２が、更新する列の書き換え可能フラグが全てｔｒｕｅである場合に、書き換えによりレコードを更新する。したがって、データベース管理装置２は、全て追記型で更新する場合と比較して、オーバーヘッドを少なくすることができる。
【００６０】
また、実施例では、更新部２２は、更新する列の書き換え可能フラグが全てｔｒｕｅであるか否かを判定し、書き換えを行った列に対応するｃ＿ｘｍｉｎに更新を行ったトランザクションのトランザクションＩＤを書き込む。そして、参照部２３が、書き換え可能列を参照する際に、ｃ＿ｘｍｉｎを用いて列の可視性を判定し、可視である場合に書き換え可能列のデータを応答する。したがって、データベース管理装置２は、書き換えられた列に対してもＭＶＣＣを行うことができる。
【００６１】
なお、実施例では、データベース管理装置２について説明したが、データベース管理装置２が有する構成をソフトウェアによって実現することで、同様の機能を有するデータベース管理プログラムを得ることができる。そこで、データベース管理プログラムを実行するコンピュータについて説明する。
【００６２】
図９は、実施例に係るデータベース管理プログラムを実行するコンピュータのハードウェア構成を示す図である。図９に示すように、コンピュータ５０は、メインメモリ５１と、ＣＰＵ（Central  Processing  Unit）５２と、ＬＡＮ（Local  Area  Network）インタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。
【００６３】
メインメモリ５１は、プログラムやプログラムの実行途中結果などを記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。
【００６４】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ５５は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤの読み書きを行う装置である。
【００６５】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。
【００６６】
そして、コンピュータ５０において実行されるデータベース管理プログラムは、ＤＶＤに記憶され、ＯＤＤ５７によってＤＶＤから読み出されてコンピュータ５０にインストールされる。あるいは、データベース管理プログラムは、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ５０にインストールされる。そして、インストールされたデータベース管理プログラムは、ＨＤＤ５４に記憶され、メインメモリ５１に読み出されてＣＰＵ５２によって実行される。
【符号の説明】
【００６７】
１    情報処理システム
２    データベース管理装置
２ａ    管理情報記憶部
２ｂ    データベース
３    端末装置
４    情報処理装置
５    更新箇所
２０    ＭＶＣＣ部
２１    定義処理部
２２    更新部
２３    参照部
３１    ヘッダーデータ
３２    ユーザーデータ
３３    従来ヘッダーデータ
３４    書き換え可能列管理データ
５０    コンピュータ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
【図１】
2018085042.tif 000003
【図２】
2018085042.tif 000004
【図３】
2018085042.tif 000005
【図４】
2018085042.tif 000006
【図５】
2018085042.tif 000007
【図６】
2018085042.tif 000008
【図７】
2018085042.tif 000009
【図８】
2018085042.tif 000010
【図９】
2018085042.tif 000011
【図１０】
2018085042.tif 000012
【図１１】
2018085042.tif 000013
【図１２】
2018085042.tif 000014