Universität Karlsruhe (TH) © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Chapter 3 Isolation: Examples.

Slides:



Advertisements
Similar presentations
Universität Karlsruhe (TH) © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 2 Chapter 2 Model for transactions.
Advertisements

Universität Karlsruhe (TH) © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 1 Chapter 1 Transactions and transactional properties.
Universität Karlsruhe (TH) TAV 10© 2007 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. Böhm Chapter 10 Distributed Transactions: Synchronization.
Transactions - Concurrent access & System failures - Properties of Transactions - Isolation Levels 4/13/2015Databases21.
Concurrency Control WXES 2103 Database. Content Concurrency Problems Concurrency Control Concurrency Control Approaches.
Chapter 16 Concurrency. Topics in this Chapter Three Concurrency Problems Locking Deadlock Serializability Isolation Levels Intent Locking Dropping ACID.
1 Lecture 11: Transactions: Concurrency. 2 Overview Transactions Concurrency Control Locking Transactions in SQL.
Introduction to Database Systems1 Concurrency Control CC.Lecture 1.
Transactions Chapter 6.1 V3.1 Napier University Dr Gordon Russell.
Transaction Management: Concurrency Control CS634 Class 17, Apr 7, 2014 Slides based on “Database Management Systems” 3 rd ed, Ramakrishnan and Gehrke.
TRANSACTION PROCESSING SYSTEM ROHIT KHOKHER. TRANSACTION RECOVERY TRANSACTION RECOVERY TRANSACTION STATES SERIALIZABILITY CONFLICT SERIALIZABILITY VIEW.
Transactions (Chapter ). What is it? Transaction - a logical unit of database processing Motivation - want consistent change of state in data Transactions.
Chapter 26 Errors Not Affecting Trial Balance Agreement.
Posting to General and Subsidiary Ledgers
Universität Karlsruhe (TH) © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 4 Chapter 4 Isolation: Correctness in the read/write model.
ICOM 6005 – Database Management Systems Design Dr. Manuel Rodríguez-Martínez Electrical and Computer Engineering Department Lecture 16 – Intro. to Transactions.
Concurrency Control and Recovery In real life: users access the database concurrently, and systems crash. Concurrent access to the database also improves.
Transaction Management and Concurrency Control
Universität Karlsruhe (TH) © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 2 Chapter 2 Model for transactions.
Transaction. A transaction is an event which occurs on the database. Generally a transaction reads a value from the database or writes a value to the.
INTRODUCTION TO TRANSACTION PROCESSING CHAPTER 21 (6/E) CHAPTER 17 (5/E)
1 CSE 480: Database Systems Lecture 23: Transaction Processing and Database Recovery.
1 Transactions BUAD/American University Transactions.
1 Database Systems CS204 Lecture 21 Transaction Processing I Asma Ahmad FAST-NU April 7, 2011.
FEN Data connection DataReader DataSet Bonus info: Concurrency and Database Transactions Embedded SQL.
Transactions1 Unit of work on a database. Transactions2 Transactions, concept Logical unit of work on the database –Examples Transfer money from bank.
Transaction Processing Concepts. 1. Introduction To transaction Processing 1.1 Single User VS Multi User Systems One criteria to classify Database is.
Transaction Lectured by, Jesmin Akhter, Assistant professor, IIT, JU.
Department of Computer Science and Engineering, HKUST 1 More on Isolation.
Transaction processing Book, chapter 6.6. Problem: With a single user…. you run a query, you get the results, you run the next, etc. But database life.
Concurrency and Transaction Processing. Concurrency models 1. Pessimistic –avoids conflicts by acquiring locks on data that is being read, so no other.
CMPT 354, Simon Fraser University, Fall 2008, Martin Ester 136 Database Systems I SQL Modifications and Transactions.
Chapter 16 Concurrency. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.16-2 Topics in this Chapter Three Concurrency Problems Locking Deadlock.
Chapter 3, Section 3 and 4 Accounting I/II.  What order is information recorded in the journal? ◦ Chronological order  What are used as proof that a.
Transactions.
Transaction Processing Concepts Muheet Ahmed Butt.
1 Advanced Database Concepts Transaction Management and Concurrency Control.
Recovery technique. Recovery concept Recovery from transactions failure mean data restored to the most recent consistent state just before the time of.
1 Database Systems ( 資料庫系統 ) December 27/28, 2006 Lecture 13 Merry Christmas & New Year.
10 Transaction Management and Concurrency Control MIS 304 Winter 2005.
10 1 Chapter 10 - A Transaction Management Database Systems: Design, Implementation, and Management, Rob and Coronel.
ICOM 6005 – Database Management Systems Design Dr. Manuel Rodríguez-Martínez Electrical and Computer Engineering Department Lecture 16 – Intro. to Transactions.
CENTURY 21 ACCOUNTING © 2009 South-Western, Cengage Learning LESSON 3-3 Journalizing Transactions That Affect Owner’s Equity and Receiving Cash on Account.
Chapter 7: Posting Journal Entries to General Ledger Accounts Section 1: The General Ledger.
MULTIUSER DATABASES : Concurrency and Transaction Management.
SYSTEMS IMPLEMENTATION TECHNIQUES TRANSACTION PROCESSING DATABASE RECOVERY DATABASE SECURITY CONCURRENCY CONTROL.
Transactional Information Systems:
LESSON 3-3 5/21/2018 LESSON 3-3 Journalizing Transactions That Affect Owner’s Equity and Receiving Cash on Account Blue.
LESSON 3-3 5/21/2018 LESSON 3-3 Journalizing Transactions That Affect Owner’s Equity and Receiving Cash on Account Blue.
Transaction Management and Concurrency Control
Lesson 4-3 Posting Column Totals from a Journal to a General Ledger
ACID PROPERTIES.
Transactions Properties.
Transaction Properties
Ch 21: Transaction Processing
Transactional Information Systems:
Concurrency.
CHECK MARKS SHOW THAT AMOUNTS ARE NOT POSTED
Concurrency Control WXES 2103 Database.
Outline Introduction Background Distributed DBMS Architecture
Chapter 7, Section 2 The Posting Process
Lecture 21: Intro to Transactions & Logging III
Lecture 13: Transactions in SQL
Lesson 4-3 Posting Column Totals from a Journal to a General Ledger
LESSON 3-3 2/24/2019 LESSON 3-3 Journalizing Transactions That Affect Owner’s Equity and Receiving Cash on Account Green.
Lesson 4-3 Posting Column Totals from a Journal to a General Ledger
Lesson 4-3 Posting Column Totals from a Journal to a General Ledger
C. Faloutsos Transactions
LESSON 3-3 7/23/2019 LESSON 3-3 Journalizing Transactions That Affect Owner’s Equity and Receiving Cash on Account Blue.
Lecture 11: Transactions in SQL
Presentation transcript:

