\documentclass{bschlangaul-aufgabe} \bLadePakete{er,syntax} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe}, Thematik = {Rennstall}, Referenz = 46116-2013-F.T1-TA2-A1, RelativerPfad = Examen/46116/2013/03/Thema-1/Teilaufgabe-2/Aufgabe-1.tex, ZitatSchluessel = examen:46116:2013:03, ZitatBeschreibung = {Thema 1 Teilaufgabe 2 Aufgabe 1}, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Entity-Relation-Modell, Relationenmodell}, EinzelpruefungsNr = 46116, Jahr = 2013, Monat = 03, ThemaNr = 1, TeilaufgabeNr = 2, AufgabeNr = 1, } \let\a=\bErMpAttribute \let\d=\bErDatenbankName \let\e=\bErMpEntity \let\r=\bErMpRelationship Sie\index{Entity-Relation-Modell} \footcite[Thema 1 Teilaufgabe 2 Aufgabe 1]{examen:46116:2013:03} sollen ein System zur Verwaltung von Pferderennen entwerfen. Gehen Sie dabei von folgendem Szenario aus: \footcite[Aufgabe 5: ER-Diagramm und Relationenmodell vertieft]{db:pu:1} \begin{itemize} \item \e{Unternehmen} werden ihre eindeutige \a{Unternehmens-ID} identifiziert. Sie haben eine \a{Adresse} und \r{besitzen} Rennställe. \item Der \a{Name} eines \e{Rennstalls} ist nur innerhalb eines Unternehmens eindeutig. Für jeden Rennstall wird das \a{Gründungsdatum} gespeichert. \item \e{Pferde} \r{gehören} immer zu einem Rennstall. \a{Pferdenamen} werden in einem Rennstall nur jeweils maximal einmal vergeben. \item \e{Jockeys} sind in einem Rennstall \r{beschäftigt}. Jeder Rennstall vergibt seine eigenen \a{Personalnummern}. Für jeden Jockey werden \a{Vorname} und \a{Name} gespeichert. \item \e{Rennen} haben ein \a{Datum}, ein \a{Preisgeld} und einen \a{Namen}, über den sie identifiziert werden. \item Unternehmen \r{unterstützen} Rennen finanziell mit einem bestimmten Betrag. \item Jockeys \r{nehmen} mit Pferden an Rennen teil. Im Rennen erreichen sie einen bestimmten Platz. Die Kombination aus Jockey und Pferd ist nicht fest, bei unterschiedlichen Rennen können Jockeys verschiedene Pferde reiten. Jockeys können auch mit Rennpferden von fremden Rennställen, die anderen Unternehmen gehören können, an Rennen teilnehmen. \end{itemize} \begin{enumerate} %% % (a) %% \item Entwerfen Sie für das beschriebene Szenario ein ER-Modell. Bestimmen Sie hierzu: \begin{itemize} \item die Entity-Typen, die Relationship-Typen und jeweils deren Attribute, \item ein passendes ER-Diagramm, \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, welche Sie ebenfalls in das ER-Diagramm eintragen. \end{itemize} %\includegraphics[width=\linewidth]{Rennstaelle.eps} \begin{bAntwort} \begin{center} \begin{tikzpicture}[er2,scale=0.6,transform shape] % Unternehmen \node[entity] (Unternehmen) {Unternehmen}; \node[attribute,above=0.5cm of Unternehmen] (UID) {\key{UID}} edge (Unternehmen); \node[attribute,left=0.5cm of Unternehmen] (Adresse) {Adresse} edge (Unternehmen); % Rennstall \node[weak entity,right=5cm of Unternehmen] (Rennstall) {Rennstall}; \node[attribute,above=0.5cm of Rennstall] (Name) {Name} edge (Rennstall); \node[attribute,right=0.5cm of Rennstall] (Gründungsdatum) {Gründungsdatum} edge (Rennstall); % besitzt \node[ident relationship,right=1.5cm of Unternehmen] (besitzt) {besitzt} edge node[auto]{1} (Unternehmen) edge[weak] node[auto]{n} (Rennstall); % Pferd \node[weak entity,below=4cm of Rennstall] (Pferd) {Pferd}; \node[attribute,right=0.5cm of Pferd] (Name) {\key{Pferdename}} edge (Pferd); % gehören \node[ident relationship,below=1.5cm of Rennstall] (gehören) {gehören} edge node[auto]{1} (Rennstall) edge[weak] node[auto]{n} (Pferd); % Jockey \node[weak entity,below=4cm of Unternehmen] (Jockey) {Jockey}; \node[attribute,left=0.5cm of Jockey] (Personalnummer) {\key{Personalnummer}} edge (Jockey); \node[attribute,below left=0.5cm of Jockey] (Vorname) {Vorname} edge (Jockey); \node[attribute,below=0.5cm of Jockey] (Name) {Name} edge (Jockey); % beschäftigt \node[relationship,below=1cm of Unternehmen] (beschäftigt) {beschäftigt} edge node[auto]{1} (Unternehmen) edge node[auto]{n} (Jockey); % Rennen \node[entity,below right=2cm of Jockey] (Rennen) {Rennen}; \node[attribute,below left=0.5cm of Rennen] (Datum) {Datum} edge (Rennen); \node[attribute,below=0.5cm of Rennen] (Preisgeld) {Preisgeld} edge (Rennen); \node[attribute,below right=0.5cm of Rennen] (Name) {Name} edge (Rennen); \node[relationship,right=1cm of Jockey] (teilnehmen) {teilnehmen} edge node[auto]{1} (Jockey) edge node[auto]{1} (Pferd) edge node[auto]{n} (Rennen); \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.\index{Relationenmodell} \begin{minted}{md} Unternehmen (UnternehmensID, Addresse) Rennstall (S_Name, UnternehmensID[Unternehmen], Gründungsdatum) Jockey (PersNr, S_Name[Rennstall], ID[Unternehmen], Vorname, Name) Rennen (R_Name, Datum, Preisgeld) Pferd (P_Name, S_Namen, UnternehmensID[Unternehmen]) teilnehmen (R_Name[Rennen], PersNr[Jockey], S_Name1, ID1, P_Namen, S_Namen2, ID2, Platz) unterstuetzen (UnternehmensID[Unternehmen], R_Name[Rennen], Betrag) \end{minted} \end{enumerate} \end{document}