Was ist eine Datenbanktransaktion?


Antworten:


239

Eine Transaktion ist eine Arbeitseinheit, die Sie als "Ganzes" behandeln möchten. Es muss entweder vollständig oder gar nicht geschehen.

Ein klassisches Beispiel ist die Überweisung von Geld von einem Bankkonto auf ein anderes. Dazu müssen Sie zuerst den Betrag vom Quellkonto abheben und dann auf das Zielkonto einzahlen. Die Operation muss vollständig erfolgreich sein. Wenn Sie auf halbem Weg anhalten, geht das Geld verloren, und das ist sehr schlecht.

In modernen Datenbanken können Transaktionen auch einige andere Dinge tun - beispielsweise sicherstellen, dass Sie nicht auf Daten zugreifen können, die eine andere Person zur Hälfte geschrieben hat. Die Grundidee ist jedoch dieselbe: Transaktionen sollen sicherstellen, dass die Daten, mit denen Sie arbeiten , unabhängig davon, was passiert, in einem vernünftigen Zustand sind . Sie garantieren, dass es KEINE Situation gibt, in der Geld von einem Konto abgebucht, aber nicht auf ein anderes eingezahlt wird.


Vielen Dank für das sehr einfache Beispiel
Nomadme

nette Erklärung!
Yan Myo Aung

81

Eine Transaktion ist eine Möglichkeit, eine Statusänderung darzustellen. Transaktionen haben idealerweise vier Eigenschaften, die allgemein als ACID bekannt sind:

  • Atomic (wenn die Änderung festgeschrieben wird, geschieht dies auf einen Schlag; Sie können niemals "eine halbe Änderung" sehen)
  • Konsistent (die Änderung kann nur erfolgen, wenn der neue Status des Systems gültig ist; jeder Versuch, eine ungültige Änderung zu übernehmen, schlägt fehl und das System bleibt in seinem vorherigen gültigen Status.)
  • Isoliert (niemand sonst sieht einen Teil der Transaktion, bis sie festgeschrieben ist)
  • Dauerhaft (sobald die Änderung stattgefunden hat - wenn das System angibt, dass die Transaktion festgeschrieben wurde, muss sich der Client nicht um das "Leeren" des Systems kümmern, damit die Änderung "haftet").

Weitere Informationen finden Sie im Wikipedia ACID- Eintrag.

Obwohl dies normalerweise auf Datenbanken angewendet wird, muss es nicht sein. (Siehe insbesondere Software-Transaktionsspeicher .)


46

Hier ist eine einfache Erklärung. Sie müssen 100 Dollar von Konto A auf Konto B überweisen. Sie können entweder:

accountA -= 100;
accountB += 100;

oder

accountB += 100;
accountA -= 100;

Wenn zwischen der ersten und der zweiten Operation des Paares etwas schief geht, haben Sie ein Problem - entweder sind 100 Dollar verschwunden oder sie sind aus dem Nichts aufgetaucht.

Eine Transaktion ist ein Mechanismus, mit dem Sie eine Gruppe von Vorgängen markieren und so ausführen können, dass entweder alle ausgeführt werden (Festschreiben) oder der Systemstatus so ist, als hätten sie überhaupt nicht mit der Ausführung begonnen (Rollback).

beginTransaction;
accountB += 100;
accountA -= 100;
commitTransaction;

wird entweder 100 Dollar überweisen oder beide Konten im Ausgangszustand belassen.


31

"Eine Reihe von Datenmanipulationsanweisungen, die entweder vollständig oder vollständig fehlschlagen müssen, damit die Datenbank in einem konsistenten Zustand bleibt."


2
Nicht nur Datenbank. Wir können dieses Konzept auf andere Komponenten ausweiten - wie den Warteschlangendienst oder den Status externer Systeme. Also, "Eine Reihe von Datenmanipulationsanweisungen, die entweder vollständig oder vollständig fehlschlagen müssen und das System in einem konsistenten Zustand
belassen

