\documentclass{bschlangaul-aufgabe}
\bLadePakete{er,rmodell}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Forstverwaltung},
  Thematik = {Forstverwaltung},
  Referenz = 66116-2016-F.T1-TA1-A1,
  RelativerPfad = Examen/66116/2016/03/Thema-1/Teilaufgabe-1/Aufgabe-1.tex,
  ZitatSchluessel = examen:66116:2016:03,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Entity-Relation-Modell, Relationenmodell},
  EinzelpruefungsNr = 66116,
  Jahr = 2016,
  Monat = 03,
  ThemaNr = 1,
  TeilaufgabeNr = 1,
  AufgabeNr = 1,
}

\let\a=\bErMpAttribute
\let\d=\bErDatenbankName
\let\e=\bErMpEntity
\let\r=\bErMpRelationship

Für die bayerische Forstverwaltung wird eine Datenbank zur Erschließung
einer Jagd-Statistik benötigt. Gehen Sie dabei von folgendem Szenario
aus:\index{Entity-Relation-Modell}
\index{Relationenmodell}
\footcite{examen:66116:2016:03}

\begin{itemize}
\item Die Administration von Jagdgebieten obliegt den Landkreisen. Jeder
\e{Landkreis} besitzt, neben seinem \a{Namen} (LName) und der
\a{Einwohnerzahl}, ein eindeutiges \a{KFZ-Kennzeichen}
\texttt{(KFZKennzeichen)}.

\item Die Jagd findet in Jagdgebieten statt. Ein \e{Jagdgebiet} soll dem
Landkreis \r{zugeteilt} werden, indem es liegt. Gehen Sie davon aus,
dass Jagdgebiete nicht in mehreren Landkreisen liegen können. Zusätzlich
ist für jedes Jagdgebiet der \a{Name} \texttt{(JName)} und die
\a{Gesamtfläche} zu speichern. Dabei ist zu beachten, dass die Namen nur
innerhalb eines einzelnen Landkreises eindeutig sind.

\item Die Erlaubnis zum Jagen wird durch einen \e{Jagdschein} erteilt.
Dieser kann nur von einem Landkreis \r{ausgestellt} werden und
\r{beschränkt} sich auf ein oder mehrere Jagdgebiete. Er wird durch eine
\a{Jagdschein-Nummer} \texttt{(JSNR)} identifiziert und ist in einem
bestimmtem Zeitintervall gültig. Dieses soll über zwei Zeitpunkte
festgelegt werden (\a{gültig von} \texttt{(gültigVon)}, \a{gültig bis}
\texttt{(gültigBis)}).

\item Ein \e{Jäger} \r{besitzt} genau einen Jagdschein. Zu einem Jäger
sollen \a{Name}, \a{Stadt}, \a{Straße} und \a{Hausnummer}, gespeichert
werden. Da die Jagdtradition innerhalb einer Familie häufig von einer
zur nächsten Generation weitergegeben wird, kann es vorkommen, dass Name
und Adresse von zwei unterschiedlichen Jägern gleich ist (\zB Vater
und Sohn). Aus diesem Grund ist eine eindeutige
\a{Identifikationsnummer} \texttt{(JNR)} notwendig.

\item Um Statistiken erheben zu können, muss berücksichtigt werden,
welches \e{Wild} von welchen Jägern zu welchem Zeitpunkt in welchem
Jagdgebiet \r{erlegt} worden ist. Gehen Sie davon aus, dass es mehrere
Jäger geben kann, die gemeinsam ein Wild erlegen (\zB in einer
Jagdgesellschaft). Zu einem Wild gehört die \a{Art} (\zB Reh), die
\a{Größe}, das \a{Gewicht}, sowie eine eindeutige
\a{Identifikationsnummer} \texttt{(WNR)}. Zusätzlich unterscheidet man
zwischen \e{Haarwild} und \e{Federwild}, wobei beim Haarwild der \a{Typ
des Gehörns} \texttt{(GehörnTyp)} (\zB Hirschgeweih) und beim
Federwild die \a{Flügelspannweite} betrachtet werden soll.
\end{itemize}

\begin{enumerate}

%%
% a)
%%

\item Entwerfen Sie für das beschriebene Szenario ein ER-Modell in
Chen-Notation. Bestimmen Sie hierzu:

\begin{itemize}
\item die Entity-Typen, die Relationship-Typen und jeweils deren
Attribute,

\item die Primärschlüssel der Entity-Typen, welche Sie anschließend in
das ER-Diagramm eintragen, und

\item die Funktionalitäten der Relationship-Typen.
\end{itemize}

\begin{bAntwort}
\begin{center}
\begin{tikzpicture}[er2,scale=0.45,transform shape]
% Landkreis
\node[entity] (Landkreis) {Landkreis};
\node[attribute,above=0.5cm of Landkreis] {LName} edge (Landkreis);
\node[attribute,above left=1cm of Landkreis] {Einwohnerzahl} edge (Landkreis);
\node[attribute,left=0.5cm of Landkreis] {\key{KFZKennzeichen}} edge (Landkreis);

