-
アプリケーションにおけるひとまとまりの処理を表すデータベース操作の集まり
トランザクション
-
問題が生じないようにトランザクションの実行を行うこと
トランザクション処理
-
原子性、整合性、隔離性、耐久性の呼称
ACID特性
-
アクティブ、コミット処理中、コミット済、アボート処理中、アボート済
トランザクションの状態
-
アボートされるトランザクションに何らかのデータ更新があった場合にすべて取り消してデータベースをトランザクション開始前の状態に戻すこと
ロールバック
-
誤った値でデータを更新してしまった場合に正しい値に書き換えるトランザクション
補償トランザクション
-
トランザクションを並行処理する際にデータ更新の喪失や整合性のないデータ読み出しによる不整合が生じないよう制御すること
同時実行制御
-
トランザクションを並行処理したときの実行結果が何らかの処理で逐次処理したときの実行結果と一致すること
直列可能性
-
同じトランザクションに属する基本操作の前後関係は保持するという条件の下一列に並べたもの
スケジュール
-
対象トランザクション群を何らかの順序で逐次処理する場合のスケジュール
直列スケジュール
-
直列スケジュール以外のスケジュール
非直列スケジュール
-
スケジュールのうち直列スケジュールと等価なもの
直列可能スケジュール
-
競合等価もしくはビュー等価であるかどうか
等価性
-
競合する基本操作の実行順序が同じである
競合等価
-
各readが同じ値を読み最終的なデータベースの状態が等しいこと。
ビュー等価
-
スケジュールがある直列スケジュールと競合等価であること
競合直列可能
-
スケジュールSが競合直列可能か否かの判定に用いる
先行グラフ
-
スケジュールSにおいて「Ri (A)で読まれるA値がWj (A)によって書かれた値であり,TiがコミットするときにはCjがCiに先行する」という条件が常に満たされるS
回復可能
-
あるトランザクションのアボートに伴い他のトランザクションのアボートが引き起こされること
連鎖的アボート
-
Sにおいて「Ri (A)またはWi (A)よりもWj (A)が先行するときには,CjまたはAjがそのRi (A)またはWi (A)に先行する」という条件が常に満たされるS
厳格
-
並行処理における問題の解決を行う中で最も一般的な機構
ロック
(Sロック,Xロック)
-
共有ロック→専有ロック・専有ロック→共有ロックに変換する処理 アップグレード ダウングレード
ロックのアップグレード・ダウングレード
-
ロックをかける操作と解く操作に関する規約
ロッキングプロトコル
-
実行中のトランザクションがロック操作を成功するまで待ち状態となってしまう状態
デッドロック
-
競合直列可能性を保証するロッキングプロトコル
二相ロッキングプロトコル2PL
-
ロックをかける操作だけの段階
成長相
-
ロックを解く操作だけの段階
縮退相
-
二相ロッキングプロトコルにおいて、さらに「祝体操における最初のロックを解く操作はトランザクションのコミットまたはアボート操作の後である」という条件を付けたもの
厳格な二相ロッキングプロトコル
-
木構造を利用して競合直列可能性を保証する
木ロッキングプロトコル
-
ある項目Aの下位の項目A’をアクセスする際、Aの下位の項目を共有あるいは専有の目的でアクセスしていることを知らせるためのロック
インテンションロック
(ISロック,IXロック,SIXロック)
-
デッドロックは起こり得るものとして実際に起こった場合にそれを検出し解消するアプローチ
デッドロックの検出
-
デッドロックを発見した場合サイクルを構成するトランザクションのいずれかを犠牲者としてアボートすることでデッドロックを解消する
待ちグラフ
-
一括ロックをかけられない項目がある場合はいずれの項目へのロックも行わず、しばらく待機した後に再度ロック操作を試みる規約と2PLの組み合わせ
保守的2PL
-
TS(Ti)<TS(Tj)のときTiはTjがAのロックを解くまで待つ TS(Ti)>TS(Tj)のときTiはアボートする
wait-die方式
-
TS(Ti)<TS(Tj)のときTjをアボートさせる TS(Ti)>TS(Tj)のときTiはTjがAのロックを解くまで待つ
wound-wait方式
-
各トランザクションに発生順に一意的な時刻印を与え、その時刻印の順にトランザクションを逐次実行する場合と等価なスケジュールが生じるように制御を行う方法
時刻印順方式
-
Read, write操作の規約に従って行う基本的な方法
基本時刻印順方式
-
基本時刻印順方式で生じる連鎖的アボートなどの問題を防ぐための厳格な方法
厳格な時刻印順方式
-
TS(Ti)>=RTS(A)かつTS(Ti)<WTS(A)のときTiはwriteの時機を逸してしまっているが、そのことによるデータベースおよび他のトランザクションへの影響はないので、Tiはこのwrite要求を無視して処理を続行する。という規約
トマスの書き込み規則
-
他のトランザクションとの競合はないものとして実行し、終了時に競合の有無を確認する制御方法
楽観的同時実行制御
-
版を利用した同時実行制御の方法
多版同時実行制御
-