Datebänkli

Handbuch für Lehrpersonen

Eine echte PostgreSQL-Datenbank pro Lernende — im Browser, ohne Installation auf einem einzigen Gerät. Du verteilst Zettel, die Klasse tippt SQL.

Stand: August 2026 · Version 0.11.1 · Fragen und Zugänge: philip.schaffner@kwi.ch

1Wofür Datebänkli da ist

Kurz: eine echte Datenbank pro Kopf, ohne dass jemand etwas installieren muss.

Die klassische SQL-Lektion beginnt damit, dass 22 Laptops eine Datenbank installieren sollen und 22-mal etwas anderes schiefgeht. Datebänkli nimmt diesen Teil weg. Jede Lernende bekommt ein eigenes Konto in einem PostgreSQL-Server, der bereits läuft — mit einem eigenen Bereich darin, in dem sie tun und lassen kann, was SQL erlaubt. Gebraucht werden ein Browser und ein Zettel mit Benutzername und Passwort.

Wichtig ist das Wort echt: Das ist kein Simulator und kein Übungswerkzeug mit eingebauter Aufgabensammlung. Es ist PostgreSQL. Was in der Lektion funktioniert, funktioniert später auch anderswo — und was nicht funktioniert, meldet dieselbe Fehlermeldung wie überall sonst.

Für wen

Für Lehrpersonen, die Datenbanken unterrichten und dabei nicht auch noch Datenbankadministratorin sein wollen. Du musst nichts über Rollen, Schemas oder Berechtigungen wissen — das erledigt die App beim Anlegen einer Klasse. Was du wissen musst, steht in Abschnitt 12, und es ist eine knappe Seite.

Typische Anwendungsfälle

Was Datebänkli nicht ist

Keine automatische Korrektur: Übungen verteilen und Abgaben einsammeln kannst du (Abschnitt 10), aber ob eine Lösung stimmt, entscheidest du beim Lesen — es gibt keine Musterlösung, keine Punkte und kein «richtig/falsch» aus der App. Kein Notenprogramm. Kein Ersatz für ein Datenbankwerkzeug wie pgAdmin — das kann viel mehr und ist für eine erste Lektion viel zu viel. Und es ist keine Ablage für Daten, die wirklich schützenswert sind: Was in einer Lernendendatenbank landet, ist Übungsmaterial.

2Der Ablauf in einem Bild

Damit klar ist, was einmalig ist und was in jeder Lektion passiert.

1Klasse anlegenKürzel, Name, Schuljahr. Einmal pro Klasse.
2Namen einfügenListe aus Excel hineinkopieren, prüfen, anlegen.
3Zettel druckenPasswörter sind genau einmal sichtbar. Sofort drucken.
4Die Klasse arbeitetAnmelden, SQL tippen, Ergebnisse ansehen.
5Du schaust zuLektionsansicht: wer ist dran, wo klemmt es.

Grün = einmal pro Klasse. Orange = jede Lektion.

Drei Dinge, die es wert sind, gewusst zu werden

Der Server trennt, nicht die App. Jede Lernende ist gegenüber PostgreSQL eine eigene Benutzerin mit eigenem Bereich. Fremde Tabellen zu lesen scheitert an der Datenbank selbst — auch dann, wenn jemand kreativ wird.
Ein Passwort existiert genau einmal. Im Moment, in dem das Konto entsteht. Danach lässt es sich nur neu ausstellen, nicht nachschlagen (Abschnitt 6).
Nichts wird automatisch gelöscht. Arbeit bleibt liegen, bis sie jemand bewusst wegräumt.

3Zugang und Anmeldung

Es gibt keine Selbstregistrierung — Lehrpersonenkonten werden von Hand angelegt.

Zugang anfragen

Schreib eine Mail an philip.schaffner@kwi.ch mit deinem Namen und deiner Schule. Zurück kommt ein Zugangszettel derselben Sorte, die du gleich an deine Klasse verteilst: Adresse, Benutzername, Startpasswort. Als Lehrperson musst du das Passwort bei der ersten Anmeldung ändern — die App führt dich dorthin, bevor sie irgendetwas anderes zeigt.

Die Adresse lautet datebaenkli.schaffner.xyz. Sie steht auch auf jedem Zettel, den du druckst.

Vorher ausprobieren, ohne Konto

Auf der Anmeldeseite stehen unter dem Formular zwei Knöpfe: Als Schüler:in und Als Lehrperson. Ein Klick darauf öffnet sofort einen fertigen Zugang — es gibt nichts abzutippen, weder Benutzername noch Passwort, und niemand muss vorher eine Mail schreiben. Wer wissen will, ob sich das Werkzeug für die eigene Klasse eignet, schaut so in vier Minuten nach.

