Transaktionsverarbeitung

In der Informatik ist Transaktionsverarbeitung Information, die in einer Prozession geht, der in individuelle, unteilbare Operationen, genannt Transaktionen geteilt wird. Jede Transaktion muss erfolgreich sein oder als eine ganze Einheit scheitern; es kann in einem Zwischenstaat nicht bleiben.

Beschreibung

Transaktionsverarbeitung wird entworfen, um ein Computersystem (normalerweise eine Datenbank oder ein moderner filesystems) in einem bekannten, konsequenten Staat durch das Sicherstellen aufrechtzuerhalten, dass irgendwelche Operationen auf dem System ausgeführt haben, die voneinander abhängig sind, werden entweder alle erfolgreich oder alle annulliert erfolgreich vollendet.

Denken Sie zum Beispiel eine typische Bankverkehrstransaktion, die bewegende 700 $ von einem Sparkonto eines Kunden bis eine laufende Rechnung eines Kunden einschließt. Diese Transaktion ist eine einzelne Operation in den Augen der Bank, aber es schließt mindestens zwei getrennte Operationen in Computerbegriffe ein: das Debitieren des Sparkontos durch 700 $ und Gutschreiben der laufenden Rechnung durch 700 $. Wenn die Solloperation erfolgreich ist, aber der Kredit tut nicht (oder umgekehrt), werden die Bücher der Bank am Ende des Tages nicht balancieren. Es muss deshalb eine Weise geben sicherzustellen, dass entweder beide Operationen erfolgreich sind oder beide scheitern, so dass es nie jede Widersprüchlichkeit in der Datenbank der Bank als Ganzes gibt. Transaktionsverarbeitung wird entworfen, um das zur Verfügung zu stellen.

Transaktionsverarbeitung erlaubt vielfachen individuellen Operationen, zusammen automatisch als eine einzelne, unteilbare Transaktion verbunden zu werden. Das Transaktion bearbeitende System stellt sicher, dass entweder alle Operationen in einer Transaktion ohne Fehler vollendet werden, oder keiner von ihnen ist. Wenn einige der Operationen vollendet werden, aber Fehler kommen vor, wenn andere versucht werden, "wiederholt" das Transaktion bearbeitende System alle Operationen der Transaktion (einschließlich der erfolgreichen), dadurch alle Spuren der Transaktion löschend und das System zum konsequenten, bekannten Staat wieder herstellend, dass es in vor der Verarbeitung der Transaktion war, hat begonnen. Wenn alle Operationen einer Transaktion erfolgreich vollendet werden, wird die Transaktion durch das System begangen, und alle Änderungen zur Datenbank werden dauerhaft vorgenommen; die Transaktion kann nicht wiederholt werden, sobald das getan wird.

Transaktionsverarbeitung schützt vor Hardware und Softwarefehlern, die eine Transaktion teilweise vollendet mit dem in einem unbekannten, inkonsequenten Staat verlassenen System verlassen könnten. Wenn die Computerabstürze in der Mitte einer Transaktion, das in einer Prozession gehende Transaktionssystem versichert, dass alle Operationen in irgendwelchem neutral (d. h., nicht völlig bearbeitet) Transaktionen annulliert werden.

Den größten Teil der Zeit werden Transaktionen gleichzeitig ausgegeben. Wenn sie überlappen (d. h. denselben Teil der Datenbank berühren muss), kann das schaffen

Konflikte. Zum Beispiel, wenn der Kunde, der im Beispiel oben erwähnt ist, 1000 $ in seinem Sparkonto hat und zu versucht

übertragen Sie 350 $ einer verschiedenen Person, während zur gleichen Zeit bewegende 700 $ zur laufenden Rechnung, nur ein von ihnen erfolgreich sein können. Jedoch ist das Zwingen von Transaktionen, folgend bearbeitet zu werden (d. h. ohne rechtzeitig zu überlappen), ineffizient. Deshalb, unter der Parallelität, Transaktion, die in einer Prozession geht

gewöhnlich Garantien, dass das Endergebnis ein konfliktfreies Ergebnis widerspiegelt, das als ob erreicht werden kann, die Transaktionen folgend in durchführend

jede Ordnung (hat ein Eigentum serializability genannt). In unserem Beispiel bedeutet das dass, macht dir nichts aus dem Transaktion zuerst, irgendein der ausgegeben wurde

