Gruppieren mehrerer Vorgänge in einer Transaktion

Abgeschlossen

Wenn eine Änderung an einem Teil der Daten eine Änderung an einem anderen Teil der Daten bewirken soll, muss eine Anwendung mehrere Datenaktualisierungen gruppieren. Sie können Transaktionen verwenden, um diese Aktualisierungen zu gruppieren. Wenn ein Ereignis in einer Reihe von Aktualisierungen fehlschlägt, kann in einer Transaktion für die ganze Reihe ein Rollback ausgeführt oder die ganze Reihe rückgängig gemacht werden.

Ein Beispiel ist ein Onlineeinzelhändler, der eine Transaktion verwendet, um eine Bestellung zu tätigen, die Zahlung zu überprüfen und den Produktbestand zu aktualisieren. Durch die Gruppierung der zusammengehörigen Ereignisse wird sichergestellt, dass der Lagerbestand erst reduziert wird, wenn eine bestätigte Zahlung eingegangen ist.

Im Folgenden erfahren Sie mehr über Transaktionen und deren Notwendigkeit für Ihre Daten.

Was ist eine Transaktion?

Eine Transaktion ist eine logische Gruppe von Datenbankvorgängen, die gemeinsam ausgeführt werden.

In Bezug auf die Notwendigkeit von Transaktionen in Ihrer Datenbank müssen Sie sich folgende Frage stellen: Wirkt sich eine Änderung an einem Teil der Daten in Ihrem Dataset auf einen anderen Teil der Daten aus? Wenn Ihre Antwort darauf positiv ausfällt, ist die Unterstützung von Transaktionen in Ihrem Datenbankdienst erforderlich.

Transaktionen werden häufig durch eine Gruppe von vier Anforderungen definiert, die ACID-Garantien genannt werden. ACID steht für „Atomicity, Consistency, Isolation, Durability“ (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit).

  • Unteilbarkeit bedeutet, dass eine Transaktion genau einmal ausgeführt werden muss, und sie muss unteilbar sein. Entweder werden alle Arbeiten durchgeführt oder keine. Vorgänge innerhalb einer Transaktion teilen sich in der Regel eine allgemeine Absicht und sind unabhängig.
  • Die Konsistenz stellt sicher, dass die Daten vor und nach der Transaktion konsistent sind.
  • Isolation stellt sicher, dass jede Transaktion nicht von anderen Transaktionen beeinflusst wird.
  • Dauerhaftigkeit bedeutet, dass die aufgrund der Transaktion vorgenommenen Änderungen dauerhaft im System gespeichert werden. Das System speichert Daten, für die ein Commit ausgeführt wurde, sodass die Daten selbst bei einem Fehler oder Systemneustart im richtigen Zustand verfügbar sind.

Wenn eine Datenbank ACID-Garantien bereitstellt, werden diese Prinzipien einheitlich auf alle Transaktionen angewendet.

OLTP im Vergleich zu OLAP

Transaktionsdatenbanken werden häufig als OLTP (Online Transaction Processing)-Systeme bezeichnet. OLTP-Systeme unterstützen häufig viele Benutzer, weisen kurze Antwortzeiten auf und verarbeiten große Datenmengen. Sie sind außerdem hoch verfügbar, d. h. sie weisen minimale Ausfallzeiten auf. OLTP-Systeme verarbeiten in der Regel kleine Transaktionen oder relativ einfache Transaktionen.

Ein Beispiel für einen Azure-Dienst, der OLTP unterstützt, ist Azure SQL-Datenbank.

Online analytical processing (OLAP)-Systeme unterstützen allgemein weniger Benutzer, weisen längere Antwortzeiten und eine geringere Verfügbarkeit auf und verarbeiten in der Regel umfangreiche oder komplexe Transaktionen.

Ein Beispiel für einen Azure-Dienst, der OLAP unterstützt, ist Azure Analysis Services.

Die Begriffe OLTP und OLAP werden mittlerweile nicht mehr so häufig verwendet wie früher, jedoch ist es einfacher, die Anforderungen Ihrer Anwendung zu kategorisieren, wenn man die Systeme versteht.

Transaktionen: Auswerten der Datentypen

Die Aufgabe, sicherzustellen, dass sich Ihre Daten im richtigen Zustand befinden, ist nicht immer einfach. Transaktionen können hier nützlich sein, da sie Datenintegritätsanforderungen für Ihre Daten erzwingen. Wählen Sie eine Speicherlösung aus, die Transaktionen unterstützt, wenn Ihre Daten von den ACID-Prinzipien profitieren.

Sehen Sie sich die einzelnen Datasets im Szenario des Onlinehändlers an, und stellen Sie die Anforderungen für Transaktionen fest.

Produktkatalogdaten

Produktkatalogdaten sollten in einer Transaktionsdatenbank gespeichert werden. Wenn ein Benutzer einen Auftrag erteilt und die Zahlung bestätigt wurde, muss der Bestand für den Artikel aktualisiert werden. Gleichermaßen gilt: Wenn die Kreditkarte des Kunden abgelehnt wird, muss für den Auftrag ein Rollback ausgeführt werden, und der Bestand darf nicht aktualisiert werden. Für diese Beziehungen sind Transaktionen erforderlich.

Fotos und Videos

Für Fotos und Videos in einem Produktkatalog ist keine Transaktionsunterstützung erforderlich. Diese Dateien werden nur geändert, wenn ein Update erfolgt oder neue Dateien hinzugefügt werden. Auch wenn eine Beziehung zwischen dem Bild und den tatsächlichen Produktdaten besteht, ist diese nicht transaktional.

Geschäftsdaten

Da Geschäftsdaten unveränderliche Verlaufsdaten sind, ist keine Transaktionsunterstützung erforderlich. Geschäftsanalysten, die mit den Daten arbeiten, verfügen ebenfalls über spezifische Abfrageanforderungen. Sie verwenden oftmals Aggregate in ihren Abfragen, damit sie mit den Summen anderer kleinerer Datenpunkte arbeiten können.

Überprüfen Sie Ihr Wissen

1.

Welche Art von Transaktionsdatenbank-System eignet sich am besten für Produktdaten?

2.

Angenommen, die Vorgänge zur Bestandsaktualisierung und Zahlungsabwicklung eines Einzelhändlers werden in der gleichen Transaktion ausgeführt. Ein Benutzer versucht, eine Gutschrift in Höhe von 30 USD für eine Bestellung über seinen Laptop einzulösen und übermittelt die gleiche Bestellung mit der Gutschrift (für den vollständigen Betrag) über sein Smartphone. Es gehen zwei identische Aufträge ein. Die Datenbank im Hintergrund ist eine ACID-konforme Datenbank. Was passiert?