Kursinhalt
Fortgeschrittene Techniken in SQL
Fortgeschrittene Techniken in SQL
Atomarität
Atomarität in SQL bezieht sich auf eine der ACID-Eigenschaften, die sicherstellt, dass wir Transaktionen verwenden, während wir Daten mit SQL abfragen.
Im Kontext von SQL-Datenbanken garantiert die Atomarität, dass alle Operationen innerhalb einer bestimmten logischen Einheit abgeschlossen werden oder keine von ihnen.
Transaktionsverarbeitung in SQL
Hauptmerkmale
-
Rollback: Wenn ein Teil fehlschlägt (z.B. aufgrund eines Fehlers oder einer Einschränkungsverletzung), wird die gesamte Transaktion zurückgesetzt, wodurch Änderungen rückgängig gemacht werden;
-
Commit: Wenn alle Operationen erfolgreich sind, wird die Transaktion abgeschlossen, wodurch Änderungen dauerhaft werden.
Erstellen von Transaktionen in SQL
In SQL wird jede einzelne Anweisung als Transaktion betrachtet.
Wir können jedoch manuell Transaktionen erstellen, die mehr als eine Anweisung enthalten.
Stellen wir uns ein Szenario vor, in dem wir zwei Tabellen haben:
-
die
BankAccounts
-Tabelle, die die folgenden Spalten enthält:account_number
(Primärschlüssel),account_holder
undbalance
; -
UserLogs
-Tabelle mit Spalten:account_number
,action
,timestamp
usw. Die Kombination ausaccount_number
undtimestamp
ist ein zusammengesetzter Primärschlüssel dieser Relation.
Betrachten wir nun ein Szenario, in dem wir ein neues Bankkonto erstellen und gleichzeitig einen Protokolleintrag generieren möchten, um die Hinzufügung des neuen Kontos zu kennzeichnen.
Es ist zwingend erforderlich, dass diese beiden Aktionen, das Hinzufügen des Kontos und das Protokollieren des Ereignisses, als eine einzige logische Einheit behandelt werden und in einer einzigen Transaktion zusammengefasst werden müssen. Hier ist ein sehr einfaches Beispiel, wie wir dies mit einer Transaktion tun könnten:
In der obigen Abfrage verwenden wir den BEGIN
-Block, um anzuzeigen, dass alle folgenden Anweisungen als eine einzige Einheit betrachtet werden müssen - wenn eine von ihnen nicht ausgeführt wird, darf keine der Anweisungen ausgeführt werden.
Das COMMIT
-Schlüsselwort kennzeichnet das Ende des Transaktionsblocks.
Danke für Ihr Feedback!