Central to an understanding of both concurrency control and recovery is the notion of a
transaction , which we describe in Section 20.1. In Section 20.2 we discuss concurrency
control and examine the protocols that can be used to prevent conflict. In Section 20.3 we
discuss database recovery and examine the techniques that can be used to ensure the data-base remains in a consistent state in the presence of failures. In Section 20.4 we examine
more advanced transaction models that have been proposed for transactions that are of a
long duration (from hours to possibly even months) and have uncertain developments, so
that some actions cannot be foreseen at the beginning. In Section 20.5 we examine how
Oracle handles concurrency control and recovery.
In this chapter we consider transaction support, concurrency control, and recovery for a
centralized DBMS, that is a DBMS that consists of a single database. Later, in Chapter 23,
we consider these services for a distributed DBMS, that is a DBMS that consists of multiple
logically related databases distributed across a network.