Universität Karlsruhe (TH) © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Chapter 3 Isolation: Examples

2 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Example 1

3 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Miniworld Sales database of a wine dealer:

4 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Sales transaction 1. Sales transaction (R: Riesling) Ignored in the R/W model: Local action Transaction in the R/W model: t = r(R) w(R) 2. Two sales persons: Miller and Smith. 3. Database: page  tuple.

5 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update Mr. Miller‘s update has been lost (lost update). Schema: r 1 (R) r 2 (R) w 1 (R) w 2 (R)

6 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (1) Cancelation ignored. Never became valid! Schema: r 1 (R) w 1 (R) r 2 (R) a 1 w 2 (R)

7 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (2) Dirty read: Read a value after it was changed by a second transaction but before its validity could be guaranteed. Occurs whenever a transaction reads a value changed by a second transaction before that one committed.

8 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Compute the sum total of wines on stock. Inconsistent Read (1) Correct a mixup in sales registration.

9 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent Read (2) persistent transient 

10 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 inconsistent read: Read of states that are valid at different times  inconsistent view of the database. In the example: resulting count incorrect (missed 10 bottles). Schema: r 1 (G) r 1 (R) r 2 (M) r 1 (S) w 2 (M) r 2 (G) r 1 (W) w 2 (G) c 2 r 1 (M) c 1 Inconsistent Read (3)