Es ist ein Zugang zum Wegwerfen. Nach 30 Minuten ist Schluss, und diese Zeit lässt sich nicht verlängern; unten links läuft sie mit, daneben steht Beenden, falls du früher fertig bist. Danach wird alles gelöscht, was in dieser halben Stunde entstanden ist — die nächste Person, die den Knopf drückt, beginnt in einem leeren Bereich. Nimm also nichts hinein, was du behalten willst, und nichts, was niemanden angeht.

Der Lehrpersonen-Zugang bringt eine Klasse mit einigen Lernenden bereits mit, damit Klassenliste und Lektionsansicht etwas zu zeigen haben. Neue Klassen und neue Lernende lassen sich darin nicht anlegen — du siehst die Masken, aber angelegt wird nichts. Dafür braucht es ein richtiges Konto, und das gibt es auf dem Weg oben.

Anmelden

1 2 3
  1. Benutzername. Keine E-Mail-Adresse, sondern ein kurzer Name wie t_brunner — dieselbe Zeichenkette, die später in SQL auftaucht. Für Lernende ist er nach demselben Muster gebaut: u_i3a_buehler_nino.
  2. Passwort vom Zettel.
  3. Anmelden. Die Sitzung hält 12 Stunden und verlängert sich bei jedem Klick — ein Schultag ist also abgedeckt, die Nacht nicht. Die einzige Ausnahme ist der Demo-Zugang von oben: Der endet nach 30 Minuten und verlängert sich nicht.

Nach dem Anmelden landest du auf der Übersicht. Sie ist bewusst karg: Sie sagt, wer du bist und welche Klassen dir gehören, und schickt dich weiter.

1 2
  1. Die ganze Navigation. Demo-Tabellen ist dein eigener Arbeitsbereich — du hast eine Datenbank wie alle anderen und kannst darin eine Lektion vorbereiten. Übungen führt zum Vorbereiten und Einsammeln von Übungen (Abschnitt 10), Lektion ist die Live-Ansicht während des Unterrichts (Abschnitt 11), Klassen die Verwaltung. Ganz rechts der Schalter DE / EN und der für helles oder dunkles Design. Beides gilt pro Konto und folgt dir aufs nächste Gerät. SQL-Schlüsselwörter bleiben in beiden Sprachen englisch — SELECT heisst überall SELECT.
  2. Deine Klassen mit der Anzahl eingetragener Personen.

4Klasse anlegen

Reiter Klassen. Einmal pro Klasse und Schuljahr, dauert eine halbe Minute.

1 2 3 4 5
  1. Deine bestehenden Klassen. Ein Klick auf eine Zeile öffnet ihre Liste weiter unten.
  2. Kürzel. Zwei bis zwölf Kleinbuchstaben oder Ziffern, zum Beispiel i3a. Es steckt im Benutzernamen jeder Lernenden dieser Klasse und lässt sich später nicht mehr ändern — nimm also gleich das, was auf dem Stundenplan steht.
  3. Name. Frei wählbar, hier darf es lang sein: Informatik 3a.
  4. Schuljahr ist optional und dient nur dir. Es hilft, wenn im übernächsten Jahr wieder eine 3a existiert.
  5. Anlegen. Die Klasse taucht sofort in der Liste auf und ist gleich ausgewählt.
Neues Schuljahr, neue Klasse

Leg für einen neuen Jahrgang eine neue Klasse an, statt die alte weiterzuverwenden. Das Kürzel ist in jedem Benutzernamen verbaut, und eine Klasse i3a mit den Lernenden von 2024 und 2026 nebeneinander ist genau die Sorte Unordnung, die man nachher nicht mehr auseinanderdividiert.

5Lernende erfassen

Namensliste hineinkopieren, prüfen, anlegen. Alle auf einmal.

Klick in der Klassenliste auf die Klasse. Weiter unten erscheint ihr Abschnitt und darin Lernende hinzufügen.

