JP2018085042A - データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム - Google Patents

データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム Download PDF

Info

Publication number
JP2018085042A
JP2018085042A JP2016229041A JP2016229041A JP2018085042A JP 2018085042 A JP2018085042 A JP 2018085042A JP 2016229041 A JP2016229041 A JP 2016229041A JP 2016229041 A JP2016229041 A JP 2016229041A JP 2018085042 A JP2018085042 A JP 2018085042A
Authority
JP
Japan
Prior art keywords
column
database management
information
update
management information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016229041A
Other languages
English (en)
Inventor
智弘 清水
Toshihiro Shimizu
智弘 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016229041A priority Critical patent/JP2018085042A/ja
Priority to US15/693,886 priority patent/US20180150498A1/en
Publication of JP2018085042A publication Critical patent/JP2018085042A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】追記型のMVCCにおけるオーバヘッドを減らすこと。
【解決手段】管理情報記憶部2aが、テーブル全体及び列の管理情報を記憶する。列の管理情報には、書き換え可能フラグが含まれる。また、定義処理部21が、アノテーションとして一度だけ書き換え可能であることを示すlinearを含む列定義を受け付けて、書き換え可能フラグをtrueに設定する。そして、更新部22が、書き換え可能フラグがtrueである列を書き換えにより更新する。
【選択図】図2

Description

