最初のページ 戻る 次へ 最後のページ 画像

ケース2-2

送金トランザクション

begin

read(A,x)

read(B,y)

x:=x-10000

y:=y+10000

write(A,x)

write(B,y)

commit

ログ中の更新後の値と比較

A,Bが一致していれば書込み操作完了

不一致であればA,Bを更新

commit終了直後にシステム障害が発生

項A,Bはバッファ上で更新済

ディスク上は未更新

トランザクションはコミット済

システムを再起動

バッファは消滅

書込み操作がデータベースに反映されていることを

保証しなければならない