LoesungBlatt10

Werbung
Übung zur Vorlesung
”Einführung in die Informatik für Hörer anderer Fachrichtungen (WZW)”
IN8003, SS 2010
Prof. Dr. J. Schlichter
Dr. Georg Groh, Dipl.Inform. Dipl.Geogr. Jan Herrmann, Felix Hammerl, BSc
http://www11.in.tum.de/Veranstaltungen/EinfuehrungInformatikWzwSS10/uebung
Lösung zu Blatt 10
• Empfohlender Bearbeitungszeitraum: 02.07 - 09.07
• Die Aufgaben können selbständig aber auch gut in der Gruppe bearbeitet werden. Sie sind
nicht abzugeben. Es werden detaillierte Musterlösungen bereit gestellt. Wenn Fragen zu
Ihrer Lösung auch nach Vergleich mit der Musterlösung bleiben, können Sie Ihre Fragen
im Forum posten.
• Zur groben Orientierung ist zu jeder Aufgabe eine Einschätzung des Schwierigkeitsgrades
bzw. Aufwandes angegeben:
* Eher einfach und straightforward
** Schon schwierig oder zumindest aufwändig
*** Ziemlich schwierig oder sehr umfangreich. Wenn man diese Aufgabe halbwegs erfolgreich gemeistert hat, kann man ein wenig stolz auf sich sein.
Stoff
Es wird empfohlen folgendes Material anzusehen:
• Folien zur Zentralübung Sitzung 9+10+11
• A. Kemper , A. Eickler; Datenbanksysteme - Eine Einführung. Oldenbourg Verlag, 2009.
7. Auflage.
Aufgabe 1 **
Formulieren Sie entsprechende SQL-Anfragen auf dem Universitätsschema.
1. Finden Sie die Namen der Studenten, die in keiner Prüfung eine bessere Note als 3.0
hatten.
Der Aufgabenstellung zufolge sind all die Studenten gesucht, die in keiner Prüfung eine
bessere Note als 3.0 erzielten. Dies schließt damit auch die Studenten ein, die noch
überhaupt keine Prüfung abgelegt haben.
select s.Name, s.MatrNr from Studenten s where not exists (select * from prüfen p where
p.MatrNr = s.MatrNr and p.Note < 3.0);
2. Finden Sie die Studenten mit der größten Semesterzahl unter Verwendung von Aggregatfunktionen.
select * from Studenten where Semester = (select max(Semester) from Studenten);
Aufgabe 2 *
Suchen Sie unter Verwendung von exists die Professoren heraus, die Vorlesungen halten. Finden
Sie eine weitere alternative äquivalente Formulierungen dieser Anfrage.
Formulierung unter Verwendung von any:
select PersNr, Name from Professoren where PersNr = any (select distinct gelesenVon from
Vorlesungen);
Formulierung unter Verwendung von exists:
select PersNr, Name from Professoren where exists (select * from Vorlesungen where gelesenVon
= PersNr);
Formulierung unter Verwendung von distinct:
select distinct PersNr, Name from Professoren, Vorlesungen where gelesenVon = PersNr;
Aufgabe 3 *
Entwerfen Sie eine SQL Aufgabe für die Klausur. Diese soll von den Prüflingen fordern, drei
komplexe SQL-Anfragen auf dem Universitätsschema zu formulieren. Geben sie zu der Aufgabe
auch eine Musterlösung (die Sie auf der Datenbank verifiziert haben) an. Posten Sie Ihre Aufgabe
ins Forum.
Hinweis: Die übrigen Aufgaben die eigentlich für Blatt 10 geplant waren, mussten nach Blatt
11 verschoben werden, da der benötigte Stoff in Sitzung 10 noch nicht behandelt wurde.
Lösung: siehe Forum....
Herunterladen