ALLBASE/SQL Reference Manual (36216-90216)

Chapter 5 167
Concurrency Control through Locks and Isolation Levels
5 Concurrency Control through Locks
and Isolation Levels
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:
Defining Transactions
Understanding ALLBASE/SQL Data Access
Use of Locking by Transactions
Defining Isolation Levels between Transactions
Details of Locking
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.