In this project we have a look at two isolation levels: read committed and repeatable read. We will demonstrate their guarantees using different types of locks on these anomalies: nonrepeatable read, lost updates, and write skew.