データベース

第6章 トランザクション管理
6.1 トランザクションの概念
6.2 同時実行制御
6.3 障害回復
6.1 トランザクションの概念
トランザクションとは
データベースを利用するとき、複数の処理を一連
のものとしてまとめる単位
【例】
begin
東京~大阪までの乗車券を予約
東京~大阪までの新幹線特急券を予約
end
前半の予約だけ成功しても、
後半の予約に失敗しても意味がないので、
後半の予約に失敗したら前半の予約を取り消す。
トランザクションの適切な実行
複数のトランザクションが同時に実行されることが多いので
適切に実行管理(ACID特性を持つ)する必要がある。
①原子性:1トランザクションはすべて有効/無効のいずれか
②整合性:DB内の内容に矛盾がなく整合性があること。
③隔離性:並行処理したときそれぞれのトランザクションが隔離されてい
ること(並行処理した場合でも、順番に処理した場合でも同じ
結果になること)
④耐久性:トランザクションの処理結果でデータベースが更新されても、
障害があっても失われない
原子性:Atomicity, 整合性:Consistency,
隔離性:Isolation, 耐久性:Durability
ACID特性を保証するための2つの重要な処理
①同時実行制御(並行処理制御)
複数の応用プログラムでデータ操作を行っている際
のデータの隔離性を保証するための制御を行う。
②障害回復
トランザクションの実行中に障害が発生した場合の
耐久性を保証するために、障害に対処する処理を行
う。
トランザクションの適切な実行
複数のトランザクションが同時に実行されることが多いので
適切に実行管理(ACID特性を持つ)する必要がある。
①原子性:1トランザクションはすべて有効/無効のいずれか
②整合性:DB内の内容に矛盾がなく整合性があること。
③隔離性:並行処理したときそれぞれのトランザクションが隔離されてい
ること(並行処理した場合でも、順番に処理した場合でも同じ
結果になること)
④耐久性:トランザクションの処理結果でデータベースが更新されても、
障害があっても失われない
原子性:Atomicity, 整合性:Consistency,
隔離性:Isolation, 耐久性:Durability
トランザクションの開始と終了
①開始
明示的に開始を宣言する場合と宣言しない場合(SQLの
場合)
②終了
・正常終了:トランザクションの変更を有効にする。
(コミットという)
・途中放棄:何らかの理由でトランザクション処理を
取りやめる(アボートという)
アボートのとき、処理開始前の状態に戻すことを指示す
るためにROLLBACK文を用いる