Transaktionen in SQL - Schritte zum Durchführen von Transaktionen mit Beispielen

Inhaltsverzeichnis:

Anonim

Einführung in Transaktionen in SQL

Eine Transaktion in SQL, die allgemein als Zahlungsvorgang (Senden, Empfangen, Kaufen usw.) bezeichnet wird. Wenn es jedoch um technische Bereiche geht, können Sie die logische Informationseinheit in der Datenbank aktualisieren.

Eine Transaktion ist die Implementierung einer oder mehrerer Änderungen in der Datenbank. Wir können mehrere SQL-Abfragen gruppieren und gleichzeitig in einer Transaktion ausführen. Alle SQL-Abfragen würden entweder auf einmal ausgeführt oder alle würden zurückgesetzt. Es hätte nur zwei Ergebnisse, entweder Erfolg oder Misserfolg.

Die Transaktion, die einmal festgeschrieben wurde, kann kein Rollback sein. Sie kann nur zurückgesetzt werden, wenn die Transaktion nicht festgeschrieben wurde. MYSQL schreibt die Änderungen automatisch in die Datenbank, wenn alle Abfragen erfolgreich ausgeführt wurden. Um die Änderungen explizit in die Datenbank zu übertragen, müssen Sie zuerst die automatische Übertragung über den folgenden Befehl deaktivieren:

Syntax: SET autocommit = 0;

Eigenschaften der Transaktion

Im Folgenden sind die wichtigen Eigenschaften der Transaktionen aufgeführt. Jede Transaktion muss diesen Eigenschaften entsprechen

1. Atomizität

Eine Transaktion muss atomar sein, dh die Datenmanipulation sollte für eine bestimmte logische Einheit abgeschlossen sein. Diese Eigenschaft stellt sicher, dass Datenänderungen vollständig durchgeführt werden, andernfalls wird die Transaktion zurückgesetzt.

2. Konsistenz

Sobald die Transaktion abgeschlossen ist, sind alle verfügbaren Datensätze während der gesamten Transaktion konsistent. Diese Eigenschaft stellt sicher, dass die Datenbankeigenschaft nach einem erfolgreichen Commit den Status wechselt oder nicht.

3. Isolierung

Isolation bezieht sich auf Datenänderungen an einer bestimmten logischen Einheit, die sich nicht auf eine andere Einheit auswirken sollten. Damit kann eine Transaktion unabhängig ausgeführt werden.

4. Haltbarkeit

Während Transaktionen vorgenommene Änderungen sollten dauerhaft im System sein. Im Falle eines Systemfehlers stellt diese Eigenschaft auch sicher, dass Datenänderungen stattfinden oder nicht.

Die oben angegebene Eigenschaft der Transaktion wird auch als ACID-Eigenschaft bezeichnet.

Schritte der Transaktion

1. Beginnen Sie

Eine Transaktion kann in mehreren SQL-Ausführungen auftreten, aber alle SQL-Anweisungen sollten gleichzeitig ausgeführt werden. Wenn eine der Transaktionen fehlschlägt, wird die gesamte Transaktion zurückgesetzt. Die Anweisung zum Starten der Transaktion lautet „START TRANSACTION“. Beginnt mit der Abkürzung für START TRANSACTION.

Syntax: START TRANSACTION;

2. Übernehmen

Commits spiegeln permanent die Änderungen an der Datenbank wider. Die Anweisung zum Starten der Transaktion lautet "COMMIT".

Syntax: COMMIT;

3. Rollback

Rollback wird verwendet, um die Änderungen rückgängig zu machen, dh der Datensatz wird nicht geändert. Er würde sich im vorherigen Status befinden. Die Anweisung zum Starten der Transaktion lautet "ROLLBACK".

Syntax: ROLLBACK;

4. Sicherungspunkt

SAVEPOINT ist auch eine Transaktionsanweisung. Diese Anweisung wurde verwendet, um einen Speicherpunkt im System zu erstellen, damit die ROLLBACK-Operation den Status des Sicherungspunkts erreichen kann.

5. Lassen Sie Savepoint los

RELEASE SAVEPOINT ist eine Anweisung zum Freigeben des Sicherungspunkts und des vom System beim Erstellen eines Sicherungspunkts verbrauchten Speichers.

Syntax: RELEASE SAVEPOINT SP

Hinweise - SP ist der Name des Sicherungspunkts, als dieser Sicherungspunkt vor dem Start der Transaktion erstellt wurde.

6. Legen Sie die Transaktion fest

Mit dem Befehl SET TRANSACTION wird das Transaktionsattribut angegeben, z. B., dass die angegebene Transaktion eine schreibgeschützte oder eine schreibgeschützte Sitzung ist.

Syntax : SET TRANSACTION (LESEN-SCHREIBEN | NUR LESEN);

Die Transaktion wird verwendet, um die komplexen Änderungen in der Datenbank durchzuführen. Es wird hauptsächlich für bankbezogene Informationen verwendet und verwandelt sich in eine relationale Datenbank.

Die Transaktion wird von der MYSQL-Engine InnoDB unterstützt. Standardmäßig bleibt das automatische Festschreiben aktiviert. Daher wird jedes Mal, wenn SQL ausgeführt wird, nachdem das automatische Festschreiben erfolgt ist.

Transaktionen mit SQL

Beispiel 1

