Datenbanktransaktion

Eine Transaktion umfasst eine Einheit der Arbeit, die innerhalb eines Datenbankverwaltungssystems (oder ähnlichen Systems) gegen eine Datenbank durchgeführt ist, und hat auf eine zusammenhängende und zuverlässige anderer Transaktionen unabhängige Weise behandelt. Transaktionen in einer Datenbankumgebung haben zwei Hauptzwecke:

  1. Um zuverlässige Einheiten der Arbeit zur Verfügung zu stellen, die richtige Wiederherstellung von Misserfolgen erlauben und eine Datenbank konsequent sogar in Fällen des Systemausfalls halten, wenn Ausführung (völlig oder teilweise) anhält und bleiben viele Operationen auf eine Datenbank unvollendet mit dem unklaren Status.
  2. Isolierung zwischen Programmen zur Verfügung zu stellen, die auf eine Datenbank gleichzeitig zugreifen. Wenn diese Isolierung nicht zur Verfügung gestellt wird, das Programm-Ergebnis sind vielleicht falsch.

Eine Datenbanktransaktion muss definitionsgemäß atomar, konsequent, isoliert und haltbar sein. Datenbankpraktiker beziehen sich häufig auf diese Eigenschaften von Datenbanktransaktionen mit der Akronym-SÄURE.

Transaktionen stellen einen "all-nothing" Vorschlag zur Verfügung, feststellend, dass jede in einer Datenbank durchgeführte Arbeitseinheit entweder vollständig vollenden oder keine Wirkung überhaupt haben muss. Weiter muss das System jede Transaktion von anderen Transaktionen isolieren, Ergebnisse müssen sich vorhandenen Einschränkungen in der Datenbank anpassen, und Transaktionen, die erfolgreich vollenden, müssen der haltbaren Lagerung geschrieben werden.

Zweck

Datenbanken und andere Datenläden, die die Integrität von Daten als Paramount häufig behandeln, schließen die Fähigkeit ein, Transaktionen zu behandeln, um die Integrität von Daten aufrechtzuerhalten. Eine einzelne Transaktion besteht aus einer oder unabhängigeren Einheiten der Arbeit, jedes Lesens und/oder des Schreibens der Information zu einer Datenbank oder anderem Datenladen. Wenn das geschieht, ist es häufig wichtig sicherzustellen, dass alle diese in einer Prozession gehenden Blätter die Datenbank oder Daten in einem konsequenten Staat versorgen.

Beispiele von Buchhaltungssystemen der doppelten Buchung illustrieren häufig das Konzept von Transaktionen. In der Buchhaltung der doppelten Buchung verlangt jedes Soll die Aufnahme eines verbundenen Kredits. Wenn man einen Scheck für 100 € ausstellt, um Lebensmittelgeschäfte zu kaufen, muss ein transactional Buchhaltungssystem der doppelten Buchung die folgenden zwei Einträge registrieren, um die einzelne Transaktion zu bedecken:

  1. Belasten Sie 100 € zum Lebensmittelgeschäft-Spesenkonto
  2. Kredit 100 € zur laufenden Rechnung

Ein transactional System würde beide Einträge gehen lassen, oder beide Einträge würden scheitern. Durch das Behandeln der Aufnahme von vielfachen Einträgen als eine transactional Atomeinheit der Arbeit erhält das System die Integrität der registrierten Daten aufrecht. Mit anderen Worten endet niemand mit einer Situation, in der ein Soll registriert wird, aber kein verbundener Kredit, wird oder umgekehrt registriert.

Datenbanken von Transactional

Eine transactional Datenbank ist ein DBMS, wo schreiben, dass Transaktionen auf der Datenbank im Stande sind, wiederholt zu werden, wenn sie richtig (z.B wegen der Macht oder des Konnektivitätsverlustes) nicht vollendet werden.

Die meisten Verwandtschaftsdatenbankverwaltungssysteme fallen in die Kategorie von Datenbanken diese Unterstützung Transaktionen.

