4.1 Probleme im Mehrbenutzerbetrieb

Werbung
Das Reisebüro verwendet eine Datenbank zum
Abspeichern sämtlicher Reisedaten.
Relationen:
• Flug: (FNr, Abflugort, Zielort, Preis, Plätze, ...)
• Hotel: (Name, Ort, Preis, Zimmer, ...)
• Auto: (Typ, Ort, Preis, Autos, ...)
SS2001
 AIFB
Gegeben sei ein Reisebüro, das exklusiv für
• eine Fluggesellschaft
• eine Hotelkette
• einen Autoverleih
vermittelt.
(1/8)
Synchronisation paralleler Transaktionen
4.1 Probleme im Mehrbenutzerbetrieb
1
4.1 Probleme im Mehrbenutzerbetrieb
(2/8)
Das Reisebüro hat fünf Schalter mit Terminals und
DB-Zugriff.
Annahme es existiert ein freier, unkontrollierter Zugriff auf die
Daten.
 AIFB
• Schreiboperationen
read
write
Synchronisation paralleler Transaktionen
• Leseoperationen
SS2001
Auf den Relationen können folgende Operationen ausgeführt
werden:
2
4.1 Probleme im Mehrbenutzerbetrieb
(3/8)
Situation 1: (Die folgenden Anweisungen in Pseudocode)
Schalter 1
Schalter 2
read Flug.Plätze(Rio)
[=12]
Plätze := Plätze – 1
write Flug.Plätze
Plätze := Plätze - 1
write Flug.Plätze
[=11]
 verlorengegangene Änderung (lost update)
[=11]
 AIFB
[=12]
Synchronisation paralleler Transaktionen
read Flug.Plätze(Rio)
SS2001
Zwei Kunden wollen am selben Tag
mit dem selben Flug nach Rio de Janeiro
3
Schalter 1
Schalter 2
read Flug.Plätze(Rio) [=11]
read Hotel.Zimmer(Rio) [=1]
Plätze:= Plätze – 1
write Flug.Plätze(Rio) [=10]
read Flug.Plätze(Rio) [=10]
read Hotel.Zimmer(Rio) [=1]
Zimmer:= Zimmer – 1
writeHotel.Zimmer(Rio) [=0]
Schalter 1 bietet jetzt Flug an, obwohl kein Hotelzimmer mehr verfügbar ist!
 inkonsistente Sicht
 AIFB
Situation 2:
Zwei Kunden wollen am selben Tag mit dem selben Flug nach
Rio de Janeiro fliegen, aber nur dann, falls sie auch jeweils ein
Zimmer im einzigen Hotel bekommen.
SS2001
(4/8)
Synchronisation paralleler Transaktionen
4.1 Probleme im Mehrbenutzerbetrieb
4
Der Kunde entscheidet sich schließlich für Florida als
Urlaubsland, und eine Liste der Hotels in Florida wird neu erstellt
und angezeigt. Diese Liste enthält nun ein Hotel, das vorher
nicht angezeigt wurde.
 Phantom-Problem
 AIFB
Situation 3:
An Schalter 2 wird ein Kunde beraten, der ein Hotel in den USA
sucht. Es wird ein Verzeichnis aller vermittelbaren Hotels in den
USA angezeigt.
Während der Kunde das Verzeichnis ansieht, wird an Schalter 5
ein neues Hotel in Florida in die Datenbank eingefügt.
SS2001
(5/8)
Synchronisation paralleler Transaktionen
4.1 Probleme im Mehrbenutzerbetrieb
5
(6/8)
Zwei Änderungen treten ein:
1. Wegen Steuererhöhung erhöhen sich die Preise um
10%.
2. Das Reisebüro beschließt, grundsätzlich um
20$ zu erhöhen, da Autos nur noch mit
Vollkasko vermietet werden sollen.
Synchronisation paralleler Transaktionen
 AIFB
Situation 4:
Der Autoverleih in den USA hat zwei Niederlassungen in
Kalifornien:
in Los Angeles (LA)und in San Francisco (SF), die einheitlich
100$ pro Woche für ihre Wagen nehmen.
SS2001
4.1 Probleme im Mehrbenutzerbetrieb
6
4.1 Probleme im Mehrbenutzerbetrieb
Schalter 5
read Auto.Preis(LA) [=100]
write Auto.Preis(LA) [=110]
 AIFB
read Auto.Preis(LA) [=110]
Preis:= Preis + 20
write Auto.Preis(LA) [=130]
read Auto.Preis(SF) [=100]
Preis:= Preis + 20
write Auto.Preis(SF) [=120]
read Auto.Preis(SF) [=120]
Preis:= Preis * 1,1
write Auto.Preis(SF) [=132]
Der Mietpreis für beide Städte ist nun nicht mehr gleich.
 inkonsistente Datenbank
SS2001
Schalter 2
Änderung-2 an Schalter-2 durchgeführt:
Vorlauf
Beispiel 4-4
Synchronisation paralleler Transaktionen
Änderung-1 wird an Schalter-5;
(7/8)
7
Beobachtung 2
Eine zusammengehörige Aktionsfolge muss
unbeeinflusst von anderen Aktionen ausgeführt werden.
D.h. sie muss ablaufen, als wäre sie die einzige im System.
 In den vorangehenden Beispielen wären die Resultate korrekt,
wenn die zusammengehörenden Aktionsfolgen nacheinander
abgelaufen wären
 AIFB
Beobachtung 1
Es gibt Folgen von Aktionen, die zusammengehören und nur in
ihrer Gesamtheit eine sinnvolle Handlung beschreiben.
SS2001
(8/8)
Synchronisation paralleler Transaktionen
4.1 Probleme im Mehrbenutzerbetrieb
(bei beliebiger Reihenfolge der Aktionsfolgen untereinander).
8
Herunterladen