Banküberweisung: Ein Konto wurde mit 50000 von Person A belastet. Dieser Betrag wurde an das Darlehenskonto von A überwiesen.

Transaktion starten : Mit dieser Starttransaktion werden alle SQL-Abfragen in eine einzelne Transaktionseinheit konvertiert.

UPDATE `account` SET `balance` = `balance` - 50000 WHERE user_id = 7387438;

Diese SQL-Abfrage zieht den Betrag vom vorhandenen Kontostand ab.

UPDATE `loan_account` SET `paid_amount` = `paid_amount` + 50000 WHERE user_id = 7387438;

Diese SQL-Abfrage fügt den Betrag dem Benutzerdarlehenskonto hinzu.

Insert into `transaction_details`(`user_id`, 'amount') values (7387438, '50000');

Diese SQL-Abfrage fügt einen neuen Datensatz in die Transaktionsdetails-Tabelle ein. Diese Tabelle enthält die Details aller Transaktionen der Benutzer. Wenn alle Abfragen erfolgreich ausgeführt wurden, muss der COMMIT-Befehl ausgeführt werden, da die Änderungen dauerhaft in der Datenbank gespeichert werden müssen.

Festschreiben: Diese Festschreibungsanweisung speichert Änderungen, die von einer Transaktion in der Datenbank aufgerufen wurden. Wenn eine der Transaktionen während der Ausführung fehlschlägt, sollte der Befehl ROLLBACK ausgeführt werden, um die vollständige Transaktion zurückzusetzen

Rollback: Das Rollback wird ausgeführt, sobald eine Abfrage während der Ausführung fehlschlägt.

Beispiel # 2

Bestandsbuchung: In der angegebenen Artikeltabelle sind 6 Artikel verfügbar.

Führen Sie die folgende START TRANSACTION-Anweisung aus, um die Transaktion zu starten.

Führen Sie nun den Befehl SET AUTOCOMMIT = 0 aus ; um die automatische Festschreibung zu deaktivieren

Führen Sie nun die folgende Anweisung aus, um den Datensatz aus der Artikeltabelle zu entfernen

Now Available-Datensatz in der Tabelle ist 4, dh Datensätze, die vorübergehend aus den Tabellenelementen entfernt wurden

Wenn Sie jetzt den Befehl ROLLBACK ausführen, um die Änderungen rückgängig zu machen, ist der gelöschte Datensatz in den Tabellenelementen wie zuvor verfügbar, bevor Sie die Transaktion starten

Wenn dieselbe Löschoperation angewendet wird, wird die COMMIT-Operation nach Änderungen dauerhaft in der Datenbank gespeichert

Jetzt können wir sehen, dass sich der Datensatz nach dem ROLLBACK-Befehl noch in einem neuen Zustand befand. Das bedeutet, dass einmal durchgeführte Änderungen an der COMMIT-Operation nicht rückgängig gemacht werden können, da sie permanent Änderungen in der Datenbank vornehmen.

Vorteile der Verwendung von Transaction in SQL

a) Durch die Verwendung von Transaction wird die Leistung verbessert , wenn 1000 Datensätze mithilfe von Transaktionen eingefügt werden. In diesem Fall würde weniger Zeit als beim normalen Einfügen benötigt. Wie bei einer normalen Transaktion würde COMMIT jedes Mal nach jeder Abfrageausführung stattfinden und die Ausführungszeit jedes Mal verlängern, während in der Transaktion die COMMIT-Anweisung nicht nach jeder SQL-Abfrage ausgeführt werden muss. COMMIT am Ende würde alle Änderungen an der Datenbank dauerhaft auf einmal widerspiegeln. Auch wenn Sie eine Transaktion verwenden, ist das Zurücksetzen der Änderungen viel einfacher als bei der normalen Transaktion. ROLLBACK macht alle Änderungen auf einmal rückgängig und behält den vorherigen Status des Systems bei.

b) Die Transaktion stellt die Datenintegrität in der relationalen Datenbank sicher. Die meisten Datenbanken verwenden mehrere Tabellen, um die Daten zu verwalten. Während der Durchführung von Aktualisierungen können sich zu diesem Zeitpunkt Änderungen in den mehreren Tabellen ergeben. Wenn eine der SQL-Abfragen fehlschlägt, bleiben die Daten bei der Transaktion unverändert.

Fazit

Die Verwendung von Transaktionen wird beim Aktualisieren von Informationen für eine logische Einheit in einer relationalen Datenbank empfohlen. Für die Transaktionsimplementierung sollte das Datenbankmodul die Transaktion wie das InnoDB-Modul unterstützen. Die Transaktion als Einheit von SQL-Anweisungen kann mit einer einzelnen ROLLBACK-Anweisung sofort zurückgesetzt werden. Die Transaktion stellt die Datenintegrität sicher und verbessert die Datenbankleistung.

Empfohlene Artikel

Dies ist eine Anleitung zu Transaktionen in SQL. Hier diskutieren wir die Einführung, Eigenschaften, Schritte und Beispiele von Transaktionen in SQL sowie die Vorteile der Verwendung von Transaktionen in SQL.

  1. Was ist SQL?
  2. SQL-Verwaltungstools
  3. SQL-Ansichten
  4. Arten von Joins in SQL Server
  5. Top 6 Arten von Joins in MySQL mit Beispielen