Database Transactions & Isolation: Ensuring Consistency & Preventing Interleaving, Slides of Database Management Systems (DBMS)

The concept of acid transactions in database systems, focusing on atomicity, consistency, isolation, and durability. It also covers the role of transactions in sql and the use of commit and rollback statements. Examples of interacting processes and their potential inconsistencies, demonstrating the importance of transactions in maintaining data integrity. It also discusses the concept of isolation levels and their impact on how transactions interact with each other.

Typology: Slides

2012/2013

Uploaded on 04/26/2013

divyesh
divyesh 🇮🇳

4.2

(6)

83 documents

1 / 23

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Transactions
Serializability
Isolation Levels
Atomicity
1
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17

Partial preview of the text

Download Database Transactions & Isolation: Ensuring Consistency & Preventing Interleaving and more Slides Database Management Systems (DBMS) in PDF only on Docsity!

Transactions

Serializability Isolation Levels Atomicity

The Setting

  • Database systems are normally being accessed by many users or processes at the same time. - Both queries and modifications.
  • Unlike operating systems, which support interaction of processes, a DMBS needs to keep processes from troublesome interactions.

ACID Transactions

  • A DBMS is expected to support “ ACID transactions ,” processes that are: - Atomic : Either the whole process is done or none is. - Consistent : Database constraints are preserved. - Isolated : It appears to the user as if only one process executes at a time. - Durable : Effects of a process do not get lost if the system crashes.

Transactions in SQL

  • SQL supports transactions, often behind the scenes. - Each statement issued at the generic query interface is a transaction by itself. - In programming interfaces like Embedded SQL or PSM, a transaction begins the first time a SQL statement is executed and ends with the program or an explicit transaction-end.

ROLLBACK

  • The SQL statement ROLLBACK also causes the transaction to end, but by aborting. - No effects on the database.
  • Failures like division by 0 or a constraint violation can also cause rollback, even if the programmer does not request it.

An Example: Interacting Processes

  • Assume the usual Sells(store,candy,price) relation, and suppose that Joe’s Market sells only Twizzlers for $2.50 and Kitkats for $3.00.
  • Sally is querying Sells for the highest and lowest price Joe charges.
  • Joe decides to stop selling Twizzlers and Kitkats, but to sell only Smarties at $3.50.

Joe’s Program

  • At about the same time, Joe executes the following steps, which have the mnemonic names (del) and (ins).

(del) DELETE FROM Sells

WHERE store = ’Joe’’s Market’;

(ins) INSERT INTO Sells

VALUES(’Joe’’s Market’, ’Smarties’,3.50);

Interleaving of Statements

  • Although (max) must come before (min), and (del) must come before (ins), there are no other constraints on the order of these statements, unless we group Sally’s and/or Joe’s statements into transactions.

Fixing the Problem by Using

Transactions

  • If we group Sally’s statements (max)(min) into one transaction, then she cannot see this inconsistency.
  • She sees Joe’s prices at some fixed time.
    • Either before or after he changes prices, or in the middle, but the MAX and MIN are computed from the same prices.

Another Problem: Rollback

  • Suppose Joe executes (del)(ins), not as a transaction, but after executing these statements, thinks better of it and issues a ROLLBACK statement.
  • If Sally executes her statements after (ins) but before the rollback, she sees a value, 3.50, that never existed in the database.

Isolation Levels

  • SQL defines four isolation levels = choices about what interactions are allowed by transactions that execute at about the same time.
  • How a DBMS implements these isolation levels is highly complex, and a typical DBMS provides its own options.

Choosing the Isolation Level

  • Within a transaction, we can say:

SET TRANSACTION ISOLATION LEVEL X

where X =

  • SERIALIZABLE or
  • REPEATABLE READ or
  • READ COMMITTED or
  • READ UNCOMMITTED

Isolation Level Is Personal Choice

  • Your choice, e.g., run serializable, affects only how you see the database, not how others see it.
  • Example: If Joe runs serializable, but Sally doesn’t, then Sally might see no prices for Joe’s Market. - i.e., it looks to Sally as if she ran in the middle of Joe’s transaction.

Read-Commited Transactions

  • If Sally runs with isolation level READ COMMITTED, then she can see only committed data, but not necessarily the same data each time.
  • Example: Under READ COMMITTED, the interleaving (max)(del)(ins)(min) is allowed, as long as Joe commits. - Sally sees MAX < MIN.