Transactional Databases
Transactional Databases
NAL
DATABASES
INTRODUCTION TO TRANSACTION
PROCESSING
• A Transaction:
– Logical unit of database processing that includes one or more access
operations (read -retrieval, write - insert or update, delete).
• A transaction (set of operations) may be stand-alone specified in a
high level language like SQL submitted interactively, or may be
embedded within a program.
• Concurrent execution of user programs is essential for good DBMS performance
– Disk access is frequent and slow
– Want to keep the CPU busy
• A user’s program may carry out all sorts of operations on the data, but the DBMS is
only concerned about what data is read from/written to the database
TRANSACTIONS CONT.
3
CONCURRENT AND PARALLEL
TRANSACTIONS
B B
CPU2
A
CPU1 A
CPU1
time
t1 t2 t1 t2
interleaved processing parallel processing
THE ‘ACID’ PROPERTIES OF
TRANSACTIONS
• Atomicity: Either all actions are carried out, or none are
• Consistency: If each transaction is consistent, and the
database is initially consistent, then it is left consistent
• Isolation: Transactions are isolated, or protected, from
the effects of other scheduled transactions
• Durability: If a transactions complete successfully, then
its effects persist, even if the database crashes
5
ATOMICITY
• A transaction can
– Commit after completing its actions, or
– Abort because of
• Internal DBMS decision: restart
• System crash: power, disk failure, …
• Unexpected situation: unable to access disk, data value, …
• A transaction interrupted in the middle could leave the database inconsistent
• DBMS needs to remove the effects of partial transactions to ensure atomicity: either all a
transaction’s actions are performed or none
• A DBMS ensures atomicity by undoing the actions of partial transactions
• To enable this, the DBMS maintains a record, called a log, of all writes to the database
• The component of a DBMS responsible for this is called the recovery manager
6
CONSISTENCY
7
ISOLATION
8
DURABILITY
9
SCHEDULES
• Schedule – a sequence of instructions that specify the
chronological order in which instructions of concurrent
transactions are executed
– A schedule for a set of transactions must consist of all instructions
of those transactions
– Must preserve the order in which the instructions appear in each
individual transaction.
• A transaction that successfully completes its execution will have
a commit instructions as the last statement
– By default transaction assumed to execute commit instruction as
its last step
• A transaction that fails to successfully complete its execution
will have an abort instruction as the last statement
SCHEDULES - EXAMPLE
• What is Schedules
– A schedule S of n transactions T1,T2,…Tn is an ordering of the operations of
the transactions subject to the constraint that, for each transaction Ti that
participates in S, the operations of Ti in S must appear in the same order in
which they occur in Ti.
– Example: Sa: r1(A),r2(A),w1(A),w2(A), a1,c2;
T1 T2
Read(A)
Read(A)
Write(A)
Write(A)
Abort T1
Commit T2
SCHEDULES
• A schedule is a list of actions from a set of
transactions
– A well-formed schedule is one where the actions
of a particular transaction T are in the same
order as they appear in T
• For example
– [RT1(a), WT1(a), RT2(b), WT2(b), RT1(c), WT1(c)] is a
well-formed schedule
– [RT1(c), WT1(c), RT2(b), WT2(b), RT1(a), WT1(a)] is not
a well-formed schedule
12
SCHEDULES CONT.
13
SERIALISABILITY
14
SERIALIZABILITY OF
SCHEDULES
• Serial
– A schedule S is serial if, for every transaction T participating in the schedule,
all the operations of T are executed consecutively in the schedule.( No
interleaving occurs in a serial schedule)
• Serializable
– A schedule S of n transactions is serializable if it is equivalent to some serial
schedule of the same n transactions.
• schedules are conflict equivalent if:
– they have the same sets of actions, and
– each pair of conflicting actions is ordered in the same way
• Conflict Serializable
– A schedule is said to be conflict serializable if it is conflict equivalent to a serial
schedule
TRANSACTION STATE
(CONT.)
TRANSACTION STATE
• Active – the initial state; the transaction stays in this state while it is
executing
• Partially committed – after the final statement has been executed.
• Failed -- after the discovery that normal execution can no longer
proceed.
• Aborted – after the transaction has been rolled back and the
database restored to its state prior to the start of the transaction.
Two options after it has been aborted:
– Restart the transaction
• can be done only if no internal logical error
– Kill the transaction
• Committed – after successful completion.
ANOMALIES WITH
INTERLEAVED EXECUTION
• Two actions on the same data object conflict if at least one of them is a
write
• We’ll now consider three ways in which a schedule involving two
consistency-preserving transactions can leave a consistent database
inconsistent
• Can lead to insert, update and delete anomalies
18
WR CONFLICTS
• But:
“Blind
Write”
T1: W(Britney), W(gmb) gmb gets £1m
T2: W(gmb), W(Britney) Britney gets $1m
21
STRICT TWO-PHASE
LOCKING
• DBMS enforces the following locking protocol:
– Each transaction must obtain an S (shared) lock before
reading, and an X (exclusive) lock before writing
– All locks held by a transaction are released when the
transaction completes
– If a transaction holds an X lock on an object, no other
transaction can get a lock (S or X) on that object
• Strict 2PL allows only serialisable schedules
22
ABORTING
23
THE LOG
24
THE END