TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00;...

42
TA-Wechselwirkungen: Beispiel 1 select count (distinct ticketNr) from BUCHUNG where datum = 12-AUG-00; drucke Anzahl der verkauften Tickets; select name from TICKET where ticketNr in (select ticketNr from BUCHUNG where datum = 12-AUG-00); drucke Passagierliste; commit; update TICKET set ticketNr = ticketNr + 100000 where ticketNr in (select ticketNr from BUCHUNG where datum = 12-AUG-00 and flugNr = "LH500" and (platzCode = "19D" or platzCode = "19E„ or platzCode = "19G" )); update BUCHUNG set datum = 11-AUG-00, ticketNr = ticketNr + 100000 where datum = 12-AUG-00 and flugNr = "LH500" and (platzCode = "19D" or platzCode = "19E" or platzCode = "19G"); commit; Leser-Schreiber- Interaktion durch Unterbrechen des Lesers S1: r 1 (B) r 2 (B) r 2 (T) w 2 (T) w 2 (B) c 2 r 1 (T) c 1

Transcript of TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00;...

Page 1: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 1

select count (distinct ticketNr)from BUCHUNGwhere datum = 12-AUG-00;

drucke Anzahl der verkauften Tickets;

select namefrom TICKETwhere ticketNr in

(select ticketNr from BUCHUNG where datum = 12-AUG-00);

drucke Passagierliste;

commit;

update TICKET set ticketNr = ticketNr + 100000where ticketNr in

(select ticketNrfrom BUCHUNGwhere datum = 12-AUG-00 and flugNr = "LH500"and (platzCode = "19D" or platzCode = "19E„ or platzCode = "19G" ));

update BUCHUNGset datum = 11-AUG-00, ticketNr = ticketNr + 100000where datum = 12-AUG-00 and flugNr = "LH500"and (platzCode = "19D" or platzCode = "19E" or platzCode = "19G");

commit;

Leser-Schreiber-Interaktion durch Unterbrechen des Lesers

S1: r1(B) r2(B) r2(T) w2(T) w2(B) c2 r1(T) c1

Page 2: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 1

r1(B) r2(B) r2(T) w2(T) w2(B) c2 r1(T) c1flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

Page 3: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 1r1(B) r2(B) r2(T) w2(T) w2(B) c2 r1(T) c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

Ausgabe T1 : Anzahl Tickets = 3.

Page 4: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 1r1(B) r2(B) r2(T) w2(T) w2(B) c2 r1(T) c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 liest BUCHUNG und selektiert.

Page 5: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 1r1(B) r2(B) r2(T) w2(T) w2(B) c2 r1(T) c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 liest TICKET und selektiert.

Page 6: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 1r1(B) r2(B) r2(T) w2(T) w2(B) c2 r1(T) c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216187338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 ändert und schreibt TICKET.

Page 7: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 1r1(B) r2(B) r2(T) w2(T) w2(B) c2 r1(T) c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216187338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216187338 19D 11-AUG-00LH500 7216183970 19G 11-AUG-00LH500 7216180817 19E 11-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 ändert und schreibt BUCHUNG.

Page 8: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 1r1(B) r2(B) r2(T) w2(T) w2(B) c2 r1(T) c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216187338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216187338 19D 11-AUG-00LH500 7216183970 19G 11-AUG-00LH500 7216180817 19E 11-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

Ausgabe T1 : leere Passagierliste.

Page 9: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 1

• Resultat: Datenbasis ist am Ende definitionsgemäß konsistent, aber T1 liefert inkonsistentes Ergebnis: Anzahl der Tickets stimmt nicht mit Passagierliste überein.

• Bewertung: Isolation von T1 wurde durchbrochen, da Zustand der Datenbasis während der Ausführung von T1 durch T2 geändert wurde: Die Ticketnummern änderten sich im Laufe von T1.

• non-repeatable read: Lesen eines „zeitlich verschmierten“ Datenbasiszustandes.

Page 10: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2a

select count (distinct ticketNr)from BUCHUNGwhere datum = 12-AUG-00;

drucke Anzahl der verkauften Tickets;

select namefrom TICKETwhere ticketNr in

(select ticketNr from BUCHUNG where datum = 12-AUG-00);

drucke Passagierliste;

commit;

update TICKET set ticketNr = ticketNr + 100000where ticketNr in

(select ticketNrfrom BUCHUNGwhere datum = 12-AUG-00 and flugNr = "LH500"and (platzCode = "19D" or platzCode = "19E„ or platzCode = "19G" ));

update BUCHUNGset datum = 11-AUG-00, ticketNr = ticketNr + 100000where datum = 12-AUG-00 and flugNr = "LH500"and (platzCode = "19D" or platzCode = "19E" or platzCode = "19G");

commit;

Leser-Schreiber-Interaktion durch Unterbrechen des Schreibers

S2: r2(B) r2(T) r1(B) r1(T) w2(T) w2(B) c2 c1

Kein Problem, da T1 einen noch nicht veränderten Datenbasiszustand liest. Dass er kurz danach nicht mehr gilt, ist Pech für T1.

Page 11: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2b

select count (distinct ticketNr)from BUCHUNGwhere datum = 12-AUG-00;

drucke Anzahl der verkauften Tickets;

select namefrom TICKETwhere ticketNr in

(select ticketNr from BUCHUNG where datum = 12-AUG-00);

drucke Passagierliste;

commit;

update TICKET set ticketNr = ticketNr + 100000where ticketNr in

(select ticketNrfrom BUCHUNGwhere datum = 12-AUG-00 and flugNr = "LH500"and (platzCode = "19D" or platzCode = "19E„ or platzCode = "19G" ));

update BUCHUNGset datum = 11-AUG-00, ticketNr = ticketNr + 100000where datum = 12-AUG-00 and flugNr = "LH500"and (platzCode = "19D" or platzCode = "19E" or platzCode = "19G");

commit;

Leser-Schreiber-Interaktion durch Unterbrechen des Schreibers

S3: r2(B) r2(T) w2(T) r1(B) r1(T) w2(B) c2 c1

Auswirkung auf T1 offenkundig dieselbe wie bei S1.

Page 12: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2b

r2(B) r2(T) w2(T) r1(B) r1(T) w2(B) c2 c1flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

Page 13: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2br2(B) r2(T) w2(T) r1(B) r1(T) w2(B) c2 c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 liest BUCHUNG und selektiert.

Page 14: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2br2(B) r2(T) w2(T) r1(B) r1(T) w2(B) c2 c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 liest TICKET und selektiert.

Page 15: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2br2(B) r2(T) w2(T) r1(B) r1(T) w2(B) c2 c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216187338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 ändert und schreibt TICKET.

Page 16: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2br2(B) r2(T) w2(T) r1(B) r1(T) w2(B) c2 c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216187338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

Ausgabe T1 : Anzahl Tickets = 3.

Page 17: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2br2(B) r2(T) w2(T) r1(B) r1(T) w2(B) c2 c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216187338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00 LH500 7216083970 19G 12-AUG-00 LH500 7216080817 19E 12-AUG-00 LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

Ausgabe T1 : leere Passagierliste.

Page 18: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2br2(B) r2(T) w2(T) r1(B) r1(T) w2(B) c2 c1

flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216187338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216187338 19D 11-AUG-00LH500 7216183970 19G 11-AUG-00LH500 7216180817 19E 11-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 ändert und schreibt BUCHUNG.

Page 19: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2b

• Resultat: Datenbasis ist am Ende definitionsgemäß konsistent, aber T1 liefert inkonsistentes Ergebnis: Anzahl der Tickets stimmt nicht mit Passagierliste überein.

• Bewertung: Isolation von T1 wurde durchbrochen, da T1 einen inkonsistenten Zwischenzustand von T2 wahrnahm.

• dirty read: Zeitlich punktuelles Lesen eines noch nicht gültigen Zustandes.

Page 20: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 2c

• Der Begriff „dirty read“ sagt nichts über die Konsistenz des Zwischenzustandes aus.

• Betrachte Schedule S4: r2(B) r2(T) w2(T) w2(B) r1(B) r1(T) c2 c1.

• Liefert konsistente Ausgabe.• Aber trotzdem gefährlich! Betrachte Abbruch von T2:

S4: r2(B) r2(T) w2(T) w2(B) r1(B) r1(T) a2 c1.• Da die Spuren von T2 getilgt werden müssen, hat T1 einen

Zustand gelesen, den es nicht gibt!

Page 21: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

update TICKET set ticketNr = ticketNr + 100000where ticketNr in

(select ticketNrfrom BUCHUNGwhere datum = 12-AUG-00 and flugNr = "LH500"and (platzCode = "19D" or platzCode = "19E„ or platzCode = "19G" ));

update BUCHUNGset datum = 11-AUG-00, ticketNr = ticketNr + 100000where datum = 12-AUG-00 and flugNr = "LH500"and (platzCode = "19D" or platzCode = "19E" or platzCode = "19G");

commit;

Schreiber-Schreiber-Interaktion durch Unterbrechen des Schreibers

S5: r3(T) w3(T) r2(B) r2(T) w2(T) w2(B) c2 r3(B) w3(B) c3

delete from TICKET where ticketNr = 7216087338;

delete from BUCHUNGwhere ticketNr = 7216087338;

commit;

Page 22: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

r3(T) w3(T) r2(B) r2(T) w2(T) w2(B) c2 r3(B) w3(B) c3flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

Page 23: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

r3(T) w3(T) r2(B) r2(T) w2(T) w2(B) c2 r3(B) w3(B) c3flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T3 liest TICKET und selektiert.

Page 24: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

r3(T) w3(T) r2(B) r2(T) w2(T) w2(B) c2 r3(B) w3(B) c3flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T3 schreibt TICKET.

Page 25: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

r3(T) w3(T) r2(B) r2(T) w2(T) w2(B) c2 r3(B) w3(B) c3flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 liest BUCHUNG und selektiert.

Page 26: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

r3(T) w3(T) r2(B) r2(T) w2(T) w2(B) c2 r3(B) w3(B) c3flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 liest TICKET und selektiert.

Page 27: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

r3(T) w3(T) r2(B) r2(T) w2(T) w2(B) c2 r3(B) w3(B) c3flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 schreibt TICKET.

Page 28: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

r3(T) w3(T) r2(B) r2(T) w2(T) w2(B) c2 r3(B) w3(B) c3flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216187338 19D 11-AUG-00 LH500 7216183970 19G 11-AUG-00LH500 7216180817 19E 11-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 schreibt BUCHUNG .

Page 29: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

r3(T) w3(T) r2(B) r2(T) w2(T) w2(B) c2 r3(B) w3(B) c3flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216187338 19D 11-AUG-00 LH500 7216183970 19G 11-AUG-00LH500 7216180817 19E 11-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T3 liest BUCHUNG .

Page 30: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

r3(T) w3(T) r2(B) r2(T) w2(T) w2(B) c2 r3(B) w3(B) c3flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216187338 19D 11-AUG-00 LH500 7216183970 19G 11-AUG-00LH500 7216180817 19E 11-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T3 schreibt BUCHUNG .

Page 31: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 3

• Resultat: Datenbasis ist am Ende inkonsistent, da für Ticket Nr. 7216187338 kein Eintrag in Relation TICKET vorliegt.

• Bewertung: Isolation von T2 und T3 wurde durchbrochen, da T2 auf inkonsistentem Zwischenzustand von T3 aufsetzte (dirty read) und Zustand der Datenbasis während der Ausführung von T3 durch T2 geändert wurde (non-repeatable read).

Page 32: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

update TICKET set ticketNr = ticketNr + 100000where ticketNr in

(select ticketNrfrom BUCHUNGwhere datum = 12-AUG-00 and flugNr = "LH500"and (platzCode = "19D" or platzCode = "19E„ or platzCode = "19G" ));

update BUCHUNGset datum = 11-AUG-00, ticketNr = ticketNr + 100000where datum = 12-AUG-00 and flugNr = "LH500"and (platzCode = "19D" or platzCode = "19E" or platzCode = "19G");

commit;

Schreiber-Schreiber-Interaktion durch Unterbrechen des Schreibers

S6: r2(B) r2(T) r3(T) w3(T) r3(B) w3(B) c3 w2(T) w2(B) c2

delete from TICKET where ticketNr = 7216087338;

delete from BUCHUNGwhere ticketNr = 7216087338;

commit;

Page 33: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

r2(B) r2(T) r3(T) w3(T) r3(B) w3(B) c3 w2(T) w2(B) c2flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

Page 34: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

r2(B) r2(T) r3(T) w3(T) r3(B) w3(B) c3 w2(T) w2(B) c2flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 liest BUCHUNG und selektiert.

Page 35: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

r2(B) r2(T) r3(T) w3(T) r3(B) w3(B) c3 w2(T) w2(B) c2flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 liest TICKET und selektiert.

Page 36: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

r2(B) r2(T) r3(T) w3(T) r3(B) w3(B) c3 w2(T) w2(B) c2flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216087338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T3 liest TICKET und selektiert.

Page 37: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

r2(B) r2(T) r3(T) w3(T) r3(B) w3(B) c3 w2(T) w2(B) c2flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T3 schreibt TICKET.

Page 38: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

r2(B) r2(T) r3(T) w3(T) r3(B) w3(B) c3 w2(T) w2(B) c2flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216087338 19D 12-AUG-00LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T3 liest BUCHUNG und selektiert.

Page 39: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

r2(B) r2(T) r3(T) w3(T) r3(B) w3(B) c3 w2(T) w2(B) c2flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216083970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216080817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00

LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T3 schreibt BUCHUNG.

Page 40: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

r2(B) r2(T) r3(T) w3(T) r3(B) w3(B) c3 w2(T) w2(B) c2flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216187338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00

LH500 7216083970 19G 12-AUG-00LH500 7216080817 19E 12-AUG-00LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 schreibt TICKET.

Page 41: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

r2(B) r2(T) r3(T) w3(T) r3(B) w3(B) c3 w2(T) w2(B) c2flugNr ticketNr platzCode datum ticketNr name ------------------------------------------- -------------------------------LH711 7216083495 02B 26-AUG-00 7216187338 Kuhn_Mrs_E LH3724 7216084316 08A 29-SEP-00 7216084065 Pulkowski_Mr_S LH3651 7216084316 14F 03-OCT-00 7216082757 Witte_Mr_R LH408 7216088131 04D 04-SEP-00 7216084316 Krakowski_Mrs_PLH403 7216088131 05D 08-SEP-00 7216084317 Posselt_Mr_D LH208 7216088131 07C 09-SEP-00 7216083495 Gimbel_Mr_M LH2419 7216083969 02E 01-SEP-00 7216083971 Muelle_Mrs_J LH4080 7216084728 10K 07-AUG-00 7216183970 Bender_Mr_P LH4171 7216084728 07A 11-AUG-00 7216080815 Lockemann_Mr_P LH191 7216084728 01K 11-AUG-00 7216080816 Simpson_Mr_B LH208 7216084069 05D 01-AUG-00 7216180817 Weinand_Mr_C LH3724 7216088132 07E 14-AUG-00LH458 7216080815 81K 03-SEP-00LH710 7216082757 34D 10-SEP-00LH400 7216084317 05G 21-JUL-00LH401 7216084317 05D 05-AUG-00LH500 7216187338 19D 11-AUG-00LH500 7216183970 19G 11-AUG-00LH500 7216180817 19E 11-AUG-00 LH778 7216083911 83K 05-AUG-00LH6390 7216083911 82A 06-AUG-00

T2 schreibt BUCHUNG.

Page 42: TA-Wechselwirkungen: Beispiel 1 selectcount (distinct ticketNr) fromBUCHUNG wheredatum = 12-AUG-00; drucke Anzahl der verkauften Tickets; selectname fromTICKET.

TA-Wechselwirkungen: Beispiel 4

• Resultat: Datenbasis ist am Ende konsistent, aber Effekt von T3 (Storno von Ticket Nr. 7216187338) ging verloren.

• Bewertung: Hier ist nicht die globale Konsistenz, aber sehr wohl die lokale Konsistenz von T3 verletzt! Dauerhaftigkeit von T3 wurde durchbrochen, da T2

Änderungen von T3 überschrieb (lost update).• Beachte: Weder bei T2 noch bei T3 liegt „non-

repeatable read“ oder „dirty read“ vor. „lost update“ ist daher ein eigenständiges Phänomen!