\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}