\documentclass{bschlangaul-aufgabe}
\bLadePakete{mathe,syntax}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 5: Relationale Algebra},
  Thematik = {Universität},
  Referenz = DB.Relationales-Modell.Relationale-Algebra.Universitaet,
  RelativerPfad = Module/10_DB/30_Relationales-Modell/20_Relationale-Algebra/Aufgabe_Universitaet.tex,
  ZitatSchluessel = db:pu:2,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Relationale Algebra},
}

\begin{minted}{md}
Studenten {[MatrNr:integer, Name:string, Semester:integer]}
Vorlesungen {[VorlNr:integer, Titel:string, SWS:integer, gelesenVon:integer] }
Professoren {[PersNr:integer, Name:string, Rang:string, Raum:integer] }
hoeren {[MatrNr:integer, VorlNr:integer]}
voraussetzen {[VorgaengerVorlNr:integer, NachfolgerVorlNr:integer]}
pruefen {[MatrNr:integer, VorlNr:integer, PrueferPersNr:integer, Note:decimal]}
\end{minted}

\begin{enumerate}

%%
% (a)
%%

\item Geben Sie verbal an, welches Ergebnis folgende SQL-Anfrage
liefert:
\index{Relationale Algebra}
\footcite{db:pu:2}

\begin{bAntwort}
Liste mit zwei unterschiedliche Studenten, die in derselben
Vorlesung waren.
\end{bAntwort}

%
\item Geben Sie einen Relationenalgebra-Ausdruck für diese Anfrage an.
Dieser Ausdruck sollte keine Kreuzprodukte (nur Joins) enthalten.

\begin{bAntwort}
\begin{multline*}
\pi_{s_1.\text{Name},s_2.\text{Name}}\\
(\\
  (\rho_{s_1} (\text{Studenten}) \bowtie \rho_{h_1} (\text{hoeren}))\\
  \bowtie_{(h_1.\text{VorlNr} = h_2.\text{VorlNr} \land s_1.\text{MatrNr} <> s_2.\text{MatrNr})}\\
  (\rho_{s_2} (\text{Studenten}) \bowtie \rho_{h_2} (\text{hoeren}))\\
)
\end{multline*}
\end{bAntwort}

\end{enumerate}
\end{document}
