aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-11-20 19:35:40 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2025-11-20 19:36:38 +0100
commit02ca655a6f7c49d37d2d842dcc9f524ee7c83729 (patch)
treebb2fec952f8e3b4cc8cd6a7b3edbc4908ac8104d
parente36a6c081e98e1c07efd1e75e208120a37f069c1 (diff)
downloadunterricht-02ca655a6f7c49d37d2d842dcc9f524ee7c83729.tar.gz
unterricht-02ca655a6f7c49d37d2d842dcc9f524ee7c83729.zip
add 10a and 10b test
-rw-r--r--Info/10/Leistungsnachweise/1_KA_10ab_20251120/.gitignore1
-rw-r--r--Info/10/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/joins_bayern.tex35
-rw-r--r--Info/10/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/klassendiagramm_hoghwarts.tex42
-rw-r--r--Info/10/Leistungsnachweise/1_KA_10ab_20251120/Aufgaben/tabellenschema_sportverein_n_m.tex45
-rw-r--r--Info/10/Leistungsnachweise/1_KA_10ab_20251120/README.md18
-rw-r--r--Info/10/Leistungsnachweise/1_KA_10ab_20251120/_test.tex29
-rw-r--r--Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_lehrer.tex7
-rw-r--r--Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_loesung.tex7
-rw-r--r--Info/10/Leistungsnachweise/1_KA_10ab_20251120/test_schueler.tex7
-rw-r--r--Info/10/Leistungsnachweise/1_KA_10ab_20251120/themen.md23
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.