Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Datenbanken erstellen

 

Transaktionen und Isolationsstufen verwenden

Um die Datenintegrität zu gewährleisten, ist es wichtig, dass Sie Zustände definieren können, in denen die Informationen in Ihrer Datenbank konsistent sind. Das Konzept der Konsistenz wird am besten durch ein Beispiel erläutert:

Beispiel für Konsistenz

Angenommen, in Ihrer Datenbank werden Geldkonten verwaltet, und Sie möchten Geld von einem Konto auf ein anderes überweisen. Der Zustand der Datenbank ist konsistent, bevor und nachdem das Geld überwiesen wurde, jedoch nicht, nachdem Sie den Betrag einem Konto belastet haben und bevor Sie den Betrag dem anderen Konto gutgeschrieben haben. Während der Überweisung des Geldes ist die Datenbank in einem konsistenten Zustand, solange der Gesamtbetrag auf den Konten so hoch ist, wie er vor der Überweisung war. Wenn die Überweisung erst halb durchgeführt wurde, ist die Datenbank in einem nicht-konsistenten Zustand. Es müssen entweder sowohl die Last- als auch die Gutschrift verarbeitet werden, oder keine von beiden.

Transaktionen sind logische Arbeitseinheiten

Eine Transaktion ist eine logische Arbeitseinheit. Jede Transaktion ist eine Sequenz von logisch verknüpften Befehlen, die eine Aufgabe ausführen und die Datenbank von einem konsistenten Zustand in einen anderen versetzen. Die Eigenschaften eines konsistenten Zustandes hängen von der jeweiligen Datenbank ab.

Die Anweisungen in einer Transaktion werden als unteilbare Einheit behandelt: Entweder werden alle ausgeführt oder keine. Am Ende jeder Transaktion können Sie Ihre Änderungen festschreiben, um sie damit dauerhaft gültig zu machen. Wenn aus irgendeinem Grund einige Befehle in einer Transaktion nicht richtig verarbeitet wurden, werden alle vorübergehenden Änderungen gelöscht oder zurückgesetzt. Man könnte auch sagen, dass Transaktionen atomar sind.

Die Gruppierung von Anweisungen in Transaktionen ist der Schlüssel sowohl zum Schutz der Datenkonsistenz bei Datenträger- oder Systemausfall als auch zum Verwalten gleichzeitiger Datenbankvorgänge. Transaktionen können gefahrlos verflochten werden, und die Fertigstellung jeder Transaktion stellt einen Punkt dar, an dem die Daten der Datenbank konsistent sind. Jede Transaktion muss so entworfen werden, dass sie eine Aufgabe ausführt, die Ihre Datenbank von einem konsistenten Status in den nächsten versetzt.

Bei einem Systemausfall oder einem Datenbankabsturz im normalen Betrieb führt SQL Anywhere eine automatische Wiederherstellung der Daten durch, wenn die Datenbank das nächste Mal gestartet wird. Bei der automatischen Wiederherstellung werden alle abgeschlossenen Transaktionen wieder hergestellt, und alle Transaktionen, die beim Auftreten des Fehlers noch nicht festgeschrieben waren, werden zurückgesetzt. Durch die atomare Eigenschaft der Transaktionen wird sichergestellt, dass Datenbanken in einem konsistenten Zustand wieder hergestellt werden.

Weitere Hinweise zu Datenbanksicherungen und Datenwiederherstellung finden Sie unter Daten sichern und wiederherstellen.

Weitere Hinweise zur gleichzeitigen Verwendung von Datenbanken finden Sie unter Einführung in die Parallelität.


Transaktionen verwenden
Einführung in die Parallelität
Savepoints innerhalb von Transaktionen
Isolationsstufen und Konsistenz
Transaktion blockieren und Deadlock
Funktionsweise von Sperren
Isolationsstufen wählen
Praktische Einführung in Isolationsstufen
Primärschlüssel-Generierung und Parallelität
Datendefinitionsanweisung und Parallelität
Zusammenfassung