トランザクション のバックアップソース(No.4)

#author("2022-08-30T08:39:45+09:00","default:k1rou","k1rou")
*トランザクション [#o9be3ae8]
-複数のユーザーが同時にアクセスしてデータの参照や更新が行われても、データの矛盾が発生しない[[データベース]]の仕組みのこと


*トランザクションの特性 [#zef76615]
**ACID特性 [#i66c8f84]
-原子性(Atomicity)
-一貫性(Consistency)
-隔離性(Isolation)
-耐久性(Durability)

*同時実行制御 [#j083a435]
-並列性制御
-複数のトランザクションを同時に実行しても、データの矛盾が発生しないように処理すること

**同時実行制御の方式 [#u8c4b4ea]
-単版同時実行制御
--ロック
-多版同時実行制御
--専有ロック中のデータに対して、他のトランザクションによる参照を許可する(更新前のデータが参照される)
-時刻印アルゴリズム
--トランザクションの発生時刻とデータの読込み時刻、書込み時刻を比較して参照・更新の可否を判断する
--参照可能な条件
---トランザクションの発生時刻 >= データの書込み時刻 の場合
--更新可能な条件
---トランザクションの発生時刻 >= データの読込み時刻/書込み時刻 の場合

**ロックの方式 [#gacd1e29]
-専有ロック(排他ロック、占有ロック)
--データを更新する際にロックすることで、他のトランザクションによる参照・更新を不許可にする
-共有ロック(共用ロック)
--データを参照する際にロックすることで、他のトランザクションによる更新を不許可にする(参照は許可する)

*WALプロトコル [#nb35ccf3]
-トランザクションがログを安定記憶に書き出すタイミングについて取り決めたもの
-「Write Ahead Log」(先にログを書け)
--実際の操作に先行してログの書き出しを求めている
-この取り決めを採用することで、システム障害発生時にCOMMIT済でデータベースに書き込まれていない更新データの復旧が可能

*関連用語 [#i43c3c1b]
-[[DBMS]]
-[[データベース]]
-[[デッドロック]]
-[[排他制御]]