本発明は、データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラムに関する。
データベース管理システムには、多版型同時実行制御(MVCC:MultiVersion Concurrency Control)の機能を備えるものがある。ここで、MVCCとは、複数のトランザクションによる同時アクセスがあるときに、トランザクション毎に内容が異なって見えるようにする機構である。
図10は、MVCCによるデータの見え方の例を示す図である。図10は、テーブルT_1の更新を行うトランザクションAの実行中に、別のトランザクションBがテーブルT_1を参照する場合を示す。図10に示すように、トランザクションAは、UPDATE文により、col_0が1であるレコードのcol_1を−1に更新する。すると、T_1の1行目のcol_1はNULLから−1に更新される。そして、トランザクションAは更新のコミット(commit)を行う。
一方、トランザクションBは、トランザクションAの処理が終了する前にselectによりT_1を参照する。このとき、T_1には、トランザクションAとトランザクションBの両方からのアクセスがあるので、トランザクションAによる更新がトランザクションBからは見えない。すなわち、トランザクションBから見えるT_1の1行目のcol_1はNULLである。
同時実行制御には、ロック機構が用いられることもあるが、ロック機構と比較すると、MVCCには、読み込みロックの獲得と書き込みロックの獲得が競合しないという利点がある。
MVCCの実現方法の1つに追記型のMVCCがある。追記型のMVCCは、テーブルデータの更新時に中身を書き換えるのではなく、更新後のデータをテーブルに追記する。図11は、追記型によるMVCCの実現例を示す図である。図11において、xidは各トランザクションを識別するためのトランザクションIDである。
図11に示すように、T_1は、col_1とcol_2の他に、xminとxmaxの列を有する。xminは、レコードを追記したトランザクションのトランザクションIDを示す。xmaxは、レコードを削除又は更新したトランザクションのトランザクションIDを示す。
例えば、T_1の最初の行は、トランザクションIDが90であるトランザクションによってT_1に追加されている。なお、invalidは、xmaxの初期値を示し、レコードの削除又は更新が行われていないことを示す。そして、UPDATE文により、トランザクションIDが100であるトランザクションAが1行目を更新すると、1行目のxmaxは100に更新され、3行目が追加される。すなわち、col_1が−1に更新されたレコードがT_1に追加される。
追記型のMVCCには、行の読み込みと書き込みが競合しない、更新データを別領域に保存する場合に必要となるポインタ操作が不要である等の利点がある。
なお、入力された複数のトランザクションが処理を行う項目に対して、その項目を一度だけ検索し、検索した項目に対して、複数のトランザクションの更新処理を順次メインメモリ内で行い、最後に更新した結果だけをデータベースに書き込む技術がある。この技術によれば、複数のトランザクションを効率よく処理することができる。
また、長大データ等の通常運用外のデータを記憶する外置きファイルと、該外置きファイルを管理する外置きファイル管理手段と、外置きファイルのリストを記憶する外置きファイルリスト格納ファイルとを有するデータベース管理システムがある。このデータベース管理システムは、ページの最古のバージョンを記憶するベースページ領域のファイルと共に、外置きファイルと外置きファイルリスト格納ファイルもファイルに直接アクセスしてバックアップする。したがって、このデータベース管理システムは、一般の利用者が複数のトランザクションを実行しているような通常運用状態であってもデータベースを構成するファイルに直接アクセスして単純な作業工程でバックアップを行うことができる。
また、データを更新又は削除することでデータベース内に生じる不要領域のサイズとページにおける不要領域の比率が閾値を超えた場合に、当該ページの不要領域に属するデータを不要領域の位置から解放することで、不要領域修復処理を効率よく行う技術がある。
特開2009−271665号公報 特開2003−162438号公報 特開2008−181297号公報
追記型のMVCCには、データの更新時に、一部のデータだけを更新する場合でもレコード全体をコピーする必要があるため、コピーのオーバーヘッドが大きいという問題がある。図12は、追記型のMVCCの問題を説明するための図である。図12に示すように、レコードBのレコードB’への更新において、更新部分はレコード全体のわずかな部分である場合にも、レコードB全体をコピーする必要があり、オーバーヘッドが大きくなる。
また、追記型のMVCCでは、レコードBのように削除又は更新されて無効となった無効領域を再利用する処理が必要になるが、無効領域の再利用のための処理のオーバヘッドも大きい。
本発明は、1つの側面では、追記型MVCCのオーバーヘッドを少なくすることを目的とする。
1つの態様では、情報処理装置は、多版型同時実行制御を関係データベースに対して行うデータベース管理装置である。データベース管理装置は、管理情報記憶部と、定義処理部と、更新部とを有する。管理情報記憶部は、テーブルの管理に用いられる管理情報を記憶する。定義処理部は、テーブルに含まれる列のうち1つ以上の列について更新を1度だけ許可する許可情報が付加されたテーブル定義を受け付けてテーブルの管理情報を許可情報を含めて管理情報記憶部に格納する。更新部は、テーブルの更新の際に、許可情報に基づいて追記型又は書き換え型で更新を行う。
1つの側面では、本発明は、追記型MVCCのオーバーヘッドを少なくすることができる。
図1は、実施例に係るデータベース管理装置によるレコードの更新を説明するための図である。 図2は、実施例に係る情報処理システムの構成を示す図である。 図3は、テーブルの列の管理情報の例を示す図である。 図4は、書き換え可能列を含むレコードのデータ構造を示す図である。 図5は、書き換え可能列を判定する処理のフローを示すフローチャートである。 図6は、レコード更新処理のフローを示すフローチャートである。 図7は、レコード参照処理のフローを示すフローチャートである。 図8は、書き換え可能列の可視性の判定例を示す図である。 図9は、実施例に係るデータベース管理プログラムを実行するコンピュータのハードウェア構成を示す図である。 図10は、MVCCによるデータの見え方の例を示す図である。 図11は、追記型によるMVCCの実現例を示す図である。 図12は、追記型のMVCCの問題を説明するための図である。
以下に、本願の開示するデータベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係るデータベース管理装置によるレコードの更新について説明する。図1は、実施例に係るデータベース管理装置によるレコードの更新を説明するための図である。図1に示すように、実施例に係るデータベース管理装置は、レコードBの一部のデータを更新する場合に、レコードBの一部を書き換えてレコードB’とする。図1では、更新箇所5が書き換えられた部分である。
ただし、書き換えを行うデータには制限があり、固定長のデータで更新が1度だけ行われるデータについてのみ書き換えによる更新が許される。更新によりサイズが大きくなる場合、データが記憶されている領域を更新データで書き換えることができない。また、更新が1度だけであれば、更新前の値はデフォルト値又は未定義値であるので、過去のデータの保管が不要となるが、更新が2度以上になると、過去のデータの保管が必要となる。
実施例に係るデータベース管理装置は、固定長のデータで更新が1度だけ行われるデータについてだけの更新である場合に、データの書き換えを行うことによって、レコード全体をコピーするオーバヘッドを減らすことができる。
なお、更新が1度だけ行われるデータの例としては、商品の購入顧客ID、購入顧客名、購入年月日、購入店舗名等を含む売上データがある。購入顧客ID、購入顧客名、購入年月日、購入店舗名等は、登録時にデータが不足して一度に全ては入力されず、後から一部のデータが追加されることがよくある。
次に、実施例に係る情報処理システムの構成について説明する。図2は、実施例に係る情報処理システムの構成を示す図である。図2に示すように、実施例に係る情報処理システム1は、データベース管理装置2と、端末装置3と、情報処理装置4とを有する。
データベース管理装置2は、追記型のMVCCの機能を有するリレーショナルデータベース管理装置である。データベース管理装置2は、情報処理装置4が利用するデータをリレーショナルデータベースとして記憶する。
端末装置3は、データベースの管理に用いられる装置である。端末装置3は、データベース管理者からアノテーション(annotation)の入ったテーブル定義文を受け付け、データベース管理装置2に送る。ここで、アノテーションの入ったテーブル定義文とは、列が一度だけ更新可能であることをアノテーションにより指定するテーブル定義文である。
以下に、列が一度だけ更新可能であることをアノテーションにより指定するテーブル定義文の例を示す。
CREATE TABLE <tablename> (<coldef>+)
<coldef> ::= <colname> <type><annotation>|...
「CREATE TABLE」は、テーブルの定義であることを示す。<tablename>は、定義するテーブルの名前である。<coldef>+は、列の定義が1つ以上あることを示す。<coldef> ::=は、列の定義を示す。<colname>は、列の名前である。<type>は、列のデータ型である。<annotation>|...は、いくつかのアノテーションがあってもよいことを示す。
例えば、CREATE TABLE t (col_0 int,col_1 int linear)は、テーブルtのcol_1が1度だけ更新可能であることを定義する。「linear」は、1度だけ更新可能であることを指定するアノテーションである。なお、「linear」は一例であり、1度だけ更新可能であることを指定するアノテーションとして他の単語を用いてもよい。
情報処理装置4は、情報処理を行う装置であり、データベース管理装置2が管理するデータを利用する。なお、ここでは説明の便宜上、1台の情報処理装置4のみを示したが、複数の情報処理装置4がデータベース管理装置2が管理するデータを利用してもよい。
データベース管理装置2は、管理情報記憶部2aと、データベース2bと、MVCC部20とを有する。管理情報記憶部2aは、データベース2bを管理するための情報を記憶する。具体的には、管理情報記憶部2aは、テーブル全体の管理情報、テーブルの列の管理情報等を記憶する。なお、ここでは、テーブル全体の管理情報と、テーブルの列の管理情報とを合わせてテーブルの管理情報と呼ぶ。
図3は、テーブルの列の管理情報の例を示す図である。図3に示すように、テーブルの列の管理情報には、テーブル名、列名、型、書き換え可能フラグ等の属性の値がある。テーブル名は、列が属するテーブルの名前であり、例えばT_1である。列名は、列を識別する名前であり、例えばcol_1である。型は、列のデータ型であり、例えばint(整数)である。テーブル名、列名、型等は、従来のデータベース管理装置が列の管理情報として記憶する情報である。
書き換え可能フラグは、列が書き換え可能か否かを示す情報である。値はtrue又はfalseである。値がtrueである場合は、列は書き換え可能であり、値がfalseである場合には、列は書き換え可能ではない。書き換え可能フラグは、データベース管理装置2で列に関して追加された管理情報である。
データベース2bは、情報処理装置4が利用するデータすなわちテーブルを記憶する。テーブルには、1つ以上のレコードが含まれる。レコードには、書き換え可能列が含まれる場合がある。
図4は、書き換え可能列を含むレコードのデータ構造を示す図である。図4に示すように、レコードには、ヘッダーデータ31とユーザーデータ32とが含まれる。ヘッダーデータ31は、レコードに関するデータであり、ユーザーデータ32は、テーブルの1行分のデータである。
ヘッダーデータ31には、従来ヘッダーデータ33と書き換え可能列管理データ34とが含まれる。従来ヘッダーデータ33は、従来のデータベース管理装置のヘッダーデータに含まれるデータであり、従来ヘッダーデータ33には、t_xmin、t_xmaxが含まれる。
ここで、t_xminは、レコードを追記したトランザクションのトランザクションIDであり、t_xmaxは、レコードを削除又は更新したトランザクションのトランザクションIDである。
書き換え可能列管理データ34は、書き換え可能列を管理するためのデータであり、書き換え可能列毎にc_xminを含む。ここで、c_xminは、対応する列を更新したトランザクションのトランザクションIDである。
MVCC部20は、MVCCを行う。MVCC部20は、定義処理部21と、更新部22と、参照部23とを有する。定義処理部21は、テーブル定義文を処理し、テーブル全体の管理情報、列の管理情報等を管理情報記憶部2aに格納する。定義処理部21は、列に書き換え可能であることを示すアノテーションがあり、列のデータ型が固定長である場合には、列の書き換え可能フラグをtrueとする。
更新部22は、データベース2bの更新処理を行う。更新部22は、レコードを更新する際に、更新する列に書き換え可能でない列が含まれる場合には、追記による更新を行う。一方、更新する列が全て書き換え可能である場合には、更新部22は、書き換えによる更新を行う。ただし、書き換え可能列の更新が2回目以上である場合には、更新部22は、更新を行わない。
参照部23は、データベース2bの参照処理を行う。参照部23は、レコードの参照要求に対して、レコード全体が可視であるか否かを判定し、可視でない場合には、レコードの応答を行わない。また、参照部23は、レコードに書き換え可能列が含まれる場合には、列毎に可視性を判定し、可視でない列については応答するレコードにデフォルト値を設定する。
次に、定義処理部21が書き換え可能列を判定する処理のフローについて説明する。なお、書き換え可能列を判定する処理は、定義処理部21による処理の一部である。図5は、書き換え可能列を判定する処理のフローを示すフローチャートである。図5に示すように、定義処理部21は、Rを各列の定義として、R毎にステップS1〜ステップS4の処理を行う。
すなわち、定義処理部21は、Rに書き換え可能アノテーションがあるか否かを判定し(ステップS1)、ない場合には、次の列を処理する。一方、Rに書き換え可能アノテーションがある場合には、定義処理部21は、列のデータ型が固定長であるか否かを判定する(ステップS2)。
そして、列のデータ型が固定長である場合には、定義処理部21は、書き換え可能列にRを追加し(ステップS3)、列のデータ型が固定長でない場合には、エラー情報を出力する(ステップS4)。
そして、全てのRについてステップS1〜ステップS4の処理が終了すると、定義処理部21は、書き換え可能列の情報を参照して、管理情報を更新する(ステップS5)。
このように、定義処理部21が、各列の定義に基づいて書き換え可能列を判定することによって、データベース管理装置2は、書き換え可能列の更新及び参照を行うことができる。
次に、更新部22によるレコード更新処理のフローについて説明する。図6は、レコード更新処理のフローを示すフローチャートである。図6に示すように、更新部22は、更新する列が全て書き換え可能であるか否かを判定し(ステップS11)、更新する列に書き換え可能でない列がある場合には、追記による更新を行う(ステップS12)。
一方、更新する列が全て書き換え可能である場合には、更新部22は、Cを更新列として、C毎にステップS13〜ステップS15の処理を行う。すなわち、更新部22は、Cに対応するc_xminがinvalidであるか否かを判定し(ステップS13)、invalidでない場合には、これまでに書き換えた列に対応するc_xminを元に戻しエラー終了する(ステップS14)。ここで、元に戻すとは、デフォルト値に戻すことである。
一方、Cに対応するc_xminがinvalidである場合には、更新部22は、列の値と、対応するc_xminとを書き換える(ステップS15)。そして、更新部22は、全てのCについてステップS13〜ステップS15の処理を行うと、レコード更新処理を終了する。
このように、更新部22は、書き換え可能列に対応するc_xminがinvalidであるか否かを判定することによって、書き換え可能列が2回以上書き換えられることを防ぐことができる。
次に、参照部23によるレコード参照処理のフローについて説明する。図7は、レコード参照処理のフローを示すフローチャートである。図7に示すように、参照部23は、参照されるレコードに対する可視性を判断する(ステップS21)。このとき、参照部23は、参照されるレコードのt_xmin及びt_xmaxを用いて可視性を判断する。そして、参照部23は、判断結果が可視であるか否かを判定し(ステップS22)、可視でない場合には、レコードは不可視なので終了する(ステップS23)。
一方、判断結果が可視である場合には、参照部23は、応答のレコード領域を準備してRとし(ステップS24)、レコードが属するテーブルの管理情報を取得する(ステップS25)。そして、参照部23は、Cを書き換え可能列として、C毎にステップS26〜ステップS28の処理を行う。
すなわち、参照部23は、Cに対する可視性を判断する(ステップS26)。ここで、参照部23は、Cに対応するc_xminを用いて可視性を判断する。そして、参照部23は、判断結果が可視であるか否かを判定し(ステップS27)、可視でない場合には、Cは不可視なので、RのC列にデフォルト値を設定する(ステップS28)。
そして、参照部23は、全てのCについてステップS26〜ステップS28の処理を行うと、Rを応答する(ステップS29)。
このように、参照部23は、レコードの可視性とともに書き換え可能列の可視性を判断することによって、参照可能なデータだけを応答することができる。
次に、書き換え可能列の可視性の判定例について説明する。図8は、書き換え可能列の可視性の判定例を示す図である。図8では、col_1が書き換え可能列であり、col_1_xminは、col_1を書き換えたトランザクションのトランザクションIDを示す。
図8に示すように、T_1の先頭のレコードのcol_1は、トランザクションIDが100であるトランザクションAによって−1に書き換えられる。そして、トランザクションAの実行中に、トランザクションIDが101であるトランザクションBがT_1の先頭のレコードを参照すると、トランザクションBのトランザクションID(101)はcol_1_xmin(100)より大きい。したがって、col_1は不可視と判定され、トランザクションBへの応答では、col_1の値はNULLである。
上述してきたように、実施例では、管理情報記憶部2aが、テーブル全体及び列の管理情報を記憶する。列の管理情報には、書き換え可能フラグが含まれる。また、定義処理部21が、アノテーションとしてlinearを含む列定義を受け付けて、列のデータ型が固定長である場合に、書き換え可能フラグをtrueに設定する。そして、更新部22が、更新する列の書き換え可能フラグが全てtrueである場合に、書き換えによりレコードを更新する。したがって、データベース管理装置2は、全て追記型で更新する場合と比較して、オーバーヘッドを少なくすることができる。
また、実施例では、更新部22は、更新する列の書き換え可能フラグが全てtrueであるか否かを判定し、書き換えを行った列に対応するc_xminに更新を行ったトランザクションのトランザクションIDを書き込む。そして、参照部23が、書き換え可能列を参照する際に、c_xminを用いて列の可視性を判定し、可視である場合に書き換え可能列のデータを応答する。したがって、データベース管理装置2は、書き換えられた列に対してもMVCCを行うことができる。
なお、実施例では、データベース管理装置2について説明したが、データベース管理装置2が有する構成をソフトウェアによって実現することで、同様の機能を有するデータベース管理プログラムを得ることができる。そこで、データベース管理プログラムを実行するコンピュータについて説明する。
図9は、実施例に係るデータベース管理プログラムを実行するコンピュータのハードウェア構成を示す図である。図9に示すように、コンピュータ50は、メインメモリ51と、CPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
メインメモリ51は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
そして、コンピュータ50において実行されるデータベース管理プログラムは、DVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、データベース管理プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされたデータベース管理プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
1 情報処理システム
2 データベース管理装置
2a 管理情報記憶部
2b データベース
3 端末装置
4 情報処理装置
5 更新箇所
20 MVCC部
21 定義処理部
22 更新部
23 参照部
31 ヘッダーデータ
32 ユーザーデータ
33 従来ヘッダーデータ
34 書き換え可能列管理データ
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD

