\r\n\r\n
遅延更新と即時更新の比較
データベース管理システム(DBMS)において、トランザクションログファイルを管理する手法として、遅延更新と即時更新の2つがある。トランザクションログ(ログブックまたはREDOログとも呼ばれる)は、トランザクションID、トランザクションのタイムスタンプ、データの新旧値を保存する物理ファイルである。これにより、DBMSは各トランザクションの前と後のデータを追跡することができる。トランザクションがコミットされ、データベースが一貫性のある状態に戻ったとき、コミットされたトランザクションを削除するためにログが切り捨てられることがあります。
更新の遅れ
Deferred Updateは、NO-UNDO/REDOとも呼ばれ、OS、電源、メモリ、マシンの障害によって発生したトランザクションの障害を回復/サポートするために使用される手法です。トランザクションが実行されているとき、トランザクションによってデータベースに加えられた更新や変更はすぐに完了するわけではありません。これらはログファイルに記録されます。ログファイルに記録されたデータの変更は、コミット時にデータベースに適用される。この作業を「やり直し」といいます。ロールバック時には、ログファイルに記録されたデータへの変更はすべて破棄されるため、データベースへの変更は適用されない。上記の理由でトランザクションが失敗し、コミットされなかった場合、ログファイル内のレコードは破棄され、トランザクションが再開されます。トランザクションの変更がクラッシュ前にコミットされていた場合、ログファイルに記録された変更は、システムの再起動後にデータベースに適用されます。
インスタント・アップデート
また、OS、電源、メモリ、マシンの障害によって失敗したトランザクションを回復/サポートするために、アンドゥ/リドゥとして知られるインスタントアップデートが使用される手法もあります。トランザクションが実行されているとき、会社が行った更新や変更は、直接データベースに書き込まれます。データベースに変更が加えられる前に、元の値と新しい値の両方がログファイルに記録されます。コミットすると、データベースに加えられたすべての変更が恒久化され、ログファイル内の記録は破棄されます。ロールバック時には、ログファイルに保存されている古い値を用いて、データベースに復元される。トランザクションによってデータベースに加えられたすべての変更は、'de-execution'として知られるプロセスで破棄されます。クラッシュ後にシステムを再起動すると、データベースのすべての変更がコミットされたトランザクションに永続的に適用されます。コミットされていないトランザクションについては、ログファイル内の値を使用して元の値が復元されます。
遅延アップデートと即時アップデートの違いについて