09.11.2012 Aufrufe

Skript Datenbanken I - Praktische Informatik Universität Kassel

Skript Datenbanken I - Praktische Informatik Universität Kassel

Skript Datenbanken I - Praktische Informatik Universität Kassel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

132<br />

Beispiel 6–3 Platzbuchung<br />

Buchen n Plätze auf Flug x<br />

Lesen(Freie-Plätze, x);<br />

Wenn Freie-Plätze >= n<br />

dann Freie-Plätze := Freie-Plätze - n<br />

sonst Buchung zurückweisen;<br />

Schreiben(Freie-Plätze, x);<br />

<strong>Datenbanken</strong> I<br />

Zwei verzahnt ablaufende Transaktionen T 1 und T 2 können dabei ein falsches<br />

Ergebnis liefern (z.B. ein Platz noch frei und jede Transaktion will<br />

einen Platz).<br />

T 1<br />

Lesen(FP, x)<br />

Test positiv<br />

FP := FP - 1<br />

Schreiben(FP {= 0}, x)<br />

T 2<br />

Lesen(FP, x)<br />

Test positiv<br />

FP := FP - 1<br />

Schreiben(FP {= 0}, x)<br />

Offensichtlich wurden beiden Kunden ein Platz vergeben, obwohl nur<br />

noch einer vorhanden war (sog. lost update problem). Dieses Ergebnis<br />

wäre nicht eingetreten, hätte man die Transaktionen T 1 und T 2 hintereinander<br />

(sequentiell) ablaufen lassen.<br />

Bei der Ablauffolge (engl. schedule) hätte T 1 den Platz<br />

bekommen, bei der Folge hätte T 2 ihn bekommen. Damit kann<br />

man aber jetzt eine Korrektheitskriterium für den Mehrbenutzerzugriff<br />

definieren:<br />

eine nebenläufige Ablauffolge S von Operationen heißt serialisierbar,<br />

wenn es eine serielle Ablauffolge S’ gibt, die in ihren Auswirkungen<br />

äquivalent zu S ist.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!