Leitfaden für Lehrer/innen
Um das Thema „Datenbanken“ schmackhaft zu machen, hat sich der Einsatz von Escape-Room-Spielen (z.B. SQL Island) bewährt. Die Eskuel Suite hebt diese Idee auf die nächste Stufe: Schüler/innen entwerfen ihre eigene Datenbank und kreieren ein darauf aufbauendes Escape-Room-Spiel. Das Resultat ist eine intensive Auseinandersetzung mit SQL, vor allem aber: Ein kreatives spielbares Endprodukt!
Die Eskuel Suite wurde ursprünglich für den Informatikunterricht an weiterführenden Schulen konzipiert. Ihr Einsatz als Projektarbeit wurde in der folgenden Hausarbeit von Lukas Convent im Jahr 2024 ausführlich dokumentiert: Download (PDF)
Ideen für den Schulunterricht
Es gibt vielfältige Möglichkeiten, die SQL-Spielekonsole und den SQL-Spieleeditor im Unterricht einzusetzen. Hier ein paar Ideen:
- Schüler üben ihre SQL-Kentnisse durch das Spielen von vorgegebenen SQL-Spielen
- Lehrkraft bereitet gezielte Übungen für die Schüler in Form eines SQL-Spiels vor (z.B. „Üben von SQL-Abfragen mit der WHERE-Klausel“)
- Lehrkraft gibt Datenbanken vor und Schüler denken sich dazu passende SQL-Abfragen aus, die sie in Form eines SQL-Spiels notieren. Anschließend spielen die Schüler die Spiele der anderen Schüler.
- Abschlussprojekt: Schüler entwickeln in Gruppen und über mehrere Stunden hinweg ein eigenes SQL-Spiel
- ...
Mehrstündige Projektarbeit
Für einen Einsatz als mehrstündige Projektarbeit („Abschlussprojekt“) gibt es im Folgenden ein paar Anregungen.
Die Schüler haben bereits einige Kenntnisse in SQL und sollen nun ein eigenes Escape-Room-Spiel entwickeln. Das Projekt kann dann als Abschlussprojekt durchgeführt werden. Der Vorteil ist, dass die Schüler „das große Ganze“ zu diesem Zeitpunkt bereits kennen und die Entwicklung systematischer angehen können. Ich habe diese Projektarbeit vor der Einführung von ER-Modellen durchgeführt. Sicherlich kann man aber auch die ER-Modelle in die Projektarbeit integrieren.
In einer ersten Phase entscheiden sich die Schüler für ein Thema, das sie interessiert, und beginnen mit dem Entwurf einer dazugehörigen Story (z.B. Thema „Prison Break“; in der Story muss der Protagonist z.B. Informationen für einen Gefängnisausbruch beschaffen, um erfolgreich auszubrechen). In dieser Phase steht der Modellierungsaspekt im Vordergrund: Welche Daten sind relevant? Wie können diese mit Hilfe passender Tabellen strukturiert werden? Falls bereits behandelt, kann auch ein ER-Modell erstellt werden.
In der zweiten Phase wird die Datenbank implementiert und die Story mit passenden SQL-Abfragen versehen. Die Implementierung erfolgt mit einem Werkzeug wie dem SQLite-Browser. In dieser Phase wird viel experimentiert und es kann vorkommen, dass Ideen angepasst und Relationenschemata noch einmal überarbeitet werden müssen. Durch das viele Experimentieren mit SQL-Abfragen wird das Verständnis für SQL und relationale Datenbanken „nebenbei“ gefördert. Die Implementierung des Spiels erfolgt dann mit dem SQL-Spieleeditor. Das Spiel wird am Ende als XML-Datei exportiert.
Nachdem die Spiele der verschiedenen Gruppen fertiggestellt sind, steht noch eine dritte Phase an: Die Schüler spielen in der letzten Stunde die Spiele der anderen Gruppen unter Verwendung der SQL-Spielekonsole. Es hat sich herausgestellt, dass diese Phase sehr motivierend ist. Die Schüler haben kreative Eigenprodukte geschaffen, die den anderen Schüler Spaß bereiten. Es findet ebenso eine Reflexion über die eigene und fremde Arbeit statt. Die Schüler beeindrucken sich mitunter gegenseitig und sind stolz auf ihre Ergebnisse.
Die folgende Projektbeschreibung könnte an die Schüler verteilt werden.
| Block | Datum | |
|---|---|---|
| 1. | Mo., 17.12. | Gruppen bilden + Projektidee |
| 2. | Do., 20.12. | Tabellen entwerfen und Story-Line beginnen |
| 3. | Mo., 24.11. |
Story-Line entwerfen + erste SQL-Abfragen formulieren (dabei eventuell Tabellen anpassen) |
| 4. | Mo., 1.12. | Implementierung |
| 5. | Do., 4.12. | Implementierung |
| Fr., 5.12. (abends) | (Abgabeschluss) | |
| Mo., 8.12. | Präsentation, Spielerunde + Feedback |
Konzipiere und erstelle ein Spiel, welches zum Lernen der Datenbankabfragesprache SQL verwendet werden kann. Hier eine genauere Projektbeschreibung.
-
Spielwelt
Spielt der Protagonist im Weltall, unter Wasser, ...? Wer interagiert mit wem?
Entwirf ein relationales Modell (Tabllenstruktur) für die Spielwelt. Alle für das Spiel benötigten Daten müssen irgendwo in den Tabellen abgelegt werden können.
-
Story-Line
Dies ist das Herz des Spiels. Überlege dir einen Weg, wie du didaktisch geschickt die Sprache SQL einführst. Natürlich sollten die ganz einfachen Abfragen zu Beginn eingeführt werden. Das Spiel soll auch ohne Profiwissen spielbar sein.
Deine Story sollte als eine Abfolge von Szenen darstellbar sein, wobei jede Szene einem von vier Typen entspricht:
-
Text-Szene. Diese Art von Szene kann aus Dialog, Erzählung bestehen. Der Spieler kann anschließend auf „Weiter“ klicken, um zur nächsten Szene zu gelangen.
-
Bild-Szene. Wie eine Text-Szene, bloß für ein Bild. Der Spieler kann anschließend auf „Weiter“ klicken, um zur nächsten Szene zu gelangen.
-
Select-Szene. Nach einem Text wird der Spieler aufgefordert, eine SQL-Abfrage abzusetzen. Beachte, dass die einzugebende SQL-Abfrage zu Beginn auch bereits im Text vorgegeben sein darf, um dem Spieler etwas zu demonstrieren (z.B. „Tippe jetzt
SELECT * FROM bewohnerein.“). Es kann aber auch komplett dem Spieler überlassen werden, die passende SQL-Abfrage zu formulieren. Nur, wenn die SQL-Abfrage das passende Ergebnis bzw. den gewünschten Effekt hat, gelangt der Spieler zur nächsten Szene. -
Manipulation-Szene. Es wird eine
INSERT...oderUPDATE...oderDELETE...-Anfrage erwartet. Zusätzlich muss nun noch eineSELECT-Abfrage angegeben werden, welche Aufschluss darüber gibt, ob die Manipulation korrekt durchgeführt wurde. Wenn z.B. ein Gegenstand gelöscht werden soll, muss der Spieler eineDELETE-Anfrage formulieren. Zur Prüfung prüft eineSELECT-Abfrage (Teil deines Spiels), welche Gegenstände noch da sind (z.B.SELECT * FROM gegenstaende). Das hier zurückgelieferte Ergebnis gibt Aufschluss darüber, ob der Spieler korrekt gelöscht hat.
Deine Story sollte 10 bis 15 Aufgaben enthalten, in denen der Spieler selbstständig eine SQL-Abfrage formulieren soll. Welche Aspekte von SQL vorgestellt werden, bleibt dir überlassen. Einzige Bedingung ist, dass in irgendeiner Form Joins und Aggregation vorkommen sollen, in jedoch beliebigem Umfang.
-
Die folgenden SQL-Games gibt es bereits. Sie können als Anregungsquelle dienen. Euer Spiel wird später im Browser aufgeführt.
- SQL Island: Das Original!
- Spiele von anderen Schülern
- Weitere Materialien
Die folgenden Werkzeuge sollten zum Einsatz kommen.
-
SQLiteBrowser zum Erstellen der Datenbank, Anlegen der Tabellen, Einfügen von Daten, Testen von SQL-Abfragen etc. Abschließend kann die Datenbank als
*.sql-Datei exportiert werden. -
SQL-Spieleeditor zum Erstellen der Spieldatei. Die damit erzeugte Spieldatei kann dann von der SQL-Spielekonsole eingelesen werden.
-
ChatGPT oder vergleichbares LLM (Large Language Model). Unterstützung beim Formulieren von SQL, Erzeugen von Daten, Formulieren der Story, ... (siehe ausgeteilte Zugangscodes)
- Erweiterung: Grafiken für die Szenen erzeugen mit z.B. DALL⋅E, Midjourney, Paint, ...
Die Abgabe besteht aus einer Spieldatei. Siehe Abgabedatum oben im Zeitplan, per IServ. Diese *.xml-Datei enthält alle Spielinformationen.
Die Bewertung erfolgt anhand folgender Kriterien (zur groben Orientierung):
- 10% Name & Teaser
- 30% Relationales Modell: Sind Tabellen sinnvoll gewählt? Sind Verknüpfungen über Primär- und Fremdschlüssel vorhanden und korrekt? Wurde Redundanz vermieden? Wurden passende Datensätze eingefügt?
- 50% Story: Passen Texte und Aufgaben zueinander? Werden sinnvolle Daten abgefragt? Sind Joins und Aggregation enthalten? Gibt es Aufgaben in verschiedenen Schwierigkeitsstufen?
- 10% Spiel-Datei: Ist die Datei ausführbar? Passt die Datenbank zu den Aufgaben?