Transaktion

Eine Transaktion ist eine Folge von Datenmanipulationsanweisungen (INSERT, UPDATE, DELETE?, vgl. DML), die als atomare Einheit ausgeführt werden. Eine Transaktion überführt einen konsistenten DB-Zustand in einen wiederum konsistenter DB-Zustand (vgl. Inkonsistenz) und hat die ACID-Eigenschaften?.

Die atomare Ausführung einer Transaktion bedingt, dass sie mit zwei unterschiedlichen Befehlen beendet werden kann. Mit der COMMIT -Anweisung werden die Änderungen in der Datenbank permanent gespeichert. Die Änderungen werden nun auch für die anderen DB-Anwender sichtbar und zugreifbar. Mit der ROLLBACK -Anweisung wird die gesamte Transaktion zurückgerollt, was heißt, dass alle durch DML-Anweisungen verursachten Datenänderungen rückgängig gemacht werden.

Transaktionen dienen zur Unterstützung von

  1. Datenkonsistenz,
  2. Mehrbenutzerbetrieb,
  3. Lesekonsistenz und
  4. Fehlererholung

RDBS (Relationales Datenbanksstem)

Eine Transaktion verfügt in relationalen DB-Systemen in der Regel über die ACID-Eigenschaften?. Die Konsistenz ist hier oberstes Postulat. Für ihre Durchsetzung werden Datensätze während ihrer Manipulation für konkurrierende Zugriffe gesperrt. Nur lesende Zugriffe können beliebig parallel durchgeführt werden. Aber solange für Manipulationen XLOCK-Sperren auf Datensätzen bestehen, müssen auch Leseanforderungen warten.

NoSQL in verteilten Systemen

In den sogenanten NoSQL-Systemen sind in der Regel schnelle Antwortzeiten und eine 365-Tage-Verfügbarkeit von Systemen ein oberstes Postulat. Da gemäß dem CAP-Theorem in verteilten Systemen nur zwei dieser drei Anforderungen erfüllbar sind, tritt die Konsistenz bei diesen Systemen in den Hintergrund. Sie wird eher als Prozess betrachtet, an deren Ende irgendwann ein konsistenter DB-Zustand erreicht wird. Da die Verständigung und das Setzen von Sperren gerade in verteilten Systemen eine extrem aufwändige Aktion ist und da diese Sperren dann auch noch lesende Zugriffe während dieser Zeit nicht zulassen, wird im NoSQL-Kontext auf Sperren gänzlich verzichtet und stattdessen mit verschiedenen Kopien der Datensätze gearbeitet. Dies wird als MVCC-Verfahren bezeichnet.

Die Eigenschaften einer Transaktion kann man unter SQL mit der Anweisung SET-TRANSACTION beeinflussen.

Das Transaktionshandling dient letztendlich der Sicherheit-in- Datenbanksystemen.

siehe auch : Inkonsistenz
Quellen:

  • INCITS/ISO/IEC 9075-1-2008. Part 1 "SQL/Framework", ISO International Organization for Standardization / INCITS InterNational Committee for Information Technology Standards, 2008
  • INCITS/ISO/IEC 9075-1-2008. Part 2 "SQL/Foundation", ISO International Organization for Standardization / INCITS InterNational Committee for Information Technology Standards, 2008
  • Edlich, Friedland, Hampe, Brauer: „NoSQL – Einstieg in die Welt der nichtrelationalen Web2.0- Anwendungen“, Hanser-Verlag, 2010, ISBN 978-3-446-42355-8
  • Elmasri, Ramez/Navathe, Shamkant B.: "Grundlagen von Datenbanksystemen" , Pearson Studium, München, 2002, ISBN 3-8273-7021-3
  • Melton, Jim/Simon, Alan R.: "SQL: 1999 - Understanding Relational Language Components", Morgan Kaufmann, San Francisco, 2001, ISBN 1558604561
  • Oracle® Database SQL Language Reference 11g Release 2 (11.2), E17118-03, August 2010, http://download.oracle.com/docs/cd/E11882_01/server.112/e17118.pdf
  • Saake, Gunter/Sattler, Kai-Uwe/Heuer, Andreas: "Datenbanken - Konzepte und Sprachen", mitp-Verlag, Redline GmbH, Heidelberg, 2007, ISBN 3-8266-1664-2

Kategorie: SQL, Transaktionen, NoSQL, T