MINT lernen

Übung AFB III

Zehn Aufgaben zum Entwerfen, Beurteilen und Stellungnehmen — mit Musterlösung.

Dein Fortschritt:
0 / 0 Aufgaben
3

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)

Scooter
ScooterNrModellAkkuStadtteil
S1Flink82Mitte
S2Flink25Nord
S3Volt64Mitte
S4Volt12Süd
S5Blitz47Nord
S6FlinkNULLSüd
S7Blitz91Mitte
S8Volt30Nord
Nutzer
NutzerNrNameStadtteil
N1AylinMitte
N2BenNord
N3CarlaSüd
N4DenizMitte
Fahrt
FahrtNrScooterNrNutzerNrDatumMinutenPreis
F1S1N101.09.123.40
F2S3N201.09.256.00
F3S1N402.09.82.60
F4S5N102.09.307.00
F5S7N303.09.154.00
F6S3N103.09.205.00
F7S8N204.09.103.00
A1
Ein Tarifsystem entwerfen
AFB III

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.

Tarif ist ein eigener Objekttyp.
Neue Tabelle Tarif; Fremdschlüssel in Nutzer (1:n).
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.

A2
Fehlerhafte Gruppierung
AFB III

Ein Praktikant schreibt SELECT Name, SUM(Minuten) FROM Nutzer, Fahrt GROUP BY Name; Analysieren Sie den Fehler: Welche Summe erscheint bei Aylin?

min
Was fehlt zwischen FROM und GROUP BY?
Ohne Verbundbedingung wird jede Nutzerin mit allen 7 Fahrten kombiniert.
Lösung anzeigen
Kreuzprodukt: Jede Nutzerin erhält die Summe aller Fahrten = 120 min. Korrektur: WHERE Nutzer.NutzerNr = Fahrt.NutzerNr ergänzen — dann Aylin 62 min.
A3
E-Mail als Schlüssel?
AFB III

Die App will die E-Mail-Adresse als Primärschlüssel von Nutzer verwenden. Beurteilen Sie den Vorschlag.

Prüfe: eindeutig, nie NULL, unveränderlich, datensparsam.
Eindeutig ja, unveränderlich nein, Fremdschlüssel in Fahrt würden personenbezogen.
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.

A4
Verlustfrei zerlegt?
AFB III

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.

Zu jedem ScooterNr-Wert: Zeilen in A mal Zeilen in B.
S1 und S3 kommen je zweimal vor: 2 · 2 + 2 · 2 + 1 + 1 + 1.
Lösung anzeigen
4 + 4 + 1 + 1 + 1 = 11 Zeilen statt 7: Es entstehen erfundene Fahrten. Die Zerlegung ist verlustbehaftet, weil ScooterNr die Fahrt nicht bestimmt.
A5
Umsatz nach Stadtteil
AFB III

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?

€
Verbund Nutzer–Fahrt, GROUP BY Nutzer.Stadtteil, HAVING.
Mitte: 3,40 + 7,00 + 5,00 + 2,60; Nord: 6,00 + 3,00; Süd: 4,00.
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 €
A6
Offene Daten für die Stadt
AFB III

Die Stadt möchte alle Fahrten mit Start, Ziel, Uhrzeit und Geburtsjahr der Nutzer als „anonyme“ Open Data veröffentlichen. Bewerten Sie den Plan.

Sind Start und Ziel Quasi-Identifikatoren?
Wohnort + Uhrzeit + Geburtsjahr machen Personen wiedererkennbar; vergröbern oder aggregieren.
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.

A7
Preise nach Stadtteil
AFB III

Ein Algorithmus soll Minutenpreise automatisch nach Stadtteil festlegen, weil in Süd häufiger Scooter beschädigt werden. Erörtern Sie das Vorhaben.

Pro: Kosten, Anreiz. Contra: Stellvertreter, Gruppenhaftung.
Korrelation ≠ Ursache; alle Bewohner zahlen für einige; Einkommen/Herkunft als versteckte Merkmale.
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.

A8
Preis speichern oder berechnen?
AFB III

Da sich der Preis aus den Minuten berechnen lässt, schlägt jemand vor, die Spalte Preis zu streichen. Beurteilen Sie den Vorschlag.

Was passiert bei einer Tarifänderung?
Der gespeicherte Preis ist ein historischer Wert, keine Redundanz.
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.

A9
Kreuzprodukt im Großen
AFB III

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.

Zeilen multiplizieren.
5 · 10⁴ · 2 · 10⁶ = 10¹¹.
Lösung anzeigen
5 · 10⁴ · 2 · 10⁶ = 10¹¹ = 100 Milliarden Zeilen — der Server wäre lahmgelegt; mit Verbundbedingung sind es 2 Millionen.
A10
Daten für die Polizei
AFB III

Die Polizei bittet ohne konkreten Anlass um regelmäßigen Zugriff auf alle Fahrtdaten, „um Straftaten schneller aufzuklären“. Nehmen Sie Stellung.

Informationelle Selbstbestimmung, Zweckbindung, Verhältnismäßigkeit.
Anlassbezogen mit richterlicher Anordnung ja, pauschal nein.
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.