\documentclass[ngerman]{gdb-aufgabenblatt}
\usepackage{tikz-er2}
\renewcommand{\Aufgabenblatt}{2}
\renewcommand{\Ausgabedatum}{Mi. 30.10.2013}
\renewcommand{\Abgabedatum}{Do. 14.11.2013}
\renewcommand{\Gruppe}{Tim Dittrich, Sebastian Lindemann, Jim Martens}

% define how the sections are rendered
\def\thesection{Aufgabe \arabic{section}:}
\def\thesubsection{\alph{subsection})}
\def\thesubsubsection{(\roman{subsubsection})}

\usetikzlibrary{positioning}
\usetikzlibrary{shadows}
\tikzstyle{every entity} = [top color=white, bottom color=blue!30, 
                            draw=blue!70, drop shadow]
\tikzstyle{every weak entity} = [drop shadow={shadow xshift=.7ex, 
                                 shadow yshift=-.7ex}]
\tikzstyle{every attribute} = [top color=white, bottom color=blue!30, 
                               draw=blue!70, node distance=1cm, drop shadow]
\tikzstyle{every relationship} = [top color=white, bottom color=blue!30, 
                            draw=blue!70, drop shadow]
\tikzstyle{every isa} = [top color=white, bottom color=orange!50, 
                         draw=orange!70, drop shadow]
\begin{document}
\section{Informationsmodellierung: Erstellung eines ER-Modells}
	\subsection{} %a
	\begin{tikzpicture}[node distance=1.31cm, every edge/.style={link}]
		\node[entity] (film) {Film};
		\node[attribute] (filmName) [above left=of film] {\key{Titel}} edge (film);
  		\node[attribute] (filmStart) [left=of film] {ersterDrehtag} edge (film);
  		\node[attribute] (filmEnde) [below left=of film] {letzterDrehtag} edge (film);
		\node[relationship] (relFilmStud) [right=of film] {produziert} edge node [above left=0 and 0.2] {1} (film);		
		\node[entity] (studio) [right=of relFilmStud] {Studio} edge node [above right=0 and 0.2] {n} (relFilmStud);
		\node[attribute] (studName) [above=of studio] {\key{Name}} edge (studio);
		\node[relationship] (relPersStud) [right=of studio] {leitet} edge node [above left=0 and 0.2] {n} (studio);
		\node[entity] (pers) [below left=3cm and 2cm of relPersStud] {Person} edge node [below left=1 and 1.2] {1} (relPersStud);
		\node[attribute] (persName) [above right=of pers] {\key{Name}} edge (pers);
		\node[attribute] (persVName) [right=of pers] {\key{Vorname}} edge (pers);
		\node[attribute] (persGebDat) [below right=of pers] {Geb.Datum} edge (pers);				
		\node[isa] (isaPers) [below=of pers] {Is-a} edge[->] (pers);
		\node[entity] (regi) [left=of isaPers] {Regisseur} edge[->] (isaPers);
		\node[entity] (schau) [below right=of isaPers] {Schauspieler} edge[->] (isaPers);
		\node[relationship] (relMarkSchau) [below=of schau] {hat} edge node [above right=0.2 and 0] {n} (schau);
		\node[entity] (marken) [below=of relMarkSchau] {Markenzeichen} edge node [below right=0.3cm and 0.05cm] {m} (relMarkSchau);
		\node[relationship] (relSchauFilmChar) [left=of relMarkSchau] {spielt} edge node [above right=0.4 and 0.9] {n} (schau) edge[bend left] node [above left=5.4 and 1.1] {m} (film);
		\node[entity] (char) [below=of relSchauFilmChar] {Charakter} edge node [below left=0.2 and 0] {1} (relSchauFilmChar);
		\node[attribute] (charID) [below=of char] {\key{Char.ID}} edge (char);
		\node[attribute] (charName) [below right=of char] {Name} edge (char);
		\node[relationship] (relFilmGenre) [below=of filmEnde] {gehört zu} edge node [above right=1.2 and 1] {4} (film);
		\node[entity] (genre) [below=of relFilmGenre] {Genre} edge node [below left=0.3 and 0] {n} (relFilmGenre);
		\node[attribute] (genreName) [below=of genre] {\key{Name}} edge (genre);
		\node[relationship] (relRegFilm) [left=of pers] {führt Regie} edge node [below left=0 and 0] {n} (regi) edge node [above left=0.8 and 0.4] {1} (film);
		\node[relationship] (relRegiGenre) [right=of genre] {präferiert} edge node [above left=0 and 0.2] {n} (genre) edge node [above right=0.2 and 0.2] {1} (regi);
		\node[entity] (verh) [left=of char] {Verhandlung};
		\node[attribute] (verhDatum) [above left=of verh] {Datum} edge (verh);
		\node[attribute] (verhBudget) [left=of verh] {Budget} edge (verh);
		\node[relationship] (relRegiStud) [left=of relSchauFilmChar] {nimmt teil} edge node [below left=0.1 and 0.1] {1} (verh) edge node [above right=1 and 0.2] {n} (regi) edge node [above right=4.4 and 1.7] {m} (studio);
	\end{tikzpicture}
	\subsection{} %b
	Ein Schauspieler kann nicht an Filmen mitwirken, deren Drehzeiten sich vor seiner Geburt befinden.
	
	Ein Regisseur kann nicht bei Filmen Regie führen, deren Drehzeiten vor seiner Geburt liegen.
