Fachbereich 12 – Institut für Informatik Dr. Karsten Tolle Datenbanken und Informationssysteme (DBIS) Grundlagen der Programmierung 2 Aufgabenblatt Nr. 11 Abgabe: Mittwoch 06. Juli vor! der Vorlesung Bem.: Lösungen zu Aufgabe 1b) und 2 sind zusätzlich per E-Mail an den Tutor abzugeben. Aufgabe 1 (33 Punkte) (dies ist eine ehemalige Klausuraufgabe erst einmal ohne PC versuchen!) a) Prüfen Sie die folgenden SQL-Statements auf Fehler. Geben Sie diese gegebenenfalls an. Liegt kein Fehler vor, geben Sie die Ergebnisse an (inklusive Relationsschema), welche Sie bezogen auf die dargestellten Tabellen erwarten würden: select * from laden where name = 'Fred's'; select ort, max(id) from laden group by ort; select s.name, b.bestand from saft s, bestand b where b.verkaufspreis > 3.000 and s.name like 'Apfel%'; b) Erstellen Sie für folgende Anfragen entsprechende SQL-Befehle: Wie viele verschiedene Laden-Namen sind je Ort eingetragen? Geben Sie den Ortsnamen und die Anzahl aus. Welche Säfte (id und name) werden wo (Name des Ladens) für weniger als dem Einkaufspreis verkauft? Welche Säfte (id und name) werden in Läden mit Namen Saftlos verkauft, und wie hoch ist deren Bestand? Sortieren Sie das Ergebnis nach dem Bestand. Aufgabe 2 (30 Punkte) a) Geben Sie SQL-Statements an, so dass für die Tabellen von Aufgabe 1 folgende Views erstellt werden. Hierbei die Namensgebung der Views und deren Attribute genau einhalten, damit Ihre Abgabe auch getestet werden kann: laden_ffm (id, name, ort) – Alle Läden, welche den Ort ´Frankfurt` haben. profit_saft (id_saft, name, profit, id_laden) – Alle Säfte mit ihren Namen und der jeweiligen Differenz zwischen dem Einkaufspreis und Verkaufspreis im Laden. (Es kann davon ausgegangen werden, dass ein Saft nur maximal einmal pro Laden angeboten wird.) low_saft (id_saft, name_saft, id_laden, name_laden, bestand) - Säfte mit niedrigem Bestand (wenn der Bestand kleiner als 100 beträgt) in den Läden. b) Erstellen Sie für folgende Anfragen ein entsprechendes SQL-Statement (wobei wo möglich die Views genutzt werden sollen). Wieviel Saft muss je Sorte geliefert werden, um alle Läden in Frankfurt wieder auf einen Bestand von 100 aufzufüllen? Wie hoch ist der durchschnittliche Profit je Saftsorte, welche mindestens in zwei Läden angeboten werden? (Es kann davon ausgegangen werden, dass ein Saft nur maximal einmal pro Laden angeboten wird.) Aufgabe 3 (25 Punkte) Gegeben sei das Relationenschema R = (A, B, C, D, E). Geben Sie für die jeweils gegebenen funktionalen Abhängigkeiten an, welche Schlüssel für die Relation existieren. a) F = { } // leere Menge b) F = {A CE, ED A, C D} c) F = {D AB, CD AB, BC D} d) F = {D BCDE, CDE AB} e) F = {E BD, B AD, A ABD, D AC} Aufgabe 4 (12 Punkte) Sie haben sich als Datenbank-Designer selbstständig gemacht. Ihr erster Kunde ist ein Gärtner, welcher einen Pflanzengroßhandel aufbauen möchte. Um Pflanzen in der Datenbank zu identifizieren, gibt es verschiedene Möglichkeiten. Verschaffen Sie sich einen groben Überblick durch entsprechende Internetrecherche über die Domain. a) Geben Sie Definitionen an, was der Objekt-Type Pflanze in diesem Kontext bedeuten kann. b) Nennen Sie mindestens drei Möglichkeiten, um Instanzen des Objekt-Types Pflanzen (u.U. in Abhängigkeit von der Definition) in der Datenbank zu identifizieren. c) Diskutieren Sie die Vor- und Nachteile der drei Möglichen Identifizierungs-Arten. d) Erstellen Sie zwei Fragen, welche Sie an den Kunden richten würden, um besser entscheiden zu können, welche Möglichkeit der Identifizierung besser für den gegebenen Fall geeignet ist.