Welche zwei grundlegenden Anforderungen gibt es an die Transaktionsverwaltung?
Recovery
behebung von eingetretenen, oft unvermeidbaren fehlern
Synchronisation
von mehreren auf der DB ablaufenden Transaktionen
Was ist eine Transaktion?
eine arbeitseinheit in einer anwendung
die eine bestimmte Funktion erfüllt
=> folge von datenverarbeitungsbefehlen
=> die die datenbasis von konsistenten in anderen (nicht notwendigerweise unterschiedlichen) konsistenten zustand überführt
=> folge von befehlen ist atomar (ununterbrechbar)
Welche operationen gibt es auf transaktions-ebene?
read
write
=== steuerung der Transaktionsverarbeitung
BoT (begin of transactoin)
commit
abort
==== zusätzliche
define savepoint
backup transaction
Was ist der nutzen von BOT?
Kennzeichnet den Beginn einer Transaktion
(und der dazugehörigen befehlsfolge)
Was ist der Nutzen von commit?
leitet die beendigung einer Transaktion ein
alle änderungen der datanbasis werdern festgeschrieben
-> dauerhaft in die DB eingebaut
Was ist der Nutzen von abort?
führt zu selbstabbruch der TA
!! DBS muss sicherstellen dass Datenbasis wieder in Zustand vor TA zurückgeführt wird
Was ist der nutzen von define savepoint?
definieren eines sicherungspunktes
-> auf den sich die (noch) aktive TA zurücksetzen lässt
-> DMBS muss sich alle Änderungen bis zu diesem zeitpunkt merken aber nicht festschreiben
-> da durch abort TA immer noch gänzlich aufgegeben werden kann
Was ist der nutzen von backup transaction?
zurücksetzen der (noch) aktiven TA auf letzen sicherungspunkt
Welche möglichkeiten für den Abschluss einer TA gibt es?
commit (-> erfolgreich)
BOT
op1
…
opn
abort (-> erfolglos)
Wie nennt man das zurücksetzen der DB nach einem abortß
rollback
Was für möglichkeiten gibt es die einen rollback verursachen ?
fehler:
hardware
stromausfall
fehler im code
deadlock
nach TA DB nicht mehr konsistent
Muss konsistenz auch während einer TA gegeben sein?
nein, darf während eine TA im gange ist auch (teilweise) verletzt sein…
Welche eigenschaften haben TA?
ACID
Atomicity
consistency
isolaiton
durabiility
Was bedeutet atomicity?
alles oder nichts prinzip - TA als kleinste, unteilbare einheit
-> entweder werden alle änderungen der TA festgeschrieben oder gar keine
Was bedeutet consistency?
TA hinterlässt nach beendigung konsistenten datenbasiszustand
sonst komplett zurückgesetzt
Was bedeuted isolation?
nebenläufig ausgeführte TA dürfen sich gegenseitig nicht beeinflussen
Was bedeuted durability?
wirkung einer erfolgreich abgeschlossenen TA
bleibt dauerhaft in DB erhalten
=> Transaktionsverwaltung muss sicherstellen:
dass dies auch nach systemfehler gegeben ist (i.e. hardware oder software)
Wie kann man eine festgeschriebene TA rückgängig machen?
mittels anderere TA
-> sog. kompensierende TA
Aus welchen komponenten besteht die Transaktionsverwaltung?
mehrbenutzersynchronisation
recovery
Wie werden Transaktionen in SQL-92 ausgeführt?
implizit begonnen
commit (work)
festschreiben falls keine konsistenzverletzungen festgestellt
rollback work
zurücksetzen aller änderungen
In welchen zuständen kann sich eine Transaktion befinden?
potentiell
TA ist codiert und warted darauf in zustand aktiv zu wechseln
-> wechsel zu aktiv sog. inkarnierend
aktiv
aktiven (derz. rechnenden) TA konkurrieren um betriebsmittel (i.e. Hauptspeicher, CPU, ...) zur ausführung von operationen
wartend
bei überlastung (i.e. thrashing des puffers) kann TAV einige aktive TA in zustand wartend verdrängen
nach behenung der Überlast -> sukkzesives einbringen der wartenden TA (-> wieder auf aktiv setzen)
abgeschlossen
nach commit befehl
-> kann nicht gleich festgeschreieben werden
-> vorher muss auf konsistenz überprüft werden
persistent
nach feststellen der konsistenz
dauerhaftes einbringen in Datenbasis
ENDZUSTAND
gescheitert
abort, fehler, konsistenzverletzung,…
wiederholbar
z.T. sind gescheiterte TA widerholbar
-> erst zurücksetzen der Wirkung auf Datenbasis
-> dann durch neustarten wieder aktivieren
aufgegeben
gescheiterte transaktion die nicht widerholt wird (werden kann)
zurücksetzen der wirkung
Last changeda year ago