4.1 Probleme im Mehrbenutzerbetrieb

 Documents

 114 views
of 8
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Description
4.1 Probleme im Mehrbenutzerbetrieb (1/8) Gegeben sei ein Reisebüro, das exklusiv für ã eine Fluggesellschaft ã eine Hotelkette SS2001 ã einen…
Share
Transcript
4.1 Probleme im Mehrbenutzerbetrieb (1/8) Gegeben sei ein Reisebüro, das exklusiv für • eine Fluggesellschaft • eine Hotelkette SS2001 • einen Autoverleih vermittelt.  AIFB Das Reisebüro verwendet eine Datenbank zum Synchronisation paralleler Transaktionen Abspeichern sämtlicher Reisedaten. Relationen: • Flug: (FNr, Abflugort, Zielort, Preis, Plätze, ...) • Hotel: (Name, Ort, Preis, Zimmer, ...) • Auto: (Typ, Ort, Preis, Autos, ...) 1 4.1 Probleme im Mehrbenutzerbetrieb (2/8) Auf den Relationen können folgende Operationen ausgeführt werden: SS2001 • Leseoperationen read • Schreiboperationen write  AIFB Synchronisation paralleler Transaktionen Das Reisebüro hat fünf Schalter mit Terminals und DB-Zugriff. Annahme es existiert ein freier, unkontrollierter Zugriff auf die Daten. 2 4.1 Probleme im Mehrbenutzerbetrieb (3/8) Situation 1: (Die folgenden Anweisungen in Pseudocode) Zwei Kunden wollen am selben Tag mit dem selben Flug nach Rio de Janeiro SS2001 Schalter 1 Schalter 2 read Flug.Plätze(Rio) [=12]  AIFB read Flug.Plätze(Rio) [=12] Plätze := Plätze – 1 Synchronisation paralleler Transaktionen write Flug.Plätze [=11] Plätze := Plätze - 1 write Flug.Plätze [=11]  verlorengegangene Änderung (lost update) 3 4.1 Probleme im Mehrbenutzerbetrieb (4/8) 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 Schalter 1 Schalter 2 read Flug.Plätze(Rio) [=11]  AIFB read Hotel.Zimmer(Rio) [=1] Plätze:= Plätze – 1 Synchronisation paralleler Transaktionen 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 4 4.1 Probleme im Mehrbenutzerbetrieb (5/8) 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 SS2001 USA angezeigt. Während der Kunde das Verzeichnis ansieht, wird an Schalter 5  AIFB ein neues Hotel in Florida in die Datenbank eingefügt. Synchronisation paralleler Transaktionen 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 5 4.1 Probleme im Mehrbenutzerbetrieb (6/8) Situation 4: Der Autoverleih in den USA hat zwei Niederlassungen in Kalifornien: SS2001 in Los Angeles (LA)und in San Francisco (SF), die einheitlich 100$ pro Woche für ihre Wagen nehmen.  AIFB Synchronisation paralleler Transaktionen 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. 6 4.1 Probleme im Mehrbenutzerbetrieb (7/8) Änderung-1 wird an Schalter-5; Änderung-2 an Schalter-2 durchgeführt: Schalter 2 Schalter 5 read Auto.Preis(LA) [=100] write Auto.Preis(LA) [=110] SS2001 read Auto.Preis(LA) [=110] Preis:= Preis + 20 write Auto.Preis(LA) [=130]  AIFB read Auto.Preis(SF) [=100] Synchronisation paralleler Transaktionen 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 Vorlauf Beispiel 4-4 7 4.1 Probleme im Mehrbenutzerbetrieb (8/8) Beobachtung 1 Es gibt Folgen von Aktionen, die zusammengehören und nur in ihrer Gesamtheit eine sinnvolle Handlung beschreiben. SS2001 Beobachtung 2  AIFB Eine zusammengehörige Aktionsfolge muss unbeeinflusst von anderen Aktionen ausgeführt werden. Synchronisation paralleler Transaktionen 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 (bei beliebiger Reihenfolge der Aktionsfolgen untereinander). 8
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks