Datenbanksysteme I - Hasso-Plattner

Werbung
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
Herunterladen