\section{Informationsmodellierung: Beschreibung von ER-Modellen}
	\subsection{} %a
		\begin{itemize}
			\item	Ein Student hat eine Matrikelnummer und einen Namen.
			\item	Die Matrikelnummer ist der primäre Schlüssel von Studenten.
			\item	Ein Student ist in genau einem Studiengang immatrikuliert.
			\item	Ein Studiengang hat einen Namen, der auch primärer Schlüssel ist.
			\item	Es können beliebig viele Studenten in einem Studiengang immatrikuliert sein.
		\end{itemize}
	\subsection{} %b
		\begin{itemize}
			\item	Eine Universität hat einen Namen, der auch primärer Schlüssel ist.
			\item	Zu einer Universität gehören mindestens ein bis beliebig viele Hörsäle.
			\item	Die Universität ist ein starker Entitytyp. Der Hörsaal ist ein schwacher Entitytyp.
			\item	Ein Hörsaal besteht aus einem Sekundärschlüssel (Name) und der Anzahl seiner Plätze (\#Plaetze).
			\item	Ein Hörsaal gehört zu genau einer Universität und ist existenzabhängig von dieser.
		\end{itemize}
	\subsection{} %c
		\begin{itemize}
			\item	Ein Auftrag besteht aus einer Auftragsnummer und einem Datum. Die Auftragsnummer (ANR) ist der primäre Schlüssel.
			\item	Ein Ersatzteil besteht aus einem Namen, einem Automodell und einem Preis.
			\item	Die Kombination Name und Automodell ist der primäre Schlüssel.
			\item	Ein Reparaturtyp besteht aus einer Art und einem Festpreis. Die Art ist der primäre Schlüssel.
			\item	Zu jedem Auftrag kann es beliebig viele Ersatzteile und Reparaturtypen geben.
			\item	Zu jedem Ersatzteil kann ess beliebig viele Aufträge und Reparaturtypen geben.
			\item	Zu jedem Reparaturtyp kann es beliebig viele Ersatzteile und Aufträge geben.
			\item	Die Beziehung (Relationship) Reparatur hat eine Uhrzeit und ein Datum.
		\end{itemize}
	\subsection{} %d
		\begin{itemize}
			\item	Die drei Entity-Typen besitzen keine Attribute und somit auch keinen Primärschlüssel.
			\item	Sie werden durch die Relationship "`Fußballspiel"' in Verbindung gesetzt.
			\item	Der Entity-Typ Mannschaft zeichnet sich durch eine reflexive Relationship aus. Daher können Mannschaften auch untereinander in Beziehung gesetzt werden.
			\item	Eine Mannschaft kann in keinem oder beliebig vielen Fußballspielen teilnehmen.
			\item	Ein Schiedsrichter kann in keinem oder beliebig vielen Fußballspielen teilnehmen.
			\item	In einem Stadion können keine oder beliebig viele Fußballspiele stattfinden.
			\item	An einem Fußballspiel können keine oder beliebig viele Mannschaften teilnehmen.
		\end{itemize}
\section{Schlüsselkandidaten}
	\subsection{} %a
		Ein Schlüsselkandidat muss eindeutig sein. Das bedeutet, dass über den Schlüsselkandidat eine Entität eindeutig identifizierbar sein muss. Im gegebenen Beispiel kommen demnach nur das 2. Fach, Telefonnummer und PLZ in Frage. Außerdem muss er minimal sein. Das bedeutet, dass es keinen anderen Schlüsselkandidaten mit weniger Attributen geben darf. Demnach käme die PLZ und das 2. Fach in Betracht.
		
		Die Attributkombination Vorname und Hausnummer ist kein Schlüsselkandidat, da es eine Frida Weiß mit Hausnummer 8 und eine Frida Müller mit Hausnummer 8 gibt. Damit gibt es zwei Entitäten mit den gleichen Werten für Vorname und Hausnummer.
	\subsection{} %b
		Bei einer unspezifischen Menge an Studenten kann sich jede der Attribute wiederholen. Daher eignet sich keines der Attribute als eindeutiger Schlüsselkandidat. Mögliche Beispiele sind 20 Studenten, die alle aus Fbach kommen, in der gleichen Straße wohnen und die gleiche Fächerkombi studieren. Damit haben sie die gleiche PLZ und die gleiche Vorwahl. Damit bleiben nur Vor- und Nachname, Geburtsdatum, Hausnummer und der restliche Teil der Telefonnummer als Schlüssel. Allerdings gibt es gleichzeitig zwei Geschwister aus Bheim, die außer dem Vornamen keinen Unterschied aufweisen. Schließlich gibt es einen Peter aus Aheim und einen Peter aus Cfeld. Somit ist keines der vorliegenden Attribute eindeutig als Schlüssel.
		
		Eine Lösungsmöglichkeit besteht in einer ID, die fortlaufend erhöht wird. Keine ID wird doppelt vergeben und einmal vergebene IDs werden nie mehr vergeben. Solch eine ID wäre immer eindeutig als Schlüssel verwendbar.
\end{document}