Concurrency control is the process of regulating access to
the same data by multiple transactions operating in the same DBEnvironment.
Without regulation, a database could easily become inconsistent or corrupt.
Consider what can happen if two or more concurrent users
access the same data without any concurrency control.
For example, one user could delete a row while another
user is in the process of updating it.
Or one user might update a row, and a second user might make a decision based on
the update, then the first user might decide to roll back the update,
at which point the second user's decision becomes invalid.
To avoid problems of this type, it is important to regulate
the kinds of access to database tables available to concurrent users.
This chapter describes the methods employed by ALLBASE/SQL to provide
concurrency control for multiuser DBEnvironments. A section is devoted to each of the following topics:
Understanding ALLBASE/SQL Data Access
Use of Locking by Transactions
Defining Isolation Levels between Transactions
What Determines Lock Types
Scope and Duration of Locks
Examples of Obtaining and Releasing Locks
Resolving Conflicts among Concurrent Transactions
Monitoring Locking with SQLMON
The techniques of concurrency control described in this
chapter are normally implemented through application programs, though you can
use some of them interactively as well.
Concurrency is a complex subject. If you
are a new user of relational technology or of ALLBASE/SQL,
you should read the entire chapter before attempting to use
any of the special features described here.