Wir bilden Zukunft. Transaktionen und Integrität Datenbanken Wir bilden Zukunft. Um was geht es hier? Warum Transaktionen? Was ist das Problem? Wie kann man das Problem lösen? Was sind Transaktionen? Arbeiten ohne Transaktionen – AUTO COMMT Mode Arbeiten mit Transaktionen Transaktionen und Fehlerfall 3. Januar 2017 Modul 8335 Datenbanken Seite 2 Wir bilden Zukunft. 3. Januar 2017 Warum über Transaktionen reden? Modul 8335 Datenbanken -3- Wir bilden Zukunft. 3. Januar 2017 Was ist das Problem? Modul 8335 Datenbanken -4- Wir bilden Zukunft. 3. Januar 2017 Was ist die Lösung? Modul 8335 Datenbanken -5- Wir bilden Zukunft. Bisher AUTO COMMIT Mode Checkbox bei H2 3. Januar 2017 Modul 8335 Datenbanken -6- Wir bilden Zukunft. 3. Januar 2017 Mit Transaktionen Modul 8335 Datenbanken -7- Wir bilden Zukunft. 3. Januar 2017 Transaktionen & Fehlerfall Modul 8335 Datenbanken -8- Wir bilden Zukunft. 3. Januar 2017 Was sind Transaktionen? Modul 8335 Datenbanken -9- Wir bilden Zukunft. 3. Januar 2017 ACID Modul 8335 Datenbanken - 10 - Wir bilden Zukunft. Was muss ich wissen? INSERT , UPDATE und DELETE verändern die Daten Eine Transaktion ist eine Folge von SQL Statements und beginnt mit der ersten Anweisung Eine Transaktion wird entweder mit COMMIT oder ROLLBACK beendet Eine READ-ONLY Transaktion verändert keine Daten In einer Datenbank-Session kann nur eine Transaktion zu einer Zeit stattfinden Transaktion in einer Transaktion ist nicht erlaubt 3. Januar 2017 Modul 8335 Datenbanken - 11 - Wir bilden Zukunft. Was muss ich wissen? Transaktionen erlauben das Gruppieren von SQL Anweisungen Entweder ALLE SQL Anweisungen in einer Gruppe werden erfolgreich ausgeführt oder gar keine Arbeitet man im AUTO COMMIT Mode, dann wird jede einzelne SQL Anweisung als eine Transaktion ausgeführt Die Anzahl SQL Anweisungen in einer Transaktion wird auch als Transaktionslänge bezeichnet Die Länge von Transaktionen hat Auswirkungen auf die Performance (Antwortzeiten der Datenbank)insbesondere in Verbindung mit dem Isolation Level (siehe Abschnitt Isolation Level) 3. Januar 2017 Modul 8335 Datenbanken - 12 - Wir bilden Zukunft. Was muss ich wissen? ACID ist eine Abkürzung ACID steht für – Atomicity Transaktion ist atomar – Consistency Daten haben immer einen konsistenten Zustand – Isolation Ergebnis einer Transaktion ist immer erst nach „Commit“ für andere sichtbar – Durability Daten werden erst bei einem „Commit“ dauerhaft gespeichert 3. Januar 2017 Modul 8335 Datenbanken - 13 -