diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-11-20 19:35:40 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-11-20 19:36:38 +0100 |
| commit | 02ca655a6f7c49d37d2d842dcc9f524ee7c83729 (patch) | |
| tree | bb2fec952f8e3b4cc8cd6a7b3edbc4908ac8104d | |
| parent | e36a6c081e98e1c07efd1e75e208120a37f069c1 (diff) | |
| download | unterricht-02ca655a6f7c49d37d2d842dcc9f524ee7c83729.tar.gz unterricht-02ca655a6f7c49d37d2d842dcc9f524ee7c83729.zip | |
add 10a and 10b test
10 files changed, 214 insertions, 0 deletions
diff --git a/Info/10/Leistungsnachweise/1_KA_10ab_20251120/.gitignore b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/.gitignore new file mode 100644 index 00000000..7ebc9082 --- /dev/null +++ b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/.gitignore @@ -0,0 +1 @@ +themen.pdf diff --git a/Info/10/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/joins_bayern.tex b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/joins_bayern.tex new file mode 100644 index 00000000..0b388e60 --- /dev/null +++ b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/joins_bayern.tex @@ -0,0 +1,35 @@ +\renewcommand{\Verteilung}{5+4} +\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/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/klassendiagramm_hoghwarts.tex b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/klassendiagramm_hoghwarts.tex new file mode 100644 index 00000000..7940be56 --- /dev/null +++ b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/klassendiagramm_hoghwarts.tex @@ -0,0 +1,42 @@ +\renewcommand{\Verteilung}{3+9} +\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) {Schüler}; +\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/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/tabellenschema_sportverein_n_m.tex b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/tabellenschema_sportverein_n_m.tex new file mode 100644 index 00000000..3365eac2 --- /dev/null +++ b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/tabellenschema_sportverein_n_m.tex @@ -0,0 +1,45 @@ +\renewcommand{\Verteilung}{7+3} +\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 Nenne und 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{\dashuline{Mitglied: Zahl}, \dashuline{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} diff --git a/Info/10/Leistungsnachweise/1_KA_10ab_20251120/README.md b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/README.md new file mode 100644 index 00000000..6b3af64d --- /dev/null +++ b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/README.md @@ -0,0 +1,18 @@ +# Test von Florian Fischer + +## PDFs Erzeugen + +Um die PDF Dateien aus den LaTeX Quelldateien zu erzeugen, wird eine übliche LaTeX-Installation (bspw. [TeX Live](https://tug.org/texlive/)) benötigt. + +Die Quellen nutzen die von mir geschriebene Klasse `test`, die im Ordner `latex` zu finden ist. +Damit auch LaTeX die Klasse findet, muss deren Pfad als input spezifiziert werden. +Die meisten Kommandozeilen-Programme unterstützen dazu die Umgebungsvariable `TEXINPUTS`. + +Alle PDFs können mit folgendem Befehl erzeugt werden: + +`TEXINPUTS=.//: latexmk -pdf test*.tex` + +## Lizenz + +Solange nichts anderes vermerkt ist, sind die enthaltenen Werke von Florian Fischer unter **CC BY-SA 4.0** lizenziert. +Eine Kopie der Lizenz ist unter (https://creativecommons.org/licenses/by-sa/4.0/)[https://creativecommons.org/licenses/by-sa/4.0/] zu finden. diff --git a/Info/10/Leistungsnachweise/1_KA_10ab_20251120/_test.tex b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/_test.tex new file mode 100644 index 00000000..e173441b --- /dev/null +++ b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/_test.tex @@ -0,0 +1,29 @@ +\usepackage{minted} +\Datum{20.11.2025} +\TestNummer{1} +\TestArt{Kurzarbeit} +\Fach{Informatik} + +\begin{document} +%% Erzeugt den Intro Header +\Intro + +\fancyfoot[RO]{Bitte umblättern!} +\input{Aufgaben/klassendiagramm_hoghwarts.tex} +\iflehrer{}{\newpage} +\fancyfoot[RO]{} + +\input{Aufgaben/tabellenschema_sportverein_n_m.tex} +\begin{Bearbeitung} +\kariert[0.5cm]{27} +\end{Bearbeitung} +\iflehrer{}{\newpage} + +\input{Aufgaben/joins_bayern.tex} +\begin{Bearbeitung} +\kariert[0.5cm]{30} +\end{Bearbeitung} +\iflehrer{}{\newpage\hfill} + +\beTabelle +\end{document} diff --git a/Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_lehrer.tex b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_lehrer.tex new file mode 100644 index 00000000..094f5adf --- /dev/null +++ b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_lehrer.tex @@ -0,0 +1,7 @@ +\documentclass[ +lehrerversion, +erwartungshorizont, +sigfooter, +]{test} + +\input{_test} diff --git a/Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_loesung.tex b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_loesung.tex new file mode 100644 index 00000000..d0bb5cf9 --- /dev/null +++ b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_loesung.tex @@ -0,0 +1,7 @@ +\documentclass[ +lehrerversion, +sigfooter, +keinlogo, +]{test} + +\input{_test} diff --git a/Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_schueler.tex b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_schueler.tex new file mode 100644 index 00000000..12415c38 --- /dev/null +++ b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_schueler.tex @@ -0,0 +1,7 @@ +\documentclass[ +sigfooter, +drawborder, +twoside, +]{test} + +\input{_test} diff --git a/Info/10/Leistungsnachweise/1_KA_10ab_20251120/themen.md b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/themen.md new file mode 100644 index 00000000..8114d6aa --- /dev/null +++ b/Info/10/Leistungsnachweise/1_KA_10ab_20251120/themen.md @@ -0,0 +1,23 @@ +## Themen der 1. Informatik Kurzarbeit am 20.11.2025 + +* Begriffe + * Klasse / Objekt + * Tabellenschema + * Primärschlüssel + * Fremdschlüssel + * Kardinalitäten + * Kreuzprodukt / Join +* Beziehungen 1 zu N + * Modellierung: Wohin der Fremdschlüssel? + * SQL: Join +* Beziehungen N zu M + * Modellierung: Wohin *die* Fremdschlüssel? + * SQL: Join +* Redundanz + * INSERT-Anomalie + * DELETE-Anomalie + * UPDATE-Anomalie + +### Tipps + +* Die Anzahl der "Join"-Bedingungen ist immer eins kleiner als die Anzahl der Tabellen im Kreuzprodukt. |