11 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Threats to the global consistency Interaction of reads and writes :  Two concurrent read-only transactions have no mutual impact, since in the read/write model the only interactions possible between transactions are via database writes.  If a read transaction competes with a write transaction, the write transaction remains unaffected and hence the database consistent. On the other hand, the write transaction may have an effect on the read transaction.  Two concurrent write transactions may affect each other, and the database may become inconsistent.

12 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Example 2

13 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Scenario Relations:  TICKET (ticketNo, name)T  BOOKING (flightNo, ticketNo, seatCode, date)B Transactions:  t 1 : Check the consistency of passenger list und bookings,  t 2 : Rebook a passenger group,  t 3 : Cancel a booking. Simplification:  Relations fit on a single page.

14 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Transaction t 1 Print number of tickets sold for 12 August 2000 plus the list of the associated passengers : selectcount (distinct ticketNo) fromBOOKING wheredate = 12-AUG-00; print number of tickets; selectname fromTICKET whereticketNo in (selectticketNo fromBOOKING wheredate = 12-AUG-00); print passenger list; commit; read BOOKING read TICKET BOOKING already read r/w model for t 1 : r 1 (B) r 1 (T) c 1.

15 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Transaction t 2 Rebook passengers in row 19 from LH500 on 12 August 2000 to 11 August 2000 and mark ticket number: updateTICKET setticketNo = ticketNo whereticketNo in (selectticketNo fromBOOKING wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E" or seatCode = "19G" )); updateBOOKING setdate = 11-AUG-00, ticketNo = ticketNo wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E" or seatCode = "19G"); commit; read BOOKING read TICKET BOOKING already read r/w model for t 2 : r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2. write TICKET write BOOKING Note that the first write depends on the two reads.

16 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Transaction t 3 Cancel the ticket with number : delete from TICKET where ticketNo = ; delete from BOOKING where ticketNo = ; commit; r/w model for t 3 : r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3. read BOOKING read TICKET write TICKET write BOOKING

17 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent Read (1) selectcount (distinct ticketNo) fromBOOKING wheredate = 12-AUG-00; Print number of tickets; selectname fromTICKET whereticketNo in (selectticketNo fromBOOKING wheredate = 12-AUG-00); print passenger list; commit; updateTICKET setticketNo = ticketNo whereticketNo in (selectticketNo fromBOOKING wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E„ or seatCode = "19G" )); updateBOOKING setdate = 11-AUG-00, ticketNo = ticketNo wheredate = 12-AUG-00 and flugNr = "LH500" and(seatCode = "19D" or seatCode = "19E" or seatCode = "19G"); commit; read-write interaction by interrupting the reader S1: r 1 (B) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 1 (T) c 1 r 1 (B) r 2 (B) r 1 (T) r 2 (T) w 2 (T) w 2 (B)

18 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent Read (2) r 1 (B) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 1 (T) c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00

19 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent Read (3) r 1 (B) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 1 (T) c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 Output t 1 : number of tickets = 3.

20 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent Read (4) r 1 (B) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 1 (T) c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 reads BOOKING and selects.

21 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent Read (5) r 1 (B) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 1 (T) c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 reads TICKET and selects.

22 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent Read (6) r 1 (B) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 1 (T) c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 updates and writes TICKET.

23 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent Read (7) r 1 (B) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 1 (T) c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 11-AUG-00 LH G 11-AUG-00 LH E 11-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 updates and writes BOOKING.

24 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent Read (8) r 1 (B) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 1 (T) c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 11-AUG-00 LH G 11-AUG-00 LH E 11-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 Output t 1 : empty passenger list.

25 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 No problem updateTICKET setticketNo = ticketNo whereticketNo in (selectticketNo fromBOOKING wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E„ or seatCode = "19G" )); updateBOOKING setdate = 11-AUG-00, ticketNo = ticketNo wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E„ or seatCode = "19G"); commit; S2: r 2 (B) r 2 (T) r 1 (B) r 1 (T) c 1 w 2 (T) w 2 (B) c 2 selectcount (distinct ticketNo) fromBOOKING wheredate = 12-AUG-00; print number of tickets; selectname fromTICKET whereticketNo in (selectticketNo fromBOOKING wheredate = 12-AUG-00); print passenger list; commit; read-write interaction by interrupting the writer No problem, because t 1 reads a database state that was not yet changed. Tough luck for t 1 that it is no longer valid shortly afterwards. r 1 (B) r 2 (B) r 1 (T) r 2 (T) w 2 (T) w 2 (B)

