Aufgabenblock — AFB III
Zehn offene Aufgaben: Schemata entwerfen, Fehler analysieren, Entscheidungen beurteilen. Die Musterlösung zählt als erledigt, sobald du sie aufklappst.
Material für alle Aufgaben: E-Scooter-Verleih
Ein Verleih speichert Scooter, Nutzer und Fahrten. Akku in Prozent, Minuten ganzzahlig, Preis in Euro (Grundgebühr 1 € plus 0,20 € pro Minute).
Scooter(ScooterNr, Modell, Akku, Stadtteil)
Nutzer(NutzerNr, Name, Stadtteil)
Fahrt(FahrtNr, ScooterNr, NutzerNr, Datum, Minuten, Preis)
| ScooterNr | Modell | Akku | Stadtteil |
|---|---|---|---|
| S1 | Flink | 82 | Mitte |
| S2 | Flink | 25 | Nord |
| S3 | Volt | 64 | Mitte |
| S4 | Volt | 12 | Süd |
| S5 | Blitz | 47 | Nord |
| S6 | Flink | NULL | Süd |
| S7 | Blitz | 91 | Mitte |
| S8 | Volt | 30 | Nord |
| NutzerNr | Name | Stadtteil |
|---|---|---|
| N1 | Aylin | Mitte |
| N2 | Ben | Nord |
| N3 | Carla | Süd |
| N4 | Deniz | Mitte |
| FahrtNr | ScooterNr | NutzerNr | Datum | Minuten | Preis |
|---|---|---|---|---|---|
| F1 | S1 | N1 | 01.09. | 12 | 3.40 |
| F2 | S3 | N2 | 01.09. | 25 | 6.00 |
| F3 | S1 | N4 | 02.09. | 8 | 2.60 |
| F4 | S5 | N1 | 02.09. | 30 | 7.00 |
| F5 | S7 | N3 | 03.09. | 15 | 4.00 |
| F6 | S3 | N1 | 03.09. | 20 | 5.00 |
| F7 | S8 | N2 | 04.09. | 10 | 3.00 |
Der Verleih führt Tarife ein (Standard, Schüler, Vielfahrer) mit eigener Grundgebühr und eigenem Minutenpreis; jede Nutzerin hat genau einen Tarif. Entwerfen Sie die nötigen Änderungen am Schema.
Musterlösung anzeigen (zählt als erledigt)
Tarif(TarifNr, Bezeichnung, Grundgebuehr, ProMinute), Nutzer(NutzerNr, Name, Stadtteil, TarifNr). Der Preis bleibt in Fahrt gespeichert, damit spätere Tarifänderungen alte Rechnungen nicht verändern.
Ein Praktikant schreibt SELECT Name, SUM(Minuten) FROM Nutzer, Fahrt GROUP BY Name; Analysieren Sie den Fehler: Welche Summe erscheint bei Aylin?
Lösung anzeigen
WHERE Nutzer.NutzerNr = Fahrt.NutzerNr ergänzen — dann Aylin 62 min.Die App will die E-Mail-Adresse als Primärschlüssel von Nutzer verwenden. Beurteilen Sie den Vorschlag.
Musterlösung anzeigen (zählt als erledigt)
E-Mail ist eindeutig und meist vorhanden, ändert sich aber (Anbieterwechsel) — dann müssten alle Fremdschlüssel in Fahrt mitgeändert werden. Zudem stünde in jeder Fahrt ein direkt personenbezogener Wert. Eine künstliche NutzerNr ist besser; die E-Mail bleibt normales Attribut.
Fahrt wird zerlegt in A(FahrtNr, ScooterNr, Datum) und B(ScooterNr, NutzerNr, Minuten, Preis). Untersuchen Sie, wie viele Zeilen der Verbund von A und B über ScooterNr liefert.
Lösung anzeigen
Entwickeln Sie eine Abfrage, die den Umsatz je Wohn-Stadtteil der Nutzer ausgibt, nur für Stadtteile mit mehr als 10 € Umsatz, absteigend sortiert. Welcher Betrag steht im Ergebnis?
Lösung anzeigen
SELECT Nutzer.Stadtteil, SUM(Fahrt.Preis) AS Umsatz
FROM Nutzer, Fahrt
WHERE Nutzer.NutzerNr = Fahrt.NutzerNr
GROUP BY Nutzer.Stadtteil
HAVING SUM(Fahrt.Preis) > 10
ORDER BY Umsatz DESC;Nur Mitte bleibt übrig = 18,00 €Die Stadt möchte alle Fahrten mit Start, Ziel, Uhrzeit und Geburtsjahr der Nutzer als „anonyme“ Open Data veröffentlichen. Bewerten Sie den Plan.
Musterlösung anzeigen (zählt als erledigt)
Ohne Namen sind die Daten nicht anonym: Wer morgens immer von derselben Adresse startet, ist über Wohnort, Uhrzeit und Geburtsjahr wiedererkennbar. Vertretbar wäre eine Veröffentlichung nur aggregiert (Fahrten je Stadtteil und Stunde) oder mit vergröberten Orten und ohne Geburtsjahr. Nutzen (Verkehrsplanung) und Risiko sind abzuwägen.
Ein Algorithmus soll Minutenpreise automatisch nach Stadtteil festlegen, weil in Süd häufiger Scooter beschädigt werden. Erörtern Sie das Vorhaben.
Musterlösung anzeigen (zählt als erledigt)
Pro: höhere Kosten werden verursachernah umgelegt. Contra: Alle Menschen eines Stadtteils werden für das Verhalten weniger bestraft; der Stadtteil kann für Einkommen oder Herkunft stehen und so diskriminieren; Korrelation belegt keine Ursache. Fazit z. B.: individuelle Schadenshaftung statt pauschaler Preise nach Wohnort.
Da sich der Preis aus den Minuten berechnen lässt, schlägt jemand vor, die Spalte Preis zu streichen. Beurteilen Sie den Vorschlag.
Musterlösung anzeigen (zählt als erledigt)
Solange die Formel gleich bleibt, wäre der Preis ableitbar. Ändert sich der Tarif, würden alte Fahrten falsch neu berechnet. Der Preis zum Zeitpunkt der Fahrt ist deshalb eine eigenständige Tatsache und sollte gespeichert bleiben — der Vorschlag ist abzulehnen.
Die echte Datenbank hat 50 000 Nutzer und 2 Millionen Fahrten. Schätzen Sie ab, wie viele Milliarden Zeilen FROM Nutzer, Fahrt ohne Verbundbedingung erzeugt.
Lösung anzeigen
Die Polizei bittet ohne konkreten Anlass um regelmäßigen Zugriff auf alle Fahrtdaten, „um Straftaten schneller aufzuklären“. Nehmen Sie Stellung.
Musterlösung anzeigen (zählt als erledigt)
Die Daten wurden zur Abrechnung erhoben; eine pauschale Weitergabe verletzt die Zweckbindung und erzeugt Bewegungsprofile unbescholtener Menschen. Vertretbar ist eine Herausgabe nur im Einzelfall mit Rechtsgrundlage (z. B. richterliche Anordnung). Erwartet wird eine begründete Position mit Gegenargument.
