DB | Transaktionen Flashcards
Was versteht man unter Isolationsebenen?
Isolationsebenen definieren den Isolationsgrad der Datenbank, d.h. welche Phänomene, die ohne Isolierung auftreten können, zugelassen werden
Phänomene, die im Mehrbenutzerbetrieb auftreten können
- dirty reads
- non-repeatable reads
- phantom reads
- lost update
dirty reads
- noch nicht festgeschriebene Daten einer anderen Transaktion können gelesen werden
- dadurch kann es vorkommen, dass inkonsistente Daten gelesen werden
non-repeatable reads
eine wiederholte Abfrage innerhalb einer Transaktion liefert beim zweiten Mal ein anderes Ergebnis, da zwischenzeitlich durch eine andere Transaktion Änderungen durchgeführt und festgeschrieben wurden
phantom reads
- innerhalb eine Transaktion wird eine Abfrage mit derselben Selektionsbedingung wiederholt und liefert bei der zweiten Abfrage eine andere Datenmenge
- tritt auf, wenn z.B. durch eine andere Transaktion zwischenzeitlich neue Tupel eingefügt wurden
Welche Isolationsebenen gibt es?
- read uncommited -> hohe Parallelität
- read committed
- repeatable read
- serializable (strengste Ebene) -> niedrige Parallelität
read uncommitted
- Lesen von nicht endgültig festgeschriebenen Daten möglich
- > darf nur bei read-only Transaktionen benutzt werden
read committed
- nur Lesen endgültig festgeschriebener Daten
- > non-repeatable-read und Phantomproblem möglich
repeatable read
- gelesene Daten einer Transaktion können durch andere Transaktionen nicht verändert werden -> Lesesperre wird bis zum Transaktionsende gehalten
- > Phantomproblem möglich
serializable
- garantiert Serialisierbarkeit einer Transaktion
* Transaktion sieht nur Änderungen, die zu Beginn endgültig festgeschrieben wurden
ACID?
Atomicity
Consistency
Isolation
Durability
(Eigenschaften, die die DB für eine Transaktion garantiert)
lost update
zwei Transaktionen ändern quasi gleichzeitig den Wert eines DB-Objekts und schreiben nacheinander in die DB zurück -> der eine überschreibt den anderen