This document summarizes concurrency control in database systems. It discusses reasons for concurrency control such as the lost update, dirty read, and non-repeatable read problems. It introduces transaction scheduling and defines recoverable, cascadeless, strict, serializable, and conflict serializable schedules. Conflict serialization graphs are used to test whether a schedule is serializable. Maintaining serializable schedules ensures correctness when transactions execute concurrently.