Databases Reference
In-Depth Information
Locks
A database uses a system of locks to prevent transactions from interfering with each
other. A lock prevents users from modifying data. Database systems use locks to keep
one transaction from overwriting changes added by another transaction.
Figure 8-1 illustrates the potential problems that could occur if a system did not use
locks. Transaction A reads a piece of data; Transaction B reads the same piece of data
and commits a change to the data. When Transaction A commits the data, its change
unwittingly overwrites the changes made by Transaction B, resulting in a loss of data
integrity.
Figure 8-1. Transactions over time
Two types of locks are used to avoid this type of problem. The first is called a write
lock , or an exclusive lock . An exclusive lock is applied and held while changes are made
to data in the course of a transaction and released when the transaction is ended by
either a COMMIT or a ROLLBACK statement. A write lock can be held by only one
user at a time, so only one user at a time can change that data.
Some databases also use read locks , or shared locks . A read lock can be held by any
number of users who are merely reading the data, since the same piece of data can be
shared among many readers. However, a read lock prevents a write lock from being
placed on the data, as the write lock is an exclusive lock. In Figure 8-1 , if a read lock
were placed on the data when Transaction A began, Transaction B would be able to read
the same data but would be prevented from acquiring a write lock on the data until
Transaction A ended.
 
Search WWH ::




Custom Search