Claims (7)

  1. 多版型同時実行制御を関係データベースに対して行うデータベース管理装置において、
    テーブルの管理に用いられる管理情報を記憶する管理情報記憶部と、
    前記テーブルに含まれる列のうち1つ以上の列について更新を1度だけ許可する許可情報が付加されたテーブル定義を受け付けて前記テーブルの管理情報を前記許可情報を含めて前記管理情報記憶部に格納する定義処理部と、
    前記テーブルの更新の際に、前記許可情報に基づいて追記型又は書き換え型で更新を行う更新部と
    を有することを特徴とするデータベース管理装置。
  2. 前記更新部は、前記許可情報が付加された全ての列について1度目の更新であるか否かを判定し、前記許可情報が付加された全ての列が1度目の更新である場合に前記書き換え型で更新を行うことを特徴とする請求項1に記載のデータベース管理装置。
  3. 前記更新部は、前記書き換え型で更新を行った際に、書き換えを行ったレコードの列の列管理情報として、更新を行ったトランザクションを識別するトランザクション識別子を書き込み、
    前記列管理情報を用いて列が可視であるか否かを判定し、可視である場合に列の値を応答する参照部をさらに有することを特徴とする請求項2に記載のデータベース管理装置。
  4. 前記定義処理部は、前記許可情報が付加された列のデータ型が固定長であるか否かを判定し、固定長である場合に、前記テーブルの管理情報を前記許可情報を含めて前記管理情報記憶部に格納することを特徴とする請求項1、2又は3に記載のデータベース管理装置。
  5. 多版型同時実行制御を関係データベースに対して行うデータベース管理装置と、前記データベース管理装置が記憶するデータを用いて情報処理を行う情報処理装置とを有する情報処理システムにおいて、
    前記データベース管理装置は、
    テーブルの管理に用いられる管理情報を記憶する管理情報記憶部と、
    前記テーブルに含まれる列のうち1つ以上の列について更新を1度だけ許可する許可情報が付加されたテーブル定義を受け付けて前記テーブルの管理情報を前記許可情報を含めて前記管理情報記憶部に格納する定義処理部と、
    前記テーブルの更新の際に、前記許可情報に基づいて追記型又は書き換え型で更新を行う更新部と
    を有することを特徴とする情報処理システム。
  6. 多版型同時実行制御を関係データベースに対して行うデータベース管理装置によるデータベース管理方法において、
    テーブルに含まれる列のうち1つ以上の列について更新を1度だけ許可する許可情報が付加されたテーブル定義を受け付けて前記テーブルの管理情報を前記許可情報を含めて管理情報記憶部に格納し、
    前記テーブルの更新の際に、前記管理情報記憶部に格納された前記許可情報に基づいて追記型又は書き換え型で更新を行う
    処理をコンピュータが実行することを特徴とするデータベース管理方法。
  7. 多版型同時実行制御を関係データベースに対して行うデータベース管理プログラムにおいて、
    テーブルに含まれる列のうち1つ以上の列について更新を1度だけ許可する許可情報が付加されたテーブル定義を受け付けて前記テーブルの管理情報を前記許可情報を含めて管理情報記憶部に格納し、
    前記テーブルの更新の際に、前記管理情報記憶部に格納された前記許可情報に基づいて追記型又は書き換え型で更新を行う
    処理をコンピュータに実行させることを特徴とするデータベース管理プログラム。
