ACID-Transaktionen

Robuste Datenbankverwaltungssysteme müssen die Daten, die sie speichern und verarbeiten, vor Verfälschung schützen. Atomizität Beständigkeit Isolation Langlebigkeit (ACID) bietet eine Reihe von Regeln zur Sicherung der Integrität von Datenbanken und Transaktionen.
Was ist ACID?
Das Akronym ACID wurde in den 1960er Jahren geprägt und wird seither in relationalen Datenbanksystemen verwendet. Die vier Eigenschaften können wie folgt erweitert werden.
Atomizität
Atomizität erzwingt die Regel, dass alle Änderungen in einer Transaktion zusammen übertragen werden. Wenn eine der Änderungen in der Transaktion fehlschlägt, schlägt die gesamte Transaktion fehl, und alle ausstehenden Änderungen werden rückgängig gemacht. Beispiel: Bei einer Banktransaktion wird in einem ersten Schritt ein Betrag von einem Sparkonto abgezogen, gefolgt von einem zweiten Schritt, bei dem derselbe Betrag einem zugehörigen Girokonto gutgeschrieben wird. Wenn einer der beiden Schritte aus irgendeinem Grund fehlschlägt, wird die gesamte Transaktion rückgängig gemacht. Auf diese Weise werden beide Konten mit ihren ursprünglichen Salden fortgeführt. Jedes relationale Datenbanksystem führt beim Starten der Datenbankinstanz standardmäßig einen impliziten Rollback aller nicht abgeschlossenen Transaktionen durch. Das Relationale DatenbankmanagementsystemRDBMS) muss dies tun, weil es unbestätigte Änderungen optimistisch in Protokolldateien aufzeichnet, die erst dann als bestätigt gelten, wenn die entsprechende Aufzeichnung in das Protokoll geschrieben wird.
Beständigkeit
Ein Datenbanksystem schützt sich selbst, indem es Daten, die eingefügt oder aktualisiert werden, validiert. Wenn eine Tabelle erstellt oder geändert wird, ist für jedes Feld oder Attribut einer Aufzeichnung ein fester Datentyp festgelegt. Jeder Versuch, falsche Daten eines falschen Datentyps einzufügen, wird zurückgewiesen. So ist beispielsweise ein alphabetisches Zeichen in einem Feld mit dem Datentyp "Ganzzahl" nicht zulässig.
Einschränkungen der referentiellen Integrität bieten eine zweite Ebene der Kontrolle für Datenfelder. Diese Regeln werden verwendet, um die Werte eines Feldes einzuschränken, zum Beispiel diejenigen, die in einer Bezugstabelle vorhanden sind. Dies würde als Fremdschlüssel-Beschränkung betrachtet werden. So kann beispielsweise eine Verkaufstabelle auf Produkte verweisen, die in der Produkttabelle vorhanden sein müssen, damit die Aufzeichnung gültig ist. Solche referentiellen Integritätsbeschränkungen schützen die Datenbankstruktur auch dann, wenn eine Anwendung schlecht kodiert ist.
Isolation
isolation gewährleistet, dass jede Transaktion von anderen Transaktionen getrennt bleibt. Wenn zwei Transaktionen dieselbe Aufzeichnung ändern wollen, werden die Sperrmechanismen in einem RDBMS den Zugriff serialisieren, damit die Transaktionen für den Aktualisierungszugriff auf eine Aufzeichnung in eine Warteschlange gestellt werden. In vielen Datenbanken werden Sperren auf Zeilenebene in Zeiten hoher Konkurrenz um Transaktionssperren auf die Seiten- oder Tabellenebene ausgeweitet.
Die Standards der Structured Anfrage Language (SQL) für isolation sind definiert als READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ und SERIALIZABLE. Uncommitted Reads helfen Datenbanken mit schlechten Locking-Modellen, gelten aber in der Branche als dirty reads und sind daher verpönt. Wiederholbare Lesevorgänge werden jedoch als sehr wertvoll angesehen, da sie die Integrität der Ergebnismenge aufrechterhalten, so dass eine Reihe von Datensätzen, die durch eine Anfrage abgerufen werden, immer konsistent sind.
Langlebigkeit
Datenänderungen erfolgen zunächst im Speicher, wo die CPU sie sehen kann. Für Langlebigkeit werden sie dann in den backup geschrieben, der als nichtflüchtiger Speicher gilt. Datenbankprotokolldateien Aufzeichnung aller Änderungen zum Schutz des RDBMS vor Serverausfällen. Langlebigkeit stellt sicher, dass festgeschriebene Transaktionsänderungen beim Starten der Datenbankinstanz nicht verloren gehen.
Warum ist ACID für Transaktionen wichtig?
ACID definiert eine Reihe von Regeln zum Schutz der Daten- und Transaktionsintegrität, um die Daten vor logischer Korruption zu schützen. Datendateien enthalten nur bestätigte Daten; andernfalls wird die Datenbank schnell inkonsistent, nicht wiederherstellbar und unbrauchbar.
Actian Relationale Datenbanken unterstützen ACID-Transaktionen
Die Actian Data Platform lässt sich mit mehreren relationalen Datenbanken integrieren, darunter Actian Vector für analytic workloads unter Verwendung eines Schemas für Vertikale Speicherung und Actian Ingres unter Verwendung eines Zeilenspeichers, der für transaktionale Workloads entwickelt wurde. DataConnect bietet eine intelligente, Low-Code-Integrationsplattform, um komplexe Anwendungsfälle mit automatisierten, intuitiven und wiederverwendbaren Integrationen zu lösen.
Die Actian Data Platform läuft On-Premises und auf mehreren Cloud , einschließlich AWS, Azure und Google Cloud, so dass Sie Ihre Analysen überall dort durchführen können, wo sich Ihre Daten befinden.