Zimmersuche in der Jugendherberge
AFB I–IIEine Jugendherberge verwaltet ihre Zimmer in der Tabelle Zimmer (Material 1). Preis ist der Preis pro Bett und Nacht in Euro, Bad ist 1, wenn das Zimmer ein eigenes Bad hat.
| ZimmerNr | Etage | Betten | Preis | Bad | Ausblick |
|---|---|---|---|---|---|
| 101 | 1 | 2 | 38 | 1 | Hof |
| 102 | 1 | 4 | 30 | 0 | See |
| 201 | 2 | 6 | 26 | 0 | Wald |
| 202 | 2 | 2 | 42 | 1 | See |
| 203 | 2 | 4 | 32 | 1 | NULL |
| 301 | 3 | 8 | 22 | 0 | See |
| 302 | 3 | 1 | 45 | 1 | Wald |
- Wenden Sie die folgende Abfrage auf die Daten an und geben Sie das Ergebnis in der richtigen Reihenfolge an.
3 BESELECT ZimmerNr, Preis FROM Zimmer WHERE Betten >= 4 AND Preis < 32 ORDER BY Preis DESC; - Erstellen Sie Abfragen für: (1) alle Zimmer mit Seeblick oder Waldblick, sortiert nach Etage aufsteigend und innerhalb der Etage nach Preis absteigend; (2) alle Zimmer, deren Ausblick nicht erfasst ist. 5 BE
Insgesamt 8 BE
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
102 | 30, 201 | 26, 301 | 22. (203 kostet genau 32 und fällt heraus.)
Erwartungshorizont zu Aufgabe b)
SELECT * FROM Zimmer
WHERE Ausblick IN ('See', 'Wald')
ORDER BY Etage ASC, Preis DESC;
SELECT * FROM Zimmer WHERE Ausblick IS NULL;(1) 3 BE, (2) 2 BE.
Filter für die Buchungsseite
AFB II–IIIAuf der Buchungsseite können Gäste filtern. Ein Entwickler setzt den Filter „Zimmer mit eigenem Bad im 1. oder 2. Stock“ so um:
SELECT ZimmerNr FROM Zimmer
WHERE Etage = 1 OR Etage = 2 AND Bad = 1;
- Untersuchen Sie, welches Ergebnis die Abfrage für die Daten aus Aufgabe 1 liefert, und erklären Sie die Abweichung vom gewünschten Ergebnis. 4 BE
- Verändern Sie die Abfrage so, dass sie korrekt arbeitet und nur die zwei günstigsten passenden Zimmer ausgibt. 3 BE
- Bewerten Sie, ob eine Suche mit
Ausblick LIKE '%See%'für die Gäste besser ist alsAusblick = 'See'. 4 BE
Insgesamt 11 BE
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Ausgewertet wird Etage = 1 OR (Etage = 2 AND Bad = 1): 101, 102, 202, 203. Zimmer 102 hat kein Bad, erscheint aber, weil alle Zimmer der 1. Etage die OR-Bedingung erfüllen. Richtig: 101, 202, 203.
Erwartungshorizont zu Aufgabe b)
SELECT ZimmerNr FROM Zimmer
WHERE (Etage = 1 OR Etage = 2) AND Bad = 1
ORDER BY Preis ASC
LIMIT 2;Ergebnis: 203 (32 €), 101 (38 €). Etage IN (1, 2) ist ebenfalls richtig.
Erwartungshorizont zu Aufgabe c)
LIKE '%See%' findet auch künftige Werte wie „Seeblick“ oder „See und Wald“, liefert aber evtl. unerwünschte Treffer (z. B. „Seestraße“). = 'See' ist präziser, setzt aber einheitliche Werte voraus. Zimmer mit NULL werden in beiden Fällen nicht gefunden. Erwartet wird ein begründetes Urteil, etwa: Bei einheitlich gepflegten Werten ist = besser.
