\documentclass{bschlangaul-aufgabe} \bLadePakete{mathe} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 4}, Thematik = {Tupelkalkül bei Dozenten-Datenbank}, Referenz = 66116-2018-F.T2-TA1-A4, RelativerPfad = Examen/66116/2018/03/Thema-2/Teilaufgabe-1/Aufgabe-4.tex, ZitatSchluessel = examen:66116:2018:03, ZitatBeschreibung = {Thema 2 Teilaufgabe 1 Aufgabe 4 Seite 12-13}, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Tupelkalkül}, EinzelpruefungsNr = 66116, Jahr = 2018, Monat = 03, ThemaNr = 2, TeilaufgabeNr = 1, AufgabeNr = 4, } Gegeben\index{Tupelkalkül} \footcite[Thema 2 Teilaufgabe 1 Aufgabe 4 Seite 12-13]{examen:66116:2018:03} sei das folgende Datenbank-Schema, das für die Speicherung der Daten einer Universität entworfen wurde, zusammen mit einem Teil seiner Ausprägung. Die Primärschlüssel-Attribute sind jeweils unterstrichen. Die Relation \emph{Dozent} enthält allgemeine Daten zu den Doz\-entinnen und Dozenten. Dozentinnen und Dozenten halten Vorlesungen, die in der Relation \emph{Vorlesung} abgespeichert sind. Wir gehen davon aus, dass es zu jeder Vorlesung genau einen Dozenten (und nicht mehrere) gibt. Zusätzlich wird in der Relation \emph{Vorlesung} das \emph{Datum} gespeichert, an dem die Klausur stattfindet. In der Relation \emph{Student} werden die Daten der teilnehmenden Studierenden verwaltet, während die Relation \emph{besucht} Auskunft darüber gibt, welche Vorlesung von welchen Studierenden besucht wird. \footcite[Seite 4-5]{db:ab:3} \begin{mdframed} \tt Dozent (\underline{DNR}, DVorname, DNachname, DTitel)\\ Vorlesung (\underline{VNR}, VTitel, Klausurtermin, Dozent)\\ Student (\underline{Matrikelnummer}, SVorname, SNachname, Semesterzahl)\\ besucht (\underline{Student, Vorlesung}) \end{mdframed} Formulieren Sie die folgenden Anfragen im Tupelkalkül. Datumsvergleiche können Sie mit $>$, $\geq$, $<$, $\leq$ oder $=$ angeben: \begin{enumerate} \item Geben Sie die Vornamen aller Studierenden aus, die die Vorlesung \emph{„Datenbanksysteme“} besuchen oder besucht haben. \begin{bAntwort} $\{s.SVorname | s \in Student \land \forall v \in Vorlesung( v.VTitel = \mlq Datenbanksysteme \mrq \Rightarrow \exists b \in besucht( b.Vorlesung = v.VNR \land b.Student = s.Matrikelnummer ) ) \}$ \end{bAntwort} oder \begin{bAntwort} $\{\text{s.SVorname} | \text{s} \in \text{Student} \land \text{s.Matrikelnummer} = \text{b.Student} \land \text{b} \in \text{besucht} \land \text{b.Vorlesung} = \text{v.NVR} \land \text{v.VNR} \in \text{Vorlesung} \land \text{v.VTitel} = \mlq \text{Datenbanksysteme} \mrq \}$ \end{bAntwort} %% % %% \item Geben Sie die Matrikelnummern der Studierenden an, die keine Vorlesung mit einem Klausurtermin nach dem 31.12.2017 besuchen oder besucht haben. \begin{bAntwort} \begin{multline*} \{\text{s.Matrikelnummer} |\\ \text{s} \in \text{Student} \land \forall \text{v} \in \text{Vorlesung}(\\ \text{v.Klausurtermin} > \mlq 31.12.2017 \mrq \Rightarrow\\ \text{b} \in \text{besucht}(\\ \text{b.Vorlesung} = \text{v.VNR} \land \text{b.Student} = \text{s.Matrikelnummer}\\ )\\ )\} \end{multline*} \end{bAntwort} %% % %% \item Geben Sie die Matrikelnummern der Studierenden aus, die alle Vorlesungen von Prof. Dr. Schulz hören oder gehört haben. \end{enumerate} \end{document}