For a single database operation, it may affect multiple pages. For example, an insert operation may result in page split. As a result, databases don't use logical log for redo operation because of the inconsistency consideration (A operation affect two pages, only one page is flushed into data when system crashed). They always use physiological log or physical log for redo operation. But in ARIES algorithm or some databases (eg . mysql), they use logical log for undo, which operation may affect multiple pages. Why they can do this? How do they guarantee the rollback correctness when only some pages affected by the undo operation are flushed into the disk and the system crashed again?