--- header-includes: - \lstset{frame=single, breaklines=true, postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}}} --- # Anfragen im Tupel- und Bereichskalkül a) \begin{align*} & \left \{ name, nummer, bestand \mid \text{Artikel}(nummer, namme, \_, preis, bestand, \_) \land preis \leq 1000 \land bestand \geq 450 \right \} \\ & \left \{ a.name, a.nummer, a.bestand \mid \text{Artikel}(a) \land a.preis \leq 1000 \land a.bestand \geq 450 \right \} \end{align*} b) \begin{align*} & \left \{ name_A, name_L, jahr \mid \text{Abteilung}(\_, name_A, \_, \_, leiter) \land \text{Angestellter}(leiter, name_L, \_, \_, jahr, \_) \right \} \\ & \left \{ a.name, l.name, l.geburtsjahr \mid \text{Abteilung}(a) \land \text{Angestellter}(l) \land a.leiter = l.nummer \right \} \end{align*} c) \begin{align*} \{ nummer_A & \mid & \text{Artikel}(nummer_A, \_, abteilung, \_, \_, \_) \\ & \land & \text{Abteilung}(abteilung, \_, \_, \_, leiter) \\ & \land & \text{Angestellter}(leiter, \text{"Edgar F. Codd"}, \_, \_, \_, \_) \\ & & \} \end{align*} \begin{align*} \{ a & \mid & \text{Artikel}(a) \\ & \land & \text{Abteilung}(a^\prime) \\ & \land & \text{Angestellter}(l) \\ & \land & a.abteilung = a^\prime.nummer \\ & \land & a^\prime.leiter = l.nummer \\ & \land & l.name = \text{"Edgar F. Codd"} \\ & & \} \end{align*} # Join-Operationen in SQL a) ~~~ {.sql} SELECT * FROM T1, T2 ~~~ b) ~~~ {.sql} SELECT * FROM T1, T2 WHERE T1.id = T2.id ~~~ c) (Hier) identisch zu (b). d) ~~~ {.sql} SELECT * FROM T1 RIGHT JOIN T2 ON T1.id = T2.id ~~~ e) ~~~ {.sql} SELECT * FROM T1 LEFT JOIN T2 ON T1.id = T2.id ~~~