From a3e0f7e1c15547a259f490185b193f87a62b84c2 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Thu, 26 Nov 2015 08:46:52 +0000 Subject: dbs - 06 --- ws2015/dbs/blaetter/06/abgabe.md | 63 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 ws2015/dbs/blaetter/06/abgabe.md (limited to 'ws2015') diff --git a/ws2015/dbs/blaetter/06/abgabe.md b/ws2015/dbs/blaetter/06/abgabe.md new file mode 100644 index 0000000..26a069b --- /dev/null +++ b/ws2015/dbs/blaetter/06/abgabe.md @@ -0,0 +1,63 @@ +--- +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 +~~~ -- cgit v1.2.3