1 2 3 4
  1. Eine Person pro Zeile. Aus Excel kopierte Spalten funktionieren ebenfalls — Klasse markieren, kopieren, hier einfügen.
  2. Reihenfolge. Steht in deiner Liste Nachname Vorname oder Vorname Nachname? Stell es hier ein, statt die Liste umzusortieren.
  3. Die Vorschau ist der eigentliche Arbeitsschritt. Sie zeigt, wie die App jede Zeile aufgeteilt hat. Lies sie einmal durch: Bei mehrteiligen Nachnamen (Da Silva Ricardo) rät die App richtig, bei zwei Vornamen aber nicht — Meier Anna Sophie würde als Nachname «Meier Anna» gelesen. Deshalb das Komma: Meier, Anna Sophie. Das ist die einzige Regel, die man kennen muss.
  4. Anlegen legt alle auf einmal an. Entweder alle oder keine — eine kaputte Zeile lässt die ganze Liste stehen, statt eine halb importierte Klasse zu hinterlassen.
Benutzernamen sind endgültig

Aus dem Namen wird der Benutzername, und der ist zugleich der Name des Datenbankbereichs dieser Person. Er lässt sich nie ändern. Eine falsch aufgeteilte Zeile heisst also: Person löschen und neu anlegen — solange sie noch nichts gemacht hat, ist das billig, nach drei Lektionen nicht mehr. Die halbe Minute für die Vorschau lohnt sich.

Umlaute werden umgeschrieben, nicht weggeworfen: aus Nino Bühler wird u_i3a_buehler_nino, aus Deniz Öztürk u_i3a_oeztuerk_deniz.

Eine bereits erfasste Person kommt nicht ein zweites Mal in dieselbe Klasse — die Vorschau meldet das, bevor du klickst. Doppeltes Einfügen derselben Liste ist damit harmlos.

6Zugangszettel verteilen

Der einzige Schritt dieses Handbuchs, bei dem Zögern etwas kostet.

Sobald die Konten entstanden sind, zeigt die App die Zugangszettel — und das ist der einzige Moment, in dem die Passwörter existieren. Gespeichert wird nur eine Prüfsumme; nachschlagen kann sie niemand, auch die Administration nicht.

1 2 3 4 5 6
  1. Der Titel nennt die Klasse, für die diese Zettel gelten.
  2. Drucken öffnet den Druckdialog des Browsers. Kein Drucker in der Nähe? «Als PDF sichern» ist im selben Dialog und tut es auch — dann aber bitte ausdrucken und die Datei danach löschen.
  3. Zettel sind gedruckt — schliessen räumt die Ansicht weg. Erst klicken, wenn das Papier tatsächlich da ist.
  4. Ein Zettel pro Person, zum Auseinanderschneiden. Die Adresse steht drauf, damit niemand sie abtippen muss.
  5. Der Benutzername — derselbe Name, der später in SQL als Bereichsname auftaucht.
  6. Das Passwort: drei Wörter und eine Zahl, durch Bindestriche getrennt. Absichtlich sprechbar, weil es in der ersten Lektion vier Mal falsch abgetippt wird.
Wenn die Ansicht trotzdem verloren geht

Passiert: Tab geschlossen, Laptop zugeklappt, Beamer umgesteckt. Die Rettung heisst Neue Zettel in der Klassenliste und stellt neue Passwörter aus — aber nur für Personen, die sich noch nie angemeldet haben. Wer schon drin war, behält seinen Zugang; ein bereits ausgeteilter Zettel kann also nicht versehentlich entwertet werden. Genau deshalb ist der Knopf mitten in der Lektion gefahrlos zu drücken.

Die Klasse muss das Passwort nicht ändern

Lernende werden nicht dazu gezwungen — der Zettel ist der Zugang. Fünfzehnjährige in den ersten fünf Minuten der ersten Lektion ein Passwort erfinden zu lassen, kostet mehr Zeit, als es bringt. Wer trotzdem eines setzen will, findet Passwort ändern auf der Übersicht.

7Die Klassenliste im Betrieb

Was du im Verlauf des Semesters an einer Klasse tatsächlich anfasst.

