Aufgabe 1 - Datenbanksysteme - TUM
Aufgabe 1 - Datenbanksysteme - TUM
Aufgabe 1 - Datenbanksysteme - TUM
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