\documentclass{bschlangaul-aufgabe}
\bLadePakete{java}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 3},
  Thematik = {Personalverwaltung},
  Referenz = 46116-2012-F.T1-TA1-A3,
  RelativerPfad = Examen/46116/2012/03/Thema-1/Teilaufgabe-1/Aufgabe-3.tex,
  ZitatSchluessel = examen:46116:2012:03,
  ZitatBeschreibung = {Thema 1 Teilaufgabe 1 Aufgabe 3},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {SQL},
  EinzelpruefungsNr = 46116,
  Jahr = 2012,
  Monat = 03,
  ThemaNr = 1,
  TeilaufgabeNr = 1,
  AufgabeNr = 3,
}

\section{Aufgabe 3
\index{SQL}
\footcite[Thema 1 Teilaufgabe 1 Aufgabe 3]{examen:46116:2012:03}}

Gegeben ist folgendes einfache Datenbankschema zur Personalverwaltung
(Schlüsselattribute unterstrichen, Fremdschlüssel kursiv):
\footcite[Personalverwaltung, Aufgabe 13]{db:ab:7}
{
\noindent
\ttfamily
Angestellter (\underline{PersNr}, Name, Gehalt, Beruf, \emph{AbtNr}, Ort)\\
Abteilung (\underline{AbtNr}, Name, Ort)
}

\noindent
Formulieren Sie folgende Datenbankoperationen in SQL:

\begin{enumerate}

%%
% (a)
%%

\item Welche Angestellten sind von Beruf Koch und verdienen mehr als
5000 €?

\begin{bAntwort}
\begin{minted}{sql}
SELECT name
FROM Angestellter
WHERE Beruf = 'Koch' AND Gehalt > 5000:
\end{minted}
\end{bAntwort}

%%
% (b)
%%

\item Welche Angestellten der Abteilung B17 sind aus München?

\begin{bAntwort}
\begin{minted}{sql}
SELECT Name
FROM Angestellter, Abteilung
WHERE
  Angestellter.AbtNr = Abteilung.AbtNr AND
  Abteilung.Name = 'B17' AND
  Abgesteller.Ort = 'München';
\end{minted}
\end{bAntwort}

%%
% (c)
%%

\item Hans Meier aus der Abteilung C4 zieht von München nach Erlangen um.

\begin{bAntwort}
\begin{minted}{sql}
UPDATE Angestellter SET Ort = "Erlangen"
WHERE Name = "Hans Meier" AND (
  SELECT ab.AbtNr
  FROM Abteilung ab
  WHERE ab.Name = "C4"
) = AbtNr;
\end{minted}
\end{bAntwort}

%%
% (d)
%%

\item Abteilung C4 wird aufgelöst.

%%
% (e)
%%

\item Formulieren Sie folgende SQL-Anfrage umgangssprachlich und so
exakt wie möglich.

\begin{minted}{sql}
SELECT AbtNr
FROM Abteilung a, (
  SELECT PersNr, Name, AbtNr
  FROM Angestellter
  WHERE Gehalt < 2000) t
WHERE
a.AbtNr = t.AbtNr AND a.Ort = "Nuernberg";
\end{minted}

\end{enumerate}
\end{document}
