04.02.2013 Aufrufe

Aufgabe 1 - Datenbanksysteme - TUM

Aufgabe 1 - Datenbanksysteme - TUM

Aufgabe 1 - Datenbanksysteme - TUM

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

from Lohnschema l<br />

where l. Tarifgruppe = all ( select a. Tarifgruppe<br />

from Angestellte a<br />

where a. Rang = l. Rang );<br />

Äquivalente Formulierung ohne all:<br />

<strong>Aufgabe</strong> 2<br />

select *<br />

from Lohnschema<br />

except<br />

select *<br />

from Lohnschema l<br />

where l. Tarifgruppe =( select max (a. Tarifgruppe )<br />

from Angestellte a<br />

where a. Rang = l. Rang )<br />

and l. Tarifgruppe =( select min (a. Tarifgruppe )<br />

from Angestellte a<br />

where a. Rang = l. Rang );<br />

Gegeben sei folgende Anfrage:<br />

select s.∗<br />

from Studenten s<br />

where not exists<br />

(select ∗<br />

from Vorlesungen v<br />

where v.SWS = 4 and not exists<br />

(select ∗<br />

from hören h<br />

where h.VorlNr = v.VorlNr and h.MatrNr = s.MatrNr));<br />

Geben Sie eine alternative Formulierung zur Ermittlung der Studenten, die alle vierstündigen<br />

Vorlesungen gehört haben. Können Sie immer noch die Aggregatfunktion count verwenden, um<br />

dadurch auf den Existenzquantor exists ganz verzichten zu können? Die Antwort lautet ja; aber<br />

wie?<br />

Lösung<br />

select hVier . MatrNr , hVier . Name<br />

from ( select s. MatrNr , s.Name , v. VorlNr<br />

from hören h, Vorlesungen v, Studenten s<br />

where h. MatrNr = s. MatrNr<br />

and h. VorlNr = v. VorlNr and v. SWS = 4) hVier<br />

group by hVier . MatrNr , hVier . Name<br />

having count (*) = ( select count (*)<br />

from Vorlesungen<br />

where SWS =4) ;<br />

2

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!