Datenbanksysteme I (WS 2006/07) Prof. Dr. Felix Naumann Hasso-Plattner-Institut Datenbanksysteme I Fachgebiet Informationssysteme Aufgabenblatt 5: Anfragebearbeitung und -optimierung Hinweise: Abgabetermin: Donnerstag, 18.01.07, 11:00 (vor der Vorlesung) Format: Auf Papier im Fach Datenbanksysteme I im Foyer oder per E-Mail an [email protected] und [email protected] im CC (PDF oder DOC) Bearbeitung: Allein oder in Zweiergruppen Bitte verwenden Sie für jede Aufgabe ein separates Blatt, welches Sie mit Ihren Namen und Matrikelnummern beschriften! [6 Punkte] Aufgabe 1: SQL Parsen Stellen Sie den Parsebaum der folgenden SQL Anfrage dar. Erweitern Sie gegebenenfalls die in der Vorlesung genannte Grammatik und nennen Sie die neuen Regeln. (SELECT Name, Geburtstag FROM Kunden WHERE Geburtstag >= '2007-01-01' ORDER BY PLZ) UNION (SELECT Name, Geburtstag FROM Kunden WHERE Geburtstag <= '2005-12-31' ORDER BY PLZ) [4 + 4 + 3 + 6 = 17 Punkte] Aufgabe 2: Transformationen a) Prüfen Sie für die folgenden Transformationsregeln jeweils ob sie für Multimengen und/oder für Mengen gelten. Falls sie nicht gelten, geben Sie jeweils ein Gegenbeispiel an. 1) R∩R=R 2) R∪R=R 3) R−R=∅ 4) R ∪ (S ∩ T ) = (R ∪ S) ∩ (R ∪ T ) 1 Datenbanksysteme I (WS 2006/07) Hasso-Plattner-Institut Prof. Dr. Felix Naumann b) Fachgebiet Informationssysteme Gegeben seien die Relationen R(A, B, C), S(C, D, E) und T (E, F ). Pushen Sie für die folgenden Anfragen die Selektionen soweit wie möglich. Hinweis: Die Schreibweise R ./C S c) ist abkürzend für 1) σD>2001 (R ./C τD (S)) 2) σ(F =0 a0 3) σA=10 4) σM AXB>20 R ./R.C=S.C S . AN D E>=20) OR (F =0 a0 AN D E<=10) ((R AN D C>5 (R ./C S) ./E T ) ./C S) AN D A<10 (γA,M AX(B)→M AXB,M IN (C)→M IN C (R)) Betrachten Sie noch einmal die (nicht optimierte) Anfrage 2 der vorigen Aufgabe (Aufgabe 2b). Betrachten Sie zudem die folgenden Projektionen, die die Anfrage abschlieÿen sollen. Pushen Sie jeweils die Projektionen soweit wie möglich in die Anfrage. d) 1) πC,D 2) πA,B,C,D,E 3) πA Nennen Sie zu jedem der folgenden Ausdrücke mindestens zwei äquivalente Ausdrücke der relationalen Algebra. 1) R ./ S 2) R n S 3) R ./ S ./ T ./ U (semi-join) [2 + 5 + 5 = 12 Punkte] Aufgabe 3: Optimierung a) gegeben sei folgende SQL Anfrage: SELECT FROM WHERE AND AND AND K.Name, P.Bezeichnung, H.HName Hersteller H, Kunden K, Produkte P, Bestellungen B H.HID = P.HID K.KID = B.KID P.PID = B.PID P.Farbe = 'rot' Stellen Sie zu dieser Anfrage den Baum der relationalen Algebra dar, so wie er direkt nach dem Parsen entstünde. Hinweis: Der Baum sollte drei Kreuzprodukte enthalten. Die Reihenfolge der Kreuzprodukte sollte der Reihenfolge der Erwähnung in der SQL Anfrage entsprechen. 2 Datenbanksysteme I (WS 2006/07) Hasso-Plattner-Institut Prof. Dr. Felix Naumann b) Fachgebiet Informationssysteme Gegeben seien die folgenden Kardinalitäten der Relationen: • Hersteller: 20 • Kunden: 1.000 • Produkte: 500 wobei die Farben stets und gleichverteilt aus der Menge {rot, blau, gelb, gruen, schwarz} stammen. • Bestellungen: 1.000.000 Schätzen Sie die Kosten des zuvor entwickelten Baumes ab, indem Sie an jeder Kante im Baum die Anzahl der Tupel markieren. In einem sehr vereinfachten Kostenmodell nehmen wir an, dass die Gesamtkosten die Summe der einzelnen Kardinalitäten sind. Nennen Sie diese Gesamtkosten. c) Optimieren Sie den Baum, so dass die Gesamtkosten höchstens 3.000.000 betragen. Stellen Sie den optimierten Baum mit Kardinalitäten an jeder Kante dar. Hinweis: Ignorieren Sie bei der Optimierung Projektionen. Der Baum sollte lediglich ganz oben einen Projektionsoperator enthalten. 3