The DBMS will lock any resources required by a transaction to preserve data integrity. Resources can be locked at multiple levels of granularity, from row-level locks to database-level locks. Row-level locks are most common but do involve more overhead.