====== Datenbanksysteme II ====== * [[übungen]] * [[zusammenfassung]] ===== ACID ===== * Atomic (Wenn, dann wird man als ganzes abgebrochen) * Consistency (Konsistenter Zystand -> Konsistenter Zustand) * Isolation (Man muss sich aleine fühlen) * Durability (Abgeschlossene Transaktionen sind von dauer) ==== Synchronisation ==== === Anomalien === == Lost update == ^ t1 | r(x) | | w(x) | ^ t2 | | w(x) | | == Dirty read/write == ^ t1 | w(x) | | w(x) | ^ t2 | | r(x) | | == Non-repeatable read == ^ t1 | r(x) | | r(x) | ^ t2 | | w(x) | | == Phantom-Problem == //Non-repeatable read// mit Aggregiertem read === Serialisierung === ^ allgemeiner Schedule | Durcheinander | ^ serialisierbarer (allgemeiner) Schedule | Durcheinander kann in Blockform gebracht werden | ^ serieller Schedule | Blockform | Graph Zeichen * Knoten: Transaktionen * Kanten: Abhängigkeiten ^ Übergang ^ Markierung ^ | $w_i(x) \rightarrow r_j(x)$ | wr(x) | | $r_i(x) \rightarrow w_j(x)$ | rw(x) | | $w_i(x) \rightarrow w_j(x)$ | ww(x) | //Kein// rr(x) Zyklenfrei? => Serialisierbar durch topologisches sorieren === Technicken === * Pessimistische Ablaufsteuerung (Locking) * Optimistische Ablaufsteuerung (Zeitstempelverfahren) \\ Notfalls rollback