Concurrency control methods ensure serializability of transactions while allowing some level of concurrent execution. Transactions can use locking to control access to shared data objects, with different locking granularities and protocols like two-phase locking and multiple readers/single writer. An alternative is optimistic concurrency control where transactions operate without locks and are validated at commit time to check for conflicts.