www.wikidata.de-de.nina.az
Der gesamte Artikel ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Als Transaktion von lateinisch trans hin uber agere treiben handeln fuhren also wortlich Uberfuhrung dt hier besser Durchfuhrung wird in der Informatik eine Folge von Programmschritten bezeichnet die als eine logische Einheit betrachtet werden weil sie den Datenbestand nach fehlerfreier und vollstandiger Ausfuhrung in einem konsistenten Zustand hinterlassen Daher wird fur eine Transaktion insbesondere gefordert dass sie entweder vollstandig und fehlerfrei oder gar nicht ausgefuhrt wird Transaktionen kommen meist bei Datenbanksystemen zum Einsatz Fehlerhafte Transaktionen mussen abgebrochen und die bisherigen Anderungen in der Datenbank ruckgangig gemacht werden so dass sie keine Auswirkungen auf den Zustand der Datenbank haben Transaktionen werden von Transaktionssystemen verarbeitet diese erzeugen dabei aus mehreren Transaktionen eine Historie Inhaltsverzeichnis 1 Beispiel 2 Aufbau von Transaktionen 3 ACID Prinzip 4 Ausfuhrung von Transaktionen in einem Transaktionssystem 5 Verschachtelte Transaktionen 6 Verteilte Transaktionen 7 Wirkungslose Transaktionen 8 Siehe auchBeispiel BearbeitenUm sich die wichtigsten Begriffe dieses Artikels anschaulich vorstellen zu konnen soll folgendes Beispiel dienen In einer Bucherei wird ein Karteikarten System zur Verwaltung des Bestandes an Buchern verwendet Eine Transaktion konnte hier lauten Das Buch Die Schatzinsel an den Benutzer Peter Muller ausleihen Diese Transaktion konnte in der formalen Darstellung so aussehen Anfang der Transaktiondas Feld Vorbestellung der Karte lesen Peter Muller in das Feld ausgeliehen von schreiben 29 Juli 2001 in das Feld Ruckgabe am schreiben dd Ende der Transaktion dd dd Konnte die Karte erfolgreich ausgefullt werden so ist die Transaktion abgeschlossen und die Karte wird in den Karteikasten zuruckgesteckt dies entspricht dem Commit einer Transaktion Wurde die Ausfuhrung unterbrochen so mussen alle bis dahin getatigten Anderungen ruckgangig gemacht werden bevor die Karte zuruckgesteckt wird dies entspricht dem Abort einer Transaktion Wird dies nicht gemacht so konnen Fehler auftreten Falls etwa ausgeliehen von bereits ausgefullt ist das Ruckgabedatum aber noch nicht eingetragen wurde so kann sich Peter Muller bis an sein Lebensende an der Schatzinsel erfreuen ohne Strafgebuhren furchten zu mussen Zu einem Konflikt zwischen Transaktionen kame es beispielsweise wenn das Buch gleichzeitig an einen anderen Benutzer verliehen werden sollte hier wurde die Eigenschaft Isolation verletzt Aufbau von Transaktionen BearbeitenTransaktionen werden durch die Markierungen begin of transaction Abk BOT und end of transaction Abk EOT s Commit abgegrenzt begin of transaction read x write y end of transaction Die Operationen innerhalb einer Transaktion sind geordnet ihre Reihenfolge darf also nicht verandert werden Die Ordnung der Operationen einer Transaktion kann auch als gerichteter Graph dargestellt werden r x w x r y c r z displaystyle begin matrix r x amp rightarrow amp w x amp rightarrow amp r y amp rightarrow amp c amp amp amp nearrow amp amp r z end matrix nbsp Diese Darstellung betont die Nebenlaufigkeit also die gleichzeitige Ausfuhrbarkeit von Operationen In obigem Beispiel kann die Operation r z gleichzeitig mit den Operationen r x und w x ausgefuhrt werden ACID Prinzip Bearbeiten Hauptartikel ACID Bei der Ausfuhrung von Transaktionen muss das Transaktionssystem die ACID Eigenschaften garantieren Atomaritat Atomicity Eine Transaktion wird entweder ganz oder gar nicht ausgefuhrt Transaktionen sind also unteilbar Wenn eine atomare Transaktion abgebrochen wird ist das System unverandert Konsistenz Consistency Nach Ausfuhrung der Transaktion muss der Datenbestand in einer konsistenten Form sein wenn er es bereits zu Beginn der Transaktion war Isolation Isolation Bei gleichzeitiger Ausfuhrung mehrerer Transaktionen durfen sich diese nicht gegenseitig beeinflussen Dauerhaftigkeit Durability Die Auswirkungen einer Transaktion mussen im Datenbestand dauerhaft bestehen bleiben Die Effekte von Transaktionen durfen also nicht verloren gehen oder mit der Zeit verblassen Eine Verschachtelung von Transaktionen ist wegen dieser Eigenschaft streng genommen nicht moglich da ein Zurucksetzen Rollback einer ausseren die Dauerhaftigkeit einer inneren bereits ausgefuhrten Transaktion verletzen wurde Ausfuhrung von Transaktionen in einem Transaktionssystem BearbeitenZiel eines Transaktionssystems ist es stets moglichst viele Transaktionen in moglichst kurzer Zeit abzuwickeln Die serielle Ausfuhrung von Transaktionen also die Ausfuhrung der Transaktionen nacheinander ist zwar einfach zu realisieren fuhrt aber oft nicht zu einer optimalen Erfullung dieses Leistungskriteriums Transaktionssysteme spalten daher Transaktionen in ihre Operationen auf und setzen diese zu Historien zusammen wobei die ACID Eigenschaften bewahrt bleiben mussen Durch diesen Vorgang ergeben sich zwei Moglichkeiten eine Transaktion zu beenden Commit abschliessen Abk c Die Transaktion wurde erfolgreich und ohne Probleme beendet die Auswirkungen der Transaktion auf den Datenbestand werden dauerhaft gespeichert Oft werden die Begriffe commit und end of transaction synonym verwendet Abort abbrechen Abk a Bei der Ausfuhrung der Transaktion sind Probleme aufgetreten ihre Ausfuhrung wird nicht fortgesetzt Die Bedingung der Atomaritat fordert zusatzlich dass samtliche Auswirkungen der Transaktion auf den Datenbestand ruckgangig gemacht werden mussen Das Ruckgangigmachen der Effekte einer Transaktion wird als Rollback Zurucksetzen bezeichnet Es kann dabei vorkommen dass das Zurucksetzen einer Transaktion das Zurucksetzen einer anderen Transaktion notwendig macht was zur Bildung regelrechter Ketten von Zurucksetzungen fuhren kann dies wird als kaskadierendes Rucksetzen bezeichnet Wenn eine Transaktion aufgrund einer anderen Transaktion nicht ausgefuhrt werden kann spricht man von einer Blockierung Wird die erste Transaktion durch die zweite und gleichzeitig die zweite durch die erste blockiert so spricht man von einem Deadlock Verklemmung Verschachtelte Transaktionen BearbeitenEine verschachtelte Transaktion ist eine Transaktion die vollstandig von einer anderen Transaktion umschlossen wird Die innere Transaktion sieht die Veranderungen die von der ausseren gemacht werden Fur das Verhalten der beiden Transaktionen gibt es mehrere Varianten Falls die Transaktionen flach sind fuhrt der Abbruch der inneren Transaktion auch zu einem Abbruch der ausseren Transaktion Die Anderungen der inneren Transaktion sind nicht gultig falls die aussere Transaktion nicht erfolgreich abgeschlossen wird Sind die Transaktionen geschlossen fuhrt ein Abbruch der inneren Transaktion nicht automatisch zu einem Abbruch der ausseren Transaktion Schliesst die innere Transaktion ihre Aktionen erfolgreich ab sind die gemachten Anderungen nur fur die aussere Transaktion sichtbar Fur das ganze System ist die Anderung erst sichtbar wenn die ausserste Transaktion erfolgreich terminiert Im Gegensatz dazu wird bei offenen Transaktionen die Anderung der inneren Transaktion sofort nach deren Termination im ganzen System sichtbar Diese Anderungen bleiben bestehen auch wenn die aussere Transaktion spater abgebrochen wird Verteilte Transaktionen BearbeitenVerteilte Transaktionen sind Transaktionen die in mehreren Teiltransaktionen in verteilten Systemen ausgefuhrt werden Um die Atomaritat verteilter Transaktionen zu gewahrleisten werden entsprechende Commit Protokolle verwendet Ein Beispiel ist die Durchfuhrung einer Uberweisung auf dem Datenbanksystem der Bank des Uberweisers und dem Datenbanksystem der Bank des Empfangers Geht nach dem Geldtransfer auf der zweiten Bank etwas schief z B Kontonummer ist ungultig muss das Geld automatisch wieder zuruckuberwiesen werden Wirkungslose Transaktionen BearbeitenEine Transaktion innerhalb eines Schedules wird als wirkungslos bezeichnet wenn sie eine der folgenden Bedingungen erfullt es werden ausschliesslich Leseoperationen ausgefuhrt es werden ausschliesslich Schreiboperationen ausgefuhrt und die geschriebenen Werte werden ohne zwischenzeitlich ausgelesen zu werden von anderen Transaktionen wieder uberschrieben z B Daten fur Kontrollzwecke wie Datum Zeit der letzten Anderung Wirkungslos bedeutet dass die Transaktionen keinen Einfluss auf den Datenbestand der Datenbank hatte Wirkungslose Transaktionen mussen demnach bei einem Rollback nicht zuruckgesetzt werden Siehe auch BearbeitenTransaktionsprotokoll Atomare Operation Distributed Transaction Coordinator Protokoll Transaktionsmonitor X Open XA Abgerufen von https de wikipedia org w index php title Transaktion Informatik amp oldid 226430396