1 2 3 4
  1. Der Benutzername. Praktisch zum Vorlesen, wenn sich jemand nicht anmelden kann.
  2. Erste Anmeldung. noch nie heisst: Diese Person war noch nicht drin. Das ist die Spalte, die den Zettel-Knopf unten erklärt — und in der zweiten Lektion die schnellste Antwort auf «wer hat seinen Zettel verloren». Daneben steht der Status; aktiv ist der Normalfall.
  3. Die vier Knöpfe pro Zeile, von links nach rechts:
    • Neuer Zettel stellt für diese eine Person ein neues Passwort aus. Der alte Zettel gilt ab dann nicht mehr, und laufende Sitzungen werden beendet.
    • Archivieren nimmt die Anmeldung weg und lässt alle Daten unangetastet. Für Abgänge, Auslandsemester, längere Absenzen. Aus dem Knopf wird dann Aktivieren, und der macht es rückgängig, ohne dass etwas fehlt.
    • Aus Klasse nimmt die Person aus dieser Klasse, ohne ihr Konto anzurühren — für den Fall, dass jemand die Klasse wechselt. Aus der letzten Klasse entfernen geht nicht: Ein Konto ohne Klasse wäre für niemanden mehr erreichbar. Beim Wechsel also zuerst in die neue Klasse eintragen.
    • Löschen ist endgültig. Die App legt vorher automatisch eine Sicherung der Daten an und entfernt danach Konto und Datenbankbereich. Schlägt die Sicherung fehl, wird nichts gelöscht.
  4. Neue Zettel für n Lernende ohne erste Anmeldung — der Knopf aus Abschnitt 6. Er erscheint nur, solange es solche Personen gibt.
Im Zweifel archivieren

Archivieren ist reversibel, Löschen nicht. Der einzige Grund zu löschen ist, dass die Daten wirklich weg sollen — und selbst dann liegt die Sicherung noch auf dem Server. Für alles andere: archivieren, und die Sache im Sommer nochmals anschauen.

Nach einem Jahr ohne Anmeldung archiviert die App ein Lernendenkonto von selbst. Der Datenbankbereich bleibt dabei vollständig erhalten; ein Klick auf Aktivieren holt die Person zurück.

8Was die Klasse sieht

Damit du es in zwei Sätzen erklären kannst, statt es vorzuführen.

Lernende haben im Wesentlichen eine einzige Seite. Links die Tabellen, oben rechts das Eingabefeld, unten rechts das Ergebnis. Es gibt nichts zu suchen und nichts einzustellen. Dazu kommt der Reiter Übungen — leer, solange du keine verteilt hast (Abschnitt 10). Deine eigene Ansicht ist dieselbe Seite — du hast ebenfalls einen Arbeitsbereich, und dort kannst du eine Lektion vorbereiten.

Für die Klasse gibt es ein eigenes Handbuch

Das Handbuch für Lernende ist die kurze Fassung dieses Abschnitts aus ihrer Sicht: anmelden, die Seite verstehen, Fehlermeldungen lesen, Übungen abgeben. Es steckt hinter demselben ? oben rechts — bei einem Lernendenkonto führt der Knopf automatisch dorthin und nicht hierher. Du musst also nichts verteilen; es reicht, einmal zu sagen, dass es das gibt.

Es beschreibt auch die Lektionsansicht aus Abschnitt 11 — was du siehst und was nicht. Das nimmt dir die Ankündigung nicht ab, macht sie aber kürzer.

1 2 3 4 5 6
  1. Der Tabellenbaum. Zuoberst der eigene Bereich, darunter demo mit der mitgelieferten Beispieldatenbank. Ein Klick auf eine Tabelle setzt SELECT * … LIMIT 50 ins Feld und führt es aus — der schnellste Weg zu «was steht da überhaupt drin». In deinem Baum stehen zusätzlich die Bereiche deiner Lernenden; du darfst darin lesen, nicht schreiben.
  2. Der Speicherstand — wie viel der 50 MB belegt sind. Zum Vergleich: Die ganze Beispieldatenbank ist deutlich kleiner. Man muss sich anstrengen, um dort anzukommen (siehe Abschnitt 12).
  3. Die Kopfzeile mit CSV importieren (Abschnitt 9), Datenbank zurücksetzen, Übungen, dem Weg zurück zur Übersicht sowie Sprache und Design. Zurücksetzen löscht alle eigenen Tabellen und gibt einen leeren Bereich zurück — nur die eigenen, niemand kann damit jemand anderem etwas antun. Es kommt eine Rückfrage.
  4. Ausführen, oder Strg + ↵, auf dem Mac ⌘ + ↵. Daneben Abbrechen für den Moment, in dem jemand versehentlich alle Tabellen miteinander kombiniert hat, und rechts die Anzahl Anweisungen und die gebrauchte Zeit.
  5. Das Eingabefeld mit Farbhervorhebung und Vervollständigung. Vorgeschlagen wird nur, was diese Person auch lesen darf. Mehrere Befehle hintereinander sind erlaubt und ergeben mehrere Ergebnisse.
  6. Das Ergebnis als Tabelle. Gezeigt werden höchstens 1000 Zeilen; darüber steht, wie viele es insgesamt wären.

Fehlermeldungen, die man lesen kann

