Übung 3

Werbung
Datenbank-Implementierungstechniken
Dr. Kai-Uwe Sattler
SS 2003
TU Ilmenau
Übung 3
1. Kostenabschätzung
(1) Berechnen Sie für das Beispiel aus der Vorlesung (Folie 7-5) die Kosten der Ausführungsvariante, in
der erst der natürliche Verbund berechnet wird, und die Selektion danach auf dem Zwischenergebnis
ausgeführt wird.
(a) Welche Auswirkungen hat die Wahl des Verbundalgorithmus?
(b) Vergleichen Sie diese Variante und die drei anderen vorgestellten Ausführungsvarianten für den
Fall, dass das Prädikat Ware > ’Kaffee’ statt Ware = ’Kaffee’ lautet. Nehmen Sie
dafür an, dass die Warennamen gleichmässig über das Alphabet verteilt sind.
(2) Das Beispiel aus Aufgabe (1) sei wie folgt erweitet:
• Schema:
KUNDE (KName, KAdr, Kto)
AUFTRAG (KName, Ware, Menge)
LIEFERANT (LName, LAdr, Ware, Preis)
• Anfrage:
select KUNDE.KNAME, Kto, LIEFERANT.LName, Menge * Preis
from KUNDE, AUFTRAG, LIEFERANT
where KUNDE.KName = AUFTRAG.KName
and AUFTRAG.Ware = LIEFERANT.Ware
and Ware = ’Kaffee’
• Quantitative Angaben:
– In der Relation LIEFERANT sind 1.000 Tupel gespeichert. Auf eine Seite passen dabei 5
Tupel.
– 5 Lieferanten liefern Kaffee.
– 20 Ergebnistupel passen auf eine Seite.
– 2 Tupel des Kreuzprodukts KUNDE × AUFTRAG × LIEFERANT passen auf eine Seite.
Bestimmen Sie die Kosten für die analogen Ausführungen zu den in der Vorlesung präsentierten
Ausführungsvarianten sowie eine weitere, Ihnen sinnvoll erscheinende Variante.
2. Anfrageoptimierung
Überführen Sie die folgende SQL-Anfrage zunächst direkt in einen Ausdruck der Relationenalgebra und
optimieren Sie diesen anschließend unter Verwendung der algebraischen Regeln.
1
select R1.A, R2.B, R3.D
from R1, R2, ( select * from R3
union
select * from R3
where R1.A < 13 and R1.C = R2.C
select E from R4, R5
where R3.D > 100
where R3.E = 50 )
and R2.B not in (
where R4.E = R5.E )
3. Transaktionsverwaltung
(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 Serialisierbarkeitsprobleme: Dirty Read, Nonrepeatable Read, Lost Update und Phantom-Problem.
(2) Gegeben seien die folgenden Schedules:
2
s1
s2
s3
s4
s5
s6
s7
s8
= r1 (x)w1 (x)r2 (x)c1 c2
= r1 (x)w1 (x)c1 r2 (x)c2
= r2 (x)r1 (x)w1 (x)c1 w2 (x)c2
= r2 (x)r1 (x)w1 (x)w2 (x)c1 c2
= w2 (x)w1 (x)w1 (y)c1 r2 (y)c2
= w2 (x)w1 (x)w1 (y)r2 (y)c1 c2
= w2 (x)w1 (x)w1 (y)r2 (y)c2 c1
= w2 (x)w1 (x)w1 (y)w2 (y)r1 (y)c1 c2
Welche Eigenschaften besitzen diese Schedules (CSR, VSR, RC, ACA, ST, seriell)?
(3) 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.
4. Synchronisation
Gegeben sei der folgende Schedule:
T1
r1 (x)
T2
T3
r2 (y)
w1 (x)
r3 (z)
r2 (x)
r3 (x)
w3 (z)
w2 (z)
c
c
c
(1) Welche Eigenschaften besitzt dieser Schedule?
(2) Wie würden die folgenden Verfahren bei diesem Schedule vorgehen:
a) Zwei-Phasen-Sperrprotokoll
b) Zeitstempel-Verfahren
c) Valdierungsverfahren
d) Serialisierbarkeitsgraphen-Test
3
Herunterladen