\documentclass[ngerman]{gdb-aufgabenblatt} \RequirePackage[utf8]{inputenc} \renewcommand{\Aufgabenblatt}{3} \renewcommand{\Ausgabedatum}{Mi. 13.11.2013} \renewcommand{\Abgabedatum}{Do. 28.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} \begin{document} \section{Konzeptioneller Entwurf} \begin{tikzpicture}%[node distance=1.31cm, every edge/.style={link}] \node[entity] (biomol) {Biomolekül}; \node[attribut] (biomolID) [below left=0.5 and 0 of biomol] {\underline{Molekül-ID}} edge (biomol); \node[attribut] (biomolDesc) [below right=0.5 and 0 of biomol] {Beschreibung} edge (biomol); \node[relationship] (relBiomolOrg) [above=of biomol] {kommt vor} edge node [above left=-0.5 and 0.2] {[1;*]} (biomol); \node[entity] (organism) [above=of relBiomolOrg] {Organismus} edge node [below right=-0.5 and 0.2] {[0;*]} (relBiomolOrg); \node[attribut] (orgID) [left=of organism] {\underline{Taxonomie-ID}} edge (organism); \node[attribut] (orgName) [above left=of organism] {Name} edge (organism); \node[attribut] (orgTrivName) [above=of organism] {Trivialname} edge (organism); \node[relationship] (relBiomolArt) [left=of biomol] {veröffentlicht in} edge node [above right=0 and -0.5] {[1;1]} (biomol); \node[entity] (article) [left=of relBiomolArt] {Artikel} edge node [above left=0 and -0.5] {[0;*]} (relBiomolArt); \node[attribut] (artTitel) [above left=of article] {\underline{Titel}} edge (article); \node[attribut] (artDatum) [left=of article] {Datum} edge (article); \node[relationship] (relArtWiss) [above=of article] {geschrieben von} edge node [above right=-0.5 and 0] {[1;*]} (article); \node[entity] (wissen) [above=of relArtWiss] {Wissenschaftler} edge node [below right=-0.5 and 0] {[0;*]} (relArtWiss); \node[attribut] (wissName) [left=of wissen] {\underline{Name}} edge (wissen); \node[multivalentattribut] (wissKontakt) [above=of wissen] {Kontaktinformationen} edge (wissen); \node[attribut] (wissTel) [above left=of wissKontakt] {Telefonnummer} edge (wissKontakt); \node[attribut] (wissEmail) [above=of wissKontakt] {E-Mailadresse} edge (wissKontakt); \node[erbt] (relDNABiomol) [below=of biomol] {is-a} edge (biomol); \node[entity] (dnamol) [below left=0.5 and 2 of relDNABiomol] {DNA-Molekül} edge (relDNABiomol); \node[attribut] (dnaNuk) [above left=of dnamol] {Nukleotidsequenz} edge (dnamol); \node[attribut] (dnaStrang) [left=of dnamol] {Strang-Orientierung} edge (dnamol); \node[attribut] (dnaChrom) [below left=of dnamol] {Nummer des Chromosoms} edge (dnamol); \node[entity] (mrnamol) [below=of relDNABiomol] {mRNA-Molekül} edge (relDNABiomol); \node[attribut] (mrnaNuk) [above right=of mrnamol] {Nukleotidksequenz} edge (mrnamol); \node[attribut] (mrnaVien) [right=of mrnamol] {Vienna-String} edge (mrnamol); \node[relationship] (relDNAmRNA) [below=3.0 of dnamol] {wird übersetzt} edge node [below left=-1.5 and 0] {[1;1]} (dnamol) edge node [above right=0.4 and -0.2] {[0;*]} (mrnamol); \node[attribut] (relStart) [above left=0.9 and 1 of relDNAmRNA] {Startposition} edge (relDNAmRNA); \node[attribut] (relEnde) [left=of relDNAmRNA] {Endposition} edge (relDNAmRNA); \node[weakrelationship] (relRNAProt) [below=of mrnamol] {wird synthetisiert} edge node [below right=-0.5 and 0] {[1;1]} (mrnamol); \node[weakentity] (prot) [below right=of relRNAProt] {Protein} edge node [above left=-0.5 and 0] {[0;1]} (relRNAProt); \node[attribut] (protAmino) [below left=0.5 and 1 of prot] {\dashuline{Aminosäuresequenz}} edge (prot); \node[attribut] (protGewicht) [left=of prot] {Molekulargewicht} edge (prot); \node[attribut] (protCATH) [below right=0.6 and -1.3 of prot] {CATH-Klassifikation} edge (prot); \node[relationship] (relProtDom) [right=of organism] {enthält} edge[bend left] node [above right=5 and -1] {[1;*]} (prot); \node[entity] (domain) [above=of relProtDom] {Domäne} edge node [below right=-0.5 and 0] {[0;*]} (relProtDom); \node[attribut] (domID) [above left=of domain] {\underline{Domänen-ID}} edge (domain); \node[attribut] (domHMM) [above=of domain] {HMM} edge (domain); \end{tikzpicture} \section{Logischer Entwurf} Person(\underline{Name}, DOB, Geschlecht) \\ Schauspieler(\dashuline{Name $\rightarrow$ Person.Name}, Markenzeichen) \\ Regisseur(\dashuline{Name $\rightarrow$ Person.Name}, Genre)\\ Charakter(\underline{CID}, Name, Charakterbeschreibung)\\ Film(\underline{Titel}, \dashuline{Regisseur $\rightarrow$ Regisseur.Name}, Zusammenfassung, 1. Drehtag, letzter Drehtag, Genre1, Genre2, Genre3, Genre4)\\ Rolle(\dashuline{Charakter $\rightarrow$ Charakter.CID, Schauspieler $\rightarrow$ Schauspieler.Name, Film $\rightarrow$ Film.Titel}, Drehbeginn, Drehende, Gage) \section{Relationale Algebra und SQL} \subsection{} %a \subsubsection{} %i Nachname des Rennfahrers, der im Malaysia GP den ersten Platz belegte. \begin{tabular}{c} Nachname \\ \hline Vettel \\ \hline \end{tabular} \subsubsection{} %ii Vor- und Nachname aller Rennfahrer, die in einem Rennstall angestellt sind, der weniger als 350 Budget hat. \begin{tabular}{c|c} Vorname & Nachname \\ \hline Lewis & Hamilton \\ Jenson & Button \\ Kimi & Räikkonen \\ \hline \end{tabular} \subsubsection{} %iii Name der Rennställe, deren Fahrer im Australien GP eine Platzierung haben. \begin{tabular}{c} Name \\ \hline RedBull \\ Ferrari \\ McLaren \\ \hline \end{tabular} \subsection{} %b \subsubsection{} %i \[ \pi_{Rennstall.Name}(\sigma_{Geburt >= 1985}(Rennfahrer) \underset{RSID=Rennstall}{\bowtie} Rennstall) \] \begin{tabular}{c} Name \\ \hline RedBull \\ McLaren \\ \hline \end{tabular} \subsubsection{} %ii $\pi_{Vorname, Nachname, Geburt}(\pi_{RID}(\sigma_{Name='Australien GP'}(Rennort) \bowtie Platzierung) \bowtie $\\$ Rennfahrer \underset{Rennstall=RSID}{\bowtie} (\sigma_{Name='McLaren'}(Rennstall)))$ \begin{tabular}{c|c|c} Vorname & Nachname & Geburt \\ \hline Lewis & Hamilton & 1985-01-07 \\ Jenson & Button & 1980-01-19 \\ \hline \end{tabular} \subsubsection{} %iii $Rennfahrer - (Rennfahrer \bowtie (\pi_{RID}(Platzierung)))$ \begin{tabular}{c|c|c|c|c|c} RID & Vorname & Nachname & Geburt & Wohnort & Rennstall \\ \hline 44 & Kimi & Räikkönen & 1979-10-17 & Espoo (Finnland) & 34 \\ \hline \end{tabular} \subsubsection{} %iv $\pi_{Vorname, Nachname}(\sigma_{Rennstall = 31}(Rennfahrer) - (\sigma_{Nachname='Button'}(Rennfahrer)))$ \begin{tabular}{c|c} Vorname & Nachname \\ \hline Lewis & Hamilton \\ \hline \end{tabular} \subsection{} %c \subsubsection{} %i \begin{verbatim} SELECT fahrer.Vorname, fahrer.Nachname, fahrer.Geburt FROM Platzierung platz, Rennort ort, Rennfahrer fahrer WHERE platz.OID = ort.OID AND platz.RID = fahrer.RID AND ort.Name = 'Australien GP' AND fahrer.Rennstall = 31 \end{verbatim} \subsubsection{} %ii \begin{verbatim} SELECT Vorname, Nachname FROM Rennfahrer WHERE Rennstall = 31 AND Nachname <> 'Button' \end{verbatim} \section{Algebraische Optimierung} \subsection{} %a \subsection{} %b \end{document}