% Jagdgebiet
\node[weak entity,right=4cm of Landkreis] (Jagdgebiet) {Jagdgebiet};
\node[attribute,above=0.5cm of Jagdgebiet] {\discriminator{JName}} edge (Jagdgebiet);
\node[attribute,above right=0.5cm of Jagdgebiet] {Gesamtfläche} edge (Jagdgebiet);

% zuteilen
\node[ident relationship,right=0.8cm of Landkreis] {zuteilen}
  edge node[auto]{1} (Landkreis)
  edge[weak] node[auto]{n} (Jagdgebiet);

% Jagdschein
\node[entity,below=3cm of Landkreis] (Jagdschein) {Jagdschein};
\node[attribute,below=0.5cm of Jagdschein] {gültigVon} edge (Jagdschein);
\node[attribute,below left=1cm of Jagdschein] {gültigBis} edge (Jagdschein);
\node[attribute,left=0.5cm of Jagdschein] {\key{JSNR}} edge (Jagdschein);

% ausstellen
\node[relationship,below=0.8cm of Landkreis] {ausstellen}
  edge node[auto]{1} (Landkreis)
  edge node[auto]{n} (Jagdschein);

% Jäger
\node[entity,below=3cm of Jagdgebiet] (Jäger) {Jäger};
\node[attribute,above=0.5cm of Jäger] {Name} edge (Jäger);
\node[attribute,right=0.5cm of Jäger] {Stadt} edge (Jäger);
\node[attribute,below right=0.5cm of Jäger] {Straße} edge (Jäger);
\node[attribute,below=1.2cm of Jäger] {Hausnummer} edge (Jäger);
\node[attribute,below left=0.5cm of Jäger] {\key{JNR}} edge (Jäger);

% besitzen
\node[relationship,right=0.8cm of Jagdschein] {besitzen}
  edge node[auto]{1} (Jagdschein)
  edge node[auto]{1} (Jäger);

% Wild
\node[entity,below right=1.2cm and 4cm of Jagdgebiet] (Wild) {Wild};
\node[attribute,above right=1cm of Wild] {Art} edge (Wild);
\node[attribute,right=0.5cm of Wild] {Größe} edge (Wild);
\node[attribute,below right=0.5cm of Wild] {Gewicht} edge (Wild);
\node[attribute,above=0.5cm of Wild] {\key{WNR}} edge (Wild);

\node[relationship,above right=2cm of Jagdschein] {beschränken}
  edge node[auto]{m} (Jagdschein)
  edge node[auto]{n} (Jagdgebiet);

% erlegen
\node[relationship,below right=1.3cm and 1cm of Jagdgebiet] {erlegen}
  edge node[auto]{1} (Jagdgebiet)
  edge node[auto]{n} (Jäger)
  edge node[auto]{1} (Wild);

% isa
\node[isa,below=1cm of Wild] (isa) {isa}
  edge (Wild);

% Haarwild
\node[entity,below left=1cm of isa] (Haarwild) {Haarwild} edge (isa);
\node[attribute,below=0.5cm of Haarwild] {GehörnTyp} edge (Haarwild);

% Federwild
\node[entity,below right=1cm of isa] (Federwild) {Federwild} edge (isa);
\node[attribute,below=0.5cm of Federwild] {Flügespannweite} edge (Federwild);
\end{tikzpicture}
\end{center}
\end{bAntwort}

%%
% b)
%%

\item Überführen Sie das ER-Modell aus Aufgabe a) in ein verfeinertes
relationales Modell. Geben Sie hierfür die verallgemeinerten
Relationenschemata an. Achten Sie dabei insbesondere darauf, dass die
Relationenschemata keine redundanten Attribute enthalten.

\begin{bAntwort}
\begin{bRelationenModell}
Landkreis(\bPrimaer{KFZKennzeichen}, LName, Einwohnerzahl)

Jagdgebiet(\bPrimaer{JName}, \bFremd{KFZKennzeichen}[Landkreis], Gesamtfläche)

Jagdschein(\bPrimaer{JSNR}, \bFremd{KFZKennzeichen}[Landkreis], gültigVon, gültigBis)

Jäger(\bPrimaer{JNR}, \bFremd{JSNR}, Name, Stadt, Straße, Hausnummer)

Wild(\bPrimaer{WNR}, Art, Größe, Gewicht)

Haarwild(\bPrimaer{WNR}, GehörnTyp)

Federwild(\bPrimaer{WNR}, Flügelspannweite)

erlegen(\bFremd{JNR}[Jäger], \bFremd{WNR}[Wild], \bFremd{JName}[Jagdgebiet], \bFremd{KFZKennzeichen}[Landkreis])

beschränken(\bFremd{JSNR}[Jagdschein], \bFremd{JName}[Jagdgebiet], \bFremd{KFZKennzeichen}[Landkreis])
\end{bRelationenModell}
\end{bAntwort}
\end{enumerate}
\end{document}
