トランザクションがこれらの状態を管理するために、DBMSは「ジャーナル(ログ)ファイル」を活用しています。処理中の変更履歴をディスク上に即座に書き出しておくことで、急な停電でメモリが消去された場合でも、再起動時にログを解析し、中途半端な処理を自動的にロールバック(またはロールフォワード)して、データを一貫した安全な状態へと復旧させることができます。
IT試験においては、トランザクションの基本的な目的や、コミットとロールバックの動作、およびトランザクション処理が保証すべき4つの特性である「ACID特性」との関係性が頻出します。
試験対策としての重要ポイントは以下の通りです。
・不可分の処理単位:「これ以上分解できない一連の処理のまとまり」というキーワードが出たらトランザクションを指します。
・ロールバックとコミットの挙動:「エラー発生時はロールバック(巻き戻し)」し、「正常終了時はコミット(確定)」するというペアの動きを確実に理解しておきましょう。
・ACID特性の「原子性」との結びつき:トランザクションが「All or Nothing(すべて実行されるか、全く実行されないか)」の性質を持つことは、ACID特性における「原子性(Atomicity)」に該当します。この紐付けは非常に多く出題されます。
銀行振込や、チケットの予約、在庫の引き当てなど、実生活の業務システムにおける具体的なシナリオを提示し、「このような不都合を防ぐためにデータベースで用いられる処理単位を何と呼ぶか」という問題に対して「トランザクション」を選択できるようにしておきましょう。
トランザクションを最終確定する「コミット」や、処理を取り消して巻き戻す「ロールバック」、トランザクションが満たすべき4つの信頼性の指標である「ACID特性」が最重要の関連用語です。また、これを処理するシステムである「DBMS(データベース管理システム)」や、複数トランザクションの競合を防ぐための「排他制御(ロック)」も密接に関連しています。