JP2016229041A 2016-11-25 2016-11-25 データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム Pending JP2018085042A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016229041A JP2018085042A (ja) 2016-11-25 2016-11-25 データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム
US15/693,886 US20180150498A1 (en) 2016-11-25 2017-09-01 Database management device, information processing system, and database management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016229041A JP2018085042A (ja) 2016-11-25 2016-11-25 データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム

Publications (1)

Publication Number Publication Date
JP2018085042A true JP2018085042A (ja) 2018-05-31

Family

ID=62190274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016229041A Pending JP2018085042A (ja) 2016-11-25 2016-11-25 データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム

Country Status (2)

Country Link
US (1) US20180150498A1 (ja)
JP (1) JP2018085042A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022224451A1 (ja) * 2021-04-23 2022-10-27 株式会社東芝 管理装置、データベースシステム、管理方法およびプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3090929B1 (fr) * 2018-12-20 2021-07-02 Amadeus Sas Actualisation de multiples enregistrements de données

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022224451A1 (ja) * 2021-04-23 2022-10-27 株式会社東芝 管理装置、データベースシステム、管理方法およびプログラム

Also Published As

Publication number Publication date
US20180150498A1 (en) 2018-05-31

Similar Documents

Publication Publication Date Title
US8832159B2 (en) Systems and methods for asynchronous schema changes
US9483516B2 (en) Multi-version concurrency control across row store and column store
US9361187B2 (en) File system metadata capture and restore
US7801855B2 (en) Method and apparatus for merging log entries in a database management system
US8341128B1 (en) Concurrency control using an effective change stack and tenant-based isolation
US8775386B2 (en) Device and method for generating copy of database
US8332359B2 (en) Extended system for accessing electronic documents with revision history in non-compatible repositories
US11386065B2 (en) Database concurrency control through hash-bucket latching
TWI412945B (zh) 擷取以及保存來自或存至關聯資料庫之各物件的方法及系統
US20120136839A1 (en) User-Driven Conflict Resolution Of Concurrent Updates In Snapshot Isolation
US20150074040A1 (en) Deferring data record changes using query rewriting
KR101213798B1 (ko) 복합 데이터 액세스
US20140358861A1 (en) Managing a multi-version database
US9037557B2 (en) Optimistic, version number based concurrency control for index structures with atomic, non-versioned pointer updates
US8832022B2 (en) Transaction processing device, transaction processing method and transaction processing program
JP2008225693A (ja) データベース管理方法、装置およびプログラム
US8805777B2 (en) Data record collapse and split functionality
US20150248404A1 (en) Database schema migration
JP6573452B2 (ja) 階層参照データにおけるコンフリクトを解消する方法およびシステム
US9454557B2 (en) Unit of work based incremental data processing
US9898468B2 (en) Single pass file system repair with copy on write
JP5108252B2 (ja) インデクス更新方法及びそのシステム
JP2018085042A (ja) データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム
CN104111962B (zh) 具有批量操作的增强型事务高速缓存
US11556519B2 (en) Ensuring integrity of records in a not only structured query language database