3, T1, PB, B-=110, B+=110, #1 - Informatik

Werbung
Gruppe A
Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis bereit.
PRÜFUNG AUS DATENBANKSYSTEME VO 181.146
Kennnr.
Matrikelnr.
Familienname
17. 3. 2005
Vorname
Arbeitszeit: 120 Minuten. Aufgaben sind auf den Angabeblättern zu lösen; Zusatzblätter werden nicht gewertet.
Aufgabe 1:
Gegeben ist die folgende Historie von Transaktionen:
Schritt
T1
1
2
3
4
BOT
T2
9
Log: [LSN, TA, PageID, Redo, Undo, PrevLSN] or
LSN, TA, PageID, Redo, PrevLSN, UndoNextLSN
[#1, T1 , BOT, 0]
[#2, T2 , BOT, 0]
BOT
r(A, a1 )
w(B, a1 − 100)
[#3, T1 , PB , B-=110, B+=110, #1] . . . . . . . . . . .
r(A, a2 )
r(B, b2 )
w(B, a2 + b2 )
5
6
7
8
(24)
[#4, T2 , PB , B+=10, B-=10, #2] . . . . . . . . . . . . . .
w(A, a1 + 30)
[#5, T1 , PA , A+=30, A-=30, #3] . . . . . . . . . . . . . .
commit
[#6, T1 , commit, #5] . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
w(C, a2 − b2 + 20)
[#7, T2 , PC , C+=90, C-=90, #4] . . . . . . . . . . . . . .
11
#8, T2 , PC , C-=80, #7, #4 . . . . . . . . . . . . . . . . . . .
12
#9, T2 , PB , B-=10, #8, #2 . . . . . . . . . . . . . . . . . . .
13
#10, T2 , (BOT), #9, 0 . . . . . . . . . . . . . . . . . . . . . . . . .
14
........................................................
(a) Nehmen Sie an, daß gleich nach Zeile 10 ein “commit” von T2 befohlen wird. Ist diese Historie serialisierbar?
ja
×
nein
Wenn ja, in Reihenfolge T
- . . . . . . . . . . . vor T - . . . . . . . . . . . .
Wenn nein: die Historie wird durch das Streichen von zumindest
1 . . . . . . . . . . . Operationen serialisierbar.
(b) Zu Beginn ist der relevante Datenbestand in der Datenbank A = 10, B = 20, und C = 30. Tragen Sie unter der Annahme,
daß das Datenbanksystem nach Zeile 10 (vor Zeile 11) abstürzt, das Recovery-Log zu dieser Historie in die rechte Spalte ein.
Dabei sind Undo/Redo-Einträge relativ zum Datenbestand anzugeben. Geben Sie in Zeilen 11 bis 14 die Log-Einträge für
die Recovery an.
Die Werte von A, B und C nach der Recovery sind
A:
40 . . . . . . . . . ; B : -90 . . . . . . . . ; C : 30 . . . . . . . . . .
(c) Wird durch das Rücksetzen von T2 ein kaskadierendes Rücksetzen von T1 notwendig?
A–1
ja
×
nein
Aufgabe 2:
(10)
1. Kann die Ersetzung eines Hash-Joins in einem Anfrageplan durch einen Nested-loop-join zu einem besseren (“billigeren”) Plan führen? Wenn ja, in welcher Situation?
Eine Relation passt vollstaendig in die verfügbaren Puffer. . . . . . . . . . . . .
2. Kann die Ersetzung eines Hash-Joins in einem Anfrageplan durch einen Merge-join zu einem besseren (“billigeren”)
Plan führen? Wenn ja, in welcher Situation?
U.a.: Die Daten in den Eingaberelationen sind vorsortiert. . . . . . . . . . . . . . .
Aufgabe 3:
(30)
Anfrageevaluierung in verteilten Datenbanken. Gegeben drei Computer C1 , C2 , C3 , die durch ein Netzwerk verbunden sind.
Auf jedem der Computer läuft ein DBMS, für C1 mit Relation R(A, B), für C2 mit Relation S(B, C), und für C3 mit Relation
T (C, D). Eine (unten angegebene) Anfrage in relationaler Algebra über Relationen R, S, T ist auszuwerten sodaß
• die resultierende Relation auf Computer C1 ausgegeben wird
• die möglichen Operationen das Senden einer Relation von einem Computer auf einen anderen und die Operationen der
relationalen Algebra sind, wobei letztere nur lokal ausgeführt werden können.
• die übertragenen Datenmengen minimiert werden sollen. Lokal anfallende (Zeit-)Kosten spielen keine Rolle.
Es ist anzunehmen, daß jeder Attributwert Größe 1 hat; z.B. hat ein beliebiges Tupel einer binären Relation Größe 2 und
eine k-äre Relation X mit n Tupeln hat Größe |X| = k ∗ n.
Geben Sie für die angeführten Szenarien (Anfragen und Angaben zu den Eingaberelationen) Querypläne an, die aus lokalen
Berechnungen in relationaler Algebra und Übertragungen von Relationen bestehen sollen, wie im Beispiel (2) vorgezeigt
wird. Für den Fall, daß Sie in einem Beispiel glauben, daß es für die Angaben keinen eindeutigen bestmöglichen Anfrageplan
gibt, ist das anzumerken und kein Anfrageplan anzugeben.
1. Query: R S.
Richtige Lösung (dieses Beispiel ist nicht durch Sie zu lösen): “Der optimale Anfrageplan ist nicht eindeutig”.
2. Query: R S; für die Daten gilt |πB (R)| + |πB (R) S| < |S|.
Richtige Lösung (dieses Beispiel ist nicht durch Sie zu lösen):
C1
X := πB (R);
send X to C2 ;
C2
C3
Y := X S;
send Y to C1 ;
output R Y
3. Query: R S, R enthält 150 und S 50 Tupel.
Lösung:
C1
. . .Der
. . . . .optimale
....
............
............
............
............
C2
Anfrageplan ist nicht
............
............
............
............
A–2
C3
eindeutig!
............
............
............
............
............
4. Query: R S, R enthält 150 und S 50 Tupel, B ist ein Schlüssel für R.
Lösung:
C1
............
C2
send S to C1
output R S
............
............
............
............
............
............
............
5. Query R S, selRS =
1
5∗|S| ,
C3
............
............
............
............
............
|πB (R)| = |S|/5.
Lösung:
C1
............
............
............
............
............
C2
C3
............
............
............
............
............
wie (2) . .
............
............
............
............
6. Query R S T ; B ist ein Schlüssel für R; C ist ein Schlüssel für T ; S enthält 100 Tupel; R und T enthalten jeweils
1000 Tupel.
Lösung:
C2
C1
............
............
............
............
............
............
C3
............
............
X := πC (S)
send X to C3
Y := X T
send Y to C2
............
............
Z := S Y
send Z to C1
output R Z
............
............
............
............
............
............
............
............
............
............
............
............
............
Aufgabe 4:
Multi-Granularity Locking. Betrachten Sie folgende Datenbasis-Hierarchie.
(12)
D
a1
a2
p1
s1
p2
s2
s3
p3
s4
s5
s6
Beantworten Sie, welche der folgenden Sequenzen von Anforderungen von Schlössern (bei zwei Transaktionen T1 und T2 ) zu
Blockierungen bzw. Deadlocks führen. (Hier bedeutet (Ti , x, L), daß Transaktion Ti versucht, Knoten x in der Hierarchie mit
einem Schloß vom Typ L zu belegen.)
1. (T2 , D, IS), (T2 , a1 , IS), (T2 , p1 , S), (T1 , D, IX), (T1 , a1 , IX), (T1 , p2 , X):
Blockierung:
ja nein ×
Deadlock:
ja nein ×
2. (T2 , D, IS), (T2 , a1 , IS), (T2 , p1 , S), (T1 , D, IX), (T1 , a1 , IX), (T1 , p1 , IX), (T1 , s1 , X):
Blockierung:
ja ×
nein Deadlock:
ja nein ×
3. (T2 , D, IX), (T1 , D, IX), (T2 , a1 , X), (T1 , a2 , X), (T1 , a1 , X), (T2 , a2 , X):
Blockierung:
ja ×
nein Deadlock:
ja ×
nein A–3
Aufgabe 5:
(24)
Gegeben ist eine Uni-Datenbank mit Relationen Studenten(MatrNr, Name, Sem) (kurz s), Vorlesungen(VorlNr, SWS, Titel)
(kurz v), und Hoeren(MatrNr, VorlNr) (kurz h). Nehmen Sie an, daß |h| = 60000, |s| = 38000, und |v| = 2000. Nehmen Sie
auch an, daß die durchschnittlichen Tupelgrößen für s, v, und h 50, 100, und 16 Bytes sind. Die Seitengröße beträgt 1024
Bytes, und Hauptspeicher-Puffergröße beträgt 20 Seiten. Es ist die Anfrage
select *
from Vorlesungen v, Hoeren h, Studenten s
where v.VorlNr = h.VorlNr
and h.MatrNr = s.MatrNr
and v.SWS = 2
and s.MatNr = “0325999”
auszuführen (dh. gesucht sind zweistündige Vorlesungen, die von Student 0325999 gehört werden). Es sind die Selektivitäten
selsh = 1/38000, selvh = 1/2000 und selv.SW S = 1/5 anzunehmen.
Es ist der bestmögliche Anfrageplan für die obenstehende Query und die angegebenen Größenabschätzungen und Selektivitäten anzugeben (dh., als Operatorbaum). Als einzige Join-Art sind Nested-Loop-Joins verfügbar. Vergessen Sie nicht, die
verfügbaren Hauptspeicherpuffergrössen zu beachten und notfalls “Zwischenspeicher”-Knoten anzugeben.
Geben Sie auch an, welcher der beiden Kinder jedes Nested-Loop Joins das “äußere” und welches das “innere” ist.
7: NL-
innen
aussen
6: σSWS=2
4: NL-
aussen
innen
2: σMatN r=0325999
3: h
5: Access(v)
1: Access(s)
Die Gesamtkosten dieses Anfrageplans sind
1900+0+0+938+200+0+0 = 3038 . . . . . . . . . . . . . . . . . .
Gesamtpunkte: 100
A–4
Herunterladen