summaryrefslogtreecommitdiff
path: root/ws2015/dbs/blaetter/06/abgabe.md
blob: 26a069ba98710a75587c58141448a2a888fffa94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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
~~~