Checkpointing is used to improve database recovery time. It periodically writes uncommitted transaction logs and dirty database pages to stable storage. This allows transactions committed before the last checkpoint to be ignored during recovery. Recovery involves undoing uncommitted transactions and redoing committed ones since the last checkpoint using the write-ahead logging protocol to ensure crash consistency. Shadow paging is an alternative technique that maintains a shadow page table to recover the pre-transaction state if needed. Automated backups and mirroring can further improve availability.