In einem Datenbanksystem könnte eine Transaktion aus einer oder mehr Datenmanipulationsbehauptungen und Abfragen, jedem Lesen und/oder dem Schreiben der Information in der Datenbank bestehen. Benutzer von Datenbanksystemen denken Konsistenz und Integrität von Daten als hoch wichtig. Eine einfache Transaktion wird gewöhnlich zum Datenbanksystem auf einer Sprache wie in eine Transaktion gewickelter SQL mit einem dem folgenden ähnlichen Muster ausgegeben:

  1. Beginnen Sie die Transaktion
  2. Führen Sie eine Reihe von Datenmanipulationen durch, und/oder fragt
  3. Wenn keine Fehler vorkommen, dann begehen die Transaktion und beenden es
  4. Wenn Fehler dann rollback die Transaktion vorkommen und sie beenden

Wenn keine Fehler während der Ausführung der Transaktion dann vorgekommen sind, begeht das System die Transaktion. Eine Transaktion begeht Operation wendet alle Datenmanipulationen im Rahmen der Transaktion an und dauert die Ergebnisse zur Datenbank an. Wenn ein Fehler während der Transaktion vorkommt, oder wenn der Benutzer eine rollback Operation angibt, werden die Datenmanipulationen innerhalb der Transaktion zur Datenbank nicht angedauert. Keinesfalls kann eine teilweise Transaktion, für die Datenbank begangen werden, da das die Datenbank in einem inkonsequenten Staat (Artikel durch Vishak P Nair) verlassen würde.

Innerlich, Mehrbenutzerdatenbankladen und Prozess-Transaktionen, häufig durch das Verwenden eines Transaktionspersonalausweises oder XID.

Es gibt vielfache unterschiedliche Wege für Transaktionen, die anders durchzuführen sind als der einfache Weg, der oben dokumentiert ist. Verschachtelte Transaktionen sind zum Beispiel Transaktionen, die Behauptungen innerhalb ihrer enthalten, die neue Transaktionen (d. h. Subtransaktionen) anfangen. Mehrniveau-Transaktionen sind ähnlich, aber haben einige Extraeigenschaften. Ein anderer Typ der Transaktion ist die ersetzende Transaktion.

In SQL

SQL ist von Natur aus transactional, und eine Transaktion wird automatisch angefangen, wenn ein anderer endet. Einige Datenbanken erweitern SQL und führen eine Behauptung durch, aber während er den Anfang der Transaktion anscheinend bedeutet, schaltet er bloß aus autobegehen.

Das Ergebnis jeder geleisteten Arbeit nach diesem Punkt wird unsichtbar für andere Datenbankbenutzer bleiben, bis das System eine Behauptung bearbeitet. Eine Behauptung kann auch vorkommen, der jede seit der letzten Transaktion durchgeführte Arbeit aufmachen wird. Beide und werden die Transaktion beenden, und von neuem anfangen. Wenn autobegehen, war das arbeitsunfähige Verwenden, autobegehen Sie wird häufig auch wiederermöglicht.

Einige Datenbanksysteme erlauben die Synonyme, und, und können andere verfügbare Optionen haben.

Verteilte Transaktionen

Datenbanksysteme führen verteilte Transaktionen als Transaktionen gegen vielfache Anwendungen oder Gastgeber durch. Eine verteilte Transaktion macht die SAUREN Eigenschaften über vielfache Systeme oder Datenläden geltend, und könnte Systeme wie Datenbanken, Dateisysteme, Nachrichtenübermittlungssysteme und andere Anwendungen einschließen. In einer verteilten Transaktion stellt ein Koordinieren-Dienst sicher, dass alle Teile der Transaktion auf alle relevanten Systeme angewandt werden. Als mit der Datenbank und den anderen Transaktionen, wenn ein Teil der Transaktion scheitert, wird die komplette Transaktion über alle betroffenen Systeme wiederholt.

Transactional filesystems

Der Namesys Reiser4 filesystem für Linux unterstützt Transaktionen, und bezüglich der Windows-Aussicht von Microsoft, der Microsoft NTFS filesystem Unterstützungen verteilte Transaktionen über Netze.

Siehe auch

Weiterführende Literatur

  • Gerhard Weikum, Gottfried Vossen (2001), Informationssysteme von Transactional: Theorie, Algorithmen, und die Praxis der Parallelitätskontrolle und Wiederherstellung, Morgan Kaufmann, internationale Standardbuchnummer 1-55860-508-8

Links


Betreffen / Gegenstand-Lebenszeit
Impressum & Datenschutz