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