Datenbanksysteme I - Institut für Informatik

Werbung
Universität Augsburg, Institut für Informatik
Prof. Dr. W. Kießling
L. Rudenko, Dr. F. Wenzel
WS 2016/2017
16. Jan. 2017
Übungsblatt 11
Datenbanksysteme I
Aufgabe 1: Umsetzung von SQL in Relationale Algebra (Hausaufgabe)
Beschreiben Sie, was mit den folgenden Anfragen gemeint ist und setzen Sie die Anfragen in
Relationale Algebra um (kanonische Form).
a)
SELECT Name
FROM P r o f e s s o r e n , V o r l e s u n g e n
WHERE P e r s N r = g e l e s e n V o n AND T i t e l = ' W i s s e n s c h a f t s t h e o r i e ' ;
b)
SELECT DISTINCT p . Name
FROM S t u d e n t e n s , h ö r e n h , V o r l e s u n g e n v , P r o f e s s o r e n p
WHERE s . MatrNr = h . MatrNr AND h . V o r l N r = v . V o r l N r AND v . g e l e s e n V o n = p . P e r s N r
AND s . Name = ' C a r n a p ' ;
c)
SELECT Name
FROM S t u d e n t e n
WHERE S e m e s t e r >= (SELECT MAX( S e m e s t e r )
FROM S t u d e n t e n ) ;
d)
SELECT P e r s N r , Name
FROM P r o f e s s o r e n
WHERE P e r s N r = ANY (SELECT DISTINCT g e l e s e n V o n
FROM V o r l e s u n g e n ) ;
Aufgabe 2: Auswirkungen der Seitengröße in B-Bäumen(Präsenzaufgabe)
In dieser Aufgabe soll die Abhängigkeit der Parameter k und h eines B-Baumes von der festgelegten Seitengröße näher betrachtet werden. Im folgenden wird von n = 103 Sätzen mit jeweils 300
Bytes ausgegangen.
a) Berechnen Sie den Parameter k für eine feste Höhe h = 1 für maximale Seitengrößen von 2KB,
4KB, 8KB und 16 KB. Wie ändert sich dabei der Verzweigungsfaktor relativ zur Seitengröße?
b) Berechnen Sie die Höhe h eines entsprechenden B-Baumes mit festem k = 10 für Seitengrößen
von 2KB, 4KB, 8KB und 16KB.
c) In einem B-Baum der Klasse Γ(10, 1) sollen obige Sätze gespeichert werden. Wie groß müsste
die Seitengröße dementsprechend mindestens sein?
1
Aufgabe 3: Query-Optimierung (Hausaufgabe)
Gegeben sind die Relationen R, S und T:
R (A,B)
S (A,B)
T (C)
Betrachten Sie folgenden relationalen Ausdruck:
πA,B (σ(A<B)∧(B=C) ((R ∩ S) × T )
Beachten Sie dabei R ∩ S = R \ (R \ S)
a) Zeichnen Sie diesen algebraischen Ausdruck als unoptimierten kanonischen Operatorbaum.
b) Optimieren Sie diesen Operatorbaum anhand des Hill-Climbing-Algorithmus aus der Vorlesung. Geben Sie dabei die Zwischenstände nach Schritt 2, 3 und 5 an.
Aufgabe 4: Kostenbasierte Query-Optimierung (Präsenzaufgabe)
Gegeben seien folgende Relationen einer Vorlesungsdatenbank:
Vorlesung (VNummer, Titel)
Literatur (VNummer, Bestand, Bedarf, Preis)
Weiterhin sind folgende Metadaten in der Datenbank gespeichert:
• Anzahl Tupel: TV orlesung = 1200 und TLiteratur = 800
• Anzahl Blöcke: BLiteratur = 50 und BV orlesung = 75
• Vorhandene Indexe:
– Nicht-Cluster-Index auf Literatur(Bestand) mit IBestand = 20
– Nicht-Cluster-Index auf Literatur(Bedarf)
– Nicht-Cluster-Index auf Literatur(VNummer)
– Primär-(Cluster-)Index auf Vorlesung(VNummer)
a) Bestimmen Sie die Größen IV N ummer , GV N ummer und HV N ummer des Kostenmodells aus der
Vorlesung für einen passenden Zugriff auf das Attribut VNummer der Relation Vorlesung.
b) Ermitteln Sie mit Hilfe von Algorithmus Selektionsoptimierung aus der Vorlesung die kostengünstigste Ausführung der folgenden SQL-Query:
SELECT *
FROM Literatur
WHERE Bestand = 30 AND Bedarf <= 15;
2
c) Wie hoch ist die Ausführungszeit der besten bzw. schlechtesten Variante von Aufgabe b) bei
einer durchschnittlichen Blockzugriffszeit von 8ms ?
d) Betrachten Sie folgende Query:
SELECT * FROM Vorlesung, Literatur;
Bestimmen Sie die:
i) Ergebniskosten für das kartesische Produkt.
ii) Einlesekosten für den Nested-Loop-Algorithmus für das kartesische Produkt mit 60 verfügbaren
DB-Cache-Blöcken.
e) Wie groß sollte der DB-Cache bei den jeweiligen Varianten von Aufgabe d) mindestens sein
bei einer angenommenen Blockgröße von 4 KB?
f) Wie hoch wäre die jeweilige Ausführungszeit der Anfrage in Aufgabe d) bei einer Blockzugriffszeit von 8ms?
g) Betrachten Sie folgende Query:
SELECT *
FROM Vorlesung, Literatur
WHERE Literatur.VNummer = Vorlesung.VNummer;
Welche der folgenden drei Varianten der Join-Berechnungen ist für diese Anfrage am kostengünstigsten?
i) Nested-Loop-Join (M = 60, J = 800)
ii) Sortierungs-Join (M = 60; nach VNummer sortiert)
iii) Index-Join (J = 800). Bestimmen Sie die Image-Größe I des Attributes VNummer geeignet.
Aufgabe 5: Query-Optimierung (Präsenzaufgabe)
a) Gegeben seien die Relationen
R(A, B)
S(A, B)
T(C, D)
U(C, D)
Betrachten wir nun folgenden Term dargestellt in (unoptimierter) relationaler Algebra:
πA (σB=C ∧ C=′ P eter′ ((R ∪ S) × (T ∪ U )))
i) Zeichnen Sie diesen Ausdruck als initialen Operatorbaum.
ii) Optimieren Sie diesen Operatorbaum gemäß dem Hill-Climbing-Algorithmus aus der Vorlesung und geben Sie den Baum nach Schritt 2, 3 und 5 an.
b) Gegeben seien die Relationen R( p, f ) und S( p, f ). Bestimmen Sie die günstigste Join-Variante
für den Join R o
nR.p=S.f S. Als Verfahren stehen zur Auswahl:
3
i) 1-Index-Join
ii) 2-Index-Join
Es gelte:
• Es besteht eine referentielle Integrität von S.f auf R.p.
• Es besteht ein (Primär-)Cluster-Index auf R.p und S.p.
• Es besteht ein Nicht-Cluster-Index auf S.f .
• Die Image-Größe für S.f ist K = 10.
• R sowie S sind als kompakter Heap gespeichert.
Eine Auswertung der Statistiken der Relationen R und S hat folgende Daten ergeben :
TR = TS = 20, BR = BS = 5, J = 2
4
Herunterladen