Klausur Datenbanksysteme 2 05. Februar 2007 HS Fulda FB AI Prof. Dr. Peter Peinl E107, G202 Klausur Bachelor AI Modul Datenbanksysteme 2 Teil Datenbanksysteme 2 Wintersemester 2006/2007 Datum: 05. Februar 2007 Ort: E107, G202 Name: ................................................. Vorname: ................................................. Matrikelnr.: .................... Unterschrift: ................................................. Note: .................... Aufgabe Erreichte Punktzahl Maximale Punktzahl 1 2 3 4 5 6 Σ 8 12 15 8 8 8 60 Hinweise: 1. Tragen Sie sofort Name, Vorname und Matrikelnummer ein und unterschreiben Sie die Klausur. 2. Kontrollieren Sie die Vollständigkeit der verteilten Unterlagen: • Die Klausur besteht aus 9 fortlaufend numerierten Seiten, am Ende befindet sich ein leeres Blatt (Seite 9). • Die zweite Aufgabe wird zusätzlich zum Text in der Klausur als loses Blatt verteilt, um Ihnen das Blättern beim Eintragen der Lösungen zu ersparen. 3. Legen Sie Personalausweis und Studentenausweis zur Kontrolle parat. 4. Die Bearbeitungszeit beträgt 60 Minuten. 5. Tragen Sie die Lösungen in die bei der jeweiligen Aufgabenstellung freigelassenen Räume ein. Für den Fall, daß der dort vorgesehene Platz nicht ausreichen sollte, setzen Sie die Bearbeitung auf dem leeren Blatt am Ende der Klausur fort. Kennzeichnen Sie deutlich die Aufgabe, zu der die Lösung gehört. Zusätzliche Blätter gibt es bei den Aufsichtführenden. 6. Es sind keine Hilfsmittel erlaubt, Unleserliches zählt als nicht vorhanden ! 7. Aufsuchen der Toilette ist nur nach Absprache gestattet. Die Klausur ist vor dem Verlassen des Raumes bei dem/der Aufsichtsführenden abzugeben ! Die Mitnahme einer Klausur auf die Toilette stellt einen Täuschungsversuch dar (Note 5.0). - 1 - Klausur Datenbanksysteme 2 05. Februar 2007 Aufgabe 1: HS Fulda FB AI Prof. Dr. Peter Peinl E107, G202 (Information retrieval) (8 Punkte) Betrachten Sie die folgenden 6 Dokumente (ein Buchstabe repräsentiert ein Wort). D1 = {a a a b b b} D4 = {b c a a a a} D2 = {e e e e e e} D5 = {a b c a b c} D3 = {d d a a b b} D6 = {a a a d d d} a) Das Information Retrieval System liefert als Ergebnis auf die Frage „b and c“ die Dokumente D1, D3, D4 und D5 zurück. Ordnen Sie alle 6 Dokumente einer der Kategorien des folgenden Rasters zu und berechnen Sie Recall und Precision. (4 Punkte) Recall: relevant nicht relevant Gefunden Precision: nicht gefunden b) Das Information Retrieval System liefert als Ergebnis auf die Frage „b and c or d“ die Dokumente D1, D3, und D5 zurück. Ordnen Sie alle 6 Dokumente einer der Kategorien des folgenden Rasters zu und berechnen Sie Recall und Precision. (4 Punkte) Recall: relevant gefunden Precision: nicht gefunden - 2 - nicht relevant Klausur Datenbanksysteme 2 05. Februar 2007 HS Fulda FB AI Aufgabe 2: (SQL-Anfragen) Prof. Dr. Peter Peinl E107, G202 (12 Punkte) Tragen Sie die Ergebnisse der folgenden SQL-Anfragen in die Tabellengerüste ein. T A 1 2 3 4 5 6 7 8 9 10 11 12 B blau blau rosa orange orange orange orange magenta magenta violett violett violett C 10 40 30 10 20 50 50 50 40 10 20 10 a) SELECT B, COUNT(*) FROM T GROUP BY B HAVING SUM(C) <= 40 (2 Punkte) b) SELECT B, COUNT(*) FROM T WHERE C > 35 GROUP BY B HAVING COUNT(*) >=2 (2 Punkte) c) SELECT COUNT(*) FROM T T1, T T2 (1 Punkt) d) SELECT COUNT(*) FROM T T1, T T2 WHERE T1.A <= 5 AND T2.C = 50 (2 Punkte) e) SELECT B FROM T WHERE A = (SELECT C FROM T WHERE C > 30) (1 Punkt) f) SELECT LENGTH(B), COUNT(*) FROM T GROUP BY LENGTH(B) (1 Punkt) g) SELECT A FROM T WHERE (B, C) IN (SELECT B, C FROM T WHERE A IN (1,11)) (1 Punkt) h) SELECT A FROM T WHERE B IN (SELECT B FROM T WHERE A IN (1,11)) AND C IN (SELECT C FROM T WHERE A IN (1,11)) (2 Punkte) - 3 - Klausur Datenbanksysteme 2 05. Februar 2007 a) B c) COUNT(*) f) B HS Fulda FB AI COUNT(*) Prof. Dr. Peter Peinl E107, G202 b) d) B COUNT(*) COUNT(*) e) COUNT(*) g) h) A - 4 - A B Klausur Datenbanksysteme 2 05. Februar 2007 Aufgabe 3: HS Fulda FB AI Prof. Dr. Peter Peinl E107, G202 (SQL-Anfragen ) (15 Punkte) Tragen Sie die Ergebnisse der folgenden SQL-Anfragen in die Tabellengerüste ein. (Nullwerte in der Tabelle sind durch einen Bindestrich dargestellt.) V A 1 2 3 4 5 6 7 B 4 8 2 3 4 C 100 20 30 10 20 D 100 10 20 0 20 40 a) SELECT A FROM V WHERE (A-B*2) > 0 OR (C*D) = 0 (2 Punkte) b) SELECT A FROM V WHERE (B*C) >=60 AND (C-D) <= 0 (1 Punkt) c) SELECT A FROM V WHERE B = NULL OR C IS NULL (1 Punkt) d) (SELECT A FROM V) INTERSECT (SELECT B FROM V) (1 Punkt) e) SELECT V1.A, V2.A FROM V V1, V V2 WHERE V1.B *5 >= V2.D AND V1.C = V2.D (5 Punkte) f) SELECT V1.A, V2.A, V1.C, V2.D FROM V V1, V V2 WHERE V1.C = V2.D (+) AND V1.A NOT IN (4,6,7) ORDER BY V1.A, V2.A (5 Punkte) a) A e) V1.A b) V2.A c) A f) V1.A - 5 - d) A V2.A A V1.C V2.D Klausur Datenbanksysteme 2 05. Februar 2007 HS Fulda FB AI Prof. Dr. Peter Peinl E107, G202 Aufgabe 4: (Datenkontrolle mit SQL) (8 Punkte) Gegeben seien die folgenden Tabellendefinitionen mit Integritätsbedingungen. CREATE TABLE T1 (A INT, B INT, C INT, CONSTRAINT T1_PS PRIMARY KEY (A, B), CONSTRAINT T1_SK UNIQUE (C)) CREATE TABLE T2 (A INT, B INT, C INT, D INT, E INT, CONSTRAINT T2_PS PRIMARY KEY (A), CONSTRAINT T2_FS1 FOREIGN KEY (B,C) REFERENCES T1(A,B), CONSTRAINT T2_FS2 FOREIGN KEY (D) REFERENCES T1(C), CONSTRAINT T2_E_NN CHECK (E IS NOT NULL), CONSTRAINT T2_E_13 CHECK (E BETWEEN 1 AND 3)) Die Tabellen T1 und T2 enthalten die folgenden Tupel. Nullwerte werden durch vier Bindestriche (----) dargestellt. T1 A 1 2 3 4 5 B 1 2 3 4 5 C 5 10 15 20 25 T2 A 100 101 102 103 104 B ---2 2 3 3 C ---2 2 3 3 D 15 25 ---10 10 E 1 2 3 3 3 Welche der folgenden INSERT-Anweisungen (jeweils für sich auf dem oben beschriebenen Datenbestand betrachtet) verletzt / verletzt nicht die definierten Integritätsbedingen ? Hinweis: Es wird maximal eine Bedingung verletzt. Tragen Sie den Namen der verletzten Bedingung (Constraint-Name) ein bzw. „keine“, wenn alle Bedingungen erfüllt sind. Nr. 1 2 3 4 5 6 7 8 INSERT – Anweisung INSERT INTO T1 VALUES (1, 2, 5) INSERT INTO T1 VALUES (1, 2, 30) INSERT INTO T1 VALUES (1, 1, 50) INSERT INTO T1 VALUES (1, NULL, NULL) INSERT INTO T2 VALUES (117, 2, 2, 5, 5) INSERT INTO T2 VALUES (109, 3, 1, 10, 3) INSERT INTO T2 VALUES (103, 1, 1, 20, 2) INSERT INTO T2 VALUES (110, 4, 4, 35, 1) - 6 - Verletzte Integritätsbedingung (Constraint) Klausur Datenbanksysteme 2 05. Februar 2007 HS Fulda FB AI Prof. Dr. Peter Peinl E107, G202 Aufgabe 5: (Datenkontrolle mit SQL -- Trigger) (8 Punkte) Gegeben seien die folgenden Tabellen S und U und die Trigger TRIG01, TRIG02, TRIG03 auf den Relationen S und U. CREATE OR REPLACE TRIGGER TRIG01 AFTER UPDATE OF S3 ON S FOR EACH ROW BEGIN INSERT INTO U VALUES ( 'TRIG01' , :OLD.S1 , :OLD.S2 , :NEW.S3 - :OLD.S3); END; CREATE OR REPLACE TRIGGER TRIG02 BEFORE UPDATE OF S3 ON S BEGIN INSERT INTO U SELECT 'TRIG02' , NULL, NULL, SUM(S3) FROM S; END; CREATE OR REPLACE TRIGGER TRIG03 AFTER UPDATE OF S3 ON S BEGIN INSERT INTO U SELECT 'TRIG03' , NULL, NULL, SUM(S3) FROM S; END; S S1 1 2 3 4 5 6 7 S2 Zaphod Ford Arthur Trillian Marvin Hotblack The King S3 100 200 100 200 300 200 400 Auf der Tabelle S wird nun die folgende Update Anweisung ausgeführt. UPDATE S SET S3 = S3 + 50 WHERE S1 < 4 Tragen Sie in die untenstehenden Tabellengerüste von U ein, welche Zeilen die drei Trigger einfügen. Die Tabelle U sei zu Beginn leer. U U1 U2 U3 U4 - 7 - Klausur Datenbanksysteme 2 05. Februar 2007 HS Fulda FB AI Prof. Dr. Peter Peinl E107, G202 Aufgabe 6: (Relationenalgebra) (9 Punkte) a) Gegeben seien die Tabellen V und W. Tragen Sie das Ergebnis der Division von V durch W in das leere Tabellengerüst (V ÷ W) ein. (4 Punkte) V A 1 1 1 2 2 2 2 3 4 4 4 B Gelb Grün Azur Blau Gelb Rot Grün Rot Rot Gelb Grün W B Gelb Grün Rot V÷W b) Formulieren Sie den natürlichen Verbund (natural join) der Tabellen V und W als Folge von Algebra-Operationen, ohne einen Verbundoperator (außer dem Kartesischen Produkt) zu benutzen. (2 Punkte) c) Ist der Gleichverbund (Equi-Join) der Tabellen V und W verlustfrei (lossless) oder nicht ? Begründen Sie Ihre Antwort. (2 Punkte) d) Wie lautet die Formulierung der folgenden SQL-Anfrage in der Relationenalgebra ? SELECT * FROM V, W WHERE V.B = 2 (1 Punkt) - 8 - Klausur Datenbanksysteme 2 05. Februar 2007 HS Fulda FB AI (Zur freien Verfügung) - 9 - Prof. Dr. Peter Peinl E107, G202