wechseln Sie zu einer verschiedenen Person über, oder die Bewegung zur laufenden Rechnung ist erfolgreich gewesen, während der andere gescheitert hat.

Methodik

Die Kernprinzipien aller Transaktion bearbeitenden Systeme sind dasselbe. Jedoch kann sich die Fachsprache von einem Transaktion bearbeitendem System bis einen anderen ändern, und die Begriffe, die unten gebraucht sind, sind nicht notwendigerweise universal.

Rollback

Transaktion bearbeitende Systeme sichern Datenbankintegrität durch die Aufnahme von Zwischenstaaten der Datenbank, weil es dann mit diesen Aufzeichnungen modifiziert wird, um die Datenbank zu einem bekannten Staat wieder herzustellen, wenn eine Transaktion nicht begangen werden kann. Zum Beispiel stellen Kopien der Information über die Datenbank vor seiner Modifizierung durch eine Transaktion durch das System beiseite, bevor die Transaktion irgendwelche Modifizierungen machen kann (das wird manchmal eine Vorabbildung genannt). Wenn ein Teil der Transaktion scheitert, bevor es begangen wird, werden diese Kopien verwendet, um die Datenbank zum Staat wieder herzustellen, es war darin, bevor die Transaktion begonnen hat.

Rollforward

Es ist auch möglich, eine getrennte Zeitschrift aller Modifizierungen zu einer Datenbank (manchmal genannt nach Images) zu halten. Das ist für rollback von erfolglosen Transaktionen nicht erforderlich, aber es ist nützlich, für die Datenbank im Falle eines Datenbankmisserfolgs zu aktualisieren, so stellen einige Transaktion bearbeitende Systeme es zur Verfügung. Wenn die Datenbank völlig scheitert, muss sie von der neusten Unterstützung wieder hergestellt werden. Die Unterstützung wird begangene Transaktionen nicht widerspiegeln, seitdem die Unterstützung gemacht wurde. Jedoch, sobald die Datenbank, die Zeitschrift dessen wieder hergestellt wird, nachdem können Images auf die Datenbank (rollforward) angewandt werden, um die Datenbank zu modernisieren. Irgendwelche Transaktionen im Gange zur Zeit des Misserfolgs können dann wiederholt werden. Das Ergebnis ist eine Datenbank in einem konsequenten, bekannten Staat, der die Ergebnisse aller bis zum Moment des Misserfolgs begangenen Transaktionen einschließt.

Tote Punkte

In einigen Fällen können zwei Transaktionen, im Laufe ihrer Verarbeitung, versuchen, auf denselben Teil einer Datenbank zur gleichen Zeit in einem Weg zuzugreifen, der sie davon abhält weiterzugehen. Zum Beispiel kann Transaktion A auf Teil X der Datenbank zugreifen, und Transaktion B kann auf Teil Y der Datenbank zugreifen. Wenn, an diesem Punkt, Transaktion dann versucht, auf Teil Y der Datenbank zuzugreifen, während Transaktion B versucht, auf Teil X zuzugreifen, kommt ein toter Punkt vor, und keine Transaktion kann vorankommen. Transaktion bearbeitende Systeme werden entworfen, um diese toten Punkte zu entdecken, wenn sie vorkommen. Normalerweise werden beide Transaktionen annulliert und wiederholt, und dann werden sie wieder in einer verschiedenen Ordnung automatisch angefangen, so dass der tote Punkt wieder nicht vorkommt. Oder manchmal gerade wird eine der festgefahrenen Transaktionen annulliert, wiederholt, und automatisch nach einer kurzen Verzögerung wiederangefangen.

Tote Punkte können auch zwischen drei oder mehr Transaktionen vorkommen. Je mehr Transaktionen eingeschlossen haben, desto schwieriger sie zum Punkt entdecken sollen, dass Transaktionsverarbeitungssysteme finden, dass es eine praktische Grenze zu den toten Punkten gibt, können sie entdecken.

Das Ausgleichen der Transaktion

In Systemen, wo begehen und sind rollback Mechanismen nicht verfügbar oder unerwünscht, eine ersetzende Transaktion wird häufig verwendet, um gefehlte Transaktionen aufzumachen und das System zu einem vorherigen Staat wieder herzustellen.

SAURE Kriterien (Atomicity, Konsistenz, Isolierung, Beständigkeit)