26 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (1) updateTICKET setticketNo = ticketNo whereticketNo in (selectticketNo fromBOOKING wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E„ or seatCode = "19G" )); updateBOOKING setdate = 11-AUG-00, ticketNo = ticketNo wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E„ or seatCode = "19G"); commit; selectcount (distinct ticketNo) fromBOOKING wheredate = 12-AUG-00; print number of tickets; selectname fromTICKET whereticketNo in (selectticketNo fromBOOKING wheredate = 12-AUG-00); print passenger list; commit; r 1 (B) r 2 (B) r 1 (T) r 2 (T) w 2 (T) w 2 (B) Effect on t 1 as in S1. S3: r 2 (B) r 2 (T) w 2 (T) r 1 (B) r 1 (T) c 1 w 2 (B) c 2 read-write interaction by interrupting the writer

27 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (2) r 2 (B) r 2 (T) w 2 (T) r 1 (B) r 1 (T) w 2 (B) c 2 c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00

28 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (3) r 2 (B) r 2 (T) w 2 (T) r 1 (B) r 1 (T) w 2 (B) c 2 c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 reads BOOKING and selects.

29 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (4) r 2 (B) r 2 (T) w 2 (T) r 1 (B) r 1 (T) w 2 (B) c 2 c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 reads TICKET and selects.

30 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (5) r 2 (B) r 2 (T) w 2 (T) r 1 (B) r 1 (T) w 2 (B) c 2 c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 updates and writes TICKET.

31 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (6) r 2 (B) r 2 (T) w 2 (T) r 1 (B) r 1 (T) w 2 (B) c 2 c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 Output t 1 : number of tickets = 3.

32 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (7) r 2 (B) r 2 (T) w 2 (T) r 1 (B) r 1 (T) w 2 (B) c 2 c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 Output t 1 : empty passenger list.

33 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (8) r 2 (B) r 2 (T) w 2 (T) r 1 (B) r 1 (T) w 2 (B) c 2 c 1 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 11-AUG-00 LH G 11-AUG-00 LH E 11-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 updates and writes BOOKING.

34 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Dirty Read (9) „dirty read“ leaves open whether the transient state is consistent or not. Take schedule S4: r 2 (B) r 2 (T) w 2 (T) w 2 (B) r 1 (B) r 1 (T) c 2 c 1. r 1 (B) r 1 (T) has a consistent output despite dirty read. Still dangerous! Take abort of T 2 : S4: r 2 (B) r 2 (T) w 2 (T) w 2 (B) r 1 (B) r 1 (T) a 2 c 1. Because t 2 leaves no trace t 1 reads a state that never existed!

35 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent + Dirty Read (1) writer-writer interaction by interrupting one of the writers S5: r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 delete from TICKET where ticketNo = ; delete from BOOKING where ticketNo = ; commit; updateTICKET setticketNo = ticketNo whereticketNo in (selectticketNo fromBOOKING wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E„ or seatCode = "19G" )); updateBOOKING setdate = 11-AUG-00, ticketNo = ticketNo wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E„ or seatCode = "19G"); commit; r 2 (B) r 2 (T) w 2 (T) w 2 (B) r 3 (T) w 3 (T) r 3 (B) w 3 (B)

36 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent + Dirty Read (2) r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00

37 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent + Dirty Read (3) r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 3 reads TICKET and selects.

38 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent + Dirty Read (4) r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG-00 LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 3 writes TICKET.

39 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent + Dirty Read (5) r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG-00 LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 reads BOOKING and selects.

40 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent + Dirty Read (6) r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG-00 LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 reads TICKET and selects.

41 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent + Dirty Read (7) r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG-00 LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 writes TICKET.

42 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent + Dirty Read (8) r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG-00 LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 11-AUG-00 LH G 11-AUG-00 LH E 11-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 writes BOOKING.

43 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent + Dirty Read (9) r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG-00 LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 11-AUG-00 LH G 11-AUG-00 LH E 11-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 3 reads BOOKING.