Der häufigste Moment einer SQL-Lektion ist der, in dem etwas nicht geht. PostgreSQL antwortet dabei präzise und auf Englisch, aber nicht unbedingt hilfreich. Datebänkli stellt eine Erklärung darüber — auf Deutsch, und wo möglich mit einem konkreten Vorschlag.

1 2 3
  1. Die Erklärung. Der Vorschlag ist nicht geraten: Die App vergleicht mit den Tabellen, die diese Person tatsächlich hat. Sie schlägt lieber nichts vor, als etwas Falsches.
  2. Die Originalmeldung bleibt stehen. Das ist der Text, den man in eine Suchmaschine tippt, und er ist Teil dessen, was zu lernen ist.
  3. Stelle und Fehlercode. «Zeile 1, Zeichen 29» kommt direkt vom Server, ist also immer exakt. Der Code darunter ist der offizielle SQLSTATE; für Neugierige gibt es dazu eine vollständige Liste.

Abgedeckt sind die rund zwanzig Fehler, die im Unterricht wirklich vorkommen: Tabelle gibt es nicht, Spalte gibt es nicht, Syntaxfehler, doppelter Schlüssel, fehlender GROUP BY, Text wo eine Zahl hingehört. Alles andere zeigt die Originalmeldung ohne Erklärung.

Zum Nachschlagen

Die offizielle PostgreSQL-Dokumentation ist englisch, aber gut und für Fortgeschrittene die richtige Adresse: das SQL-Kapitel des Tutorials und die Befehlsreferenz.

9Eigene Daten mitbringen (CSV)

Der Weg von der Excel-Tabelle zur Datenbanktabelle. Für dich wie für die Klasse gleich.

Unter Demo-Tabellen oben: CSV importieren. Die App liest die Datei, rät die Datentypen und zeigt eine Vorschau, bevor irgendetwas entsteht.

1 2 3 4 5
  1. Datei wählen. Höchstens 10 MB und 100 000 Zeilen — für Unterrichtsdaten reichlich.
  2. Tabellenname, Trennzeichen und zwei Schalter. Der Name kommt aus dem Dateinamen und ist änderbar. Das Trennzeichen ist die Stelle, an der es fast immer klemmt: Schweizer Excel schreibt Strichpunkte statt Kommas. Die App erkennt das meist selbst — stimmt die Vorschau unten nicht, stell es hier um.
  3. Die Datentypen sind der Unterricht. Was die App rät, ist ein Vorschlag: Ein PLZ-Feld will man vielleicht als Text und nicht als Zahl, weil führende Nullen sonst verschwinden. Wer das einmal von Hand korrigiert hat, hat verstanden, wozu Datentypen da sind.
  4. Vorschau der ersten Zeilen, so wie sie ankommen werden.
  5. Importieren. Danach steht die Tabelle links im Baum.
Was die App mit Schweizer Dateien tut

Sie kennt den hiesigen Excel-Dialekt: Strichpunkt als Trennzeichen, 1'234.50 als Zahl, 31.12.2025 als Datum, und auch Dateien, die noch nicht in UTF-8 gespeichert sind. Datumsangaben mit Schrägstrich (03/04/2025) bleiben absichtlich Text — daraus geht nicht hervor, ob der 3. April oder der 4. März gemeint ist, und Raten wäre hier die schlechtere Antwort.

10Übungen verteilen und einsammeln

Reiter Übungen. Tabellen vorbereiten, an eine Klasse geben, Lösungen zurückbekommen.

Bis hierher hat jede Person eine leere Datenbank und die gemeinsamen Beispieldaten. Eine Übung ist das Dritte: ein Satz Tabellen, den du selbst zusammenstellst, mit einer Aufgabenstellung daneben — und jede Lernende bekommt eine eigene Kopie davon. Wer darin etwas löscht, löscht es nur bei sich.

Eine Übung bauen

  1. Neu links. Titel eintragen und speichern.
  2. Die Aufgabenstellung schreibst du in Markdown: # Überschrift, **fett**, Aufzählungen mit -, Code in schrägen Anführungszeichen (`kunden`). Rechts daneben siehst du beim Tippen, wie es bei der Klasse ankommt. Wer Markdown nicht kennt, schreibt einfach Text — das funktioniert auch.
  3. Tabellen hinzufügen, auf zwei Wegen und beliebig gemischt:
    • CSV hinzufügen — derselbe Dialog wie in Kapitel 9, mit derselben Vorschau und denselben Datentypen.
    • SQL-Skript hinzufügen — für alles, was eine CSV-Datei nicht ausdrückt: Primärschlüssel, Fremdschlüssel, CHECK-Bedingungen. Schreib die Tabellennamen ohne Schema, also CREATE TABLE bestellungen (…); die Übung landet automatisch am richtigen Ort.
    Mit den Pfeilen bestimmst du die Reihenfolge. Das ist wichtig, sobald eine Tabelle auf eine andere verweist: die verwiesene muss vorher stehen.
  4. Tabellen aufbauen unter Selber ausprobieren. Damit legst du dir die Übung im eigenen Bereich an und kannst sie Im Editor öffnen, bevor eine Klasse sie sieht.
