Kompensatorische Transaktionen ermitteln

Neue Frage »

Auf diesen Beitrag antworten »
gast 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 :-)
 
Auf diesen Beitrag antworten »
Karlito

Hallo,

kann es sein, dass es um das "Halloween-Problem" geht?

VG,

Karlito
Auf diesen Beitrag antworten »
yuro123

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.
Auf diesen Beitrag antworten »
Karlito

Hallo,

dann kann ich leider auch nicht weiter helfen. Schau mal, ob Du hier und in dem verlinkten Paper eine antwort findest...

VG,

Karlito
 
Auf diesen Beitrag antworten »
gast

jemand anders eine lösung?
Auf diesen Beitrag antworten »
Gast Idee

hat schon jemand eine Lösung dafür?
Auf diesen Beitrag antworten »
as_string

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
Auf diesen Beitrag antworten »
Gast

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
Auf diesen Beitrag antworten »
as_string

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...
Auf diesen Beitrag antworten »
Gast

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.
Auf diesen Beitrag antworten »
as_string

Ja, der Begriff war mir auch neu. Ich kannte zwar pessimistisches und optimistisches Locking, aber das nun noch nicht...

Gruß
Marco
Auf diesen Beitrag antworten »
as_string

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
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »