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