Transaktionen und Sperren Flashcards
(30 cards)
Begriff Transaktion
Folge von Operationen die eine DB von einem konsistenten Zustand in einen möglicherweise neuen aber wieder konsistenten Zustand überführt.
Wofür welches Wort steht das A in ACID ?
Atomarität / atomicity
Wofür welches Wort steht das C in ACID ?
Konsistenz / consistente
Wofür welches Wort steht das I in ACID ?
Isolation
Wofür welches Wort steht das D in ACID ?
Dauerhaftigkeit / durability
Was bedeutet “Konsistenz” in ACID ?
Mit dem Ende einer Transaktion (auch bei Abbruch) müssen alle Integritätsbedingungen erfüllt sein.
Was bedeutet “Isolation” in ACID ?
Nutzer hat Eindruck, dass er alleine mit der DB arbeitet
- Nebenläufige Transaktionen beeinflussen sich nicht
- Transaktionen müssen so ausgeführt werden als würden sie seriell ausgeführt
Was bedeutet “Dauerhaftigkeit” in ACID ?
Änderungen sollen dauerhaft in der DB auf dem Externen Speicher festgeschrieben sein.
Was bedeutet “Dauerhaftigkeit” in ACID ?
Änderungen sollen dauerhaft in der DB auf dem Externen Speicher festgeschrieben sein.
Transaktionen Fehlerfall: wozu gehört “die Buchung rückgängig machen” ?
A (Atomarität)
Transaktionen Fehlerfall: wozu gehört “Integritätsbedingungen müssen erfüllt sein” ?
C (Konsistenz)
Transaktionen Fehlerfall: wozu gehört “parallele Transaktionen dürfen nicht zu Fehlern führen” ?
I (Isolation)
Transaktionen Fehlerfall: wozu gehört “Buchung soll dauerhaft gespeichert werden” ?
D (Dauerhaftigkeit)
Transaktionsgrenzen in SQL (Nennung)
- BOT
- COMMIT
- ABORT
Transaktionsgrenzen in SQL : BOT Kürzel
Beginn of Transaction
Transaktionen Fehlerquellen
- lost update
- dirty read
- non-repeatable read
- Phantom Problem
Transaktionen Fehlerquellen: Was ist “Lost Update” ?
Zwei Transaktionen lesen und verändern einen Wert, nur das “neuer”/”letztere” Schreiben des Wertes wird persistiert (das erste Schreiben geht verloren)
Transaktionen Fehlerquellen: Was ist “dirty read” ?
- T1 verändert einen Wert
- T2 liest diesen aus
- T1 bricht ab
T2 hat nun einen unechten / schmutzigen Wert ausgelesen.
Transaktionen Fehlerquellen: Was ist “non repeatable read” ?
- T1 liest einen Wert aus
- T2 verändert den Wert
- T1 liest den Wert erneut aus
T1 hat nun zwei verschiedene Werte ausgelesen
Transaktionen Fehlerquellen: Was ist das “Phantomproblem” ?
- T1 selektiert alle Tupel aus Relation
- T2 Fügt neue Tupel in Relation ein /löscht welche
- T1 updated alle selektierten Tupel
Das neue Tupel aus T2 wird nicht geupdated !
Transaktionslevel “Read uncommitted” : welche Fehlerquellen sind ausgeschlossen ?
- Lost Update
Transaktionslevel “Read Commited” : welche Fehlerquellen sind ausgeschlossen ?
- Lost Update
- Dirty Read
Transaktionslevel “Repeatable Read” : welche Fehlerquellen sind ausgeschlossen ?
- Lost Update
- Dirty Read
- Non Repeatable Read
Transaktionslevel “Serializable” : welche Fehlerquellen sind ausgeschlossen ?
Alle:
- Lost Update
- Dirty Read
- Non Repeatable Read
- Phantomproblem