Universität Duisburg-Essen Ingenieurwissenschaften / Abteilung Informatik und Angewandte Kognitionswissenschaft Prof. Dr.-Ing. Norbert Fuhr 47048 Duisburg Lotharstraße 65 Datenbanken Probeklausur (WS08/09) 3.2.2009 Für die eigentliche Klausur ist unabhängig vom Studiengang eine Bearbeitungszeit von 90 Minuten vorgesehen. Die maximal zu erreichende Punktzahl ist 90. Die hier genannten kürzeren Zeiten beziehen sich nur auf die relevanten Beispielaufgaben. DAI (IdS) alle Aufgaben sind klausurrelevant DAI (Bereich D), ISE Aufgaben 1-4 sind klausurrelevant (Bearbeitungszeit 70 min) Kom(m)edia Aufgaben 1, 2 und 4 sind klausurrelevant (Bearbeitungszeit 60 min) Es sind keine zusätzlichen Hilfsmittel erlaubt, mit Ausnahme eines zweisprachigen Wörterbuchs. Antworten bitte lesbar schreiben, im Zweifelsfall ist eine unleserliche Antwort falsch. Benutzen Sie zur Beantwortung keine Bleistifte oder radierbare Kugelschreiber - auch nicht bei Zeichnungen. Name: Vorname: Matrikelnummer: Fachrichtung/Nebenfach: Unterschrift des Studierenden: Vom Korrekteur auszufüllen: 1 2 3 Bonus 4 5 Summe Note:
1 MODELLIERUNG (20 PUNKTE) ALLE STUDIENGÄNGE 2 1 Modellierung (20 Punkte) alle Studiengänge Erstellen Sie ein Entity-Relationship-Diagramm mit Kardinalitäten für die Verwaltung des im Folgenden beschriebenen Tierpflegeheims. Ergänzen Sie zu diesem Zweck die Entitätentypen wo sinnvoll durch Attribute. Es sollen Personen gespeichert werden. Dabei ist zwischen Besitzern und Tierpflegern zu unterscheiden. Beide besitzen Namen und Adresse, Tierpfleger zusätzlich noch ein Gehalt. Ebenso sollen natürlich Daten zu Tieren gespeichert werden. Jeder Besitzer kann mehrere Tiere besitzen, aber jedes Tier gehört genau einem Besitzer. Ein Tier gehört zu einer bestimmten Gattung ( Katze, Hund, etc.). Tierpfleger sind für die Pflege von einer oder mehrerer Gattungen qualifiziert. Jede Gattung wird in einem bestimmten Gebäude untergebracht, aber in einem Gebäude können mehrere Gattungen untergebracht werden. Besitzer geben Tiere für einen bestimmten Zeitraum (definiert durch Anfangsdatum und Dauer) in Pflege. Für jedes Tier können mehrere Behandlungsarten ( Wurmkur, Baden, etc.) vorgesehen sein. Eine bestimmte Behandlungsart kann mehrfach auf das gleiche Tier (zu unterschiedlichen Zeiten) oder natürlich auch auf unterschiedliche Tiere angewandt werden. Jede Behandlung wird von einem Tierpfleger durchgeführt. (20 P.)
2 SQL (20 PUNKTE) ALLE STUDIENGÄNGE 3 2 SQL (20 Punkte) alle Studiengänge Es seien nun folgende Relationen gegeben: BESITZER: { BesitzerID, Name, Adresse, Telefon, Bankverbindung } TIER: { TierID, Name, GebJahr, Farbe, Gewicht, BesitzerID, GattungID } GATTUNG: { GattungID, Name, Gebäude } PFLEGE: { TierID, StartDatum, Dauer } BEHANDLUNG: { Art, PersonalNr, TierID, Datum } Formulieren Sie SQL-Statements für die folgenden Problemstellungen. (a) Gesucht sind die Namen der Hunde, die noch nie eine Wurmkur (Behandlung) erhalten haben. (b) Gesucht sind die Namen jener Besitzer, die sowohl Katzen als auch Hunde besitzen.
2 SQL (20 PUNKTE) ALLE STUDIENGÄNGE 4 (c) Gesucht sind die Name der Gattungen, von denen am 8.8.2008 mehr als 10 Tiere in Pflege sind. Das Datenbanksystem erlaube das Addieren von Tagen zu einem Datum, um ein neues zu erhalten: z.b. 2008-01-01 + 10 days => 2008-01-11 (d) Integritätsbedingungen: Erstellen Sie die Datenbank-Tabelle für die Relation TIER. Dabei seien BesitzerID und GattungID Fremdschlüssel auf die bereits existierenden Tabellen BESITZER und GAT- TUNG. Gattungen sollen nicht gelöscht werden dürfen, solange es noch Tiere der Gattung gibt. Mit dem Entfernen einen Besitzers sollen jedoch auch seine Tiere aus der Datenbank entfernt werden. Das Geburtsjahr soll zudem keine Werte erlauben, die nach dem aktuellen Jahr liegen (CURRENT_YEAR).
3 RELATIONALES MODELL (10 PUNKTE) NUR DAI / ISE 5 3 Relationales Modell (10 Punkte) nur DAI / ISE Es gelte weiterhin das Relationenschema der letzten Aufgabe: BESITZER: { KundNr, Name, Adresse, Telefon, Bankverbindung } TIER: { TierNr, Name, GebJahr, Farbe, Gewicht, Besitzer, Gattung } GATTUNG: { GattID, Name, Gebäude } PFLEGE: { TierNr, StartDatum, Dauer } BEHANDLUNG: { Art, PersonalNr, TierNr, Datum } (a) Formulieren Sie in der Relationalen Algebra: Welche Tiere, die eine Spezialdiät erhalten, bekommen auch auch eine Wurmkur (beides Behandlungen)? Das Ergebnis soll die Namen der Tiere liefern. (b) Formulieren Sie im Tupelkalkül: In welchem Gebäude sind nur Hunde, aber keine Tiere einer anderen Gattung untergebracht?
4 NORMALFORMEN (20 PUNKTE) ALLE STUDIENGÄNGE 6 4 Normalformen (20 Punkte) alle Studiengänge (a) Gegeben sei die Relation R 1 : {A,B,C} mit den funktionalen Abhängigkeiten A, B A A, B B A C C A B C C B (i) Was sind die Kandidatenschlüssel der Relation? (ii) Befindet sich die Relation in BCNF? Begründen! (2 P.) (4 P.) (b) Gegeben sei die Relation R 2 : {A,B,C,D,E} mit den funktionalen Abhängigkeiten C, D A, B, C A, C, D B E C, D (i) Was sind die Kandidatenschlüssel der Relation? (2 P.) (ii) Wenden Sie den Synthese-Algorithmus an, um die Relation in die 3NF zu bringen. (12 P.)
5 MEHRBENUTZERSYNCHRONISATION (20 PUNKTE) NUR DAI IDS 7 5 Mehrbenutzersynchronisation (20 Punkte) nur DAI IdS (a) Wie vermeidet das strenge 2-Phasen-Sperrprotokoll das Problem des kaskadierenden Rücksetzens? (3 P.) (b) Betrachten Sie die beiden folgenden Historien H 1 und H 2 mit je drei Transaktionen. H 1 := r 1 (a)r 2 (c)w 1 (a)r 1 (c)r 3 (a)w 3 (c)w 2 (a)w 3 (b)r 2 (b)w 2 (b) H 2 := r 1 (a)w 1 (a)r 3 (c)r 2 (a)w 3 (c)w 1 (b)w 1 (c)r 2 (b)w 2 (b) Bestimmen Sie anhand der Serialisierbarkeitsgraphen welche der Historien serialisierbar sind und geben Sie gegebenenfalls eine äquivalente serielle Historie an. (7 P.)
5 MEHRBENUTZERSYNCHRONISATION (20 PUNKTE) NUR DAI IDS 8 (c) Gegeben sei folgende Situation. Die Transaktionen T 1 bis T 7 halten Sperren auf den Datenobjekten a bis h. Desweiteren warten sie auf die Freigabe anderer Datenobjekte gemäß folgender Aufstellung: Transaktion hält Sperre auf wartet auf Freigabe von T 1 a, h b T 2 c a T 3 b c, d T 4 g d T 5 e f T 6 f g T 7 d e Zeichnen Sie den Wartegraphen und zeigen Sie eventuell existierende Deadlocks auf. (6 P.) (d) Skizzieren Sie kurz mit eigenen Worten, wie man Zeitstempel zur Vermeidung von Deadlocks verwenden kann. (4 P.)