Start
Unternehmen
Business Solutions
Business Intelligence
Software-Technologien
Technologie-Beratung
Individual-Software

Comelio GmbH
Essen
Fon: +49(0)201-437517-0
Fax: +49(0)201-437517-10
info@comelio.com

Comelio GmbH
Berlin
Fon: +49(0)30-3640339-80
Fax: +49(0)30-3640339-89
info@comelio.com

Comelio GmbH
Hamburg
Fon: +49(0)40-20934996-0
Fax: +49(0)40-20934996-9
info@comelio.com

Comelio GmbH
Frankfurt
Fon: +49(0)69-17320683-0
Fax: +49(0)69-17320683-9
info@comelio.com

Comelio GmbH
München
Fon: +49(0)89-38156860-0
Fax: +49(0)89-38156860-9
info@comelio.com

Comelio GmbH
Stuttgart
Fon: +49(0)711-46051275-0
Fax: +49(0)711-46051275-9
info@comelio.com

Comelio GmbH
Leipzig
Fon: +49(0)341-3928790-0
Fax: +49(0)341-3928790-9
info@comelio.com

Comelio GmbH
Köln
Fon: +49(0)221-355337943-0
Fax: +49(0)221-355337943-9
info@comelio.com

Comelio GmbH
Düsseldorf
Fon: +49(0)211-63556420-0
Fax: +49(0)211-63556420-9
info@comelio.com

Comelio-Blog > Datenbanken > Transaktionen

Übersicht über Transaktionen

Anwendungen mit Datenbanken zählen in vielen EDV-Systemen zum Entwicklungsstandard, sodass viele Programmierer auch fast ausschließlich datenbankgestützte Software entwickeln. Basis von solchen Anwendungen sind die so genannten Transaktionen, welche die einzelnen Aktivitätsschritte beim Umgang mit Daten in einer Reihenfolge ordnen, verwalten und für den Erhalt konsistenter Daten strukturieren. Dieser Einstiegsartikel erklärt den Begriff der Transaktion.

Kontakt

Anrede* Herr Frau
Vorname*
Nachname*
Firma
E-Mail*
Tel-Nr.
Bereich*
Freitext

Transaktionen in Datenbanken

Die in den bisherigenArtikeln beschriebenen Aktivitäten innerhalb der Datenbank waren relativ kurz, sodass Überlegungen über Implikationen, die mit diesen Aktivitäten in Zusammenhang stehen, gar nicht in den Vordergrund traten. Eine einfache Abfrage bereitet tatsächlich keine Schwierigkeiten für ein DBMS. Einerseits erfüllt es den Grundtatbestand einer Transaktion, dass die Datenbank von einem konsistenten oder korrekten Zustand in einen anderen solchen Zustand überführt wird, aber Aktionen bauen nicht aufeinander auf. Grundprinzip von Transaktionen

Eine Überweisung von einem Konto auf ein anderes Konto besteht aus zwei grundlegenden Vorgängen: 1. Geld auf dem Quell-Konto abbuchen 2. Geld auf das Zielkonto buchen. Stürzt der Rechner ab, nachdem das Geld vom 1. Konto abgebucht wurde und unterstützt das System keine Transaktionen, so ist das Geld verloren, da es ja von Konto 1 abgebucht wurde, aber nie auf Konto 2 gutgeschrieben wurde. Unterstützt das System dagegen Transaktionen, so wird der Fehler erkannt und der Status vor der misslungenen Transaktion wieder hergestellt, d.h. das Geld wird wieder auf Konto 1 zurückgebucht. Der Zustand vor der Transaktion ist wieder hergestellt.

Eine Transaktion stellt wie in der Abbildung eine Reihe von einzelnen Aktionen dar, die in einem logischen und inhaltlichen Zusammenhang stehen. Dabei können diese Aktionen sowohl vom Benutzer als auch im Rahmen eines Programms ausgeführt werden. Letzterer Fall ist im Zusammenhang mit SQL-Erweiterung von besonderer Bedeutung, weil mit ihnen Programme entwickelt werden können, die komplexe Vorgänge mit Vergleichen, Entscheidungen und fallweiser Datenmanipulation selbstständig ausführen können.

