diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-11-15 17:32:24 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2023-11-16 11:28:55 +0100 |
| commit | 6fcb56c3b2708cd7d41578ae005e5df9f8046312 (patch) | |
| tree | e8ac4b266f503f1a5cbace9cc02492e1972360db /Info/10/1/Aufgaben | |
| parent | cbb79a16da340e1cc99e2e365385317ee68c3ef2 (diff) | |
| download | unterricht-6fcb56c3b2708cd7d41578ae005e5df9f8046312.tar.gz unterricht-6fcb56c3b2708cd7d41578ae005e5df9f8046312.zip | |
add initial draft for the first Info KA in 10B
Diffstat (limited to 'Info/10/1/Aufgaben')
| -rw-r--r-- | Info/10/1/Aufgaben/joins_bayern.tex | 34 | ||||
| -rw-r--r-- | Info/10/1/Aufgaben/klassendiagramm_hoghwarts.tex | 41 | ||||
| -rw-r--r-- | Info/10/1/Aufgaben/modellierung_hoghwarts.tex | 44 | ||||
| -rw-r--r-- | Info/10/1/Aufgaben/tabellenschema_sportverein_n_m.tex | 44 |
4 files changed, 163 insertions, 0 deletions
diff --git a/Info/10/1/Aufgaben/joins_bayern.tex b/Info/10/1/Aufgaben/joins_bayern.tex new file mode 100644 index 00000000..48deffdf --- /dev/null +++ b/Info/10/1/Aufgaben/joins_bayern.tex @@ -0,0 +1,34 @@ +\begin{Aufg}[Joins] +Bayrische Gemeinden werden in einer Datenbank mit folgenden Tabellen verwaltet: \\ +\texttt{Gemeinde[\underline{schluessel}: TEXT, name: TEXT: plz: INTEGER, flaeche: INTEGER]} \\ +\texttt{Nachbargemeinde[\underline{\dashuline{schluessel1: TEXT}, \dashuline{schluessel2: TEXT}}]} \\ +\texttt{Schwimmbad[\underline{id:INTEGER}, name:TEXT, art:TEXT, \dashuline{gemeindeschluessel:TEXT}]} \\ + +\begin{enumerate}[a)] +\item Formuliere ein SQL-Statement, das die Namen aller benachbarten Gemeinden liefert. +\item Formuliere ein SQL-Statement, das die \textbf{Anzahl} der Schwimmbäder in den Nachbargemeinden von \textbf{Bayreuth} ausgiebt. +\end{enumerate} +\end{Aufg} + +\begin{Lsg} +\begin{enumerate}[a)] +\item +\begin{minted}{sql} +SELECT g1.name, g2.name +FROM Gemeinde AS g1, Gemeinde AS g2, Nachbargemeinde +WHERE g1.schluessel = Nachbargemeinde.schluessel1 + AND g2.schluessel = Nachbargemeinde.schluessel2; +\end{minted} +\BE{1} Select \BE{2} From \BE{2} Where +\item +\begin{minted}{sql} +SELECT Count(Schwimmbad.id) +FROM Gemeinde AS g1, Gemeinde AS g2, Nachbargemeinde, Schwimmbad +WHERE g1.schluessel = Nachbargemeinde.schluessel1 + AND g2.schluessel = Nachbargemeinde.schluessel2 + AND g1.name = "Bayreuth" + AND g2.schluessel = Schwimmbad.gemeindeschluessel; +\end{minted} +\BE{1} Select+Count \BE{1} From+Schwimmbad \BE{2} Where Bayreuth | 1,n Join +\end{enumerate} +\end{Lsg} diff --git a/Info/10/1/Aufgaben/klassendiagramm_hoghwarts.tex b/Info/10/1/Aufgaben/klassendiagramm_hoghwarts.tex new file mode 100644 index 00000000..fc33bc62 --- /dev/null +++ b/Info/10/1/Aufgaben/klassendiagramm_hoghwarts.tex @@ -0,0 +1,41 @@ +\begin{Aufg}[Klassendiagramm] +\begingroup +\setstretch{2}% Adjust line spacing +Das \textit{„Warzenschwein-Internat für Zauberei“} teilt seine \textbf{Schüler} in vier \textbf{Häuser} auf: \textbf{Ritter}, \textbf{Drachen}, \textbf{Elfen} und \textbf{Zwerge}. +Der bekannteste Schüler ist \textbf{Harald Töpfer}. +\textbf{Frau Gongalle} ist \textbf{Lehrkraft} und Oberhaupt des Hauses der Ritter. +\textbf{Herr Moodi} ist auch Lehrkraft, leitet aber kein Haus. Ein Haus wird nur von genau einer Lehrkraft geleitet. +\par +\endgroup +\begin{enumerate}[a)] +\item Schreibe in obigem Text über die Objekte ein \textbf{O} und über die Klassen ein \textbf{K}, so dass alle fettgedruckten Begriffe gekennzeichnet sind. + Kennzeichne mit einem Pfeil, zu welcher Klasse die Objekte jeweils gehören. +\item Vervollständige das Klassendiagramm, aber nur mit den oben stehenden Angaben. + Bezeichne die zwei Beziehungen und trage die Kardinalitäten ein. +\end{enumerate} + +\iflehrer{}{ +\begin{tikzpicture} +\node[draw, minimum height=1.5cm, minimum width=4cm] (s) {}; +\node[right=7cm of s, draw, minimum height=1.5cm, minimum width=4cm] (l) {}; +\node[below=1.5cm of s, xshift=5.5cm, draw, minimum height=1.5cm, minimum width=4cm] (h) {}; +\draw (s) -- (h); +\draw (h) -- (l); +\end{tikzpicture}} +\end{Aufg} + +\begin{Lsg} +\begin{enumerate}[a)] +\item +\BE{1} auf Objekte, \BE{1} auf Klassen, \BE{1} auf die Pfeile + +\item \BE{3} auf richtige Klassen und \BE{6} fuer die beiden Beziehungen \\ +\begin{tikzpicture} +\node[draw, minimum height=1.5cm, minimum width=4cm] (s) {Schueelr}; +\node[right=7cm of s, draw, minimum height=1.5cm, minimum width=4cm] (l) {Lehrkraft}; +\node[below=1.5cm of s, xshift=5.5cm, draw, minimum height=1.5cm, minimum width=4cm] (h) {Haus}; +\draw (s) -- (h) node[midway] {m gehoert an > n}; +\draw (h) -- (l) node[midway] {1 < leitet 0..1}; +\end{tikzpicture} +\end{enumerate} +\end{Lsg} diff --git a/Info/10/1/Aufgaben/modellierung_hoghwarts.tex b/Info/10/1/Aufgaben/modellierung_hoghwarts.tex new file mode 100644 index 00000000..af0155da --- /dev/null +++ b/Info/10/1/Aufgaben/modellierung_hoghwarts.tex @@ -0,0 +1,44 @@ +\begin{Aufg}[Modellierung] +Die Internatsverwaltung möchte die Schüler nun für verschiedene Dienste einteilen, z.B. für Küchenarbeiten, Gartenarbeiten, etc. +Ein Dienst nimmt einen Schüler jeweils vollständig in Anspruch. +Dazu legt die Verwaltung in einer Datenbank die Tabellen \textit{„Schüler“} und \textit{„Dienst“} an. +Ergänze die Beziehung und ihre Kardinalität, alle nötigen und sinnvollen Attribute (mindestens drei Attribute), und kennzeichne Fremd und Primärschlüssel wie üblich. \\[0.3cm] + +\begin{tikzpicture} +\begin{class}[text width=4cm]{Schüler}{0,0} +\attribute{\phantom{Mitglieds-Nr}} +\attribute{\phantom{Name}} +\attribute{\phantom{Vorname}} +\attribute{\phantom{Dienst}} +\end{class} + +\begin{class}[text width=4cm]{Dienst}{11,0} +\attribute{\phantom{Name}} +\attribute{\phantom{Ort}} +\attribute{\phantom{Zeit}} +\end{class} +\end{tikzpicture} +\end{Aufg} + +\begin{Lsg} +\begin{tikzpicture} +\begin{class}[text width=4cm]{Schüler}{0,0} +\attribute{\underline{Schüler-Nr}} +\attribute{Name} +\attribute{Vorname} +\attribute{\dashuline{Dienst}} +\end{class} + +\begin{class}[text width=4cm]{Dienst}{11,0} +\attribute{\underline{Name}} +\attribute{Ort} +\attribute{Zeit} +\end{class} +\association{Schüler}{m}{eingeteilt fuer > }{Dienst}{< Wird erledigt von}{1} +\end{tikzpicture} +Pro Klasse: 1 BE auf Attribute, 1 BE auf eindeutigen Primärschlüssel => \BE{4} insgesamt +\BE{2} auf die Kardinalität, +\BE{1} für Beziehungslinie, Bezeichnung und Leserichtung +\BE{2} auf Fremdschlüssel an richtiger Position (auf n-Seite) +Als Primärschlüssel bei Dienst ist auch Tätigkeit möglich, oder Tätigkeit und Ort +\end{Lsg} diff --git a/Info/10/1/Aufgaben/tabellenschema_sportverein_n_m.tex b/Info/10/1/Aufgaben/tabellenschema_sportverein_n_m.tex new file mode 100644 index 00000000..b8731082 --- /dev/null +++ b/Info/10/1/Aufgaben/tabellenschema_sportverein_n_m.tex @@ -0,0 +1,44 @@ +\begin{Aufg}[Tabellenschema] +In einem Sportverein soll nach folgendem Klassendiagramm eine relationale Datenbank erstellt werden: \\[0.1cm] + +\begin{tikzpicture} +\begin{class}[text width=3cm]{Mitglied}{0,0} +\attribute{Mitglieds-Nr} +\attribute{Name} +\attribute{Vorname} +\end{class} + +\begin{class}[text width=3cm]{Sportart}{12,0} +\attribute{Name} +\attribute{Ort} +\attribute{Zeit} +\end{class} +\association{Mitglied}{m}{betreibt > }{Sportart}{< Wird betrieben von}{n} +\end{tikzpicture} + +\begin{enumerate}[a)] +\item Gib die Tabellenschemata inklusive sinnvoller Datentypen aller nötigen Tabellen an und markiere darin Fremd- und Primärschlüssel wie üblich. +\item Beschreibe knapp zwei Probleme und deren Fachbegriffe die auftreten könnten, wenn zur Speicherung nur eine einzige Tabelle verwendet wird. +\end{enumerate} +\end{Aufg} + +\begin{Lsg} +\begin{enumerate}[a)] +\item + \texttt{Mitglied[\underline{MitgliedsNr: Zahl}, Name: Text, Vorname: Text]} \\ + \texttt{Sportart[\underline{Name: Text}, Ort: Text, Zeit: Datum]} \\ + \texttt{betreibt[\underline{\mydash{Mitglied: Zahl}, \mydash{Sportart: Text}}]} \\[0.3cm] + Zeit kann auch Typ Text sein \\ + Datentypen müssen bei Primär- und Fremdschlüsselbeziehung übereinstimmen \\ + \BE{2} auf die korrekte Notation (Tabellenname, Klammern, Doppelpunkte, Kommas, Attributnamen, Datentypen) \\ + \BE{3} auf die korrekte Beziehungstabelle (Primärschlüssel, zwei Fremdschlüssel) \\ + \BE{2} auf die vollständigen anderen beiden Tabelle \\ +\item + \begin{itemize} + \item UPDATE-Anomalie: Vergessen von Einträgen bei Änderungen + \item INSERT-Anomalie: Neue Sportart könnte nicht ohne Mitglieder angelegt werden + \item DELETE-Anomalie: Eine Sportart würde bei der Löschung des letzten Mitglieds ebenfalls gelöscht werden + \end{itemize} + 0.5 BE pro Fachbegriff und 1 BE pro Beschreibung $\Rightarrow$ \BE{3} +\end{enumerate} +\end{Lsg} |
