Klausur Datenbanken und Informationssysteme Dr. Heide Faeskorn - Woyke 11.03.02 Klausur „Datenbanken und Informationssysteme“ Studiengänge AI, MI und WI 11.03.2002 Dozentin: Dr. H. Faeskorn – Woyke Name ...................................... Vorname.............................................. Matrikel-Nr ...................................... Unterschrift ....................................... eingeschrieben seit ........................... Bitte beachten Sie: • • • • • Es sind keinerlei schriftliche Unterlagen als Hilfsmittel zugelassen. Zum Bestehen der Klausur sind 50 % der insgesamt erreichbaren Punkte notwendig. Heftung bitte nicht lösen ! Bearbeitungszeit maximal 120 Minuten. Lösungen bitte auf dem hinter der Aufgabenstellung vorgesehenen Platz durchführen. Falls dieser Platz nicht ausreicht, können Sie Zusatzblätter verwenden. Aufgabenteil bitte auf Zusatzblatt angeben und bei entsprechender Aufgabenstellung einlegen. • Jedes Zusatzblatt bitte mit Namen und Matrikelnummer versehen. • Bearbeitete Aufgaben bitte auf der Tabelle im Deckblatt ankreuzen. Aufg. Thema 1 Allgemeine Fragen 2 ER-Modell 3 Vermischtes 4 Normalformen 5 SQL-Abfragen 6 B*-Baum bearbeitet GESAMT Punkte von 25 20 15 12 18 10 100 Klausur Datenbanken und Informationssysteme Dr. Heide Faeskorn - Woyke Aufgabe 1 Allgemeine Fragen: 11.03.02 10 x 2,5 = 25 Punkte a) Was versteht man unter Persistenz bei Datenbanken? b) Was versteht man unter einem konzeptionellen Schema ? b) Was ist funktionale Abhängigkeit ? Geben Sie bitte ein Beispiel! c) Welcher Operator aus der relationalen Algebra wird unter SQL nicht unmittelbar abgebildet ? d) Was ist ein versteht man unter einem Locking und Logging in der Datenbanktechnik? Klausur Datenbanken und Informationssysteme Dr. Heide Faeskorn - Woyke 11.03.02 e) Was ist der Unterschied zwischen optimistischem und pessimistischem Locking ? f) Was ist eine Metadatenbank ? g) Mit welcher Anweisung löscht man in SQL Benutzerrechte in einer Datenbank? h) Welche Bestandteile hat ein Datenbanktrigger? j) Was versteht man unter einem „Dirty Read“ ? Klausur Datenbanken und Informationssysteme Dr. Heide Faeskorn - Woyke Aufgabe 2: ER-Modellierung 11.03.02 15 + 5 Punkte Ein Gourmet blickt nicht mehr durch. Welche Weinflaschen hat er im Keller und was passt zu welchem Gericht? Deshalb will er sich die Mühe machen, seinen Weinbestand und seine Lieblingsgerichte in einer Datenbank zu speichern. Können Sie ihm helfen ? Er möchte abspeichern: - - - Über seine Weinflaschen: Die Rebsorte, z.B., Riesling, die Lage, das Anbaujahr und den Alkoholgehalt. Den Lagerbestand: Welche Weinflaschen er von welcher Wein auf dem Lager hat, in welcher Menge und bei welchem Mindestbestand eine Neubestellung erforderlich ist. Über die Rebsorten: Die Sorte, z.B. Riesling und die Farbe, z.B. rot, rose und weiß Welches Gericht passt zu welcher Rebsorte, z.B. Riesling zu Seezunge. Die Rezepte der Gerichte a) Erstellen Sie ein ER-Modell als konzeptionelles Schema! b) Lösen Sie das Schema in ein relationales Datenbankschema auf! Relationen in der Form Tabellename(Spaltenname, ...) beschreiben. Klausur Datenbanken und Informationssysteme Dr. Heide Faeskorn - Woyke 11.03.02 Aufgabe 3: (Vermischtes) 15 Punkte Bitte wählen Sie zu jeder der folgenden Teilaufgaben die richtige(n) Antwort(en) durch ankreuzen () bzw. tragen Sie die richtige Lösung in das dafür vorgesehene Feld ( [___] ) ein. (je richtige Antwort: +1 Punkt; je falsch angekreuzte Antwort: -1 Punkt; je Teilaufgabe: mind. 0 Punkte) 3.1. Welche der folgenden Aussagen trifft zu? Das konzeptionelle Schema ist unabhängig vom konkreten Datenbanksystem. Das konzeptionelle Schema ist abhängig vom konkreten Datenbanksystem. 3.2. Welche der folgenden Operatoren gehören nicht zur relationalen Algebra Multiplikation Projektion Differenz Division Addition 3.3. Welche der folgenden Aussagen trifft zu? Von einem eindeutigen Schlüssel sind alle anderen Attribute funktional abhängig. Eine Relation kann nur einen eindeutigen Schlüssel haben. Ein eindeutiger Schlüssel besteht immer aus einem einzigen Attribut. Die Nicht-Schlüsselattribute sind von keiner echten Teilmenge des Schlüssels funktional abhängig 3.4. In einer SELECT- Anweisung sind die Zeilen durcheinander geraten. Sortieren Sie die im Folgenden angegebenen Zeilen so, dass sich wieder eine korrekte SQL – Anweisung ergibt. Nummerieren Sie dazu die Zeilen in einer richtigen Reihenfolge, bei 1 beginnend, fortlaufend durch. Zeile Zeilen-Nr.: SELECT K.Kun_Nr, K.Nachname, K.Ort, COUNT(A.AuftragsNr) [ 1 ] ORDER BY K.Nachname [_____] GROUP BY K.Kun_Nr, K.Nachname, K.Ort [_____] WHERE K.Kun_Nr = A.Kun_Nr AND K.Ort = 'Köln' [_____] FROM Kunden K, Auftraege A [_____] HAVING COUNT(*) > 1; [_____] 3.5. In welcher der folgenden Zeilen tritt ein Fehler auf? SELECT Abt_Nr, avg(Gehalt) FROM Angestellte GROUP BY Ang_Nr. Es tritt kein Fehler in dieser SQL – Anweisung auf. 3.6 Welche der folgenden Funktionen ist keine Gruppenfunktion ? AVG SUM SQRT MAX COUNT Klausur Datenbanken und Informationssysteme Dr. Heide Faeskorn - Woyke 11.03.02 3.7 Welche der Abfragen liefert das gewünschte Ergebnis? Der Theaterdirektor Herr Gucklos möchte sein Theater reformieren. Er möchte wissen, ob es Schauspieler gibt, die alle Rollen dargestellt haben. In seiner Datenbank finden sich folgende Relationen Schauspieler( PNr, Name, Gehalt...) Rolle(Figur, Titel, Typ, ...) Stellt_dar(PNr, Figur) Die folgenden Abfragen liegen ihm vor: SELECT PNr FROM Schauspieler WHERE PNr NOT IN (SELECT PNr FROM Stellt_dar WHERE Figur NOT IN (SELECT Figur FROM Rolle WHERE Schauspieler.PNr = stellt_dar.PNr SELECT PNr FROM Schauspieler WHERE NOT EXISTS (SELECT * FROM Rolle WHERE NOT EXISTS (SELECT * FROM Stellt_dar WHERE Schauspieler.PNr = AND stellt_dar.Figur = stellt_dar.PNr rolle.Figur)); AND stellt_dar.Figur = rolle.Figur)); SELECT PNr, count(Figur) FROM Stellt_dar GROUP BY PNr HAVING COUNT(Figur) = (SELECT COUNT(figur) FROM Rolle); SELECT PNr FROM Stellt_dar WHERE Figur = ALL( SELECT Figur FROM Rolle); Keine dieser Anweisungen liefert das gewünschte Ergebnis. 3.8 Welche der Abfragen liefert das gewünschte Ergebnis? Der Theaterdirektor Herr Gucklos möchte auch wissen, welcher Schauspieler das höchste Gehalt hat. Die folgenden Abfragen liegen ihm vor: 5 SELECT MAX(Gehalt) FROM Schauspieler; SELECT PNR, Gehalt FROM Schauspieler WHERE Gehalt = (SELECT MAX(Gehalt) FROM Schauspieler); SELECT PNr, Gehalt FROM Schauspieler WHERE GEHALT = MAX(Gehalt); SELECT PNR, MAX(Gehalt) FROM Schauspieler; Klausur Datenbanken und Informationssysteme Dr. Heide Faeskorn - Woyke Aufgabe 4: Normalformen 11.03.02 3 +3+3+3 Punkte Betrachten Sie die folgende Auftragsrelation: Auftrag (ProduktNr, ProduktName, KundenNr, KundenName, Datum, Stückpreis, Anzahl, Mehrwertsteuersatz) a) Bestimmen Sie die funktionalen Abhängigkeiten in der Auftrag-Relation. Was sind die Schlüsselkandidaten? b) In welcher Normalform ist diese Relation? Begründen Sie, warum sie nicht in einer entsprechend höheren Normalform ist. c) Überführen Sie die Relation in die zweite Normalform! d) Überführen Sie die Relation in die dritte Normalform ! Hinweise: Beachten Sie, dass der Mehrwertsteuersatz vom Produkt anhängt (z. B. 8 % für Bücher oder 16 % für Luxusartikel). Geben Sie das Datenbankschema in c) und d) in der Form Relation(Attributname, ..) an. Kennzeichnen Sie Primärschlüssel und Fremdschlüssel! 1 Klausur Datenbanken und Informationssysteme Dr. Heide Faeskorn - Woyke 11.03.02 Aufgabe 5: SQL-Abfragen. 18 Punkte Die Schulungsabteilung einer Großfirma bietet Kurse an, die als Kursläufe zu bestimmten Zeiten und an unterschiedlichen Orten durchgeführt werden. Hörer nehmen an bestimmten Kursläufen teil. Die Datenbank SCHULUNG hat die folgende Form: HOERER HoererNr 123 321 234 Name Weber Zwickel Ast Vorname Peter Christa Thomas KURSLAUF LauflNr KursNr 111 987 222 876 333 987 444 765 Ort München Berlin Stuttgart München TEILNAHME LaufNr HoererNr 111 123 444 234 333 234 ... ... Note 1,3 2,7 1,0 ...... GebDat 12.01.70 22.07.71 03.02.72 DatumAb 04.10.2000 10.10.2000 16.10.2000 16.10.2000 Adresse München Ottobrunn Starnberg TelefonNr 123456 234567 345678 Beruf Buchhalt. Informatiker Konstrukt. Abteilung GS12 RZ01 KO03 DatumBis 06.10.2000 13.10.2000 18.10.2000 19.10.2000 KURS KursNr 987 876 765 ... Kursname WindowsNT MSWordMSWord... Abstract BlaBla LaberLaber GluGlu ... Bitte bearbeiten Sie folgende Anforderungen in SQL! a) Geben Sie alle Hörer an (HoererNr, Name, Vorname), die an dem Kurs ’WindowsNT’ teilgenommen haben. b) Geben Sie für alle Kurse die Durchschnittsnote an (Kursname, Durchschnittsnote). c) Geben Sie den Ort / die Orte mit den meisten Kursläufen an. d) Geben Sie die Hörer an, die an allen angebotenen Kursen teilgenommen haben. e) Ändern Sie die Telefonnummer des Hörers mit der HoererNr = 321 auf 765432. 2 Klausur Datenbanken und Informationssysteme Dr. Heide Faeskorn - Woyke Aufgabe 6: B*Baum 11.03.02 10 Punkte Fügen Sie in einen B-Baum vom Typ 1 nacheinander folgende Zahlen ein: 1 , 3 , 5 , 7 , 9 , 10, 8, 6, 4 und 2 ! 1