Universität Augsburg, Institut für Informatik Wintersemester 2010/2011 Prof. Dr. W. Kießling 04. April 2011 Dr. M. Endres, F. Wenzel Datenbanksysteme Semesterklausur Wiederholung Hinweise: Die Bearbeitungszeit beträgt 90 Minuten. Verwenden Sie für ihre Lösungen ausschließlich die gehefteten Blätter des Lösungsteils. Die Heftklammern dürfen nicht entfernt werden. Melden Sie sich bei der Aufsicht, falls die Blätter nicht ausreichen sollten! Es sind nur Hilfsmittel in Papierform zugelassen. Benutzen Sie einen dokumentenechten Stift! Verwenden Sie keinen Bleistift! Benutzen Sie außerdem keinen roten und keinen grünen Stift! Überprüfen Sie, ob ihre Platznummer mit der auf der Klausur vermerkten Platznummer übereinstimmt. Melden Sie sich sofort bei der Aufsicht, falls das nicht der Fall sein sollte. Unterschreiben Sie auf dem Deckblatt des Lösungsteils an der vorgesehenen Stelle mit ihrem vollen Vor- und Nachnamen. Schreiben Sie auf jedes Blatt des Lösungsteils ihren Namen und ihre Matrikelnummer. Die Klausur besteht aus 5 Aufgaben mit insgesamt 40 Punkten: 1. SQL-Anfragen [8 Punkte] 2. B-Bäume [8 Punkte] 3. Query-Optimierung [9 Punkte] 4. Normalformtheorie [7 Punkte] 5. DB-Allerlei [8 Punkte]
Aufgabe 1: SQL-Anfragen, 8 Punkte (1+1+2+2+2) Gegeben ist das Relationenschema Studierende, das durch folgende SQL-DDL erzeugt wurde: CREATE TABLE Studierende( MatrikelNr INTEGER PRIMARY KEY, Semester INTEGER, Studiengang VARCHAR(100), Notendurchschnitt NUMERIC(2,1), Tutor INTEGER NOT NULL, CONSTRAINT studierende_fk FOREIGN KEY (Tutor) REFERENCES Studierende(MatrikelNr) ); Lösen Sie folgende Teilaufgaben mittels SQL-Anfragen: a) Finden Sie sämtliche Informationen aller Studierenden, deren Studiengang das Wort Informatik nicht enthält. b) Finden Sie die Matrikel-Nummern aller Studierenden des Studiengangs Informatik, die Tutor von mindestens zwei anderen Studierenden sind. c) Finden Sie zu jedem Studierenden alle Studierenden mit schlechterem Notendurchschnitt. Geben Sie dabei jeweils nur die Matrikel-Nummern aus. Auch die Studierenden mit dem schlechtesten Notendurchschnitt sollen ausgegeben werden. d) Finden Sie die Matrikel-Nummern aller Studierenden, die bereits mehr als die Hälfte der maximalen Semester aller Studierenden absolviert haben. e) Finden Sie die Matrikel-Nummern aller Studierenden, deren Notendurchschnitt besser als der jedes Studierenden im sechsten Semester ist.
Aufgabe 2: B-Bäume, 8 Punkte (1+2+1+2+1+1) a) Gegeben ist folgender B-Baum der Klasse Γ(1, 1): i) Fügen Sie in den gegebenen Baum den Schlüssel 19 ein und zeichnen Sie den B-Baum nach der Einfügeoperation. ii) Fügen Sie anschließend in den resultierenden B-Baum den Schlüssel 22 ein und zeichnen Sie den finalen Baum. b) Gegeben ist der folgende B-Baum der Klasse Γ(2, 2): i) Löschen Sie aus dem gegebenen Baum den Schlüssel 30 und zeichnen Sie den B-Baum nach der Löschoperation. ii) Löschen Sie anschließend aus dem resultierenden B-Baum den Schlüssel 16 und zeichnen Sie den finalen Baum. c) Gegeben ist ein B-Baum der Klasse Γ(3, 1). Beantworten Sie folgende Fragen: i) Wie viele Suchschlüssel können in einem B-Baum dieser Klasse maximal gespeichert werden? ii) Wie viele Suchschlüssel können in einem B-Baum dieser Klasse minimal gespeichert werden?
Aufgabe 3: Query-Optimierung, 9 Punkte (5+4) a) Gegeben sind die Relationen R, S und W : R (A, E) S (C) W (E, D) Betrachten Sie folgenden relationalen Ausdruck: π R.A, W.E (σ R.A + S.C 20 W.D 20 (π R.A,R.E,S.C,W.D ((R S) W ))) i) Zeichnen Sie diesen algebraischen Ausdruck als Operatorbaum. ii) Optimieren Sie diesen Operatorbaum anhand des Hill-Climbing-Algorithmus 201 aus der Vorlesung. Geben Sie dabei die Zwischenstände nach Schritt 2, 3 und 5 an. b) Betrachten Sie folgende Anfrage in relationaler Algebra an die Relation R(A, E): σ A 10 E = e (R) Ermitteln Sie die kostengünstigste Ausführung der Query. Dabei gelte: Anzahl Tupel: T R = 100 Anzahl Blöcke: B R = 20 Cluster-Index auf R(E) mit I E = 20 Nicht-Cluster-Index auf R(A)
Aufgabe 4: Normalformentheorie, 7 Punkte (2+2+3) a) Gegeben ist das Relationenschema R (A, B, C) mit folgender Ausprägung: R A B C a4 b1 c1 a1 b1 c4 a2 b2 c5 a3 b2 c3 a3 b2 c2 a1 b1 c4 Welche der folgenden funktionalen Abhängigkeiten sind in obiger Ausprägung der Relation erfüllt? Markieren Sie diese auf dem Lösungsteil. i) A B ii) B C iii) B A, C iv) B, C B b) Gegeben ist ein Relationenschema R (A, B, C, D, E) mit skalaren Domänen und A als einzigen Schlüsselkandidaten. Weiterhin sind folgende funktionale Abhängigkeiten gegeben: A C D E C B, D C, E B, C Bestimmen Sie die höchste Normalform in der sich R befindet. c) Gegeben sind das Relationschema R (A, B, C), die funktionalen Abhängigkeiten F = {A B, A C} und die Zerlegung von R in R1 (A, B) und R2 (A, C). Zeigen oder widerlegen Sie die Verlustfreiheit dieser Zerlegung.
Aufgabe 5: DB-Allerlei, 8 Punkte (1+1+2+2+2) a) Gegeben ist die Relation R. R A 1 null 1 Bestimmen Sie das Ergebnis der folgenden SQL-Query: SELECT AVG(A) FROM R b) Warum werden bei B*-Bäumen höhere Verzweigungsgrade erreicht als bei B-Bäumen? c) Was ist ein Index auf einem Attribut? Welche Vor- und Nachteile hat ein Index? d) Kreuzen Sie auf dem Lösungsteil alle richtigen Aussagen an: i) Im Rahmen des RX-Protokolls ist jeder 2-phasige legale Schedule serialisierbar. ii) Im Rahmen eines 2-Phasen-Sperrprotokolls ist jeder legale Schedule serialisierbar. iii) Stellt man sicher, dass keine Deadlocks auftreten können, so können automatisch auch keine Livelocks auftreten. e) Kreuzen Sie auf dem Lösungsteil alle richtigen Aussagen an: i) Das Ziel von Recovery-Maßnahmen ist ein konsistenter DB-Zustand im Fehlerfalle ohne Berücksichtigung der ACID-Eigenschaften. ii) Die Idempotenzforderung gewährleistet, dass eine Recovery-Maßnahme solange durchgeführt wird, bis sie erfolgreich ist. iii) Bei Systemfehler wird als Recovery-Maßnahme ein Warmstart durchgeführt.