Einführung in Datenbanksysteme, Datenbanken für die Bioinformatik Sommersemester 2009 10. Übungszettel (wird nicht korrigiert) Einführung in Datenbanksysteme Datenbanken für die Bioinformatik Heinz Schweppe, Jürgen Broß, Katharina Hahn Hinweis: Dieser Übungszettel wird nicht korrigiert. Vorbereitung für die Klausur. Aufgabe 1 (Entwurf) Er dient lediglich als 20 Punkte Betrachten Sie folgende Beschreibung einer Getränkemarktkette: Die Getränkemarktkette besteht aus mehreren Filialen (mit eindeutiger ID, Name, Adresse), in denen die Angestellten Abteilungen zugeordnet sind. Abteilungen werden nach identifizierenden Namen unterschieden, wie z.B. Finanzen, Personalangelegenheiten, Ladenpersonal. Jede Filiale hat mehrere Abteilungen und jede Abteilung mindestens einen Angestellten. Ein Angestellter kann auch gleichzeitig in mehreren Abteilungen arbeiten. Für jeden Angestellten müssen eine spezielle ID, der Name, die Adresse (bestehend aus Straße und Ort) und die Abteilung gespeichert werden. Für jede Filiale müssen der Name, die Angestellten, die Managerin und die vertriebenen Artikel gespeichert werden. Die Managerin ist auch eine Angestellte, es werden jedoch zusätzliche Informationen über ihre Qualifizierung gespeichert. Für jeden Artikel sind die Bezeichnung, der Lieferant und der Barcode zu speichern. Für jeden Lieferanten sind der Name und die angebotenen Produkte zu speichern. Ein Artikel wird immer nur von einem bestimmten Lieferant geliefert. a) Entwerfen Sie ein ER-Diagramm (UML Notation) für den beschriebenen Sachverhalt. Identifizieren Sie alle notwendigen Entitäten und Beziehungen. Tragen Sie die Kardinalitäten in Min-Max Notation ein. Kennzeichnen Sie die Schlüssel der Entitäten. Fügen Sie keine künstlichen Schlüssel ein. Aufgabe 2 (Concurrency Control) 18 Punkte a) Betrachten Sie folgende Historie: r1(a), r1(b), r2(a), r2(b), w2(a), c2, w1(b), c1 (1) Bestimmen Sie alle Konfliktpaare und zeichnen Sie den Konfliktgraphen. Ist diese Historie serialisierbar? Falls ja, geben Sie einen äquivalenten serialisierbaren Ausführungsplan an. (2) Geben Sie die Ausgabe für das strikte 2PL an. Geben Sie dort, wo es im Protokoll vorgesehen ist, die entsprechenden Locks und Unlocks an. Die Locks werden schrittweise vergeben, d.h. bei read und write Zugriff erst ein Read-Lock, dann ein Write-Lock. Ausgabe 18.06.2009 Einführung in Datenbanksysteme, Datenbanken für die Bioinformatik Sommersemester 2009 (3) Geben Sie die Ausgabe für das Snapshot Isolation Protokoll für obige Historie an. Geben Sie die Ausgabe für die Variante „first-committer-wins“ an. b) Betrachten Sie folgende Historie: r1(a), r2(a), w2(a), c2, w1(a), c1 (1) Geben Sie die Ausgabe für das strikte 2PL für obige Historie an. Geben Sie dort, wo es im Protokoll vorgesehen ist, die entsprechenden Locks und Unlocks an. Die Locks werden schrittweise vergeben, d.h. bei read und write Zugriff erst ein Read-Lock, dann ein Write-Lock. (2) Geben Sie die Ausgabe für das Snapshot Isolation Protokoll für obige Historie an. Geben Sie die Ausgabe für die Variante „first-committer-wins“ an. Aufgabe 3 (Relationale Algebra, SQL) 18 Punkte Gegeben seien die folgenden Relationen (Primary Keys sind unterstrichen): • Lieferanten (lnr, lname, status, sitz) • Teile (tnr, tname, farbe, preis) • Projekte (pnr, pname, ort) • Lief_Teile_Proj (lnr, tnr, pnr, zeit, menge) Formulieren Sie die folgenden Anfragen in relationaler Algebra und in SQL: a) Alle Projekte, die von Lieferant "Wegner & Co" mit grünen Teilen beliefert werden. b) Namen der Lieferanten, die kein Projekt in Berlin beliefern. c) Anzahl und Gesamtwert aller gelieferter Teile von Projekt "Motor 34" d) Die Namen aller Projekte mit der Anzahl der bisher geliefertern Teile, wenn der Gesamtwert der gelieferten Teile > 10000 ist. Aufgabe 4 (Funktionale Abhängigkeiten, Normalformtheorie) 14 Punkte a) Gegeben sei folgende Relation R(A, B, C): A B C test A 3 test B 4 test C 3 Geben Sie alle nicht-trivialen funktionalen Abhängigkeiten an, die sich aus der Relation ergeben. b) Gegeben sei eine Relation mit fünf Attributen. Für jedes Attribut der Relation gibt es keine zwei doppelten Werte, d.h. alle Werte sind für jedes Attribut unterschiedlich. Ausgabe 18.06.2009 Einführung in Datenbanksysteme, Datenbanken für die Bioinformatik Sommersemester 2009 (1) Ist die Relation in 2. und 3. Normalform? Begründen Sie kurz ihre Antwort. (2) Wie sehen die Kandidatenschlüssel der Relation aus? c) Zeigen Sie: Eine Relation in 3. Normalform mit genau 2 Schlüsselkandidaten, von denen einer aus einem Attribut besteht, ist in BCNF. (Hinweis: Führen Sie die Annahme, die Relation sei nicht in BCNF zum Widerspruch.) Aufgabe 5 (Data-Warehousing) 20 Punkte Betrachten Sie folgende Beschreibung zur Auswertung der Prüfungsleistung von Studierenden. • Zu jeder Person wird ein künstlicher Schlüssel (ID), das Geschlecht, Geburtsjahr und der Studiengang gespeichert. • Zu jeder Prüfungsleistung wird die Person (ID), das Datum der Leistung, die Note und die entsprechende Veranstaltung, für die die Prüfungsleistung abgelegt wurde, gespeichert. • Zu jeder Vorlesung wird der Titel, ihr Bereich (Technische Informatik, Praktische Informatik, Theoretische Informatik, …) und ob diese für Studierende im Grund- oder Hauptstudium angeboten wird, gespeichert. (Nehmen Sie der Einfachheit halber an, dass Veranstaltung entweder dem Grund- oder dem Hauptstudium zugeordnet sind.) • Zusätzlich wird noch die Zeit, zu der die Prüfungsleistung abgelegt wurde, abgespeichert. Dazu wird zu einer Zeit das Datum, Semester, Quartal und das Jahr separat abgelegt. a) Erstellen Sie für die beschriebene Datenbank ein Stern-Schema mit Hilfe von SQL-Anweisungen (CREATE TABLE) Folgende Fragestellunge sollen untersucht werden: b) Vergleich der Durschnittsnote von Studentinnen im Bereich technische Informatik mit der Durchschnittsnote aller Studenten jeweilig für die erfassten Jahre. c) Vergleich der Durchschnittsnote der einzelnen Vorlesung mit den Durchschnittsnoten der Studenten bestimmter Studiengänge jeweilig für die erfassten Semester. d) Vergleich der Durchschnittsnoten im Haupt- und Grundstudium jeweilig für die Geschlechter. Geben Sie zu den Fragestellungen jeweils die SQL Statements mit Hilfe des CUBE bzw. des ROLLUP Operators an. Zusatzaufgabe Diese Fragestellungen sind nicht in der vorgegebenen Zeit zu lösen, allerdings ist ihr Inhalt relevant für die Klausur. Beantworten Sie jede Frage möglichst kurz, evtl. anhand eines kleinen Beispiels. • Was leistet der GROUP BY CUBE-Operator? Z.B. Welche Ergebnisrelation erhält man, wenn man GROUP BY CUBE (a1, a2, a3) angibt (unter der Ausgabe 18.06.2009 Einführung in Datenbanksysteme, Datenbanken für die Bioinformatik • • • • • • • • • • • Sommersemester 2009 Annahme, dass die Aggregatfunktion AVG(value) AS Wert im SELECTStatement verwendet wurde)? Geben Sie die Spalten der Relation an und deuten Sie durch * als Eintrag an, welche Gruppierungen in der Ausgabe zu erwarten sind. Warum gibt es beim Vorabanfordern von Sperren (Preclaiming) keine Deadlocks? Was versteht man unter einer Löschanomalie? Warum muss ein Primärschlüssel immer NOT NULL deklariert werden? Welche Werte kann ein Attribut a1 einnehmen, das als Fremdschlüssel auf ein Attribut a2 einer anderen Tabelle deklariert wird? Welchen Vorteil hat striktes 2PL gegenüber der nicht-strikten Variante? Welche Auswirkungen hat ein Index auf ein DBMS? Erläutern Sie die Auswirkungen bei SELECT, INSERT, DELETE und UPDATE. Was bedeutet Serialisierbarkeit? Wann ist ein Ausführungsplan serialisierbar? Welche Operatoren gibt es in der relationalen Algebra? Wie kann man eine n:m Beziehungen zwischen 2 Entitäten im ER-Modell im relationalen Modell ausdrücken? Erläutern Sie die Begriffe Precision und Recall, die zur Evaluation im Information Retrieval verwendet werden. Was besagt die Thomas-Write-Rule? Ausgabe 18.06.2009