Probier die Übung einmal selbst aus

Es kostet zwei Klicks und ist der einzige Weg zu merken, dass im Skript ein Komma fehlt. Sonst merkt es die Klasse — fünfundzwanzigmal gleichzeitig, mitten in der Lektion.

Verteilen

Unter Verteilung die Klasse wählen und Verteilen. Ab da steht die Übung bei den Lernenden im Reiter Übungen. Die Tabellen entstehen erst, wenn jemand die Übung zum ersten Mal öffnet — wer eine Woche später in die Klasse kommt, bekommt sie also ebenso.

Die Tabelle zeigt dir pro Klasse, wie viele die Übung geöffnet und wie viele abgegeben haben.

Was die Klasse davon sieht

Im Reiter Übungen steht die Aufgabe; Bearbeiten führt in den Editor. Dort ist über dem Eingabefeld ein Balken mit dem Titel, der Aufgabenstellung zum Auf- und Zuklappen und drei Schaltflächen:

Im Tabellenbaum links erscheint die Übung als eigener Eintrag, beschriftet mit ihrem Titel. Ein SELECT * FROM kunden; ohne Schemaangabe meint dort die Tabelle der Übung — nicht eine gleichnamige aus der eigenen Datenbank.

Einsammeln

Abgaben ansehen zeigt alle Abgaben der Klasse, nach Namen sortiert, mit Notiz und SQL. Alle herunterladen gibt dir eine einzelne .sql-Datei mit sämtlichen Abgaben, jede mit Name, Nummer und Zeitpunkt als Kommentar darüber — zum Durchlesen, Ausdrucken oder Ablegen. Einzelne Abgaben lassen sich auch einzeln herunterladen.

Zurückziehen löscht die Arbeit der Klasse

Zurückziehen nimmt die Übung aus der Klasse und löscht dabei die Übungstabellen aller Lernenden samt allen Abgaben. Das lässt sich nicht rückgängig machen, deshalb fragt die App zweimal und nennt beim zweiten Mal die Anzahl. Die eigenen Datenbanken der Lernenden sind nicht betroffen.

Wenn du eine Übung nur überarbeiten willst, musst du sie nicht zurückziehen: Änderungen an den Tabellen wirken sich auf alle aus, die die Übung danach zum ersten Mal öffnen oder zurücksetzen.

Grössen

Pro Tabelle höchstens 2 MB und 20 000 Zeilen, pro Übung höchstens 20 Tabellen oder Skripte — deutlich weniger als beim gewöhnlichen CSV-Import, und zwar mit Absicht: Eine Übung wird in jede Person der Klasse kopiert und zählt bei jeder gegen die 50 MB aus Kapitel 12.

11Die Lektionsansicht

Reiter Lektion. Aktualisiert sich von selbst, solange die Seite offen ist.

Diese Seite beantwortet die Fragen, die man sonst durch Herumlaufen beantwortet: Ist die Klasse überhaupt drin? Woran arbeitet sie? Und wo hängt jemand fest, ohne sich zu melden?

1 2 3 4 5
  1. Klasse und Zeitfenster. Du siehst nur deine eigenen Klassen. Das Zeitfenster — 30 Minuten, 90 Minuten oder 4 Stunden — bestimmt alle Zahlen rechts. Jetzt aktualisieren erzwingt eine sofortige Auffrischung; sonst passiert das von selbst.
  2. Sitzung. angemeldet heisst: gültige Sitzung. Nicht: sitzt am Platz. Ein Strich heisst dagegen zuverlässig, dass diese Person nicht drin ist.
  3. Der letzte Befehl jeder Person, gekürzt auf die erste Zeile. Rot mit Fehlercode, wenn er nicht funktioniert hat — hier ein WEHRE statt WHERE. Zwei rote Zeilen hintereinander sind die Aufforderung, hinzugehen.
  4. Befehle im Zeitfenster. Eine Null nach zwanzig Minuten sagt mehr als jede Umfrage in die Runde — hier bei zwei Personen, die sich noch gar nicht angemeldet haben.
  5. Speicher, daneben die Spalte Fehler. Fehler sind normal und kein Alarmzeichen; interessant ist das Verhältnis. Der Speicher steht dabei, weil ein volles Konto der einzige Grund ist, aus dem jemand plötzlich gar nichts mehr schreiben kann.

