Vor den Ferien hast du ein ER-Diagramm für einen Fußballverein erstellt. Jetzt setzt du dieses Modell als echte Datenbank in Letos um. Du legst Tabellen an, bestimmst Datentypen und Schlüssel und trägst passende Beispieldaten ein.
Dein Ergebnis: eine funktionierende SQLite-Datenbank mit vier verbundenen Tabellen und eine kurze Dokumentation deiner Prüfung. Zeitvorschlag: zwei Unterrichtsstunden (90 Minuten).
1. Das bekannte Fußballmodell
Öffne dein Fußball-ERD. Als Erinnerung findest du die Ausgangssituation im zweiten Beispiel „Ein Fußballverein“. Für die Umsetzung gelten dieselben Regeln:
- Eine Mannschaft hat mehrere Spieler. Jeder Spieler gehört in diesem vereinfachten Modell zu genau einer Mannschaft.
- Ein Spieler kann in vielen Spielen eingesetzt werden. In einem Spiel können viele Spieler mitspielen.
- Ein Einsatz verbindet genau einen Spieler mit genau einem Spiel. Die Toranzahl wird für diesen Einsatz gespeichert.
Prüfbeispiel aus der ERD-Aufgabe: Paul Müller erzielt gegen den FC Waldstadt am 15. Mai 2026 zwei Tore. In einem anderen Spiel erzielt er kein Tor. Beide Angaben müssen getrennt gespeichert werden können.
2. Eine Datenbankdatei anlegen
- Starte die im Unterricht bereitgestellte App Letos.
- Öffne den Dialog zum Hinzufügen einer Datenbank (Add a database). Wähle beim Dateipfad eine neue Datei in deinem Informatikordner.
- Nenne die Datei
fussballverein_vorname_nachname.db. Verwende als Datenbanktyp SQLite 3. Bestätige den Dialog und öffne die Datenbank in der Liste links.
Merke dir den Speicherort: Die .db-Datei enthält deine Datenbank. Der Name in der Datenbankliste ist nur ihre Anzeige in Letos. Die genaue Beschriftung der Schaltflächen kann je nach Sprache und Version abweichen.
3. Die vier Tabellen anlegen
Nutze die grafische Tabellenbearbeitung: Öffne im Kontextmenü deiner Datenbank die Funktion zum Erstellen einer Tabelle (Create a table). Ergänze die Spalten und ihre Eigenschaften. Übernimm jede fertige Tabellenstruktur mit der Speicher-/Übernehmen-Funktion (Commit) und bestätige gegebenenfalls den angezeigten SQL-Entwurf.
Lege die Tabellen in dieser Reihenfolge an: MANNSCHAFT, SPIEL, SPIELER, EINSATZ. Die folgende Feldliste ist eine gemeinsame Umsetzung des bekannten ERDs. Vergleiche sie mit deinen eigenen Attributen.
Schlüssel und Datentypen: PK bedeutet Primärschlüssel, FK bedeutet Fremdschlüssel. Verwende für ganze Zahlen INTEGER, für Text TEXT. Das Spieldatum speichern wir als Text im Format JJJJ-MM-TT, zum Beispiel 2026-05-15.
MANNSCHAFT
| Feld | Typ | Eigenschaft |
|---|---|---|
| MannschaftID | INTEGER | PK |
| Name | TEXT | Pflichtfeld (NOT NULL) |
| Altersklasse | TEXT | Pflichtfeld (NOT NULL) |
SPIEL
| Feld | Typ | Eigenschaft |
|---|---|---|
| SpielID | INTEGER | PK |
| Spieldatum | TEXT | NOT NULL; JJJJ-MM-TT |
| Gegner | TEXT | NOT NULL |
SPIELER
| Feld | Typ | Eigenschaft |
|---|---|---|
| SpielerID | INTEGER | PK |
| Vorname | TEXT | NOT NULL |
| Nachname | TEXT | NOT NULL |
| MannschaftID | INTEGER | FK → MANNSCHAFT.MannschaftID; NOT NULL |
EINSATZ
| Feld | Typ | Eigenschaft |
|---|---|---|
| EinsatzID | INTEGER | PK |
| SpielerID | INTEGER | FK → SPIELER.SpielerID; NOT NULL |
| SpielID | INTEGER | FK → SPIEL.SpielID; NOT NULL |
| Toranzahl | INTEGER | NOT NULL; trage 0 ein, wenn kein Tor erzielt wurde |
| SpielzeitMinuten | INTEGER | NOT NULL |
Aktiviere bei jedem PK-Feld die Eigenschaft Primary key. Für diese Übung trägst du die ID-Nummern selbst ein. Du brauchst keine zusätzliche AUTOINCREMENT-Einstellung. Die Namen der Tabellen und Felder müssen genau zur Vorgabe passen.
4. Die Beziehungen als Fremdschlüssel festlegen
Ein Feldname wie MannschaftID allein erstellt noch keine Beziehung. Lege in der Tabellenstruktur für jedes FK-Feld eine Foreign-key-Bedingung an. Wähle die Zieltabelle und deren Primärschlüssel aus. Je nach Ansicht findest du diese Bedingung bei den Spalteneigenschaften oder den Tabellenbedingungen (Constraints).
| Fremdschlüssel auf der n-Seite | Verweist auf die 1-Seite |
|---|---|
| SPIELER.MannschaftID | MANNSCHAFT.MannschaftID |
| EINSATZ.SpielerID | SPIELER.SpielerID |
| EINSATZ.SpielID | SPIEL.SpielID |
Speichere die Strukturänderungen. Wähle für Lösch- und Änderungsaktionen die Vorgabe NO ACTION. Die FK-Felder müssen außerdem NOT NULL sein, damit beispielsweise ein Einsatz nicht ohne Spieler gespeichert wird.
Denke nach: Warum benötigt EINSATZ zwei Fremdschlüssel? Welche n:m-Beziehung wird damit aufgelöst?
5. Beispieldaten eintragen
Öffne jeweils die Datenansicht der Tabelle (Data), füge neue Zeilen hinzu und trage die Werte ein. Übernimm die Änderungen mit Commit. Arbeite in der folgenden Reihenfolge. Alle Namen sind fiktive Übungsdaten.
MANNSCHAFT – zuerst
| MannschaftID | Name | Altersklasse |
|---|---|---|
| 1 | FC Sonnenberg Jugend | U15 |
| 2 | FC Sonnenberg Junioren | U17 |
SPIEL
| SpielID | Spieldatum | Gegner |
|---|---|---|
| 1 | 2026-05-15 | FC Waldstadt |
| 2 | 2026-05-22 | SV Wiesental |
SPIELER
| SpielerID | Vorname | Nachname | MannschaftID |
|---|---|---|---|
| 1 | Paul | Müller | 1 |
| 2 | Mia | Schneider | 1 |
| 3 | Emil | Becker | 2 |
EINSATZ – zuletzt
| EinsatzID | SpielerID | SpielID | Toranzahl | SpielzeitMinuten |
|---|---|---|---|---|
| 1 | 1 | 1 | 2 | 70 |
| 2 | 1 | 2 | 0 | 55 |
| 3 | 2 | 1 | 1 | 65 |
Erweitere selbst: Ergänze zwei weitere Spieler mit eindeutigen IDs und einer vorhandenen MannschaftID. Ergänze anschließend drei neue Einsätze. Verwende vorhandene SpielIDs und SpielerIDs. Jede Kombination aus Spieler und Spiel soll in dieser Übung nur einmal vorkommen. Erfinde passende Toranzahlen und Spielzeiten zwischen 1 und 90 Minuten.
6. Prüfen und erklären
A. Pauls Tore nachvollziehen
Suche Pauls SpielerID in SPIELER. Finde seine beiden Zeilen in EINSATZ und ordne ihnen über die SpielID Datum und Gegner aus SPIEL zu. Schreibe zwei Sätze: Gegen wen hat Paul wann gespielt und wie viele Tore hat er jeweils erzielt?
B. Referentielle Integrität testen
Fremdschlüssel sollen Verweise auf nicht vorhandene Datensätze verhindern. SQLite muss diese Prüfung für die verwendete Verbindung aktivieren. Für einen eindeutigen Test führst du die folgenden kurzen Befehle im SQL-Editor aus. Die Tabellen selbst hast du bereits grafisch angelegt.
- Übernimm zuerst alle offenen Änderungen. Öffne den SQL-Editor über das Menü Werkzeuge/Tools und wähle oben deine Fußball-Datenbank aus.
- Führe die folgenden zwei Zeilen gemeinsam mit der Ausführen-Schaltfläche aus. Im Ergebnis muss 1 stehen. Falls nur eine Anweisung ausgeführt wird, markiere beide Zeilen vorher.
PRAGMA foreign_keys = ON;
PRAGMA foreign_keys;
Führe danach in demselben SQL-Editor und mit derselben ausgewählten Datenbank diesen einzelnen Test aus. Prüfe vorher, dass die SpielerID 9999 in SPIELER nicht vorhanden ist und die EinsatzID 9999 noch frei ist.
INSERT INTO EINSATZ
(EinsatzID, SpielerID, SpielID, Toranzahl, SpielzeitMinuten)
VALUES (9999, 9999, 1, 0, 10);
Erwartung: Der Einsatz wird abgelehnt, zum Beispiel mit FOREIGN KEY constraint failed. Notiere die Meldung und erkläre in eigenen Worten, weshalb sie sinnvoll ist. Wird die Zeile gespeichert, prüfe die Fremdschlüsseldefinition von EINSATZ und die Aktivierung der Prüfung. Entferne ausschließlich die versehentlich angelegte Testzeile mit EinsatzID 9999 und wiederhole den Test nach der Korrektur.
Wichtig: Die Aktivierung gilt für die jeweilige Verbindung und muss nach erneutem Verbinden geprüft werden. Ein erfolgreicher Test im SQL-Editor belegt die Prüfung für diese Verbindung. Verlasse dich bei einer anderen Verbindung, etwa der grafischen Datenbearbeitung, erst nach einem eigenen Test auf die aktive Prüfung.
7. Selbstkontrolle und Abgabe
- ☐ Die Datei heißt
fussballverein_vorname_nachname.db. - ☐ Alle vier Tabellen und alle vorgegebenen Felder sind vorhanden.
- ☐ Jede Tabelle besitzt ihren eigenen Primärschlüssel.
- ☐ Alle drei Fremdschlüssel sind als Bedingungen definiert und als Pflichtfelder angelegt.
- ☐ Es gibt mindestens 2 Mannschaften, 2 Spiele, 5 Spieler und 6 gültige Einsätze.
- ☐ Pauls zwei Tore und seine null Tore lassen sich verschiedenen Spielen zuordnen.
- ☐ Der ungültige Testeinsatz wird mit einer Fremdschlüsselfehlermeldung abgelehnt und ist nicht gespeichert.
- ☐ Ich habe alle Änderungen übernommen, Letos geschlossen und meine Datenbank erneut geöffnet. Tabellen und Daten sind weiterhin vorhanden.
Gib ab:
- Deine fertige
.db-Datei. Schließe Letos vor dem Kopieren der Datei. - Eine kurze PDF-Datei
nachname_fussballverein_pruefung.pdfmit deinem Namen, den beiden Sätzen zu Pauls Spielen, einem Screenshot der Fremdschlüsselfehlermeldung und deiner Erklärung dazu. Erkläre außerdem in zwei bis drei Sätzen, warum die Toranzahl zu EINSATZ gehört und weshalb dort SpielerID und SpielID benötigt werden.
Gib beide Dateien über den im Unterricht vereinbarten Abgabeweg ab. Die Abgabefrist nennt dir deine Lehrkraft. Verwende für zusätzliche Datensätze erfundene Personen.
Zusatzaufgabe
Überlege, wie du verhindern könntest, dass derselbe Spieler für dasselbe Spiel doppelt eingetragen wird. Untersuche die Tabellenbedingung UNIQUE für die Kombination aus SpielerID und SpielID. Notiere deine Idee; die vier Tabellen und ihre Beziehungen bleiben erhalten.
Grundlagen: Fußball-ERD · Datenbankübung Schulbibliothek · Letos-Dokumentation · SQLite: Fremdschlüssel
