This book develops a theory for transactions that provides practical solutions for system developers, focusing on the interface between the user and the database that executes transactions. Atomic transactions are a useful abstraction for programming concurrent and distributed data processing systems. Presents many important algorithms which provide maximum concurrency for transaction processing without sacrificing data integrity. The authors include a well-developed data processing case study to help readers understand transaction processing algorithms more clearly. The book offers conceptual tools for the design of new algorithms, and for devising variations on the familiar algorithms presented in the discussions. Whether your background is in the development of practical systems or formal methods, this book will offer you a new way to view distributed systems.