Transaktionsverarbeitung hat diese Vorteile:

  • Es erlaubt, sich von Computermitteln unter vielen Benutzern zu teilen
  • Es wechselt die Zeit des Jobs aus, der dazu in einer Prozession geht, wenn die Rechenmittel weniger beschäftigter sind
  • Es vermeidet, die Rechenmittel ohne kleine-durch-minutig Mensch-Wechselwirkung und Aufsicht zu vertrödeln
  • Es wird auf teuren Klassen von Computern verwendet, um zu helfen, die Kosten durch das Halten hoher Raten der Anwendung jener teuren Mittel zu amortisieren

Durchführungen

Transaktion bearbeitende Standardsoftware, namentlich das Informationsverwaltungssystem von IBM, wurde zuerst in den 1960er Jahren entwickelt, und wurde häufig mit besonderen Datenbankverwaltungssystemen nah verbunden. Client/Server-Computerwissenschaft hat ähnliche Grundsätze in den 1980er Jahren mit dem Mischerfolg durchgeführt. Jedoch, in neueren Jahren, ist das verteilte Client/Server-Modell beträchtlich schwieriger geworden aufrechtzuerhalten. Da die Zahl von Transaktionen als Antwort auf verschiedene Online-Dienstleistungen gewachsen ist (besonders das Web), war eine einzelne verteilte Datenbank nicht eine praktische Lösung. Außerdem bestehen am meisten online Systeme aus einem ganzen Gefolge von Programmen, die zusammen im Vergleich mit einem strengen Client/Server-Modell funktionieren, wo der einzelne Server die Transaktionsverarbeitung behandeln konnte. Heute sind mehrere Transaktionsverarbeitungssysteme verfügbar, die am Zwischenprogramm-Niveau arbeiten, und die zu großen Systemen einschließlich Großrechner klettern.

Ein wohl bekannter (und offen) Industriestandard ist X/Open Distributed Transaction Processing (DTP) (sieh JTA). Jedoch sind Transaktion bearbeitende Eigentumsumgebungen wie der CICS von IBM noch sehr populär, obwohl sich CICS entwickelt hat, um offene Industriestandards ebenso einzuschließen.

Eine moderne Transaktion, die Durchführung bearbeitet, verbindet Elemente von beider objektorientierten Fortsetzung mit der traditionellen Transaktionsüberwachung. Eine solche Durchführung ist das kommerzielle DTS/S1 Produkt von der Obsidian Dynamik oder das Produkt der offenen Quelle db4o.

Siehe auch

  • SÄURE
  • ACMS
  • Bilanzspur
  • CICS
  • Das Ausgleichen der Transaktion
  • Gleichzeitige Programmierung
  • Datenbanktransaktion
  • Äußerste Transaktion, die (XTP) in einer Prozession geht
  • IBM TXSeries (CICS auf verteilten Plattformen)
  • IMS
  • Java EE (z.B WebSphere Application Server)
  • Java Transaction API (JTA)
  • Zweiphasig begehen
  • Transaktionsverarbeitungsmöglichkeit
  • Smoking (Software)
  • Transaction Processing Management System (TPMS)
  • Transaktion, die Leistungsrat (TPC) bearbeitet
  • Fernmeldeanwendungstransaktionsverarbeitungsabrisspunkt (TATP)

Externe Verweise

Weiterführende Literatur

  • Gerhard Weikum, Gottfried Vossen, Informationssysteme von Transactional: Theorie, Algorithmen, und die Praxis der Parallelitätskontrolle und Wiederherstellung, Morgan Kaufmann, 2002, internationale Standardbuchnummer 1-55860-508-8
  • Jim Gray, Andreas Reuter, Transaktionsverarbeitung — Konzepte und Techniken, 1993, Morgan Kaufmann, internationale Standardbuchnummer 1-55860-190-2
  • Philip A. Bernstein, Eric Newcomer, Grundsätze der Transaktionsverarbeitung, 1997, Morgan Kaufmann, internationale Standardbuchnummer 1-55860-415-4
  • Ahmed K. Elmagarmid (Redakteur), Transaktionsmodelle für Fortgeschrittene Datenbankanwendungen, Morgan-Kaufmann, 1992, internationale Standardbuchnummer 1-55860-214-3

Gilbert Islands / Der See Winnipesaukee
Impressum & Datenschutz