next up previous contents
Next: 3.1.2 Isolationsgrade Up: Klassische Systeme und Previous: Klassische Systeme und

3.1.1 Das ACID-Prinzip und die Serialisierbarkeit

Die meisten in der Literatur vorgestellten (klassischen) Transaktionssysteme werden daran gemessen, inwiefern sie die ACID--Prinzipien [HR83,Gra81] erfüllen. Sie sollen darum hier kurz wiederholt werden:

Atomicity / Atomarität
Eine Transaktion wird entweder vollständig oder gar nicht ausgeführt.
Consistency / Konsistenz
Eine Transaktion überführt einen konsistenten Zustand der Datenbank in einen anderen konsistenten Zustand.
Isolation
Die Zwischenergebnisse gleichzeitig ablaufender Transaktionen dürfen jeweils für die anderen Transaktionen nicht sichtbar sein. Man könnte auch sagen: Keine Transaktion merkt, daß andere Transaktionen parallel zu ihr laufen.
Durability / Dauerhaftigkeit
Die Ergebnisse einer erfolgreichen Transaktion werden gegen Versagen der Hard-- und Software gesichert und können nur durch eine weitere Transaktion wieder geändert werden.

Im klassischen Fall werden die Punkte 'Consistency' und 'Isolation' normalerweise dadurch erreicht, daß man verlangt, daß die Transaktionen serialisierbar ablaufen. Serialisierbar
[3] (s. z.B. [BHG87]) bedeutet vereinfacht, daß die Abfolge der atomaren Aktionengif (auch 'Schedule' oder Historie genannt) der Transaktionen äquivalent zu einer Abfolge sein muß, die sich bei serieller Hintereinanderausführung der Transaktionen ergäbe. Verschiedene Definitionen der ``Äquivalenz`` führen dann zu den unterschiedlichen Versionen der Serialisierbarkeit, die unten behandelt werden.

Die Erhaltung von Konsistenz und Isolation bei Serialisierbarkeit läßt sich anschaulich folgendermaßen begründen:
Unter der Voraussetzung, daß jede Transaktion im Einzelbetrieb die Konsistenz der Daten erhält, bleibt diese auch bei serieller Hintereinanderausführung erhalten. Da aber jeder 'Schedule' paralleler Transaktionen zu einer solchen seriellen Ausführung äquivalent sein muß, erhalten auch serialisierbar ausgeführte Transaktionen die Konsistenz.
Die Isolation ergibt sich (zumindest bei Sichten-- und Konflikt--Serialisierbarkeit, vgl. unten) dadurch, daß in der äquivalenten seriellen Auführung jede Transaktion nur Endergebnisse der anderen lesen kann.

Für die Äquivalenz der 'Schedules' von Transaktionen gibt es drei verschiedene Definitionen [Pap86, Kap.2,] und [VGH93]:

Zustands--Serialisierbarkeit (ZSR)
Dies ist die intuitivste Definiton. Zwei Abfolgen der gleichen Transaktionen sind äquivalent, wenn für alle möglichen Anfangszustände und Semantiken der Transaktionen die Endzustände jeweils gleich sind.
Sichten--Serialisierbarkeit (SSR)
ist eine Verschärfung der Zustands--Serialisierbarkeit. Es wird zusätzlich verlangt, daß jede Leseoperation in den beiden 'Schedules' jeweils den Wert von derselben Schreiboperation erhält.
Konflikt--Serialisierbarkeit (KSR)
verlangt, daß die Reihenfolge jeweils zweier in Konflikt stehenden Operationen in beiden 'Schedules' gleich bleibt.

Bei der Definition der Konflikt--Serialisierbarkeit wurde der Begriff ``Konflikt`` verwendet. Zwei Operationen stehen in Konflikt, wenn sie dasselbe Datum behandeln, und wenigstens eine das Datum ändert, also schreibt. Den englischen Bezeichnungen für Lesen (Read) und Schreiben (Write) folgend, unterscheidet man R/W--, W/R-- und W/W--Konflikte.  

In der Praxis wird meist nur die Konflikt--Serialisierbarkeit verwendet, da -- wie z.B. [Pap86] zeigt -- der Test auf eines der beiden anderen Kriterien NP--vollständig ist. Allerdings ist KSR auch am restriktivsten, d.h. für die Mengen der serialisierbaren 'Schedules' gilt . Es gibt aber sogar Abfolgen, die die Konsistenz wahren, jedoch nicht in ZSR liegen.

 

Nicht alle Schedules, die korrekt sind, sind also auch serialisierbar. Ein Transaktionskonzept, das auf die (Konflikt--)Serialisierbarkeit als Korrektheitskriterium verzichtet, erlaubt darum eine höhere Parallelität. Ein Verfahren, welches obigen Ablauf als korrekt erkennen würde, wird z.B. in Abschnitt 3.2.1 vorgestellt.

 
Figure:



next up previous contents
Next: 3.1.2 Isolationsgrade Up: Klassische Systeme und Previous: Klassische Systeme und



Markus Baumeister
Fri Jun 9 15:38:00 MET DST 1995