\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}