This document discusses concurrency control for transactions. It begins with an outline and introduces a simple system model for ensuring serializable executions. It then covers serializability theory, defining concepts like equivalent histories, serializable histories, and serialization graphs. The document explains that the two-phase locking protocol guarantees serializable executions if all transactions are two-phase locked. It also discusses synchronization requirements for recoverability, strictness, and how two-phase locking relates to recoverability.