10

Eine Transaktion ist eine Folge von einer oder mehreren SQL-Operationen, die als Einheit behandelt werden.

Insbesondere scheint jede Transaktion isoliert ausgeführt zu werden. Wenn das System ausfällt, wird jede Transaktion entweder vollständig oder nicht vollständig ausgeführt.

Das Konzept der Transaktionen basiert auf zwei völlig unabhängigen Anliegen. Einer hat mit dem gleichzeitigen Zugriff mehrerer Clients auf die Datenbank zu tun, der andere mit einem System, das gegen Systemfehler resistent ist.

Die Transaktion unterstützt die sogenannten ACID-Eigenschaften:

  • A: Atomizität;
  • C: Konsistenz;
  • I: Isolation;
  • D: Haltbarkeit.


1

Ich würde vorschlagen, dass eine Definition von "Transaktionsverarbeitung" nützlicher wäre, da sie Transaktionen als Konzept in der Informatik abdeckt.

Aus Wikipedia:

In der Informatik ist die Transaktionsverarbeitung eine Informationsverarbeitung, die in einzelne, unteilbare Operationen unterteilt ist, die als Transaktionen bezeichnet werden. Jede Transaktion muss als vollständige Einheit erfolgreich sein oder fehlschlagen. es kann nicht in einem Zwischenzustand bleiben.

http://en.wikipedia.org/wiki/Transaction_processing#Implementations


1

Zusätzlich zu den obigen Antworten sollte angemerkt werden, dass es zumindest theoretisch keinerlei Einschränkung gibt, welche Art von Ressourcen an einer Transaktion beteiligt sind.

Meistens handelt es sich nur um eine Datenbank oder mehrere unterschiedliche Datenbanken. Es ist jedoch auch denkbar, dass ein Drucker an einer Transaktion teilnimmt und dazu führen kann, dass diese Transaktion fehlschlägt, beispielsweise im Falle eines Papierstaus.


1

Transaktion kann als Sammlung von Aufgaben definiert werden, die als minimale Verarbeitungseinheit betrachtet werden. Jede minimale Verarbeitungseinheit kann nicht weiter unterteilt werden.

Die Hauptoperation einer Transaktion ist Lesen und Schreiben.

Jede Transaktion muss vier Eigenschaften enthalten, die allgemein als ACID-Eigenschaften bezeichnet werden, um Genauigkeit, Vollständigkeit und Datenintegrität sicherzustellen.


0

Ich denke, eine Transaktion ist eine atomare Aktion in Bezug auf DBMS.

das heißt, es kann nicht getrennt werden. Ja, bei einer Transaktion kann das System mehrere Anweisungen ausführen. aber sie sind miteinander verbunden, um eine einzige Grundaufgabe zu erledigen.

beispielsweise. Sie müssen durch eine Brücke gehen (lassen Sie uns dies als eine Transaktion behandeln), und um dies zu tun, benötigen Sie beispielsweise 100 Schritte. Insgesamt können diese Schritte nicht getrennt werden. Wenn Sie die Hälfte davon erledigt haben, haben Sie nur zwei Möglichkeiten: Beenden Sie sie alle und kehren Sie zum Startpunkt zurück. Es ist genau wie das Ergebnis einer Transaktion: Erfolg (festgeschrieben) und Misserfolg (Rollback)


0

Die Transaktion ist eine unteilbare Einheit der Datenverarbeitung. Alle Transaktionen müssen die ACID-Eigenschaften haben:

Das heißt: Atomarität, Konsistenz, Isolation und dauerhafte Transaktion sind alles oder nichts, aber nicht zwischengeschaltet (es bedeutet, wenn Sie Ihr Geld von einem Konto auf ein anderes Konto überweisen, muss ein Konto so viel verlieren und das andere muss diesen Betrag gewinnen, aber wenn Sie überweisen Geld von einem Konto und ein anderes Konto ist noch leer, was keine Transaktion ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.