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