Minimales SQL-Game implementieren
In diesem Tutorial soll eine einfache Datenbank implementiert werden. Anschließend soll ein minimales SQL Game entwickelt werden, welches auf dieser Datenbank basiert.
Phase A: Datenbank entwerfen
-
Thema:
Wähle ein Thema für deine Datenbank. Beispiele: Pokémon, Harry Potter, Fußball, ... -
Entitätstyp Entitäten Pokémon Pikachu, Bisasam, ... HP-Charakter Harry Potter, Hermine Granger, ... Entitätstyp:
Wähle zu erfassende Entitäten so aus, dass sie in einer einzigen Tabelle gespeichert werden können. Zusammengefasst ergeben sie einen sogenannten Entitätstyp. Bsp.: Pokémon, HP-Charakter, Fußballspieler/in, ... -
Attribute:
Wähle für den gewählten Entitätstyp, z.B. Fußballspieler, passende Atribute (= Eigenschaften) inklusive Datentyp aus, z.B. für Fußballspieler/in:Attribut Datentyp Name TEXTGeburtsdatum DATEIst verletzt? BOOLEAN(= Wahrheitswerte „wahr“ oder „falsch“)Aktueller Verein TEXT -
Primärschlüssel:
Wähle für die Tabelle einen Primärschlüssel aus. Falls keine passende Spalte existiert, gehe zurück zur letzten Teilaufgabe und ergänze um eine passende Spalte, hier z.B. die Spielernummer (DatentypINTEGER; integer bedeutet „Ganzzahl“).
-
Thema: Pokémon
-
Entitätstyp: Pokémon-Arten
Beispiele: Pikachu, Bisasam, Bisaknosp, Bisaflor, Glumanda, ... -
Attribute:
Attributname Datentyp Pokedexnummer Natürliche Zahl / INTEGERName TEXTFarbe TEXTFangrate Natürliche Zahl / INTEGERist legendär? Wahrheitswert / BOOLEAN -
Primärschlüssel:
Das Attribut Pokedexnummer eignet sich als Primärschlüssel, da jede Pokedexnr. nur auf genau ein Pokémon verweist.
Phase B: Datenbank implementieren
-
Öffne das Programm DB Browser for SQLite.
-
Klicke auf „Neue Datenbank“ und wähle als Speicherort den Pfad
H:\Faecher\Informatik\Datenbanken\pokemon.db(entsprechend anpassen). -
Wähle als Namen der ersten (und einzigen) Tabelle den Namen des Entitätstyps, z.B.
pokemon.Bitte keine Leerzeichen und außer
_keine Sonderzeichen im Tabellennamen verwenden. -
Statt... ...verwende... DATETEXTBOOLEAN
(0 steht für „falsch“;
1 steht für „wahr“)INTEGERErstelle die Spalten entsprechend der Attribute. Leider unterscheidet der DB Browser for SQLite nicht streng zwischen Datentypen. Wähle daher
TEXTstattDATEundINTEGERstattBOOLEAN.Markiere den Primärschlüssel, indem du den Haken in der Spalte PK setzt (PK steht für primary key).
Bitte keine Leerzeichen und außer
_keine Sonderzeichen in Spaltennamen verwenden. Schreibe z.B.ist_legendaer.
Die Tabelle für deinen gewählten Entitätstyp (z.B. „Pokémon“) ist nun erstellt. Jetzt fehlen noch ganz konkrete Entitäten, also Zeilen in der Tabelle (im Bsp. also die konkreten Pokémons: Pikachu, Bisasam, ...).
Klicke dazu unter „Daten durchsuchen“ auf
, um die neuen Zeilen einzufügen. Zu Beginn sind alle Werte auf NULL gesetzt.
Klicke auf die einzelnen Zellen und setze die Werte entsprechend. Wiederhole, bis du drei Zeilen eingefügt hast.
Du hast nun die ersten Zeilen angelegt. Um dir weitere Tipparbeit zu erleichtern, lasse dir von ChatGPT helfen.
-
Lade die ChatGPT-Website (siehe Anmeldedaten vom Lehrer).
-
CREATE TABLE "pokemon" ( "pokedex_nr" INTEGER, "name" TEXT, "farbe" TEXT, "fangrate" INTEGER, "ist_legendaer" INTEGER, PRIMARY KEY("pokedex_nr") );Zu jeder Tabelle gehört ein SQL-Befehl, der sie beschreibt. Z.B. könnte eine Tabelle
pokemondurch den folgenden Befehl beschrieben werden. Du kannst dir den Befehl anzeigen lassen, indem du unter „Tabellenstruktur“ die Tabellepokemonauswählst und auf „Tabelle modifizieren“ klickst.
Die Details dieses Befehls sind hier gar nicht wichtig. Gleiche grob ab, dass der Befehl zu deiner Tabelle passt. Diese Informationen geben wir ChatGPT nun mit an die Hand.
Gib eine Anfrage der folgenden Art ein (kopiere den CREATE TABLE...-Befehl mit Strg+C und Strg+V).
ChatGPT könnte z.B. wie folgt antworten:
Kopiere den
INSERT INTO-Befehl mit Strg+C. Navigiere zum SQL ausführen-Tab im DB Browser for SQLite. Füge den Befehl ein mit Strg+V und führe ihn aus mit
. Die Zeilen sind nun eingefügt.
Phase C: Spiel implementieren
Die Datenbank soll nun die Grundlage eines Spiels sein.
-
Lade die Website https://eskuel.de. Klicke auf SQL-Spieleeditor.
-
Erstelle eine neue Spieldatei. Gib deinem Spiel einen Namen. Zu Beginn ist nur eine leere Szene vorhanden.
-
Lade die Datenbank
pokemon.dbhoch im „Datenbank“-Feld. -
Jetzt zu den Spielszenen. Wir halten heute alles sehr einfach. Erstelle eine neue Szene, und wähle "SELECT" aus. Wähle eine Aufgabenstellung, z.B. „Erfrage alle Infos zu grünen Pokemons“. Gib eine dazu passende Lösung ein, in diesem Fall z.B.
SELECT * FROM pokemon WHERE farbe = 'grün'. -
Speichere dein Spiel unter dem Pfad
H:\Faecher\Informatik\Spiele\pokemon.xml(entsprechend anpassen). -
Wechsele nun zur SQL-Spielekonsole. Lade die soeben erstellte Datei
pokemon.xmlhoch. Starte das Spiel und teste es. -
Speichere eine Kopie deines Spiels im Gruppenordner unter
G:\Inf11GK1\Datenbanken\DEIN_NAME\pokemon.xml. -
Teste auch die Spiele deiner Mitschüler/innen.