Perhaps the first question to answer is "Why transactions?"
There are a number of reasons to include transactional support
in your applications. The most common ones are the
following:
-
Recoverability
-
Applications often need to ensure that no matter
how the system or application fails, previously saved
data is available the next time the application runs.
This is often called Durability.
-
Atomicity
-
Applications may need to make multiple changes
to one or more databases, but ensure that either all
of the changes happen, or none of them happens.
Transactions guarantee that a group of changes are
atomic; that is, if the application or system fails,
either all of the changes to the databases will appear
when the application next runs, or none of
them.
-
Isolation
-
Applications may need to make changes in
isolation, that is, ensure that only a single thread
of control is modifying a key/data pair at a time.
Transactions ensure each thread of control sees all
records as if all other transactions either completed
before or after its transaction.