Universität Augsburg, Institut für Informatik Prof. Dr. W. Kießling Dr. A. Huhn, M. Endres, T. Preisinger Wintersemester 2007/2008 08. Februar 2008 Datenbanksysteme I Semesterklausur 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 6 Aufgaben mit insgesamt 40 Punkten: 1. ER-Transformation [7 Punkte] 2. SQL [8 Punkte] 3. Queryoptimierung [7 Punkte] 4. B-Bäume [5 Punkte] 5. Seralisierbarkeit [6 Punkte] 6. Normalformtheorie [7 Punkte] Aufgabe 1: ER-Transformation, 7 Punkte (7) Gegeben sei folgendes ER-Modell. Transformieren Sie dieses ER-Modell gemäß der Vorlesung in SQL-DDL-Statements. • Wählen Sie hierzu geeignete Domänen. • Es sollen nur Artikel eingegeben werden können, die nach dem Jahr 2000 geschrieben wurden Aufgabe 2: SQL, 8 Punkte (1+1+1+1+2+2) Gegeben ist das bereits aus den Übungen bekannte Schema der Universitäts-Datenbank. Auf die Angabe der Domänen wurde aus Gründen der Übersichtlichkeit verzichtet. Um die Lesbarkeit zu erleichtern wird bei Personenbezeichnungen die männliche Form verwendet. Professoren Assistenten Studenten Vorlesungen voraussetzen hören prüfen (PersNr, Name, Rang, Raum, GebDatum) (PersNr, Name, Fachgebiet, Boss) (MatrNr, Name, Semester, GebDatum) (VorlNr, Titel, SWS, gelesenVon) (Vorgänger, Nachfolger) (MatrNr, VorlNr) (MatrNr, VorlNr, PersNr, Note) Dabei gilt: • Unterstrichene Attribute sind Primärschlüssel. • Kursiv geschriebene Attribute sind Fremdschlüssel. • gelesenVon referenziert PersNr von Professoren. • Vorgänger sowie Nachfolger referenzieren VorlNr in Vorlesungen. Formulieren Sie die folgenden Anfragen in SQL. a) Listen Sie mit einer SQL-Anfrage die Namen aller Assistenten und Professoren auf. b) Welche direkten Vorgänger-Vorlesungen (VorlNr) muss man hören, um die Vorlesung Der Wiener Kreis zu verstehen? c) Bestimmen Sie alle Prüfungen (MatrNr, Note), deren Note besser als durchschnittlich ist. d) Finden Sie alle Professoren, die keine Vorlesungen halten. e) Finden Sie alle Studenten, die älter als der jüngste Professor sind. f) Suchen Sie die Studenten, die mindestens eine Vorlesung über Themen mit Ethik gehört haben. Dabei sollen Vorlesungen berücksichtigt werden, die das Wort Ethik bzw. ethik enthalten. Aufgabe 3: Queryoptimierung, 7 Punkte (1+6) Folgender Ausschnitt aus dem Schema der Universitäts-Datenbank ist gegeben. Auf die Angabe der Domänen wurde aus Gründen der Übersichtlichkeit verzichtet. Professoren Studenten Vorlesungen hören (PersNr, Name, Rang, Raum, GebDatum) (MatrNr, Name, Semester, GebDatum) (VorlNr, Titel, SWS, gelesenVon) (MatrNr, VorlNr) SELECT DISTINCT s.Name FROM Studenten s, hören h, Vorlesungen v, Professoren p WHERE s.MatrNr = h.MatrNr AND h.VorlNr = v.VorlNr AND v.gelesenVon = p.PersNr AND v.SWS > 2 AND p.Name = ’Kopernikus’; a) Geben Sie die kanonische, nicht optimierte Darstellung dieser Anfrage in relationaler Algebra an. b) Optimieren Sie Ihren relationen Algebraausdruck mit Hilfe des Hill-Climbing Algorithmus aus der Vorlesung. Geben Sie den Operatorbaum nach den Schritten 2, 3 und 5 an. Aufgabe 4: B-Bäume, 5 Punkte (3+2) Bearbeiten Sie mit Verfahren aus der Vorlesung die folgenden Teilaufgaben: a) Gegeben ist der folgende B-Baum der Klasse Γ(1, 3). i) Fügen Sie in den B-Baum die 100 ein. ii) Löschen Sie aus dem B-Baum die 16. iii) Löschen Sie aus dem B-Baum die 7. Zeichnen Sie nach jedem Schritt den geänderten Teilbaum neu. b) Bestimmen Sie maximales k für einen B-Baum der Klasse Γ(k, h) bei gegebener Seitengröße. Dabei gilt: • Die Seitengröße ist P = 4096. • Die Schlüsselgröße ist x = 2. • Verweise innerhalb des Baums haben die Größe p = 6. • Die gespeicherten Informationen haben eine maximale Größe von α = 2. Hinweis: h ist für die Bestimmung von k nicht notwendig. Aufgabe 5: Serialisierbarkeit, 6 Punkte (1+1+4) Gegeben seien die Datenbankobjekte A und B, die Transaktionen T1, T2, T3, T4 und ein Schedule S. Dabei sind RLOCKs Lesesperren und XLOCKs exklusive Sperren. S = ( XLOCK(A, T3), UNLOCK(A, T3), RLOCK(A, T1), XLOCK(B,T3), RLOCK(A, T2), UNLOCK(B, T3), XLOCK(B, T1), UNLOCK(A,T2), UNLOCK(A,T1), XLOCK(A,T4), UNLOCK(B,T1), RLOCK(B,T2), UNLOCK(A,T4), UNLOCK(B,T2) ) a) Handelt es sich bei S um einen legalen Schedule? Begründung. b) Erfüllt obiger Schedule S die 2-Phasen-Eigenschaft? c) Bestimmen Sie den Serialisierungsgraph zu S nach der Vorlesung. Ist S serialisierbar? Aufgabe 6: Normalformentheorie, 7 Punkte (1+3+3) Gegeben sei das nachstehende Relationenschema: AssistentenBossDiplomanden ( PersNr, Name, Fachgebiet, BossPersNr, BossName, MatrNr, SName, Semester, SWohnOrt) Beachten Sie: • Auf die Angabe der Domänen wurde verzichtet. Diese können aber als atomar angesehen werden. • Es gelten die folgenden funktionalen Abhängigkeiten: PersNr −→ Name, Fachgebiet, BossPersNr, BossName BossPersNr −→ BossName MatrNr −→ PersNr, Name, Fachgebiet, BossPersNr, BossName, SName, Semester, SWohnOrt • Einziger Schlüsselkandidat ist MatrNr. Bringen Sie obiges Schema in die 3. Normalform. Bearbeiten Sie dazu folgenden Teilaufgaben: a) In welcher höchsten Normalform ist obiges Relationenschema? Geben Sie eine Begründung an. b) Bestimmen Sie eine minimale Überdeckung der FDs. c) Zerlegen Sie obiges Schema abhängigkeitserhaltend und verlustfrei in die 3. Normalform.