Wie Daten mit SQL-Transaktionen zu schützen

Es ist sehr wichtig, um die Integrität der Daten zu gewährleisten. Die Transaktion in einem der wichtigsten Werkzeuge des SQL für Datenbank-Integrität beibehalten wird. SQL-Transaktionen und die Standardtransaktion kann in bestimmten Situationen nützlich.

Wie man SQL-Transaktionen verwenden

Ein SQL-Transaktion kapselt alle SQL-Anweisungen, die eine Auswirkung auf die Datenbank haben können. Eine SQL-Transaktion wird entweder mit einem abgeschlossen VERPFLICHTEN oder ROLLBACK Erklärung:

  • Wenn die Transaktion abgeschlossen ist mit einem VERPFLICHTEN, die Auswirkungen aller Anweisungen der Transaktion werden in einem Schnellfeuersequenz in die Datenbank übernommen.

  • Wenn die Transaktion abgeschlossen ist mit einem ROLLBACK, die Auswirkungen aller Aussagen rollte zurück (Das heißt, rückgängig gemacht werden), und die Datenbank wieder in den Zustand wie vor dem Beginn der Transaktion.

In dieser Diskussion wird der Ausdruck Anwendung bedeutet entweder eine Ausführung eines Programms (ob in Java, C ++ oder irgendeiner anderen Programmiersprache) oder eine Reihe von Aktionen an einem Terminal während einer einzigen Logon durchgeführt.

Eine Anwendung kann eine Reihe von SQL-Transaktionen umfassen. Die erste SQL-Transaktion beginnt, wenn die Anwendung begins- die letzte SQL-Transaktion endet, wenn die Anwendung beendet wird. Jeder VERPFLICHTEN oder ROLLBACK dass die Anwendung ausgeführt wird beendet eine SQL-Transaktion und beginnt die nächste. Zum Beispiel hat eine Anwendung mit drei SQL-Transaktionen die folgende Form:

Starten der AnwendungVerschiedene SQL-Anweisungen (SQL-Transaktion-1) COMMIT oder ROLLBACKVerschiedene SQL-Anweisungen (SQL-Transaktion-2) COMMIT oder ROLLBACKVerschiedene SQL-Anweisungen (SQL-Transaktion-3) COMMIT oder ROLLBACKEnd der Anwendung

Eine normale SQL-Transaktion hat einen Zugriffsmodus, der entweder LESEN SCHREIBEN oder SCHREIBGESCHÜTZT- dass sie eine Isolationsstufe SERIALIZABLE, WIEDERHOLBARE READ, READ COMMITTED, oder LESEN UNCOMMITTED. Die Standardeigenschaften sind LESEN SCHREIBEN und SERIALIZABLE. Wenn Sie irgendwelche anderen Merkmale möchten, müssen Sie sie mit einem angeben SET TRANSACTION Anweisung wie die folgenden:

SET TRANSACTION READ ONLY -

oder

SET TRANSACTION NUR WIEDERHOLBARE LESEN LESEN -

oder

SET TRANSACTION READ COMMITTED -

Sie können mehrere haben SET TRANSACTION Anweisungen in einer Anwendung, aber Sie können nur eine in jeder Transaktion angeben und es muss die erste SQL-Anweisung in der Transaktion ausgeführt werden. Wenn Sie möchten, eine zu verwenden, SET TRANSACTION Anweisung, führen Sie es entweder zu Beginn der Anwendung oder nach einer VERPFLICHTEN oder ROLLBACK.

Sie müssen durchführen SET TRANSACTION zu Beginn jeder Transaktion, für die Sie nicht dem Standard Eigenschaften wollen, weil jede neue Transaktion nach einer VERPFLICHTEN oder ROLLBACK wird die Standardeigenschaften automatisch gegeben.

EIN SET TRANSACTION Anweisung kann auch ein angeben DIAGNOSE SIZE, die bestimmt, um die Anzahl der Fehlerbedingungen für die der Umsetzung hergestellt werden soll Informationen zu speichern. (Eine solche numerische Grenze ist notwendig, da eine Umsetzung während einer Aussage mehr als ein Fehler erkennen kann.) Die SQL-Standard für diese Grenze ist die Implementierung definiert, und dass Standard ist fast immer ausreichend.

Die Standard-Transaktion

Die Standard-SQL-Transaktion hat Eigenschaften, die für die meisten Benutzer die meiste Zeit zufrieden stellend sind. Bei Bedarf können Sie verschiedene Transaktionsmerkmale mit einem angeben SET TRANSACTION Erklärung.

Die Standard-Transaktion macht ein paar andere implizite Annahmen:

  • Die Datenbank wird im Laufe der Zeit ändern.

  • Es ist immer besser, sicher zu sein als traurig.

Er setzt den Modus auf LESEN SCHREIBEN, die, wie man es erwarten kann, ermöglicht es Ihnen, Anweisungen zu erteilen, der die Datenbank ändern. Es legt auch die Isolationsstufe SERIALIZABLE, das ist die höchste Stufe der Isolation möglich (also die sicherste). Die Standard-Diagnosegröße ist abhängig von der Implementierung. Schauen Sie sich Ihre SQL-Dokumentation zu sehen, was die Größe für Ihr System ist.

Menü