Aufgabenblatt Nr. 11

Werbung
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.
Herunterladen