Kompensatorische Transaktionen ermitteln |
gast unregistriert
|
|
Kompensatorische Transaktionen ermitteln |
|
Hallo,
Und zwar wollt ich gern mal wissen zu folgendem Fall ob es eine Kompensatorische Transaktion gibt und was sie tun müsste.
"Erhöhung des Gehalts aller Professoren um 10%"
Hilfeee :-)
|
|
13.12.2013 10:16 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
|
13.12.2013 10:38 |
|
|
yuro123
Mitglied
Dabei seit: 09.12.2013
Beiträge: 35
|
|
Also davon hab ich leider nichts gehört. hab mich bisschen durchgelesen aber es bringt mir momentan nichts.
Wir haben zwischen Typen von DB Transaktionen unterschieden:
Typ 1: Einfache Buchung
Schritt 1: Alle benötigten Infos ermitteln
Schritt 2: Buchung durchführen
Typ 2: Interaktive Buchung => Optimistische Strategie
Schritt 1: Freie Plätze anzeigen
Schritt 2: Kunde wählt Plätze
Schritt 3: Check ob gewählte Plätze noch frei / Buchung durchführen
Typ 3: Vorgangsbearbeitung => Pessimistische Strategie
Schritt 1: Vorgang öffnen
Schritt n: Vorgangsbearbeitung abschließen
Typ 4: Verfügbarkeitsprüfung => kompensatorische Transaktion
Schritt 1: Teilbuchung
Merke kompensatorische Transaktion
Schritt n: Teilbuchung
Merke komp. Transaktion
Schritt n+1:
alles ok -> vergesse komp. Transakt.
Abbruch -> führe komp. Transakt. in umgekehrter Reihenfolge aus.
|
|
13.12.2013 19:32 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Hallo,
dann kann ich leider auch nicht weiter helfen. Schau mal, ob Du hier und in dem verlinkten Paper eine antwort findest...
VG,
Karlito
|
|
15.12.2013 12:34 |
|
|
gast unregistriert
|
|
jemand anders eine lösung?
|
|
10.12.2014 12:23 |
|
|
Gast unregistriert
|
|
hat schon jemand eine Lösung dafür?
|
|
22.06.2017 16:05 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Hallo!
So ganz klar ist mir nicht, was genau Deine Frage überhaupt ist.
Ich verstehe das so: Gehe alle Profs durch und erhöhe einem nach dem anderen das Gehalt. Merke Dir, bei welchen Du es schon erfolgreich erhöht hast. Wenn irgendwas zwischendrin schief geht und ein Rollback stattfinden soll, muss man die 10% Gehaltserhöhung wieder abziehen (oder man merkt sich gleich immer das alte Gehalt für jeden einzelnen Prof und schreibt das noch zurück). Man kompensiert also den Anfang der Transaktion indem man die Änderungen aktiv wieder zurück dreht.
Aber ob das hier jetzt so gemeint ist oder nicht, weiß ich nicht. Gibt es eine konkrete Frage?
Gruß
Marco
|
|
22.06.2017 17:08 |
|
|
Gast unregistriert
|
|
Danke erstmal für die schnelle Antwort. Die Frage lautet: Geben Sie zu folgenden Datenbankänderungen an, ob es eine kompensatorische
Transaktion gibt. Wenn ja, was müsste sie tun?
(a)Erhöhung des Gehalts aller Professoren um 10%.
(b)Erhöhung des Gehalts aller Mitarbeiter um 10%, sofern sie weniger als 3000
Euro verdienen.
(c)Setze die Note von Student Max auf 2.
(d)Füge einen Datensatz mit der Matrikelnummer (Primärschlüssel) 65432 und
den Angaben ’Max’, ’Schneider’ für Vorname, Name ein.
(e)Setze einen Wert auf das Quadrat des bisherigen Wertes.
Wie soll man das herausfinden ob es eine kompensatorische Transaktion gibt oder nicht?
Danke im Voraus
|
|
22.06.2017 17:19 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Also, ich verstehe die Frage so:
Wenn ich etwas ausgeführt habe und will die Änderung wieder kompensieren, also rückgängig machen, welchen Aktionen wäre das möglich:
Bei der 10% Gehaltserhöhung schon, man muss ja nur statt mit 1.1 zu multiplizieren zum Kompensieren durch 1.1 teilen.
Beim (c) ist das nicht so einfach möglich, weil man gar nicht mehr weiß, wie die Note vorher war und man sie dann ja nicht einfach zurück setzen kann, wenn man sich das nicht irgendwo separat merkt.
Das Einfügen eines Datensatzes, wenn man den Primärschlüssel kennt, kann man mit einem DELETE einfach wieder rückgängig machen.
Quadrat sollte mit der Wurzel wieder machbar sein.
Bei der (b) musst Du mal selbst was machen: Angenommen man führt das aus und will es danach wieder rückgängig machen. Nach Ausführung verdient einer 3100€. Kannst Du sicher sagen, ob er vorher unter 3000€ Gehalt hatte (also 2818,18€) und 10% Erhöhung bekam, oder ob er vorher schon die 3100€ hatte, dann aber über der Grenze lag von 3000€ und deshalb keine Erhöhung bekam.
Die Frage scheint also zu sein: Kann ich aufgrund der veränderten Daten wieder Situation so herstellen, wie sie vorher war?
Gruß
Marco
PS: Wie gesagt, ohne Garantie. Bin ich ganz sicher, ob es wirklich so gemeint ist...
|
|
22.06.2017 18:27 |
|
|
Gast unregistriert
|
|
Vielen Dank. Das sieht sehr gut aus, du hast es auf dem Punkt gebracht. Danke für die ausführliche Erklärung, ich habe stundenlang nach Kompensatorischen Transaktionen gesucht, aber sehr wenig im Internet gefunden.
|
|
22.06.2017 18:59 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Ja, der Begriff war mir auch neu. Ich kannte zwar pessimistisches und optimistisches Locking, aber das nun noch nicht...
Gruß
Marco
|
|
22.06.2017 19:05 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Hab nochmal kurz wegen der Sache mit dem Quadrieren überlegt: Dafür gibt es wohl keine komp. Trans.: Da das Quadrat von negativen Zahlen zum selben Wert führt wie für entsprechende positive, kann man mit einem einfach Wurzel-Ziehen leider nicht wieder den ursprünglichen Wert herstellen.
Daran hatte ich nicht gedacht!
Gruß
Marco
|
|
23.06.2017 09:28 |
|
|
|