MINT üben

Datenbanken und SQL

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.