Transaktionen Flashcards
Was ist eine Transaktion?
- Einheit von Operationen, die als zusammenhängender Ablauf ausgeführt wird
- Gewährleistung Konsistenz
Was ist ACID?
- Eigenschaften / Kriterien einer Transaktion
- Atomicity
- Consistency
- Isolation
- Durability
Was bedeutet Atomicity?
- Atomarität
- Transaktion ist atomar
- Nur vollständig oder gar nicht ausgeführt
Was bedeutet Consistency?
- Konsistenz
- Transaktionen erhalten die Konsistenz der Datenbank
- Überführung von konsistentem Zustand in anderen konsistenten Zustand
Was ist Isolation?
- Isoliertheit
- Transaktionen beeinflussen sich nicht gegenseitig
- parallele Transaktionen = als ob sie nacheinander stattgefunden hätten
- Mehrbenutzerbetrieb
Was bedeutet Durability?
- Dauerhaftigkeit
- Wenn Transaktion erfolgreich beendet: Änderungen dauerhaft in Datenbank gespeichert
Welche Schlüsselwörter gibt es bei der Formulierung von Transaktionen?
- START TRANSACTION
- COMMIT
- ROLLBACK
Was ist AUTOCOMMIT?
- jedes SQL-Statement automatisch als Transaktion durchgeführt
- in vielen DBMS standardmäßig aktiviert
Was ist das allgemeine Schema von Transaktionen?
START TRANSACTION
Statement1;
Statement2;
…
StatementN;
COMMIT;
Was sind Isolationsphänomene?
- unerwünschte Effekte, die bei gleichzeitiger Ausführung mehrerer Transaktionen auf denselben Datensätzen auftreten können
Welche Isolationsphänomene gibt es?
- Lost Update
- Dirty Read (Temporary Update)
- Non-repeatable Read
- Phantom Read
Was ist Lost Update?
- Änderungen, die durch nebenläufiges Ausführen von Transaktionen auftreten
- Eine Transaktion überschreibt Änderungen der anderen Transaktion
- Lösung: LOCK, Sicherstellung dass nur eine Transaktion die Daten gleichzeitig ändern kann
Was ist Dirty Read?
- Effekt, dass Änderungen gelesen werden, bevor diese durch COMMIT tatsächlich gespeichert werden
Was ist ein Non-repeatable Read?
- mehrmaliges Lesen führt zu unterschiedlichen Ergebnissen
Was ist Phantom Read?
- unterschiedliche Ergebnisse (Zeilen) beim Lesen derselben Tabellen
- durch INSERT oder DELETE von Datensätzen verursacht
Welche Isolationslevel gibt es?
- Read Uncommitted
- Read Committed
- Repeatable Read
- Serialize
Was ist Read Uncommitted?
- niedrigstes isolationslevel
- auch nicht durch COMMIT bestätigte Änderungen können gelesen werden
Welche Phänomene lässt Read Uncommitted(1) zu?
Alle:
* Lost Update
* Dirty Read
* Non-repeatable Read
* Phantom Read
Was ist Read Committed?
- erlaubt nur Lesen von durch COMMIT bestätigten Daten
Welche Isolationsphänomene lässt Read Committed(2) zu?
- Non-Repeatable Read
- Phantom Read
Was ist Repeatable Read?
- bei mehrfachem Lesen kommt es zur Ausgabe gleicher Daten
Welche Isolationsphänomene lässt Repeatable Read(3) zu?
- Phantom Read
Was ist Serialize?
- bei mehrfachem Lesen innerhalb einer Transaktion steht immer gleiche Datenmenge zur Verfügung
- verbietet gleichzeitige Änderungen an gleichem Datensatz
Welche Isolationsphänomene lässt Serialize(4) zu?
- Keine
Was sind Isolationslevel?
- gezieltes Zulassen / Verbot gewisser Isolationsphänomene