Grundlagen der Programmierung: Datenbanken

Transaktionen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Eine Transaktion ist eine unteilbare Abfolge von zuvor definierten Schritten, welche alle erfolgreich abgeschlossen werden müssen, damit in einer Datenbank Daten eingegeben oder geändert werden können.

Transkript

Wenn wir Daten in unsere Datenbanken eingeben oder ändern, dann müssen wir oftmals mit Transaktionen arbeiten. Eine Transaktion ist ein unglaublich wichtiger Bestandteil in der Datenbankwelt. Um sie zu verstehen, stellt man sich eine Transaktion mal in der realen Welt vor. Wenn man davon spricht eine Transaktion auszuführen, dann meint man oftmals etwas im kommerziellen Umfeld. Sie übergeben einem Buchhändler 15 Euro und der Buchhändler gibt Ihnen das Buch. Das ist eine Transaktion und es ist wichtig, dass beide Dinge passieren. Wenn Sie das Geld übergeben, erwarten Sie das Buch zu erhalten. Und wenn der Händler Ihnen das Buch gibt, erwartet er, das Geld zu bekommen. Entweder passieren beide Aktionen oder keine von beiden. In einem Rechnersystem ist ein klassisches Beispiel für eine Transaktion eine Kontoüberweisung. Stellen Sie sich vor, Sie melden sich auf der Webseite Ihrer Bank an und möchten 2000 Euro von einem Ihrer Konten auf ein anderes transferieren. Nun sind dafür zwei Aktualisierungen an diesen Daten erforderlich. Eine, um das Sparkonto mit 2000 Euro zu belasten und die andere, um dem Girokonto 2000 Euro gutzuschreiben. Angenommen, der erste Teil dieses Vorgangs verläuft erfolgreich, das heißt, die 2000 Euro werden auch tatsächlich abgezogen, wenn wir dann versuchen 2000 Euro zu addieren, aber es ein Problem mit dem zweiten Teil gibt, weil vielleicht die Bearbeitung gesperrt ist, dann müssen wir den ersten Teil dieser Transaktion rückgängig machen. Wir möchten niemals in einer Situation sein, in der das erste Konto mit 2000 Euro belastet ist, aber [das Geld] nicht dem zweiten Konto gutgeschrieben wird. Bei einer Transaktion geht es also darum, wie eine kombinierte Arbeitseinheit definiert wird. Entweder beide dieser Aktionen passieren oder keine von beiden. Und die erste Änderung wird sofort durch die Datenbank umgekehrt, wenn irgendein Teil der Transaktion tatsächlich scheitern sollte. Nun gibt es ein gebräuchliches Akronym, dem Sie begegnen, wenn Sie mit Transaktionen in der Datenbankwelt arbeiten: "ACID", A-C-I-D. Eine Transaktion muss atomar, konsisten, isoliert und dauerhaft sein. Auf Englisch klingt das etwas besser und da passt dieses Wort "consistent" eben besser zu dem "C" in ACID. Das aus dem Griechisch stammende "atomar" bedeutet unteilbare Einheit und bezieht sich auf die Kernidee, dass diese Transaktion entweder vollständig stattfindet oder überhaupt nicht. Ob es sich dabei nur um zwei Schritte in der Transaktion handelt oder zwanzig Schritte beteiligt sind, alle sind sie innerhalb ein und derselben Transaktion enthalten. Entweder sie werden alle erfolgreich abgeschlossen oder sie kehren in den ursprünglichen Zustand wieder zurück. So etwas wie eine Transaktion, die zur Hälfte auftritt, die gibt es nicht. Dabei spielt es keine Rolle, aus welchem Grund die Transaktion gescheitert ist. Wegen eines Stromausfalls beim Datenbankserver, weil nicht genügend Platz zum Speichern der neuen Daten vorhanden war oder wegen eines Anwendungsfehlers. Atomar ist die Alles-oder-nichts-Regel. Nun bedeutet Konsistenz, dass jede Transaktion die Datenbank von einem gültigen Zustand in einen anderen gültigen Zustand überführen muss und zwar basierend auf den Regeln der Datenbank. Wenn also eine Transaktion atomar erfolgreich ist, darf sie dennoch nicht zu einer Situation führen, die irgendeine der Integritätsregeln verletzt, die in einer Datenbank definiert sind. Die Isolation bezieht sich darauf, dass die Daten und die Transaktion praktisch für den Moment gesperrt sind, in dem die Transaktion stattfindet. Während wir also versuchen, den Kontostand auf einem unserer Kontodatensätze zu ändern, darf ein anderer Teil des Systems nicht auf dieselben Daten zugreifen, bis diese erste Transaktion fertig gestellt ist. Und Dauerhaftigkeit bezieht sich darauf, dass die Transaktion als robust bezeichnet wird. Falls die Datenbank sagt, die Transaktion ist erfolgreich verlaufen, dann ist die Transaktion erfolgreich verlaufen. Angenommen, Sie gehen auf eine Reisewebseite, buchen einen Flug und erhalten die Bestätigung, einen Platz zu bekommen. Dann sollten Sie in der Lage sein, diese Transaktion als dauerhaft und als garantiert zu betrachten, selbst wenn die Datenbank -- sagen wir -- eine halbe Sekunde später wegen eines Stromausfalls herunterfährt. Beim Neustart wird diese Transaktion den Ausfall überlebt haben und sie werden diesen gebuchten Platz nicht an jemand anderes verkaufen, weil es eine Störung im System gegeben hat, nur eine halbe Sekunde nachdem Sie ihren Kauf getätigt haben. Das Großartige beim Arbeiten mit den meisten Datenbankmanagementsystemen ist nun, dass diese Fähigkeit bereits in das System integriert ist. Sie brauchen sich nicht darum zu kümmern, wie dies zu programmieren ist. Sie müssen lediglich wissen, wann Sie einer Datenbank sagen müssen: Jetzt kommt eine Transaktion. Diese drei, vier, zehn Dinge müssen zusammen erledigt werden. Wie das geht, erfahren Sie in Kürze.

Grundlagen der Programmierung: Datenbanken

Fangen Sie ganz von vorne an und erfahren Sie alles über die Grundlagen zu Datenbanken und deren Einsatzzwecke, um danach eigene Lösungen und Anwendungen zu entwickeln.

3 Std. 6 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!