Die Schulbibliothek
AFB I–IIDie Schulbibliothek hat ihren Bestand in einer Datenbank erfasst. Ein Ausschnitt der Tabelle buecher ist unten abgebildet.
- Entnimm der Abbildung, wie viele Datensätze und wie viele Attribute die Tabelle hat, und gib den Datensatz mit der id 4 an.
- Wende die folgende Abfrage auf die Tabelle an und gib die Ergebnistabelle an:
SELECT titel, seiten FROM buecher WHERE ausgeliehen = 'nein' ORDER BY seiten DESC; - Erstelle eine SQL-Abfrage, die zählt, wie viele Bücher vor 2010 erstmals erschienen sind, und gib das Ergebnis an.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
WHERE), dann sortieren (ORDER BY), zuletzt nur die Spalten aus SELECT behalten.Hinweis zu Aufgabe c)
COUNT(*). „Vor 2010“ heißt: 2010 selbst zählt nicht mit.Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
7 Datensätze (Zeilen) und 6 Attribute (id, titel, autor, jahr, seiten, ausgeliehen). Datensatz mit id 4: Krabat, Preußler, 1971, 336 Seiten, ausgeliehen = ja.
Erwartungshorizont zu Aufgabe b)
Nicht ausgeliehen sind Momo, Die Welle, Emil und die Detektive und Die Tribute von Panem. Absteigend nach Seiten sortiert:
Die Tribute von Panem | 416Momo | 304Die Welle | 192Emil und die Detektive | 176
Das Ergebnis ist wieder eine Tabelle mit den zwei Spalten titel und seiten.
Erwartungshorizont zu Aufgabe c)
SELECT COUNT(*) FROM buecher WHERE jahr < 2010;
Ergebnis: 5 (Momo 1973, Die Welle 1981, Krabat 1971, Emil und die Detektive 1929, Die Tribute von Panem 2008). Tschick (2010) und Wunder (2012) zählen nicht.
Das Sportfest
AFB II–IIIBeim Sportfest laufen die neunten Klassen 800 m. Die Sportfachschaft speichert die Zeiten in Sekunden in der Tabelle laeufe. Wer unter 180 Sekunden bleibt, bekommt eine Ehrenurkunde.
name | klasse | zeit_s ------+--------+------- Ada | 9a | 172 Ben | 9a | 195 Cem | 9a | 185 Dana | 9b | 169 Emil | 9b | 201 Finn | 9b | 178 Greta | 9c | 175 Hira | 9c | 188
- Die Abfrage
SELECT AVG(zeit_s) FROM laeufe WHERE klasse = '9a';liefert 184. Interpretiere dieses Ergebnis im Sachzusammenhang. - Leon möchte alle Namen aus der 9a und der 9b mit einer Zeit unter 180 s und schreibt:
SELECT name FROM laeufe WHERE klasse = '9a' OR klasse = '9b' AND zeit_s < 180;
Überprüfe, ob seine Abfrage das Gewünschte liefert. - Entwirf eine Abfrage für die Urkundenliste: Name, Klasse und Zeit aller Läuferinnen und Läufer mit Urkunde, die schnellste Person zuerst. Gib auch das Ergebnis an.
- Der Sportlehrer meint: „Für acht Zeilen brauche ich keine Datenbank, eine Liste im Heft reicht.“ Diskutiere diese Aussage.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
AND vor OR ausgewertet — wie Punkt vor Strich. Klammern ändern die Reihenfolge.Hinweis zu Aufgabe c)
WHERE, nach welcher Spalte wird in welche Richtung sortiert?Hinweis zu Aufgabe d)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Es gehen nur Ada, Ben und Cem ein: (172 + 195 + 185) : 3 = 184. Die 9a hat im Mittel 184 s, also 3 min 4 s gebraucht — etwas mehr als die Urkundengrenze von 180 s. Der Durchschnitt sagt aber nichts über Einzelne: Ada liegt mit 172 s darunter und bekommt eine Urkunde, Ben liegt deutlich darüber.
Erwartungshorizont zu Aufgabe b)
Weil AND zuerst ausgewertet wird, liest die Datenbank: klasse = '9a' OR (klasse = '9b' AND zeit_s < 180). Ergebnis: Ada, Ben, Cem, Dana, Finn — also alle aus der 9a, auch Ben (195 s) und Cem (185 s). Das ist nicht gewünscht. Richtig: WHERE (klasse = '9a' OR klasse = '9b') AND zeit_s < 180 liefert Ada, Dana und Finn.
Erwartungshorizont zu Aufgabe c)
SELECT name, klasse, zeit_s FROM laeufe WHERE zeit_s < 180 ORDER BY zeit_s ASC;
Ergebnis: Dana | 9b | 169, Ada | 9a | 172, Greta | 9c | 175, Finn | 9b | 178. Es werden also vier Urkunden gebraucht.
Erwartungshorizont zu Aufgabe d)
Pro Heftliste: Bei acht Zeilen ist sie schneller angelegt, man muss keine Datenbank einrichten und kein SQL können. Contra: In Wirklichkeit laufen alle Klassen und Jahrgänge, jedes Jahr kommen neue Daten dazu; Abfragen wie Durchschnitt, Urkundenliste oder Sortierung liefert SQL sofort und fehlerfrei, und mehrere Lehrkräfte können gleichzeitig darauf zugreifen. Begründetes Ergebnis: Für einen einzelnen Lauf reicht die Liste; für das ganze Sportfest über mehrere Jahre lohnt sich die Datenbank.