Eine Person im Detail

Ein Klick auf eine Zeile zeigt, was diese Person zuletzt getan hat.

1 2 3
  1. Die letzten 50 Befehle im vollen Wortlaut, neueste zuoberst, mit Zeilenzahl und Dauer.
  2. Fehlgeschlagene Befehle rot, mit Code und der Originalmeldung von PostgreSQL. Hier sieht man, ob jemand denselben Fehler zum fünften Mal macht — und welchen.
  3. Die Tabellen dieser Person, mit ungefährer Zeilenzahl. Der Beleg dafür, dass die Aufgabe tatsächlich gelöst wurde, ohne dass jemand seinen Bildschirm drehen muss.
Das ist kein heimliches Mitlesen

Sag der Klasse, dass es diese Ansicht gibt. Sie zeigt genau das, was ohnehin an die Datenbank geschickt wurde — Befehle, keine Tastenanschläge, keine Bildschirme, nichts ausserhalb von Datebänkli. Offen angekündigt ist sie ein Werkzeug; unangekündigt entdeckt wäre sie ein Vertrauensproblem.

Auf dem Tablet

Die Lektionsansicht ist die einzige Seite, die man im Unterricht sinnvollerweise in der Hand hält. Auf einem Tablet passt die Tabelle vollständig aufs Bild.

1 2
  1. Dieselbe Klassenauswahl wie am Computer.
  2. Derselbe rot markierte Fehler. Auf einem Handy funktioniert die Seite auch, dort muss die Tabelle allerdings seitlich geschoben werden.

12Grenzen und Sicherheit

Was die Datenbank von sich aus verhindert — und was du davon wissen musst.

Dieser Abschnitt ist die Antwort auf «kann da jemand etwas kaputt machen». Kurz: das eigene, ja, gerne. Alles andere nein, und zwar nicht, weil die App aufpasst, sondern weil PostgreSQL es nicht erlaubt.

GrenzeWertWas das im Unterricht heisst
Speicher pro Person 50 MB Wer darüber ist, kann weiterhin lesen, aber nichts mehr schreiben. Der Ausweg ist DROP TABLE oder TRUNCATE — DELETE gibt keinen Platz frei, was für sich schon eine gute Lektion ist.
Dauer einer Abfrage etwa 15–20 Sekunden Danach wird sie gestoppt. Reicht für alles, was im Unterricht sinnvoll ist, und beendet den versehentlichen Riesen-Join von selbst.
Angezeigte Zeilen 1000 Darüber steht «die ersten 1000 von …». Die Abfrage lief trotzdem vollständig.
Gleichzeitige Verbindungen 4 pro Person Merkt niemand. Verhindert, dass eine offene Schlaufe den Server für die Klasse blockiert.
CSV-Import 10 MB / 100 000 Zeilen Grösseres wird abgelehnt, bevor irgendetwas entsteht.
Tabellen einer Übung 2 MB / 20 000 Zeilen je Tabelle, 20 Tabellen je Übung Knapper als beim gewöhnlichen Import, weil eine Übung in jede Person der Klasse kopiert wird und dort auf die 50 MB angerechnet wird.
Falsche Anmeldeversuche 10 pro Konto in 15 Min. Danach eine Zwangspause. Wer sich fünfmal vertippt, kommt trotzdem durch.

Was du ignorieren darfst

Rollen, Schemas, Berechtigungen, Sicherungen: alles automatisch. Beim Anlegen einer Person entsteht ihr Konto und ihr Bereich, du bekommst Leserecht darauf, und beim Zurücksetzen wird dieses Leserecht korrekt neu vergeben. Du musst dafür nie ein SQL-Kommando schreiben. Falls dich der Aufbau doch interessiert, ist er in der Architekturdokumentation des Projekts beschrieben — für das Unterrichten ist er nicht nötig.

Was du wissen solltest

Die Beispieldaten

Es sind zwei Bereiche, und sie haben verschiedene Aufgaben. Beide sind für alle lesbar und für niemanden veränderbar.