Als Beispiel für ein Programm, das mit Transact SQL möglich ist, soll folgende Überlegung dienen: Eine Firma kontrolliert die Abverkäufe von Produkten in einem Webshop oder in einem angeschlossenen Ladennetz. Dabei setzt man eine einfache Heuristik als Controlling-Werkzeug ein, um Neubestellungen und Preise zu kontrollieren. Als kritische Schwelle wurde ein Nachfragerückgang von 25 % ermittelt, der nur über einen gewissen Zeitraum akzeptiert wird. Neben dem Preisrückgang wird also in einer ersten analysierenden Abfrage auch der Zeitpunkt erfasst, seit wann dieser Nachfragerückgang anhält. Die eigentliche Analyse besteht dann aus drei einfachen Faustregeln, die ein Vielfaches des vorgegebenen Zeitraums wie eine Woche oder einen Monat einbeziehen:Grundprinzip von Transaktionen

  • Wenn der Zeitraum für den Nachfragerückgang mehr als den doppelten Vergleichszeitraum umfasst, sollen der Preis um 10 % und das Bestellvolumen um die Hälfte gesenkt werden. Dies könnte man damit erklären, dass normalerweise bei einem Produkt am Ende des Produktlebenszyklus der Lagerbestand unter Berücksichtigung der verringerten Bestellmenge an den Nachfragerückgang angenähert ist.
  • Wenn der Zeitraum für den Nachfragerückgang dagegen schon mehr als den dreifachen Vergleichszeitraum beträgt, vergrößert sich der Preisrückgang auf 15 %, während das Produkt allerdings gar nicht mehr bestellt werden soll.
  • Wenn der Zeitraum für den Nachfragerückgang dagegen sogar mehr als den fünffachen Vergleichszeitraum umfasst, soll die verbleibende Ware nicht nur aus dem Angebot genommen werden, sondern natürlich auch nicht mehr bestellt werden.

Unschwer erkennen Sie an diesem Beispiel, dass eine Vielzahl von einzelnen DB-Aktionen mit den Befehlen SELECT, UPDATE oder DELETE zu einer größeren Anwendung, also einer klassischen Transaktion zusammengefasst werden. Während die Fallunterscheidung bereits ganz typisch nach einer if-else-Verzweigung aussehen, sind die einzelnen Aktionen wie Preisreduktion oder Bestellungsverminderung in den einzelnen Anweisungsblöcken gespeichert.Grundprinzip von Transaktionen

Zwei Problemkreise bzw. gemäß der Abbildung zwei Gewitterwolken schweben über DB-Transaktionen: Wie bei allen Anwendungen und insbesondere Anwendungen in größeren Netzwerken kann es durch Komplexitäten innerhalb der Anwendung oder Datenübertragungen zu Problemen im Bereich des Datenerhalts und Strukturerhalts gehen. Unter gar keinen Umständen darf es geschehen, dass im Rahmen der Transaktion ein Fehler geschieht, der einen ungewollten Datenverlust oder eine Strukturänderung der Datenbank selbst nach sich zieht.Grundprinzip von Transaktionen

Ein weiteres Problemfeld, das vom DBMS gelöst werden muss, ist die zeitgleiche Anfrage für die Abarbeitung von Transaktionen unterschiedlicher Benutzer. Hierbei muss insbesondere darauf geachtet werden, dass eine konkurrierende Abfrage während der Abarbeitungszeit nicht das Grundprinzip zerstört, dass die Datenbank von einem konsistenten Zustand in einen anderen überführt wird.

Gerade bei Mehrbenutzerbetrieb und umfangreichen Transaktionen, die über einfache Abfragen oder kurzen Eintragungsvorgängen hinausgehen, und somit längere Zeit in Anspruch nehmen, muss das DBMS die Abfragen in einer geeigneten Reihenfolge abarbeiten, dass Abfragen mit überschneidenden Befehlen wie Lösch- und Einfügevorgänge in die gleiche Tabelle oder aufgrund gleicher Suchkriterien nicht zu Inkonsistenzen führen. Prinzipiell setzt das DBMS dabei parallele Anfragen so um, dass sie in eine geeignete Reihenfolge gebracht und damit eigentlich nicht wirklich gleichzeitig abgearbeitet werden. Die beiden entscheidenden SQL-Befehle sind COMMIT und ROLLBACK:

  • COMMIT (programm) übermittelt die Transaktionen und setzt sie damit für alle Benutzer, die zeitgleich mit der Datenbank arbeiten, sichtbar um.
  • ROLLBACK (programm) versetzt die Datenbank wieder in einen korrekten Zustand.
    Comelio GmbH Datenbanken: Transaktionen ACID DB-Anomalien DBMS Relationale SQL Datenbank Tutorial Anleitung Handbuch -Comelio GmbH Datenbanken: Transaktionen ACID DB-Anomalien DBMS Relationale SQL Datenbank Tutorial Anleitung Handbuch -Comelio GmbH Datenbanken: Transaktionen ACID DB-Anomalien DBMS Relationale SQL Datenbank Tutorial Anleitung Handbuch -Comelio GmbH Datenbanken: Transaktionen ACID DB-Anomalien DBMS Relationale SQL Datenbank Tutorial Anleitung Handbuch -Comelio GmbH Datenbanken: Transaktionen ACID DB-Anomalien DBMS Relationale SQL Datenbank Tutorial Anleitung Handbuch -Comelio GmbH Datenbanken: Transaktionen ACID DB-Anomalien DBMS Relationale SQL Datenbank Tutorial Anleitung Handbuch -Comelio GmbH Datenbanken: Transaktionen ACID DB-Anomalien DBMS Relationale SQL Datenbank Tutorial Anleitung Handbuch -Comelio GmbH Datenbanken: Transaktionen ACID DB-Anomalien DBMS Relationale SQL Datenbank Tutorial Anleitung Handbuch -Comelio GmbH Datenbanken: Transaktionen ACID DB-Anomalien DBMS Relationale SQL Datenbank Tutorial Anleitung Handbuch -