Datenbanksysteme I - Institut für Informatik

Werbung
Universität Augsburg, Institut für Informatik
Dr. W.-T. Balke
M. Endres, A. Huhn, T. Preisinger
WS 2006/2007
08. Jan. 2007
Übungsblatt 10
Datenbanksysteme I
Aufgabe 1: Algebraische Query-Optimierung
Galaxien und andere astronomische Objekte werden im New General Catalog (NGC) und im
Messier-Katalog (M) aufgelistet. Desweiteren werden sie nach den Sternbildern, in denen sie sich
befinden, kategorisiert. Die Andromeda-Galaxie bspw. trägt die Bezeichnung NGC 224 bzw. M 31
und befindet sich im Sternbild Andromeda. Folgendes Datenbankschema modelliert diese Zusammenhänge:
Dabei wird zu einem Sternbild der deutsche und lateinische Name und die Abkürzung gespeichert.
Zu einer Galaxie gibt es die NGC- und M-Nummern, das Sternbild und eine Kategorisierung (z.B.
Galaxie, Nebel oder Sternhaufen).
Folgende Query wird auf dieses Schema angewendet:
SELECT
FROM
WHERE
AND
AND
g.ngc, g.messier, g.sternbildname
Galaxie g, Sternbild s, Sternbildbeschreibung sb
g.sternbildname = s.namedeutsch
s.namedeutsch = sb.sternbildname
g.kategorie=’Galaxie’;
Bearbeiten Sie die nachstehenden Aufgaben:
a) Transformieren Sie das SQL-Statement in einen ersten, nicht optimierten Operatorbaum in relationaler Algebra.
b) Optimieren Sie diesen Operatorbaum mit dem Hill-Climbing-Algorithmus aus der Vorlesung.
c) Beschreiben Sie mit eigenen Worten, welche Tupel in der Ergebnismenge sind.
Aufgabe 2: B-Baum
Gegeben ist die Definition eines B-Baums aus der Vorlesung.
a) Zeigen Sie per Induktion, dass jeder B-Baum ein balancierter Baum ist, d.h. jeder seiner Teilbäume
hat die gleiche Höhe.
b) Woran orientiert sich in der Praxis der Verzweigungsparameter k eines B-Baums?
c) Berechnen Sie die minimale und maximale Höhe eines B-Baums vom Grad k = 16 und 5 · 106
Elementen.
1
Aufgabe 3: Kostenbasierte Query-Optimierung
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 Indizes:
– 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 218 aus der Vorlesung die kostengünstigste Ausführung
der folgenden SQL-Query:
SELECT
FROM
WHERE
AND
*
Literatur
Bestand = 30
Bedarf <= 15;
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
1) Ergebniskosten für das kartesische Produkt.
2) 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;
2
Welche der folgenden drei Varianten der Join-Berechnungen ist für diese Anfrage am kostengünstigsten?
1) Nested-Loop-Join (M = 60, J = 800)
2) Sortierungs-Join (M = 60; nach VNummer sortiert)
3) Index-Join (J = 800). Bestimmen Sie die Image-Größe I des Attributes VNummer geeignet.
Abzugeben: Kostenabschätzungen und Erläuterungen.
Abgabetermin: 15.01.2007, bis 11.00 Uhr per E-Mail an [email protected]
3
Herunterladen