Transaktionen und Parallelverarbeitung • • • • • • • Eigenschaften von Transaktionen Konsistenz Isolation Parallelverarbeitung Sperrkonzepte Deadlock Beispiele Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 1 . 1 Zugriffsteuerung BaFöG + 400 Sachbearbeiter 1 500 + 400 900 Konto 500 900 300 Miete - 200 Sachbearbeiter 2 500 - 200 300 900 300 Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 2 2 Zugriffsteuerung BaFöG + 400 Sachbearbeiter 1 500 + 400 900 Konto 500 900 700 Miete - 200 Sachbearbeiter 2 900 - 200 700 900 700 Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 3 3 Konsistenzsicherung Konto 1 700 200 Überweise 500 von Konto 1 nach Konto 2 -500 Konto 1 -500 Konto 2 +500 Worzyk HS Anhalt Konto 2 300 800 +500 Medienarchive Sommer 2007 Transaktionen - 4 4 Konsistenzsicherung Konto 1 Worzyk HS Anhalt 700 200 Überweise 500 von Konto 1 nach Konto 2 -500 Konto 1 -500 Konto 2 300 Medienarchive Sommer 2007 Transaktionen - 5 5 Konsistenzsicherung alt 700 Konto 1 700 200 Überweise 500 von Konto 1 nach Konto 2 -500 Konto 1 -500 Konto 2 +500 Konto 2 300 800 alt 300 +500 Transaktion Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 6 6 Eigenschaften von Transaktionen • Konsistenz • Dauerhaftigkeit • Unteilbarkeit • Isolation Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 7 Eine Transaktion im Sinn einer Datenbank ist eine Folge von zusammenhängenden Datenbankänderungen. Das Datenbanksystem sorgt dafür, dass entweder alle oder keine Änderung der Folge durchgeführt werden. Es wird keine formale Definition einer Transaktion gegeben, sondern es werden die Eigenschaften von Transaktionen angegeben. 7 Konsistenz Jede Transaktion erhält die Konsistenz der Datenbasis aufrecht. Sämtliche Zustandsbedingungen gelten vor und nach Beendigung der Transaktion. Transaktionen stellen die Klammer dar, um Folgen von Datenbankoperationen zu konsistenzerhaltenden Zustandsübergängen zusammenzufassen. Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 8 Es gibt Zustandsbedingungen, die die referentielle Integrität beschreiben. Diese Bedingungen werden bei jeder einzelnen Datenbankänderung geprüft und bei einem Widerspruch wird die Änderung zurückgewiesen. Weiterhin gibt es umfassendere Zustandsbedingungen, die durch eine Folge von Datenbankänderungen realisiert werden. Diese Transaktionen werden vom Anwendungsprogrammierer definiert und bilden die Geschäftsregeln der Anwendung ab. Ein Beispiel einer solchen Geschäftsregel ist die Vorschrift, dass die Summe aller Kontostände konstant sein soll. Sie kann realisiert werden, indem zu jeder Buchung auf ein Konto eine Abbuchung von einem anderen Konto gehört. 8 Konsistenz Kunde Ein Angebot gehört genau zu 1 Kunden Ein Auftrag gehört genau zu 1 Kunden Ein Kunde hat n Angebote Angebot Ein Kunde hat 0 bis n Aufträge Auftrag 0 bis 1 Angebote können 0 bis 1 Aufträge haben Weitere Regeln: Wenn ein Kunde gelöscht wird, werden automatisch alle seine Angebote gelöscht Ein Kunde kann nicht gelöscht werden, wenn ein Angebot für ihn existiert Wenn zu einem Angebot ein Auftrag gehört, kann das Angebot nicht mehr geändert werden Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 9 9 Beispiel insert into ta_kunde values(88,'Anna'); update ta_angebot set kunden#=88 where kunden#=13; update ta_auftrag set kunden#=88 where kunden#=13; delete from ta_kunde where kunden#=13; Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 10 Die Kundin Anna hat die Kundennummer 13. Sie hat einige Angebote bekommen und einige Aufträge erteilt. Jetzt möchte die Kundin Anna ihre Kundennummer von 13 nach 88 ändern. Dafür müssen auch in allen ihren Angeboten und in ihren Aufträgen die Kundennummer 13 nach 88 geändert werden. Ein einfacher Änderungsbefehl, der in der Kundentabelle die 13 in die 88 ändert funktioniert nicht, weil es dann kurzfristig Angebote und Aufträge mit der Kundennummer 13 gibt, zu denen keine Kundennummer existiert. Andererseits können die Tabellen Angebot oder Auftrag auch nicht zuerst geändert werden, weil dann Angebote oder Aufträge mit einer Kundennummer existieren, zu der kein Kunde vorhanden ist. Also: Zuerst einen neuen Kunden mit der Nummer 88 anlegen und ihn Anna nennen. Dann Angebote und Aufträge zu Kunde 13 dem Kunden 88 zuordnen. Dann den Kunden mit der Nummer 13 löschen 10 Dauerhaftigkeit Korrekt beendete Transaktionen wirken sich dauerhaft auf die Daten aus. Ihre Wirkung kann nicht durch Systemfehler nachträglich zerstört werden. Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 11 Weder durch eine gewollte noch ungewollte Beendigung eines Anwendungsprogramms oder des DBMS geht die Änderung verloren. Das DBMS bietet auch die Möglichkeit, Daten, die durch einen Plattenfehler verloren gegangen sind, zu rekonstruieren. 11 Unteilbarkeit Eine Transaktion ist eine unteilbare Operation. Sie wird entweder vollständig durch geführt oder bleibt ohne Wirkung. Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 12 Die Unteilbarkeit kann Probleme bei lang andauernden Transaktionen bringen, wenn die Ressourcen während einer Transaktion für andere Benutzer gesperrt sind.. Selbstgebastelte Sperren zur Aufrechterhaltung von unteilbaren Transaktionen sind in der Regel fehleranfällig und wartungsintensiv (Datenübertragung, Replikation,...) Ein Programm zur täglichen Replikation von Datenbeständen in autonome Filialen hat ca. 3 MJ benötigt. Beispiel: in einer Versicherung war der unteilbare und isolierte Vorgang die Bearbeitung eines Kunden (ein Kunde konnte nur gleichzeitig von einem Sachbearbeiter bearbeite werden). Dieses Verfahren gab Probleme bei Großkunden mit einer großen Anzahl von Schadensfällen: Autoversicherung und Hagelkatastrophe in München ca. 1985; es gab Großkunden mit mehreren hundert zerstörte Autos, die einzeln nacheinander bearbeitet werden mussten. 12 Isolation Parallel ablaufende Transaktionen sind voneinander isoliert, so daß jede Transaktion unabhängig von den anderen zurückgesetzt werden kann. Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 13 In kommerziellen DBMS gibt es keine echte Parallelität von Programmabläufen. Parallel ablaufende Transaktionen laufen intern verschachtelt nacheinander ab. Sie beeinflussen sich nicht durch ihre Ergebnisse, können sich aber gegenseitig behindern. 13 Lang andauernde Transaktionen • Normale Transaktionen in einem DBMS dauern einige Sekunden • Transaktionen in Entwurfsdatenbanken können mehrere Tage dauern – CAD – CASE Tools • Im Workflow Management wird Rollback häufig durch inverse Transaktionen ersetzt. Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 14 CAD: Eine Zeichnung wird geladen, lokal bearbeitet und dann wieder zentral gespeichert und muß eventuell zu bereits vorhandenen Zeichnungen passen (Anschlußzeichnungen, Details) CASE Tools: z.B parallele erstellung von ERD‘s. Das CASE toolTeamwork erlaubt parallele Bearbeitung (Strukturierte Analyse, Strukturiertes Design und ERD‘s); Eine frühe Version von ERWIN (ERD‘S unter Windows) benötigte mehrere Stunden zum Zusammenbringen von Teilmodellen (ERD: prüfen auf Fremdschlüssel). Der Begriff einer Transaktion als eine Folge von zusammenhängenden Teilaufgaben wird auch im Workflow Management benutzt. Hier ist ein Zurücksetzen oft nicht möglich, eine fehlerhafte Transaktion muß durch eine inverse Transaktion rückgängig gemacht werden. Beispiel Auftragsabwicklung: Die aufeinanderfolgenden Teilaufgaben sind: Kundennachfrage, Angebot, Auftrag, Lieferung. Wenn ein falsches Angebot verschickt wird, kann dieser Vorgang nicht rückgängig gemacht werden, es muß ein korrigiertes Angebot verschickt werden. 14 Teilaufgaben zur Konsistenzsicherung • Konsistenzbeschreibung • Konsistenzüberwachung • Konsistenzerhaltung • Konsistenzerzeugung Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 15 Konsistenzbeschreibung: Die Regeln, die besagen, ob ein Datenbestand konsistent ist, können der zugehörenden Datenbank bekannt gegeben werden oder sind in Datenbanken für Spezialanwendungen fest programmiert. Konsistenzüberwachung: Die Regeln zur Konsistenzbeschreibung werden regelmäßig oder auf Anforderung überprüft. Bei entdeckten Inkonsistenzen werden entweder automatisch oder nach einem Hinweis durch den Anwender Programme zur Konsistenzerhaltung oder Konsistenzerzeugung aufgerufen. Programme zur Konsistenzüberwachung werden automatisch beim Starten des DBMS aufgerufen und sie überprüfen, ob das DBMS ordnungsgemäß beendet wurde. Konsistenzerhaltung: Programme, die nach vorgegebenen Regeln entdeckte Inkonsistenzen beheben. Konsistenzerzeugung: Die Maßnahmen, die dazu dienen, aus einem inkonsistenten Zustand wieder einen konsistenten Zustand zu erzeugen. Dieser Zustandsübergang kann automatisch oder halbautomatisch in Zusammenarbeit mit dem Benutzer erfolgen, er kann vom System oder vom Benutzer angestoßen werden. ORACLE läßt inkonsistente Zustände im Zusammenhang mit verteilten Datenbanken zu. Inkonsistente Zustände, die durch einen Abbruch des DBMS verursacht wurden, werden automatisch beim Neustart des DBMS behoben. 15 Anfang und Ende einer Transaktion • Eine Transaktion beginnt mit der ersten ausführbaren SQL-Anweisung • Eine Transaktion endet mit – COMMT oder ROLLBACK – einer DDL-Anweisung z.B.: • CREATE TABLE • DROP TABLE – Dem Abmelden des Benutzers – Dem Abbruch des Prozesses Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 16 Eine Transaktion beginnt mit der ersten ausführbaren SQL-Anweisung •nach dem Anmelden an die Datenbank •nach einem Commit oder einem Rollback. Eine Transaktion endet mit •COMMT: die vorangegangenen SQL-Befehle werden festgeschrieben und können nicht automatisch rückgängig gemacht werden. •ROLLBACK: die vorangegangenen SQL-Befehle werden rückgängig gemacht und die Datenbank hat den Stand vor Beginn der Transaktion. •einer DDL-Anweisung z.B.: •CREATE TABLE •DROP TABLE Die DDL-Anweisung bewirkt ein implizites COMMIT vor und nach der Anweisung. •Der Benutzer meldet sich ab: Es wird ein implizites COMMIT ausgelöst.. •Der Prozess bricht ab: Es wird ein implizites ROLLBACK ausgelöst. 16 Savepoints • Savepoints können gesetzt werden, um Teilergebnisse einer Transaktion zu kennzeichnen. Es kann dann ein Rollback bis zu einem Savepoint vorgenommen werden. A n fa n g Worzyk HS Anhalt S a v e p o in t R o llb a c k (S a v e p o in t) Medienarchive Sommer 2007 Transaktionen - 17 Savepoints können gesetzt werden, um Teilergebnisse einer Transaktion zu kennzeichnen. Es kann dann ein Rollback bis zu einem Savepoint vorgenommen werden. Ein sinnvoller Einsatz für den Einsatz von Savepoints könnte gegeben ein, wenn die Konsistenzüberprüfung zeitaufwendig ist und die Konsistenzverletzung die seltene Ausnahme ist. Dann kann die Ausführung der Anweisung und die seltene Zurücksetzung bis zum Savepoint effektiv sein. 17 Ablauf - Ändern • Die alten Daten (vor der Veränderung) werden gespeichert. Die Transaktion bekommt eine System Change Number SCN zugeordnet. • Die Veränderungsbefehle werden protokolliert. • Die Veränderungen werden durchgeführt und in die Datenbank übernommen. Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 18 18 Ablauf - Commit • Die interne Transaktionstabelle zeichnet auf, daß die Transaktion festgeschrieben ist und zeichnet die SCN auf. • Dier Änderungsvorschrift wird archiviert • Die Sperren auf Zeilen und Tabellen werden freigegben. • Die Transaktion wird als beendet gekennzeichnet. Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 19 19 Ablauf - Rollback • Alle Änderungen, die von der SQLAnweisung vorgenommen wurden, werden mit Hilfe gespeicherten Daten rückgängig gemacht. • Die Sperren auf Zeilen und Tabellen werden frei gegeben. • Die Transaktion wird als beendet gekennzeichnet. Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 20 20 RECO PMONArchitektur SMON Oracle Änderungsprotokoll System Global Area PGA Shared update... SQL Pool Server update... Prozess Benutzer SQL-Befehl Prozess update... Worzyk HS Anhalt Daten Puffer Änderung Daten Cache alte DBWR Daten Roll back Segm neue CKPT Daten Daten bank Dateien Redo Log Puffer LGWR Steuer dateien Archiv Redo Log ARCH Online Redo Log Medienarchive Sommer 2007 Transaktionen - 21 21 Isolation gegenseitige Beeinflussung • Lost Update (verlorengegangene Aktualisierung) • Dirty Read (Lesen von nicht festgeschriebenen Daten) • Non Repeatable Read (Nichtwiederholbares Lesen) • Phantoms (Inkonsistentes Lesen) • DDL-Operationen Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 22 Parallel ablaufende Transaktionen werden normalerweise voneinander isoliert, so dass sie sich nicht gegenseitig beeinflussen können. Es gibt aber genügend Möglichkeiten, diese Mechanismen außer Kraft zu setzen und durch fehlerhafte Programme zu umgehen. Die häufigsten Fehler sind: 22 Lost Update Transaktion Zeit Transaktion T2 SELECT x FROM ta_tab WHERE x = 2 xneu = x + 7 t1 UPDATE ta_tab SET x = xneu WHERE x = 2 t3 SELECT x FROM ta_tab WHERE x = 2 COMMIT WORK t4 xneu = 2 * x t5 UPDATE ta_tab SET x = xneu WHERE x = 2 t6 COMMIT WORK Worzyk HS Anhalt t2 Medienarchive Sommer 2007 Transaktionen - 23 Lost update: Beide Transaktionen lesen und ändern die gleichen Daten. Dann überschreibt die spätere Transaktion die geänderten Werte der früheren Transaktion. t3: der alte Wert ist noch bekannt Der von der Transaktion T1 berechnete Wert für x wird von der Transaktion T2 überschrieben. 23 Dirty Read Tranaktion T1 Zeit SELECT x FROM ta_tab WHERE x = 2 t1 xneu = x + 7 t2 UPDATE ta_tab SET x = xneu WHERE x = 2 t3 SELECT x FROM ta_tab WHERE x = 9 ROLLBACK WORK t4 xneu = 2 * x t5 UPDATE ta_tab SET x = xneu WHERE x = 9 t6 COMMTI WORK Worzyk HS Anhalt Transaktion T2 Medienarchive Sommer 2007 Transaktionen - 24 Die TransaktionT1 ändert Daten. Die Transaktion T2 übernimmt die neuen Daten und arbeitet damit weiter. In der Zwischenzeit führt T1 ein ROLLBACK durch und stellt den alten Zustand wieder her. T2 arbeit also mit Daten, die es nie gegeben hat. t3: der neue Wert ist schon bekannt. Die Transaktion T2 liest Daten der Transaktion T1, die noch nicht freigegeben sind. T1 setzt dann die Änderungen zurück. 24 Non Repeatable Read Tranaktion T1 Zeit SELECT x FROM ta_tab WHERE x = 2 t1 IF bedingung ... t2 SELECT x FROM ta_tab WHERE x = 2 t3 xneu = x + 7 t4 UPDATE ta_tab SET x = xneu WHERE x = 2 t5 Transaktion T2 UPDATE ta_tab SET x = x * 2 COMMIT WORK t6 Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 25 T1 liest Daten in einen Speicher und erstellt an Hand der Dateninhalte eine Verarbeitungsstrategie. T2 ändert die Daten in der Datenbank, aber die Änderungen wirken sich nicht auf den internen Speicher von T1 aus. T1 bearbeitet dadurch die falschen Daten nach der zuvor bestimmten Strategie. t3: gleiche Bedingung aber unterschiedliche Ergebnismengen Die Transaktion T1 liest Daten und auf Grund einer Bedingung möchte sie diese Daten nach einem erneuten Lesen bearbeiten. In der Zwischenzeit hat Transaktion T2 den Datanbestand geändert, so daß das erneute Lesen von T1 eine andere Datenmenge ergibt. 25 Phantoms Tranaktion T1 SELECT SUM(x) FROM ta_tab WHERE x > 0 Worzyk HS Anhalt Zeit Transaktion T2 t1 UPDATE ta_tab SET x = -x t2 Medienarchive Sommer 2007 Transaktionen - 26 Während Transaktion T1 die Summe bildet, verändert T2 die Ergebnismenge von T1. Beispiel: Bestandsaufnahme eines Lagers, gleichzeitig werden die Bestände geändert. Diese Art der Inkonsistenzen kann durchaus gewollt sein: Die Transaktion T1 kann unter Umständen sehr lange dauern. Während dieser Zeit können die Daten nicht geändert werden. Wenn das Ergebnis von T1 nur annähernd richtig sein muß, um vielleicht eine Entscheidungshilfe zu bieten, ist es vertretbar, die Transaktion T2 parallel laufen zu lassen. 26 DDL - Operationen Worzyk HS Anhalt Tranaktion T1 Zeit SELECT x FROM ta_tab WHERE x = 2 t1 xneu = x + 7 t2 UPDATE ta_tab SET x = xneu WHERE x = 2 t3 COMMTI WORK t4 Transaktion T2 DROP TABLE ta_tab Medienarchive Sommer 2007 Transaktionen - 27 Während Transaktion T1 eine Tabelle bearbeitet, wird diese Tabelle von T2 gelöscht. Ein solcher Vorgang ist möglich, wenn zur Erzeugung von Zwischenergebnissen Tabellen temporär angelegt werden und nach Erreichen des Endergebnisses wieder gelöscht werden. Wenn dann der Tabellenname nicht eindeutig an die Transaktion geknüpft ist, kann die parallel laufende Transaktion T2 die Tabelle von T1 zerstören. 27 Konsistenzerhaltung von ORACLE automatisch Lesekonsistenz auf Anweisungsebene (Phantoms) ORACLE beobachtet die SCN (System Change Number) und zur Zeit der Ausführung der Abfrage werden nur die Daten, die mit der gleichen SCN gekennzeichnet sind, berücksichtigt Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 28 ORACLE ermöglicht automatisch Lesekonsistenz auf Anweisungsebene (Phantoms): Es wird gewährleistet, daß eine einzelne Abfrage hinsichtlich des Abfragebeginns konsistent ist. Zur Herstellung der Lesekonsistenz beobachtet ORACLE die SCN (System Change Number) und zur Zeit der Ausführung der Abfrage werden nur die Daten, die mit der gleichen SCN gekennzeichnet sind, berücksichtigt. 28 SCN SELECT SCN 10023 Datenblöcke der Rollback Segmente SCN 10023 SCN 10024 SCN 10023 SCN 10023 Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 29 29 Sperrkonzepte von ORACLE • Automatische Sperren – Tabellensperre mit Zeilensperre im Exclusiv-Modus – Tabellensperre mit Zeilensperre im ShareModus • Programmierbare Sperren – Tabellensperre im Share-Modus – Tabellensperre im Exclusiv-Modus Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 30 Tabellensperre mit Zeilensperre im Exclusiv-Modus wird von den Anweisungen INSERT, UPDATE und DELETE automatisch veranlaßt. In diesem Sperrzustand sind Datenmanipulationen anderer Transaktionen an den gesperrten Zeilen nicht erlaubt. Weiterhin kann die gesamte Tabelle nicht von anderen Transaktionen gesperrt werden. Erlaubt sind Datenmanipulationen von anderen Transaktionen an anderen Zeilen. Tabellensperre mit Zeilensperre im Share-Modus wird von der Anweisung SELECT ... FOR UPDATE ausgelöst. In diesem Sperrzustand sind Datenmanipulationen anderer Transaktionen erlaubt. Unzulässig ist dann das gesamte Sperren der Tabelle im Exclusive-Modus von anderen Transaktionen. Tabellensperre im Share-Modus erlaubt anderen Transaktionen die Anweisung SELECT ... FOR UPDATE. Andere Transaktionen dürfen diese Tabelle nicht verändern. Tabellensperre im Exclusiv-Modus erlaubt anderen Transaktionen nur einen lesenden Zugriff. 30 Deadlock (Systemverklemmung) Ein Deadlock tritt auf, wenn mehrere Transaktionen gegenseitig auf die Freigabe von Ressourcen warten, sie die Ressourcen aber nicht freigeben können, da sie diese für den Abschluß ihrer Arbeit benötigen. Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 31 Beispiel: Autofahren mit Linksabbiegen an versetzten Einmündungen 31 Deadlock Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 32 32 Deadlock Beispiel Transaktion t1 Zeit Transaktion t2 UPDATE ta_angebot SET preis = 2*preis WHERE kdnr=11; t1 UPDATE ta_angebot SET menge = 0.5*menge WHERE kdnr=12; UPDATE ta_angebot SET preis = 0.5*preis WHERE kdnr=12; t2 UPDATE ta_angebot SET menge = 2*menge WHERE kdnr=11; deadlock detected t3 Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 33 t1: Transaktion T1 ändert in der Tabelle ta_angebot alle Zeilen, in denen die Kundennummer den Wert 11 hat. Dadurch werden diese Zeilen festgehalten. Andere Transaktionen können diese Zeilen jetzt nur noch lesen. Transaktion T2 ändert in der gleichen Tabelle alle Zeilen mit der Kundennummer 12 und hält dadurch diese Zeilen fest. t2: Transaktion T1 möchte jetzt die Zeilen mit der Kundennummer 12 ändern, kann das aber nicht, da T2 diese Zeilen festhält. Also wartet T1 darauf, dass T2 die Zeilen freigibt. Gleichzeitig wartet T2 auf T1, auf dass T1 die Zeilen mit der Kundennummer 11 freigibt. t3: Das Betriebssystem erkennt, dass sich zwei Transaktionen gegenseitig behindern. Eine der beiden Transaktionen wird abgebrochen. 33 Reduzieren von (Dead)lockSituationen • Transaktionen so kurz wie möglich. • Keine Bildschirmaktionen innerhalb einer Transaktion. • Bei Mehrtabellen-Update (z.B.: MasterDetail-Tabellen) muß eine für alle Anwendungen und alle Programmierer verbindliche Reihenfolge der Zugriffe und der Sperrungen festgelegt werden. Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 34 34 Zusammenfassung 1 Eine Transaktion T überführt die Datenbank von einem konsisten Zustand K1 in einen konsisten Zustand K2. Ist das nicht möglich, wird der Zustand K1 wieder hergestellt (Rollback). Worzyk HS Anhalt Medienarchive Sommer 2007 Transaktionen - 35 35 Zusammenfassung 2 • Eigenschaften von Transaktionen – – – – Konsistenz Dauerhaftigkeit Unteilbarkeit Isolation • Gegenseitige Beeinflussung – – – – Worzyk HS Anhalt Lost Update Dirty Read Non Repeatable Read Phantoms Medienarchive Sommer 2007 Transaktionen - 36 36