Transcript
Page 1: „Gib mir so viel Gold, wie die Metzger im Nachbardorf zusammen besitzen und ich lasse den Piloten frei!“ – Spielbasiertes Lernen von SQL-Grundlagen

Datenbank Spektrum (2013) 13:243–249DOI 10.1007/s13222-013-0139-5

C O M M U N I T Y

„Gib mir so viel Gold, wie die Metzger im Nachbardorfzusammen besitzen und ich lasse den Piloten frei!“ –Spielbasiertes Lernen von SQL-Grundlagen

Johannes Schildgen · Stefan Deßloch

Online publiziert: 27. September 2013© Springer-Verlag Berlin Heidelberg 2013

Zusammenfassung Stellen Sie sich vor, Sie landen aufeiner einsamen Insel und die Bewohner verstehen nurdie Sprache SQL. Das Spiel SQL Island (http://www.sql-island.de) dient zur Vermittlung und Übung von SQL-Grundlagen und wird durch die Eingabe von SQL-Anfragengesteuert. Der Zweck des Spiels ist es, dem Spieler aufunterhaltsame Weise beizubringen, wie Daten in relationa-len Datenbanken abgefragt und manipuliert werden können.Dabei werden keine SQL-Kenntnisse vorausgesetzt.

Schlüsselwörter SQL · Game-based learning

1 Einleitung

Neue Technologien sorgen in den letzten Jahren für rasan-te Veränderungen in Schulen und Hochschulen. Das Vor-handensein eines Computers, Notebooks oder Tablet-PCs istin nahezu jedem Haushalt in Deutschland zu einer Selbst-verständlichkeit geworden. Dadurch ergibt sich eine Viel-zahl von Möglichkeiten, um das Lernen an Schulen undHochschulen zu unterstützen. Massive Open Online Cour-ses (MOOCs) [7] sind ein Beispiel für Lehrveranstaltungen,die eine Sammlung von Videos, wie zum Beispiel Vorle-sungsaufzeichnungen, und weitere Lehrmaterialien über ei-ne Webplattform zur Verfügung stellen. Diese Online-Kursebieten den Lernenden die Möglichkeit, eine Vorlesung zu

J. Schildgen (B) · S. DeßlochAG Heterogene Informationssysteme, TU Kaiserslautern,Postfach 3049, 67663 Kaiserslautern, Deutschlande-mail: [email protected]

S. Deßloche-mail: [email protected]

einer beliebigen Zeit an einem beliebigen Ort zu verfol-gen. Dabei können die Videos pausiert und später fortge-setzt werden, und einzelne Stellen können wiederholt wer-den, falls etwas nicht direkt verstanden wurde. NeuartigePlattformen [7] bieten zudem die Möglichkeit der direktenInteraktion mit dem Lehrenden sowie den anderen Lernen-den. Dies dient nicht nur dem Klären von offenen Fragen,sondern auch der Rückmeldung an den Dozenten, um even-tuelle Änderungen am Material vorzunehmen.

In diesem Artikel wird eine Form des sogenanntenGame-based Learning, also Spiel-basierten Lernens, vorge-stellt, welche bereits seit einigen Jahren in Form von Lern-spielen für Kinder sowie Sprachlernsoftware zu finden ist.Die aus diesen Programmen bekannten Konzepte [5] wur-den im Rahmen dieses Artikels auf ein Lernspiel übertra-gen, welches Schülern und Studenten die Grundlagen derDatenbanksprache SQL vermitteln soll.

Die Standardsprache SQL wird im Informatikunterrichtin der Schule sowie in Informatik- und Wirtschaftsinforma-tikvorlesungen an Hochschulen gelehrt. Die Sprache dientzur Definition, Abfrage und zum Bearbeiten von Daten in re-lationalen Datenbankmanagementsystemen. Die vier Kom-ponenten der Structured Query Language (SQL) sind dieData Manipulation Language (DML), Data Retrieval Lan-guage (DRL), Data Definition Language (DDL) sowie Da-ta Control Language (DCL) [1]. Die beiden letztgenanntendienen zum Design eines Schemas und zur Rechtekontrollein Datenbanken, worauf zunächst nicht näher eingegangenwerden soll. Vielmehr sind die beiden erstgenannten ein gu-ter Einstieg in die Sprache SQL.

Im Informatikstudium erfolgt die Vermittlung von SQL-Grundlagen vor allem durch Vorlesungsskripte sowie Fachli-teratur, wie z. B. „SQL Thinking“ [1]. In praktischen Übun-gen erfolgt oft die Demonstration der Ausführung vonSQL-Anfragen auf einer realen Datenbank durch erfahrene

Page 2: „Gib mir so viel Gold, wie die Metzger im Nachbardorf zusammen besitzen und ich lasse den Piloten frei!“ – Spielbasiertes Lernen von SQL-Grundlagen

244 Datenbank Spektrum (2013) 13:243–249

Übungsleiter. Die Hürde für den Studenten, SQL-Anfragenzu Hause selbst auszuprobieren, ist jedoch zunächst sehrhoch, da die Installation eines Datenbankmanagementsys-tems ohne vorhandenes Vorwissen oft kompliziert oder vonden Studenten nicht erwünscht ist.

Im folgenden Kapitel wird u.a. die SQL Fiddle vorge-stellt, die einen schnellen Einstieg in SQL bietet und demBenutzer ohne Installation von spezieller Software die Mög-lichkeit gibt, SQL-Anfragen im Browser auszuführen. DesWeiteren werden Lernspiele vorgestellt, die Wissen spiele-risch vermitteln. In Abschn. 3 stellen wir unser Spiel SQLIsland vor, was die vorgestellten Ansätze kombiniert und so-mit SQL-Grundlagen über ein Spiel vermittelt. Nach einerEvaluierung des Spiels in Abschn. 4 folgt in Abschn. 5 einFazit sowie ein Ausblick.

2 Verwandte Ansätze

Im Folgenden werden zum einen Plattformen vorgestellt, diedas Lernen von SQL unterstützen, zum anderen Software fürdas spielerische Lernen.

2.1 SQL Fiddle

Die Webseite SQL Fiddle [8] ist eigentlich dazu gedacht,SQL-Anfragen schnell online auf verschiedenen Daten-banksystemen ausprobieren zu können, ohne diese Syste-me selbst installiert haben zu müssen. Außerdem kann dasProgramm verwendet werden, um ein Datenbankschema an-zulegen und in Webforen oder Frage-und-Antwort-Seitenwie StackOverflow1 eine Community zu fragen, wie einebestimmte SQL-Anfrage gestellt werden muss oder wiesoeine vorhandene Anfrage zu einem Fehler führt.

Die Verwendung der SQL-Fiddle-Software erfolgt inzwei Phasen: Zu Beginn muss der Benutzer eine oder meh-rere Tabellen anlegen und diese mit Daten füllen. Dies er-folgt entweder durch DDL- und DML-Statements (CREA-TE TABLE, INSERT) oder durch den Import von CSV-Dateien, welche der Benutzer im Texteditor oder mittelsMicrosoft Excel oder ähnlichem erzeugen kann.

Die zweite Phase besteht aus den eigentlichen DRL-Anfragen (SELECT). In dieser Phase können keine weite-ren DML-Statements (INSERT, UPDATE, DELETE) ausge-führt werden. Ist dies erwünscht, muss die erste Phase voll-ständig wiederholt werden.

Die SQL Fiddle kann von Dozenten eingesetzt wer-den, um Schülern und Studenten eine Beispieldatenbankanzubieten. Auf dieser können die Lernenden dann SQL-Anfragen ausprobieren. Entsprechen die Tabellen in dieserDatenbank den Tabellen aus einer Übungsaufgabe, welche

1http://www.stackoverflow.com.

von den Studenten in schriftlicher Form gelöst werden muss,können die Studenten die Richtigkeit der Abfragen durchdas Ausprobieren auf den Beispieltabellen, sofern diese vor-her mit sinnvollen Testdaten gefüllt worden sind, überprü-fen.

Die Verwendung der SQL Fiddle setzt SQL-Grundlagenvoraus. Das heißt, Schüler und Studenten müssen sich zu-nächst mit Hilfe von Literatur oder Webseiten SQL-Wissenaneignen und können dann ihr Wissen online überprüfenund Routine im Schreiben von Anfragen erwerben. WennDozenten keine Beispieldatenbank zur Verfügung stellen,müssen die Lernenden diese selbst anlegen.

2.2 mySQLgame

Das mySQLgame [6] ist im Wesentlichen nicht zum Lernenvon SQL gedacht. Trotzdem soll es hier vorgestellt werden,da der Benutzer das Spiel mit SQL-Anfragen steuert. DieGrundidee ist, dass viele Mehrspieler-Browserspiele gleichaufgebaut sind: Ein Spieler registriert sich online und erhältentweder eine Stadt, eine Insel, einen Planeten oder ähnli-ches sowie eine Menge von Einheiten, Geld und Rohstof-fen. Mit letzteren können das eigene Territorium erweiter-tet und andere Spieler ausgeraubt werden. Das mySQLgameverfolgt das gleiche Prinzip, allerdings ist der Spieler ledig-lich in Besitz einer Zeile in einer Tabelle. In dieser Zeilefindet der Spieler seine Zeilennummer, seinen Namen, dieVorräte an Geld und Rohstoffen sowie Informationen überdie eigene Stärke. Das Spiel wird gespielt, indem man freikonfigurierbare SQL-Kommandos auswählt. Ein Beispiel:

UPDATE rows SET attack_multiplier =attack_multiplier+[_], money = money - 500WHERE row_id = 1813;

Die Zahl 1813 steht fest in der Anfrage und steht für dieeigene Zeilennummer. An der Stelle [_] kann der Benut-zer selbst eingeben, um wie viele Stufen die Stärke erhöhtwerden soll. Je nach Eingabe variieren die Kosten der Ope-ration. Auf ähnliche Art und Weise können andere Spieler –also andere Zeilen – angegriffen und ausgeraubt werden.

Spieler des mySQLgame loben die Transparenz desSpiels, da man zu jeder Aktion ihre genauen Auswirkungenerkennen kann. Es stehen jedoch nur sehr wenige mögli-che Anfragen zur Verfügung, die meisten davon sind simpleUPDATE-Anfragen. Der Lerneffekt des Spiels ist eher ge-ring.

2.3 Try jQuery

Das interaktive browserbasierte Lernprogramm für dasJavascript-Framework jQuery [4] besteht zum einen aus Vi-deos und zum anderen aus Aufgaben. In Videos wird dasWissen vermittelt, welches für die Erledigung der Aufgabennotwendig ist. Es wird also kein Vorwissen vorausgesetzt.

Page 3: „Gib mir so viel Gold, wie die Metzger im Nachbardorf zusammen besitzen und ich lasse den Piloten frei!“ – Spielbasiertes Lernen von SQL-Grundlagen

Datenbank Spektrum (2013) 13:243–249 245

Der Benutzer lernt die Konzepte und Sprachelemente vonJQuery kennen und kann sie direkt ausprobieren. Bereitswährend der Eingabe von Befehlen wird dem Benutzer ge-zeigt, wie die Ausgabe aussieht. Bei fehlerhaften Eingabenerscheinen sinnvolle und genaue Fehlermeldungen. Über einBonuspunktesystem wird der Spieler für schnelles und kor-rektes Lösen der Aufgaben belohnt und kann sich gegen einebestimmte Anzahl von Punkten Hinweise erkaufen, falls erbei einer Aufgabe nicht weiterkommt.

2.4 SQL-Lernprogramme

Viele Universitäten und Fachhochschulen bieten StudentenBrowser-basierte Programme an, um SQL-Anfragen auf ei-ner Testdatenbank zu üben. Diese Programme sind meistähnlich aufgebaut wie die SQL Fiddle (siehe Abschn. 2.1),bieten jedoch bereits erstellte und mit Testdaten gefüllteTabellen sowie eine Reihe von Fragen, die es mit SQLzu beantworten gilt. Das System ist zudem in der Lage,die Korrektheit der vom Benutzer gestellten SQL-Anfragenzu überprüfen. Ein sehr mächtiges Trainerprogramm istedb, das eLearning-Datenbank-Portal der FachhochschuleKöln [3]. Neben diversen SQL-Trainern bietet es weitereTrainer für XQuery, reguläre Ausdrücke, JDBC, PL/SQLuvm. Der SQL-Trainer bietet mehrere Schwierigkeitsstufenzur Auswahl und eignet sich damit sowohl für Studentenmit geringen als auch für solche mit fortgeschrittenen SQL-Kenntnissen. Jedoch fehlen Hinweise zum Lösen der Auf-gabe, bei Fehlern erscheint lediglich „Die Aufgabe wurdefalsch gelöst“. Zudem werden SQL-Kenntnisse vorausge-setzt und Wissen wird nur überprüft, aber nicht vermittelt.

In [9] wird ein Multiple-Choice-Quiz vorgestellt, wel-ches zusätzlich zur Wissensvermittlung dient. Es eignet sichnicht nur für SQL-Anfragen sondern auch als Quiz für an-dere Disziplinen. Die Schwierigkeit für den Aufgabenstellerist es, Aufgaben so zu stellen, dass richtige sowie mehrereGruppen von falschen Antworten zu einer Frage vorgegebenwerden. Für jede Gruppe gibt es jeweils eine Begründung,wieso die Antwort falsch ist. Diese kann der Benutzer alsHinweis nutzen. Auch bei der richtigen Antwort soll in derErfolgsmeldung nochmals die Begründung wiederholt wer-den, um auch bei zufälliger Auswahl der korrekten Antwortden Benutzer zu belehren.

Der SQLcoach der Fachhochschule Kaiserslautern –Zweibrücken [2] stellt – genau wie edb – Aufgaben, diemit SQL-Anfragen auf einer Testdatenbank gelöst werdenmüssen, gibt jedoch sinnvolle Tipps bei Fehlern. So kannein Benutzer, wenn er die Antwort auf eine Frage nichtweiß, erst den Teil der SQL-Anfrage schreiben, der lösbarist und dann anhand der Fehlermeldung erkennen, wie esweiter geht (Beispiel: „Hinweis: Benutzen Sie den LIKE-Operator!“).

Sowohl edb als auch der SQLcoach sind nur SQL-Trainerund kein Lernspiel, sie haben keine „Story“.

3 Implementierung eines Browser-basierten Spiels zurVermittlung von SQL-Grundlagen

Unser Ziel war die Erstellung eines Spiels, welches ähnlichzum JQuery-Tutorial (siehe Abschn. 2.3) browserbasiert istund sowohl zur Vermittlung als auch zur Abfrage von Wis-sen dient. Die anderen im vorherigen Kapitel vorgestelltenProgramme SQL Fiddle, das mySQLgame sowie die SQL-Lernprogramme dienen dagegen nicht zur Vermittlung vonInhalten.

Um den Spaßfaktor des Spiels zu erhöhen, sollte dasSQL-Spiel anders als klassische Tutorials wie dem JQuery-Tutorial eine Handlung besitzen. Der Spieler kontrolliert ei-ne Spielfigur und muss Aufgaben lösen, um ein bestimmtesSpielziel zu erreichen.

3.1 Typen von Lernspielen

In [5] wird ein Lernspiel beschrieben als eine Aktivität, wel-che auf Grundlage didaktischer Prinzipien gestaltet ist undgleichzeitig zentrale Merkmale von Spielen enthält. Charak-teristisch für letzteres sind eine „Story“, eine Spielidee undSpielregeln. Meyer/Seufert stellen sieben Typen von Lern-spielen vor:

1. Computerbasiertes Training mit klar definierten Lernzie-len; Motivation: Lernerfolg.

2. Planspiele mit systematischen Zusammenhängen; Moti-vation: Lernerfolg, Neugierde, Story.

3. Computerbasiertes Training mit Spielelementen; Motiva-tion: Lernerfolg, Spaß, Story.

4. Quiz oder Memory zum Abruf von Gelerntem; Motivati-on: Unmittelbare Rückmeldung.

5. Virtuelle Lernwelten; Motivation: Neugierde, Erfolgser-lebnisse, Kontext und Charaktere.

6. Abenteuer-Lernspiel; Motivation: Eigendynamik desSpiels, erwarteter Lernerfolg.

7. Unbemerktes Lernen; Motivation: Eigendynamik desSpiels, Spaß, Spannung.

Das JQuery-Tutorial zählt zu Typ 1, da es keine Storybeinhaltet. Spiele von Typ 4 dienen nur zur Kontrolle, obder Stoff verstanden wurde und bieten nicht so einen ho-hen Spaßfaktor wie die anderen Spieltypen. Ein SQL-Spielin Quiz-Form würde einer Multiple-Choice-Klausuraufgabeähneln. Da das Formulieren von SQL-Anfragen für die Spie-ler üblicherweise eine völlig neue Erfahrung ist, kommendie Typen 5, 6 und 7 für ein SQL-Lernspiel nicht in Frage.

Denkbar ist also ein Planspiel (Typ 2), welches den Spie-ler beispielsweise in die Rolle eines Webshop-Administra-tors versetzt, in der er gewisse Aufgaben mittels SQL lö-sen muss. Dies kann von einfachen Abfragen von Artikelnund Bestellungen bis hin zu komplexen Analyseaufgabenreichen. Zusätzlich können die anderen Elemente von SQL

Page 4: „Gib mir so viel Gold, wie die Metzger im Nachbardorf zusammen besitzen und ich lasse den Piloten frei!“ – Spielbasiertes Lernen von SQL-Grundlagen

246 Datenbank Spektrum (2013) 13:243–249

Abb. 1 SQL Island – Aufbau des Spiels

abgefragt werden, indem der Spieler die Aufgabe bekommt,bestehende Daten zu verändern, das Datenbankschema zuerweitern oder Rechte innerhalb der Datenbank anzupassen.

Ein Nachteil dieses Lernspiels ist, dass es nicht als Spiel,sondern zu sehr als Arbeitsaufgabe wahrgenommen werdenkann. Das Beispiel von Webshops wird in Vorlesungen undÜbungen an Schulen und Hochschulen oft behandelt. EinLernspiel von Typ 3, wie es im Folgenden vorgestellt wird,bietet zusätzlich den Faktor von Witz und Absurdität underhöht durch bekannte Spielelemente wie dem Kaufen vonGegenständen, Angreifen von Gegnern und Befreien vonPersonen den Spaßfaktor.

3.2 Spielidee von SQL Island

Die ersten Text-Adventures wurden in den 1970ern veröf-fentlicht und zählen damit zu den allerersten Computerspie-len. Diese Art von Spielen bietet keine oder nur wenigeGrafiken und Soundeffekte. Stattdessen erfolgt die Kom-munikation zwischen Spieler und Spiel mittels Tastaturein-gaben und textuelle Bildschirmausgaben. Ähnlich wie beigrafischen Adventures steuert der Spieler eine Spielfigur ineiner fiktiven Welt und hat die Möglichkeit, mit Personenzu reden, Gegenstände zu sammeln oder Aktionen auszu-führen [10]. Bei Text-Adventures erfolgt dies üblicherweisedurch an die natürliche Sprache angelehnte Tastaturbefehle,z. B. „Rede mit Kapitän“, „Nimm Schlüssel“ oder „ÖffneSchublade“.

Die Spielidee des Lernspiels SQL Island basiert auf denGrundprinzipien von Text-Adventures, allerdings erfolgt dieEingabe der Befehle hier in SQL. Statt „Töte Dirty Dieter“lautet ein analoger Befehl in SQL Island wie folgt: DELETEFROM bewohner WHERE name = ‚Dirty Dieter‘.

Um auch Spielern, die kein Vorwissen in der SpracheSQL haben, das Spielen zu ermöglichen, werden neue Kom-mandos über ein Beispiel präsentiert. Das Spiel beginntmit einer kurzen Geschichte sowie einer vorgegebenen Bei-spielanfrage: „Nach einem Flugzeugabsturz stellst du fest,

dass du der einzige Überlebende bist. Du landest auf einerInsel, erkundest sie und findest einige Dörfer:“

> SELECT * FROM dorf

Das Resultat der Abfrage, welches in dieser Anfrage ei-ne Tabelle mit drei Dörfern der Insel ist, wird unter der Bei-spielanfrage dargestellt:

Dorfnr Name Haeuptling

1 Affenstadt 92 Gurkendorf 63 Zwiebelhausen 13

Der Spieler ist nun also in der Lage, eine Anfrage zu stel-len, die alle Zeilen und Spalten einer Tabelle ausgibt:

„Du triffst während deiner Erkundung auf viele Bewoh-ner der Insel. Welche?“

Zur Beantwortung dieser Frage wird eine weitere Tabelle(„bewohner“) benötigt. Dazu kann sich der Spieler am un-teren Bereich des Spiels über die vorhandenen Tabellen undderen Spalten informieren (siehe Abb. 1).

Insgesamt besteht das Spiel aus 33 Aufgaben, von denender Spieler 21 selbst lösen muss. Die restlichen Aufgabendienen zur Präsentation von SQL-Konstrukten, die in dennachfolgenden Aufgaben benötigt werden. Die Schwierig-keit der Aufgaben steigt dabei im Spielverlauf.

Nach dem oben dargestellten vollständigen Tabellens-can lernt der Spieler die Benutzung von WHERE-Prädika-ten zur Filterung der Ergebnismenge kennen. Auch diesbeginnt zunächst simpel: Da die Spielfigur unbewaffnetist, muss er schauen, welche Bewohner friedlich und wel-che böse sind und sich von letzteren fern halten (. . .WHERE status = ‘friedlich’). Mit den weiteren Auf-gaben steigt die Schwierigkeit und es müssen Textsuche mitPlatzhaltern, die Verknüpfung mehrerer Prädikate mit ANDund OR (unter Beachtung der korrekten Klammersetzung)und schließlich Verbundabfragen verwendet werden:

Page 5: „Gib mir so viel Gold, wie die Metzger im Nachbardorf zusammen besitzen und ich lasse den Piloten frei!“ – Spielbasiertes Lernen von SQL-Grundlagen

Datenbank Spektrum (2013) 13:243–249 247

„Wir müssen nun den Namen des Häuptlings des DorfesZwiebelhausen herausfinden.“

Diese fortgeschrittene Anfrage zählt zu den schwierigs-ten im Spiel (siehe Evaluation). Beobachtungen des Spiel-verhaltens zeigten jedoch, dass nach mehrmaligem Auspro-bieren fast jeder Spieler die Verbundabfrage ohne Hilfe kor-rekt lösen konnte.

Bei fehlerhaften Abfragen wird zwischen zwei Artenvon Fehlern unterschieden: Entweder die Abfrage beinhal-tet Syntax- oder Semantikfehler, z. B. durch die inkorrekteSchreibweise von Befehlen oder der Verwendung ungülti-ger Tabellen- oder Spaltennamen. Oder die Abfrage führtzu einem Ergebnis, welches allerdings nicht dem korrektenErgebnis zur gegebenen Aufgabe entspricht. Im ersten Fallwird dem Benutzer die Fehlermeldung des zugrundeliegen-den Datenbanksystems weitergeleitet. Diese liefert in vielenFällen eine brauchbare Erklärung für den Fehler, etwa „nosuch table: doerfer“oder „near “FROMM”: syntax error“.Da das verwendete Datenbanksystem englische Ausgabenproduziert und diese momentan noch nicht einzeln übersetztwerden, entsteht leider in der aktuellen Spielversion manch-mal ein Gemisch aus deutscher und englischer Sprache.

Im zweiten Fehlerfall, also bei syntaktisch und seman-tisch korrekten Anfragen, die jedoch nicht das erwartete Er-gebnis liefern, erhält der Benutzer eine Fehlermeldung, dieihm Hinweise darüber gibt, wie das korrekte Ergebnis aus-zusehen hat: „Es kommen zu viele Zeilen raus.“, „Da fehlennoch ein paar Zeilen“, „Die Spalten sind falsch“, „Es kom-men falsche Zeilen raus. Hinweis: Achte bei Werten, die inAnführungszeichen stehen, auf Groß-/Kleinschreibung.“.

Im Laufe des Spiels bekommt der Spieler des Öfteren dieAufgabe, Änderungs- oder Löschoperation durchzuführen.Beispielsweise soll der Spieler den Namen seiner Spielfigurin der Bewohnertabelle auf seinen eigenen Namen setzen.Dieser Name wird dann im Laufe des Spiels immer wiederin Dialogen verwendet.

Um das Spiel aufregender und abwechslungsreicher zugestalten, wurden die Aufgaben mit Bildern ergänzt, welcheam rechten Bildschirmrand angezeigt werden. So sieht derSpieler bei jeder Aufgabe eine Zeichnung über das aktuelleSpielgeschehen.

3.3 Technische Umsetzung

Das Browserspiel SQL Island wurde mit PHP 5 unter derVerwendung des Datenbanksystems SQLite erstellt. DasSpiel kann ohne Download, Installation und Registrierunggespielt werden, es startet unmittelbar nach dem Aufruf imWebbrowser. Wir haben uns für das Datenbanksystem SQ-Lite entschieden, um auf einfache Art und Weise das paralle-le Spielen mehrerer Instanzen zu erlauben. Anders als das inAbschn. 2.2 vorgestellte mySQLgame ist SQL Island keinMehrspieler-Spiel. Zu Beginn jedes Spiels wird eine eige-ne SQLite-Datenbankdatei angelegt, auf welche der Spieler

exklusiven Zugriff hat. Auf parallellaufende weitere Spielehaben die Aktionen des Spielers keinen Einfluss. Des wei-teren wird durch die ständige Überprüfung der Größe dereigenen Datenbankdatei verhindert, dass unnötig viele Tu-pel eingefügt werden. Durch das Verbot von Anfragen, diemehr als ein Tupel auf einmal einfügen, sowie von Anfra-gen, die nicht vom Typ SELECT, INSERT, UPDATE oderDELETE sind, werden weitere Manipulationen verhindert.

Die zwei wichtigsten Komponenten des Spiels sind dieDefinitionen der Aufgaben sowie die Auswertung der Ein-gaben:

Aufgabendefinition Eine Aufgabe wird definiert über eineAufgabennummer, eine Aufgabenstellung sowie die Muster-lösung. Besonderheiten bieten Aufgaben, welche nicht zumLösen, sondern zum Präsentieren gedacht sind, und Aufga-ben, die das Ändern oder Löschen von Datensätzen erfor-dern. Erstere werden über eine Markierung als gelöst ge-kennzeichnet. Bei letzteren Aufgaben ist die Angabe einerVerifikationsanfrage sowie die Anzahl der Zeilen, die eben-diese Anfrage im Erfolgsfall liefern muss, anzugeben.

Beispiel 1: „Liste alle Gegenstände auf, die niemandem ge-hören!“ – Lösung: SELECT * FROM gegenstand WHERE

besitzer IS NULL

Beispiel 2: „Die Händlerin Helga Rasenkopf mit der Be-wohnernummer 15 ist an dem Ring und der Teekan-ne interessiert. Gib ihr die beiden Gegenstände!“ - Veri-fikationsanfrage: SELECT * FROM gegenstand WHERE

besitzer = 15 AND gegenstand IN (’Ring’,

’Teekanne’) (erwartete Zeilenanzahl: 2).

Eine Anfrage zum ersten Beispiel wird als richtig bewer-tet, wenn sie die gleiche Ausgabe liefert wie die gegebeneMusterlösung. Beim zweiten Beispiel wird die Anfrage alsrichtig bewertet, wenn nach der Ausführung das Resultat derVerifikationsanfrage die richtige Anzahl von Zeilen (hier: 2)enthält.

Vor allem beim zweiten Fall ist darauf zu achten, diePrüfanfrage möglichst exakt zu stellen. Mit der vorgestell-ten Verifikationsanfrage würde eine Anfrage auch zum Er-folg führen, wenn der Spieler der Händlerin alle Gegenstän-de gibt.

Eingabeauswertung Bei jeder Eingabe durch den Benut-zer müssen drei Dinge erfolgen:

– Ausführung der Anfrage und eventuelle Rückmeldung imFehlerfall,

– Darstellung des Resultats,– Überprüfung, ob die Anfrage die aktuelle Aufgabe kor-

rekt löst.

Die beiden erstgenannten Aufgaben werden durch dasWeiterleiten der Anfrage an die Datenbank und durch die

Page 6: „Gib mir so viel Gold, wie die Metzger im Nachbardorf zusammen besitzen und ich lasse den Piloten frei!“ – Spielbasiertes Lernen von SQL-Grundlagen

248 Datenbank Spektrum (2013) 13:243–249

Ausgabe des Resultats bzw. der Fehlermeldung gelöst.Die Überprüfung der Korrektheit der Anfrage erfolgt beiSELECT-Abfragen über den Vergleich des Resultats mit derMusterlösung. Bei anderen Abfragen wird überprüft, ob dieVerifikationsanfrage mit der richtigen Zeilenanzahl ausge-führt wird.

Sei q die vom Benutzer gestellte Anfrage und s diezur Aufgabe gehörende Musterlösung. Eine SQL-Anfrage qEXCEPT s liefert eine leere Ausgabe, wenn alle abgefrag-ten Zeilen tatsächlich ausgegeben werden sollen. Liefert dieAbfrage s EXCEPT q die leere Menge, wurde keine zu-sätzliche Zeile abgerufen. Erst wenn beide dieser Subtrakti-onsanfragen jeweils null Tupel liefern, ist das Ergebnis kor-rekt. Im anderen Fall kann eine entsprechende Fehlermel-dung ausgeben werden.

4 Evaluation

Das SQL-Island-Spiel wurde beim Technotag 2013 derTU Kaiserslautern eingesetzt, um Schülern der Mittel- undOberstufe einen interaktiven Einblick in die Datenbankweltzu bieten. Die Schülerinnen und Schüler hatten eine drei-viertel Stunde Zeit, das Spiel ohne fremde Hilfe zu spie-len. Ein Schüler der zwölften Klasse schaffte es in der kur-zen Zeit, das Spiel komplett durchzuspielen. Aber selbstdie Zehntklässler, die noch keinen Informatikunterricht inder Schule hatten, keine Programmierkenntnisse besitzenund in deren Mathematikunterricht Stochastik sowie Logiknoch nicht behandelt wurde („AND bindet stärker als OR“),schafften im Schnitt die Hälfte der Aufgaben. Die längsteZeit wurde für die erste Verbundanfrage benötigt.

Aufgrund der hohen Begeisterung der Schüler wurdenVerbesserungsvorschläge umgesetzt und das Spiel für weite-re Gruppen geöffnet. Etwa zwanzig Schüler und Studentenspielten SQL Island und nahmen danach an einer Online-Umfrage teil. Die meisten davon waren im dritten oder vier-ten Semester des Informatikstudiums und Hörer der Vor-lesung Informationssysteme, in der SQL-Grundlagen ver-mittelt werden. Sowohl in der offiziellen Vorlesungsumfra-ge der Fachschaft als auch in unserem Fragebogen wurdedas Spiel gelobt. Studenten mit fortgeschrittenen Kenntnis-sen fanden das Spiel zu leicht, aber unterhaltsam. Wer nochkeine SQL-Kenntnisse hatte, gab an, Spaß gehabt zu habenund der Meinung zu sein, etwas gelernt zu haben.

5 Fazit und Ausblick

Das in diesem Artikel vorgestellte Spiel SQL Island ist einBeispiel dafür, wie spielbasiertes Lernen in der Informatikeingesetzt werden kann. Das Spiel richtet sich an Schüler,Studenten und alle anderen, die SQL lernen wollen. Dabei

wird sowohl auf die Vermittlung als auch auf das Abfragenvon Wissen Wert gelegt, um selbst ohne vorhandenes Vor-wissen das Spielziel erreichen zu können. Das selbststän-dige Ausprobieren von SQL-Befehlen ist für das Verständ-nis der Anfragesprache besonders wichtig und kommt oft zukurz. SQL Island bietet den Spielern eine direkte Rückmel-dung über das Resultat einer Anfrage, um mittels Nachden-kens und Ausprobierens schließlich selbstständig zur richti-gen Lösung zu gelangen. Ein wesentlicher Bestandteil desSpiels ist eine unterhaltsame Handlung und ein Spielziel,was es von klassischen SQL-Tutorials unterscheidet. DasSteuern einer Spielfigur, um von einer Insel zu entkommen,hat mit der Anfragesprache SQL zunächst nichts zu tun.Doch genau dieser absurde Nichtzusammenhang motiviertden Spieler und sorgt sowohl für Spaß als auch für das Ler-nen von SQL-Befehlen.

Ausblick Diese erste Version von SQL Island diente alsProof of Concept und zur Begeisterung von Schülern undStudenten für Datenbanken und Informationssysteme. DasKonzept dieser spielbasierten Lernmethode kann auf weite-re Gebiete der Informatik übertragen werden, um Program-miersprachen oder weitere Anfragesprachen spielerisch zulehren. Weitere Elemente, um die das Spiel erweitert werdensoll, sind in Planung. Dazu zählt beispielsweise die Überset-zung des Spiels in weitere Sprachen.

Ähnlich wie auch beim JQuery-Tutorial soll als weiterespielerische Komponente noch ein Punktesystem eingeführtwerden. Schnell und beim ersten Versuch gelöste Aufgabengeben dabei mehr Punkte als andere. Mit den Punkten lassensich bei Bedarf Hinweise zur Lösung der Aufgaben erkaufenund mehrere Spieler können ihre Leistungen anhand ihrerEndpunktzahlen untereinander vergleichen.

Über die Umfrage wurden weitere Verbesserungsvor-schläge eingereicht, wie unterschiedliche Schwierigkeitsstu-fen. So könnten erfahrene Spieler auf die Hinweise und dievorgegebenen Anfragen verzichten und alle Aufgaben ei-genständig lösen. Außerdem wurde kritisiert, dass es wäh-rend des Spiels immer nur eine Handlungsmöglichkeit gibt,die zur nächsten Aufgabe führt. Dies könnte verbessert wer-den, indem dem Spieler überlassen wird, in welcher Reihen-folge einige Aufgaben bearbeitet werden.

Literatur

1. Brücher C, Jüdes F, Kollmann W (2010) SQL thinking: vom Pro-blem zum SQL-Statement. Hüthig Jehle Rehm

2. FH Kaiserslautern – Zweibrücken. SQLcoach, 2013. http://sqlcoach.informatik.fh-kl.de/

3. FH Köln. edb – Das eLearning DatenbankPortal, 2013. http://edb.gm.fh-koeln.de

4. Try jQuery. Learn the basic building blocks of jQuery, 2013.http://try.jquery.com

Page 7: „Gib mir so viel Gold, wie die Metzger im Nachbardorf zusammen besitzen und ich lasse den Piloten frei!“ – Spielbasiertes Lernen von SQL-Grundlagen

Datenbank Spektrum (2013) 13:243–249 249

5. Meier C, Seufert S (2003) Game-based learning: Erfahrungen mitund Perspektiven für digitale Lernspiele in der beruflichen Bil-dung. In: Grundlagen der Weiterbildung. Praxishilfen. Neuwied,Kriftel, Berlin

6. mySQLgame.com, 2013. http://mySQLgame.com7. Pappano L (2012) The year of the MOOC. NY Times 2(12):20128. SQLFiddle.com. A tool for easy online testing and sharing of da-

tabase problems and their solutions, 2013. http://sqlfiddle.com

9. Ullman JD (2005) Gradiance on-line accelerated learning. In: Pro-ceedings of the twenty-eighth Australasian conference on compu-ter science. Bd 38. S 3–6. Australian Computer Society, Inc.

10. Wikipedia. Adventure – Wikipedia, Die freie Enzyklopädie, 2013.http://de.wikipedia.org/w/index.php?title=Adventure&oldid=119904869 [Online; Stand 7. August 2013]