tonspur hat absichtlich keine Fremdschlüssel-Bedingungen, und genau eine Beziehung ist verletzt: song.album_id = 9999 zeigt auf ein Album, das es nicht gibt. Das ist der Aufhänger für referentielle Integrität — die Klasse findet die Zeile mit einem LEFT JOIN, bevor jemand REFERENCES geschrieben hat.

13Tipps aus dem Alltag

14Wenn etwas klemmt

Jemand hat den Zettel verloren.

In der Klassenliste bei dieser Person auf Neuer Zettel. Es erscheint sofort ein neuer Zettel mit einem neuen Passwort; der alte gilt nicht mehr. Wenn gleich mehrere Zettel fehlen und die betroffenen Personen sich noch nie angemeldet haben, geht es mit einem Klick für alle auf einmal.

Ich habe die Zettelansicht geschlossen, bevor gedruckt war.

Solange sich niemand angemeldet hat, ist es folgenlos: Neue Zettel für n Lernende ohne erste Anmeldung stellt alle neu aus. Haben sich einzelne schon angemeldet, behalten die ihren Zugang, und der Knopf rührt sie nicht an.

Eine Anmeldung geht nicht.

Der Reihe nach: Benutzername ganz klein und mit Unterstrichen abgetippt? Passwort mit Bindestrichen, ohne Leerzeichen? Steht die Person in der Klassenliste auf aktiv, oder wurde bei ihr versehentlich Archivieren geklickt? Wenn alles stimmt: Neuer Zettel, das ist schneller als weiter zu suchen.

Eine Abfrage hängt.

Abbrechen daneben stoppt sie. Passiert das nicht rechtzeitig, stoppt der Server sie nach etwa zwanzig Sekunden selbst. Danach ist alles wieder normal; es geht nichts kaputt und nichts verloren. Meist steckt ein Verbund ohne Bedingung dahinter — mehrere Tabellen im FROM, kein JOIN … ON.

Jemand kann plötzlich nichts mehr speichern.

Wahrscheinlich das Speicherlimit. In der Lektionsansicht steht es in der letzten Spalte. Der Ausweg ist DROP TABLE auf das, was nicht mehr gebraucht wird, oder Datenbank zurücksetzen für einen sauberen Start. DELETE hilft nicht — die Zeilen sind weg, der Platz nicht.

Jemand hat seine ganze Datenbank gelöscht.

Das ist erlaubt, und es ist kein Notfall — jede Person kann nur ihre eigene löschen. Wiederherstellen lässt sich das nicht; der Bereich ist ein Arbeitsplatz, kein Archiv. Wer eine Arbeit behalten will, kopiert die CREATE TABLE- und INSERT-Befehle in ein Dokument. Das ist übrigens die ehrlichste Version der Lektion «warum es Sicherungen gibt».

Kann jemand die Daten einer anderen Person lesen?

Nein. Der Versuch endet bei PostgreSQL selbst, nicht bei einer Prüfung in der App — das ist der Unterschied, der es belastbar macht. Sichtbar ist nur, dass es andere Bereiche gibt. Die einzige Ausnahme sind zwei Personen, die sich gegenseitig freischalten; das räumt die App wieder auf und schreibt es mit.

Jemand verlässt die Klasse.

Archivieren, wenn die Arbeit erhalten bleiben soll — das ist der Normalfall und jederzeit umkehrbar. Aus Klasse nur beim Wechsel in eine andere Klasse, und dort zuerst eintragen. Löschen nur, wenn die Daten wirklich weg sollen.

Die Oberfläche ist auf Englisch (oder soll es sein).

Oben rechts der Schalter DE / EN. Die Einstellung gilt pro Konto, nicht pro Gerät — sie folgt der Person also auf das nächste Gerät. Lernende können sie selbst umstellen; für eine Immersionsklasse macht das jede Person einmal für sich.

Ich habe mein eigenes Passwort vergessen.

Mail an philip.schaffner@kwi.ch, du bekommst einen neuen Zugangszettel. Deine Klassen und alle Daten bleiben davon unberührt.

Wo sind die Aufgaben?

Aufgaben stellst du selbst — entweder auf dem Arbeitsblatt wie bisher, oder als Übung mit eigenen Tabellen und Aufgabenstellung, die jede Person als eigene Kopie bekommt (Abschnitt 10). Eine Aufgabensammlung bringt Datebänkli nicht mit. Korrigiert wird auch nichts: Die App prüft keine Lösung und vergibt keine Punkte, sie sammelt die Abgaben ein und legt sie dir zum Lesen hin. Was währenddessen passiert, siehst du in der Lektionsansicht — Befehle und Tabellen jeder Person, in Echtzeit.