\documentclass{bschlangaul-aufgabe}
\bLadePakete{er,syntax,rmodell}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe zum Relationenmodell und zum verfeinertem},
  Thematik = {Mitarbeiter-Projekte einer Abteilung},
  Referenz = DB.Relationales-Modell.Relationenmodell.Mitarbeiter-Projekte,
  RelativerPfad = Module/10_DB/30_Relationales-Modell/10_Relationenmodell/Aufgabe_Mitarbeiter-Projekte.tex,
  ZitatSchluessel = db:pu:1,
  ZitatBeschreibung = {Aufgabe 3: Relationenmodell Einstieg, Seite 2-3},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Relationenmodell, Verfeinertes Relationenmodell},
}

\let\r=\bRelationMenge

\begin{tikzpicture}
\node[entity] (Abteilung) {Abteilung};
\node[attribute,above left=0.5cm and -0.5cm of Abteilung] {\key{AbtID}}
  edge (Abteilung.north);
\node[attribute,above right=0.5cm and -0.5cm of Abteilung] {AName}
  edge (Abteilung.north);

\node[relationship,right=of Abteilung] (gehörtZu) {gehörtZu}
  edge node[auto]{1} (Abteilung);

\node[entity,right=of gehörtZu] (Mitarbeiter) {Mitarbeiter}
  edge node[auto]{n} (gehörtZu);
\node[attribute,above right=0cm and 1cm of Mitarbeiter] {\key{PersID}}
  edge (Mitarbeiter.east);
\node[attribute,below right=0cm and 1cm of Mitarbeiter] {MName}
  edge (Mitarbeiter.east);

\node[relationship,above=1cm of Mitarbeiter] (istChefVon) {istChefVon}
  (istChefVon.east) edge node[auto,pos=0.1]{Untergebener} node[auto,swap,pos=0.4]{n} (Mitarbeiter.north east)
  (istChefVon.west) edge node[auto,swap,pos=0.3]{Chef} node[auto,pos=0.7]{1} (Mitarbeiter.north west);
\node[relationship,below left=1cm and 0cm of Mitarbeiter] (arbeitetMit) {arbeitetMit}
  (arbeitetMit.north) edge node[auto]{m} (Mitarbeiter.south);
\node[relationship,below right=1cm and 0cm of Mitarbeiter] (verantFür) {verantFür}
  (verantFür.north) edge node[auto]{1} (Mitarbeiter.south);

\node[entity,node distance=3cm,below=of Mitarbeiter] (Projekt) {Projekt}
edge node[auto]{n} (arbeitetMit.south) edge node[auto]{1} (verantFür.south);
\node[attribute,above left=-0.25cm and 1cm of Projekt] {\key{ProjID}}
  edge (Projekt.west);
\node[attribute,below left=-0.25cm and 1cm of Projekt] {PName}
  edge (Projekt.west);
\end{tikzpicture}

\begin{enumerate}

%%
% (a
%%

\item Übertragen Sie das gegebene ER-Modell in ein
relationales Schema! Geben Sie in geeigneter Weise Schlüssel an.
\index{Relationenmodell}
\footcite[Aufgabe 3: Relationenmodell Einstieg, Seite 2-3]{db:pu:1}

\begin{bAntwort}
\begin{bRelationenModell}
\r{Abteilung}{\bPrimaer{AbtID}, AName}
\r{Mitarbeiter}{\bPrimaer{PersID}, MName}
\r{Projekt}{\bPrimaer{ProjID}, PName}
\r{gehörtZu}{\bPrimaer{PersID, AbtID}}
\r{arbeitetMit}{\bPrimaer{PersID}, ProjID}
\r{istChefvon}{\bPrimaer{PersID}, VorID}
\r{verantfür}{PersID, \bPrimaer{ProjID}}
\end{bRelationenModell}
\end{bAntwort}

%%
% (b)
%%

\item Verfeinern Sie das Relationenschema!
\index{Verfeinertes Relationenmodell}

\begin{bAntwort}
\begin{bRelationenModell}
\r{Abteilung}{AbtID, AName}
\r{Mitarbeiter}{PersID, MName, AbtID, VerantwortlicherID}
\end{bRelationenModell}

$\rightarrow$ \bAttribut{gehörtZu} und \bAttribut{istChefVon} wurden
berücksichtigt

\begin{bRelationenModell}
\r{Projekt}{ProjID, PName, VerantwortlicherID}
\end{bRelationenModell}

$\rightarrow$ zur Vermeidung von NULL-Werten wurde hier
\bAttribut{verantFür} berücksichtigt

\begin{bRelationenModell}
\r{arbeitetMit}{PersID, ProjID}
\end{bRelationenModell}
\end{bAntwort}
\end{enumerate}
\end{document}
