Datenbank-Implementierungstechniken SS 2002
Dr. Kai-Uwe Sattler 24.06.02
Übung 7 – Transaktionen
Aufgabe 1
Gegeben sei folgende Relation:
create table Mitarbeiter ( MitarbNr char(10) not null, Name varchar(30) not null, Vorname varchar(30),
GebDatum date,
Gehalt decimal(6,2) check (Gehalt >= 2000), primary key (MitarbNr)
)
Mögliche Operationen auf dieser Tabelle sind:
• Berechnen des durchschnittlichen Gehalts aller Mitarbeiter,
• Einfügen/Entfernen eines Mitarbeiters,
• Ändern/Abfragen des Gehalt-Attributes eines Mitarbeiters.
Ferner sei folgende Relation gegeben:
create table Konto (
KontoNr char(10) not null, Name varchar(30),
KontoStand decimal(8,2), primary key (KontoNr),
check ((select sum(KontoStand) from Konto) = 0) )
Mögliche Operationen sind hier:
• Berechnen der Summe aller Kontostände,
• Transfer von einem Konto auf ein anderes,
• Erzeugen/Löschen eines Kontos,
• Ändern/Abfragen eines Kontostands.
Skizzieren Sie exemplarisch mit Hilfe der obigen Operationen die folgenden Serialisierbarkeits- probleme:
1. Inkonsistentes Lesen
1
2. Lesen inkonsistenter Zustände
3. Abhängigkeiten von nicht freigegebenen Daten 4. Verlorengegangene Änderungen
5. Phantom-Problem 6. Mehrbenutzer-Anomalie 7. Cursor-Referenzen-Problem Aufgabe 2
Geben Sie alle möglichen Schedules für die beiden folgenden Transaktionen an und bestimmen Sie, welche davon konfliktserialisierbar sind.
T1: r1(X);X :=X−N;w1(X);r1(Y);Y :=Y +N;w1(Y);
T2: r2(X);X :=X+M;w2(X);
Aufgabe 3
Wieviele serielle Schedules existieren für die folgenden Transaktionen? Wie lauten diese? Wie groß ist die Anzahl möglicher Schedules?
T1: r1(X);w1(X);r1(Y);w1(Y);
T2: r2(Z);r2(Y);w2(Y);r2(X);w2(X);
T3: r3(Y);r3(Z);w3(Y), w3(Z);
Aufgabe 4
Gegeben seien die folgenden Transaktionen:
T1: r1(X);r1(Z);w1(X);
T2: r2(Z);r2(Y);w2(Z);w2(Y) T3: r3(X);r3(Y);w3(Y)
Ferner seien folgende Schedules für diese Transaktionen gegeben:
S1: r1(X);r2(Z);r1(Z);r3(X);r3(Y);w1(X);w3(Y);r2(Y);w2(Z);w2(Y);
S2: r1(X);r2(Z);r3(X);r1(Z);r2(Y);r3(Y);w1(X);w2(Z);w3(Y);w2(Y);
Zeichnen Sie die Konfliktgraphen für diese beiden Schedules. Welcher Schedule ist serialisierbar?
Falls ein Schedule serialisierbar ist, geben Sie den äquivalenten seriellen Schedule an.
2