44 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Inconsistent + Dirty Read (10) r 3 (T) w 3 (T) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 3 (B) w 3 (B) c 3 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG-00 LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 11-AUG-00 LH G 11-AUG-00 LH E 11-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 3 writes BOOKING.

45 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (1) updateTICKET setticketNo = ticketNo whereticketNo in (selectticketNo fromBOOKING wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E„ or seatCode = "19G" )); updateBOOKING setdate = 11-AUG-00, ticketNo = ticketNo wheredate = 12-AUG-00 and flightNo = "LH500" and(seatCode = "19D" or seatCode = "19E„ or seatCode = "19G"); commit; delete from TICKET where ticketNo = ; delete from BOOKING where ticketNo = ; commit; writer-writer interaction by interrupting one of the writers r 2 (B) r2(T)r2(T) w2(T)w2(T) w2(B)w2(B) r3(T)r3(T) w3(T)w3(T) r 3 (B) w 3 (B) S6: r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2

46 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (2) r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00

47 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (3) r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 reads BOOKING and selects.

48 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (4) r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 reads TICKET and selects.

49 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (5) r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 3 reads TICKET and selects.

50 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (6) r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG-00 LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 3 writes TICKET.

51 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (7) r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG-00 LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 12-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 3 reads BOOKING and selects.

52 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (8) r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG-00 LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 3 writes BOOKING.

53 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (9) r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH G 12-AUG-00 LH E 12-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 writes TICKET.

54 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (10) r 2 (B) r 2 (T) r 3 (T) w 3 (T) r 3 (B) w 3 (B) c 3 w 2 (T) w 2 (B) c 2 flightNo ticketNo seatCode date ticketNo name LH B 26-AUG Kuhn_Mrs_E LH A 29-SEP Pulkowski_Mr_S LH F 03-OCT Witte_Mr_R LH D 04-SEP Krakowski_Mrs_P LH D 08-SEP Posselt_Mr_D LH C 09-SEP Gimbel_Mr_M LH E 01-SEP Muelle_Mrs_J LH K 07-AUG Bender_Mr_P LH A 11-AUG Lockemann_Mr_P LH K 11-AUG Simpson_Mr_B LH D 01-AUG Weinand_Mr_C LH E 14-AUG-00 LH K 03-SEP-00 LH D 10-SEP-00 LH G 21-JUL-00 LH D 05-AUG-00 LH D 11-AUG-00 LH G 11-AUG-00 LH E 11-AUG-00 LH K 05-AUG-00 LH A 06-AUG-00 t 2 writes BOOKING.

55 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Lost Update (11) Note: Neither t 2 nor t 3 include „inconsistent read“ or „dirty read“. „lost update“ is an independent phenomenon!

56 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 Example 3

57 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 OLTP Example: Debit/Credit void main ( ) { EXEC SQL BEGIN DECLARE SECTION int b /*balance*/, a /*accountid*/, amount; EXEC SQL END DECLARE SECTION; /* read user input */ scanf (“%d %d”, &a, &amount); /* read account balance */ EXEC SQL Select Balance into :b From Account Where Account_Id = :a; /* add amount (positive for debit, negative for credit) */ b = b + amount; /* write account balance back into database */ EXEC SQL Update Account Set Balance = :b Where Account_Id = :a; EXEC SQL Commit Work; } © Weikum, Vossen, 2002

58 © 2006 Univ,Karlsruhe, IPD, Prof. Lockemann/Prof. BöhmTAV 3 OLTP Example: Concurrent Executions P1TimeP2 Select Balance Into :b 1 From Account 1 Where Account_Id = :a /* b 1 =0, a.Balance=100, b 2 =0 */ Select Balance Into :b 2 2From Account Where Account_Id = :a /* b 1 =100, a.Balance=100, b 2 =100 */ b1 = b /* b 1 =50, a.Balance=100, b 2 =100 */ 4b 2 = b /* b 1 =50, a.Balance=100, b 2 =200 */ Update Account Set Balance = :b 1 5 Where Account_Id = :a /* b 1 =50, a.Balance=50, b 2 =200 */ Update Account 6Set Balance = :b 2 Where Account_Id = :a /* b 1 =50, a.Balance=200, b 2 =200 */ © Weikum, Vossen, 2002