Relationale Datenbanken und Abfragen
InformatikDateien, Speicher und DatenbankenAlter 16–17
Im Unterricht einsetzen: Ihre Schülerinnen und Schüler öffnen sie über einen Link oder QR-Code, ganz ohne Konto.
Zwei Tabellen, STUDENTS (Schüler) und CLASSES (Klasse), sind über den Fremdschlüssel ClassID verknüpft, der auf den Primärschlüssel ClassID der Tabelle CLASSES verweist. Die Lernenden stellen eine Abfrage mit Auswahlfeldern zusammen: welche Tabelle, ob die beiden Tabellen verbunden werden, welche Filterbedingung, nach welcher Spalte sortiert wird und wie viele Zeilen zurückgegeben werden. Das Programm erzeugt die passende SQL-Anweisung und führt sie direkt auf den Daten aus, sodass eine geänderte Bedingung die Ergebnistabelle sofort ändert; ein Klick auf eine Zeile zeigt, mit welcher Zeile der anderen Tabelle sie verbunden wurde.
Lektion: Relationale Datenbanken: Primärschlüssel, Fremdschlüssel, SELECT-Abfragen mit Bedingungen, Verbund (JOIN) und Sortierung
Was sie zeigt
Eine relationale Datenbank speichert Daten in Tabellen aus Datensätzen und Feldern. Jede Tabelle hat einen Primärschlüssel, dessen Werte eindeutig und nie leer sind, und ein Fremdschlüssel in einer anderen Tabelle verweist auf diesen Primärschlüssel, um Datensätze zu verknüpfen. Hier enthält die Tabelle STUDENTS (Schüler) das Feld ClassID, einen Fremdschlüssel auf die Tabelle CLASSES (Klassen); Klassendaten werden so nur einmal gespeichert statt bei jedem Schüler wiederholt. Die Simulation übersetzt Ihre Auswahl in eine SQL-SELECT-Anweisung mit JOIN, WHERE, ORDER BY und Zeilenlimit und führt sie auf den Daten aus.
So funktioniert es
Beginnen Sie mit Verbund auf Nur Tabelle STUDENTS, wechseln Sie dann zur verbundenen Variante und achten Sie auf die neuen Spalten. Wählen Sie eine Spalte für den Filter, einen Vergleichsoperator und geben Sie einen Vergleichswert ein; lassen Sie die Lernenden die Ergebniszeilen vorhersagen, bevor Sie auf Abfrage ausführen klicken. Ergänzen Sie Sortieren nach und senken Sie Maximale Anzahl Zeilen, um das Zusammenspiel von Sortierung und Limit zu sehen. Ein Klick auf eine Ergebniszeile verfolgt ihren Fremdschlüssel bis zur Tabelle CLASSES.
Einstellbare Parameter
- Verbund Nur Tabelle STUDENTS, STUDENTS mit CLASSES über ClassID verbinden, Nur Tabelle CLASSES
- Spalte für den Filter Kein Filter, AvgScore, ClassID, Gender
- Vergleichswert
- Sortieren nach Keine Sortierung, FullName aufsteigend, AvgScore absteigend
- Maximale Anzahl Zeilen 1–12 Zeilen
Fragen zum Erkunden
- Warum ist ClassID in CLASSES ein Primärschlüssel, in STUDENTS aber ein Fremdschlüssel?
- Welche Schüler werden geliefert, wenn nach AvgScore absteigend sortiert und auf 3 Zeilen begrenzt wird?
- Können Sie den Klassennamen jedes Schülers ohne Verbund der beiden Tabellen anzeigen? Warum (nicht)?