c c c c c c c c c c c c c c c c c c c c INSTITUT FÜR INFORMATIK DER TECHNISCHEN UNIVERSITÄT MÜNCHEN LEHRSTUHL III · DATENBANKSYSTEME · PROF. DR. GRUST Klausur Datenbanksysteme für Hörer anderer Fachrichtungen Name/Matrikel-Nr.: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Termin: Prüfungsdauer: Erlaubte Hilfsmittel: 24. Juli 2006 / 17:00–18:30 Uhr 90 Min. ein Blatt DIN A4 Aufgabe max. Punkte Punkte A 12 B 16 C 14 D 16 E 15 F 9 G 9 X Punkte Beurteilung: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prüfer: Prof. Dr. Torsten Grust Name/Matrikel-Nr.: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A Relationale Algebra V (2 + 2 + 2 + 2 + 2 + 2 Punkte) In einem Datenbanksystem sind zwei Relationen R und S gespeichert: A 1 2 3 4 R B ’A’ ’B’ ’C’ ’C’ S A B D 3 ’B’ ’x’ 4 ’C’ ’y’ C ’a’ ’b’ ’a’ ’b’ Geben Sie die Ergebnisrelation in tabellarischer Form für folgende Anfragen an: 1 πA,B (σB=’B’ (R)) 2 πC,Z (R × πX←A,Y ←B,Z←D (S)) 3 R nA=S.A %S (S) 4 R − πA,B,C←D (S) 5 πZ←X.D (%X (S) 1X.A<Y.A %Y (S)) Folgende Anfrage wird zu einem Fehler führen. Begründen Sie kurz warum. 6 R ∪ (R 1 S) DBMS f. andere Fachrichtungen 2/9 24. Juli 2006 Name/Matrikel-Nr.: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B Relationale Algebra / SQL V (4 + 4 + 4 + 4 Punkte) Eine Datenbank enthält Informationen über Musik-CDs und die enthaltenen Titel: ALBEN AID INTERPRET ALBUMNAME 47 Lenny Kravitz 5 59 Morcheeba Big Calm TITEL TID TITELNAME SPIELZEIT AID 13 Live 310 47 19 Supersoulfighter 298 47 24 The Sea 348 59 33 Destiny 447 (null) Dabei implementiert das Feld AID der Tabelle TITEL eine Referenz (Fremdschlüssel) auf die Tabelle ALBEN: • ALBEN (AID, INTERPRET, ALBUMNAME) • TITEL (TID, TITELNAME, SPIELZEIT, AID → ALBEN (AID)) Formulieren Sie folgende Fragestellungen in relationaler Algebra oder SQL: 1 Geben Sie TITELNAMEn aller Titel aus, die mehr als 300 s Spielzeit haben. 2 Von welchem INTERPRETen stammt der Titel ‘Live’ ? 3 Geben Sie die ALBUMNAMEn aller Alben aus, die Titel kürzer als 360 s enthalten. 4 Geben Sie alle TITELNAMEn des Albums aus, auf dem auch der Titel ‘Live’ enthalten ist. DBMS f. andere Fachrichtungen 3/9 24. Juli 2006 Name/Matrikel-Nr.: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C Schlüssel und Fremdschlüssel V (2 + 2 + 2 + 2 + 2 + 2 + 2 Punkte) In der Musik-Datenbank aus Aufgabe B wurden die Attribute ALBEN.AID und TITEL.TID als Primärschlüssel der jeweiligen Relationen deklariert. ALBEN AID INTERPRET . . . . . . ALBUMNAME . . . TITEL TID TITELNAME SPIELZEIT AID . . . . . . . . . . . . Das Schema der Datenbank enthält die Fremdschlüsselbeziehung zwischen TITEL und ALBEN: TITEL (TID, TITELNAME, SPIELZEIT, AID → ALBEN (AID)) 1 Welche Auswirkungen hat das Definieren der Primärschlüssel auf das Verhalten des Datenbanksystems? 2 Warum fordert man, dass Schlüssel minimal sein sollen? 3 Erklären Sie den Begriff der referenziellen Integrität. Ausgehend von anfänglich leeren Tabellen möchte der Datenbankadministrator nun in der folgenden Reihenfolge Werte eintragen. Welche der Einfügeoperationen wird das Datenbanksystem erfolgreich verarbeiten können? Weshalb führen die anderen zu Fehlermeldungen? 4 Einfügen von (59, ’Morcheeba’, ’Big Calm’) in die Tabelle ALBEN (AID, INTERPRET, ALBUMNAME) 5 Einfügen von (24, ’The Sea’, 348, 59) in die Tabelle TITEL (TID, TITELNAME, SPIELZEIT, AID) 6 Einfügen von (19, ’Supersoulfighter’, 298, 47) in die Tabelle TITEL (TID, TITELNAME, SPIELZEIT, AID) 7 Einfügen von (59, ’Red Hot Chili Peppers’, ’Californication’) in die Tabelle ALBEN (AID, INTERPRET, ALBUMNAME) DBMS f. andere Fachrichtungen 4/9 24. Juli 2006 Name/Matrikel-Nr.: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D ER-Modellierung I V (16 Punkte) Leiten Sie aus der folgenden natürlichsprachlichen Beschreibung eines WM-Fußballturniers ein ER-Diagramm ab, das die beschriebene Miniwelt modellieren kann. Jede Fußball-WM findet in einem vorherbestimmten Gastgeberland ” und Jahr statt. 32 Mannschaften—jeweils trainiert von einem Trainer— aus verschiedenen Ländern nehmen am Turnier teil. Während des Turniers werden 64 Spiele an festgelegten Austragungsorten und -tagen ausgetragen. Jedes Spiel hat eine Sieger- und Verlierermannschaft, die in dem Spiel eine Anzahl von Toren schießen, es sei denn das Spiel geht unentschieden aus, dann spricht man nicht von Siegern oder Verlierern, sondern lediglich von Gegnern (in diesem Fall haben beide jeweils die gleiche Anzahl von Toren geschossen).“ Hinweis: Sehen Sie die Entities ‘WM’, ‘Spiel’ und ‘Mannschaft’ vor. Geben Sie Attribute und Schlüssel der Entities an und markieren Sie vor allem die Kardinalitäten der Relationships, die Sie vorsehen. DBMS f. andere Fachrichtungen 5/9 24. Juli 2006 Name/Matrikel-Nr.: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E ER-Modellierung II V (15 Punkte) Übersetzen Sie die folgenden ER-Diagramme jeweils so getreu wie möglich in relationale Tabellenschemata. Benennen Sie die entstehenden Tabellen und skizzieren Sie deren Schema. Markieren Sie die Schlüssel in den Tabellen und geben Sie evtl. notwendige Fremdschlüsselbeziehungen an. Geben Sie auch an, falls für spezielle Tabellenspalten Nullwerte unzulässig sind. A 1 E1 C (1,1) B (0,1) R E D A 2 E1 C (0,∗) (1,1) R B E1 E2 D A 3 E2 C E (1,∗) B (0,∗) R F E2 D Hinweis: Achten Sie auf die durch Unterstreichen markierten Schlüsselattribute in den obigen ER-Diagrammen. DBMS f. andere Fachrichtungen 6/9 24. Juli 2006 Name/Matrikel-Nr.: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F Vereinfachung von Anfragen V (3 + 3 + 3 Punkte) Gegeben seien zwei Relationen R und S mit den Schemata R(A, B, C) und S(C, D). Ein Datenbankbenutzer hat für drei Anfragen jeweils Vereinfachungen vorgeschlagen. Untersuchen Sie jeweils, ob diese Vereinfachungen generell richtig sind. Falls eine Vereinfachung nur unter bestimmten Voraussetzungen korrekt ist, nennen Sie diese Voraussetzungen genau. 1 ? πA,B,C (R 1 S) ⇒ R 2 SELECT DISTINCT C FROM R ? ⇒ SELECT C FROM R 3 SELECT ∗ FROM R WHERE A = 42 UNION SELECT ∗ FROM R WHERE A <> 42 DBMS f. andere Fachrichtungen 7/9 ? ⇒ R 24. Juli 2006 Name/Matrikel-Nr.: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G Defekte“ Anfragen ” V (2 + 1 + 3 + 3 Punkte) 1 Erklären Sie so genau wie möglich, was man unter einer monotonen Anfrage versteht. 2 Ein Programmierer möchte folgende Anfrage nutzen, um den Schlüsselwert (Spalte A) desjenigen Tupels zu ermitteln, dessen B-Wert maximal ist. Für die Beispieltabelle R A 1 2 3 B 10 50 20 sollte also als Ausgabe die einspaltige Tabelle A 2 erzeugt werden (50 ist der maximale B-Wert). Der Datenbankprogrammierer hat sich dazu die Anfrage πA (R) − (πA (σB≥C (R × πC←B (R)))) überlegt. Leider liefert sie jedoch immer die leere Relation. (a) Ist diese Anfrage monoton oder nicht? (b) Reparieren“ Sie die Anfrage des Programmierers. ” Hinweis: Überlegen Sie sich dazu, welches Zwischenergebnis nach der Auswertung des Selektionsoperators σ entsteht. DBMS f. andere Fachrichtungen 8/9 24. Juli 2006 Name/Matrikel-Nr.: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V 3 Gegeben seien folgende Tabellen Messungen, SI und Namen, mittels derer Messwerte X aus der Tabelle Messungen in SI-konforme Einheiten übersetzt werden können. Messungen X Einheit 120 cm 200 cm 3.4 km 5 miles SI Einheit SI Faktor cm m 0.01 km m 1000 min s 60 Namen SI SI_Einheit m Meter s Sekunden Zwischen den Tabellen existieren die folgenden Fremdschlüsselbeziehungen: • Messungen (X, Einheit → SI (Einheit)) • SI (Einheit, SI → Namen (SI), Faktor) • Namen (SI, SI_Einheit) Ein Benutzer verwendet zur Umrechnung von Einheiten die folgende Anfrage: SELECT m.X * s.Faktor AS X, n.SI_Einheit FROM Messungen m, SI s, Namen n WHERE m.Einheit = s.Einheit und erwartet dazu als Ergebnis X SI_Einheit 1.2 Meter 2 Meter 3400 Meter . Tatsächlich gibt das Datenbanksystem jedoch ein unerwartetes Ergebnis aus: X SI_Einheit 1.2 Meter 1.2 Sekunden 2 Meter 2 Sekunden 3400 Meter 3400 Sekunden . (a) Ist die Anfrage des Datenbankbenutzers monoton oder nicht? (b) Reparieren“ Sie die SQL-Anfrage sodass sie das erwartete Ergebnis lie” fert. DBMS f. andere Fachrichtungen 9/9 24. Juli 2006