MINT üben

ER-Modell und SQL-Abfragen

Zehn Aufgaben zum Entwerfen, Beurteilen und Stellungnehmen — ER-Modell, Schema, SQL und Datenschutz, mit Musterlösung.

Dein Fortschritt:
0 / 0 Aufgaben
1

Aufgabenblock — AFB III

Zehn Aufgaben zum Entwerfen, Beurteilen und Stellungnehmen — mit Musterlösung. Schwerpunkt: Modellierung mit dem ER-Modell und ihre Folgen für Schema und Abfragen.

Material für alle Aufgaben: Radsportliga der Schulen

Eine Liga verwaltet Teams, Fahrerinnen und Fahrer sowie Rennen. Platz und Fahrzeit (Minuten) werden je Start gespeichert; wer aufgibt, erhält NULL. Fiona fährt (noch) für kein Team.

ER-Diagramm
1nnmTeamFahrerRennenfaehrtFuerstartetBeiTeamNrNameStadtFahrerNrNameJahrgangPlatzMinutenRennenNrTitelDatumKm

Team(TeamNr, Name, Stadt)
Fahrer(FahrerNr, Name, Jahrgang, TeamNr)
Rennen(RennenNr, Titel, Datum, Km)
Start(FahrerNr, RennenNr, Platz, Minuten)

Team
TeamNrNameStadt
T1NordwindKiel
T2SpeicheHannover
T3KetteBremen
Fahrer
FahrerNrNameJahrgangTeamNr
F1Anna2007T1
F2Bela2008T1
F3Cleo2007T2
F4Deniz2006T2
F5Emre2008T3
F6Fiona2007NULL
Rennen
RennenNrTitelDatumKm
R1Frühjahrsklassiker12.04.80
R2Bergpreis03.05.45
R3Stadtkriterium21.06.30
Start
FahrerNrRennenNrPlatzMinuten
F1R12118
F2R13125
F3R11115
F4R1NULLNULL
F1R2396
F3R2190
F5R2293
F2R3142
F4R3243
F6R3345
A1
Sponsoren modellieren
AFB III

Teams werden von Sponsoren (Firmenname, Branche) unterstützt; ein Sponsor kann mehrere Teams fördern, ein Team hat mehrere Sponsoren. Je Förderung wird der Betrag gespeichert. Entwerfen Sie die Erweiterung als ER-Ausschnitt und als Schema.

Neuer Entitätstyp und welche Kardinalität?
Sponsor n:m Team, Betrag an der Raute.
Musterlösung anzeigen (zählt als erledigt)

Entitätstyp Sponsor (SponsorNr, Firmenname, Branche), Beziehungstyp foerdert zwischen Sponsor (n) und Team (m) mit Attribut Betrag. Schema: Sponsor(SponsorNr, Firmenname, Branche), foerdert(SponsorNr, TeamNr, Betrag). Ein künstlicher Schlüssel ist sinnvoll, weil Firmennamen sich ändern können.

A2
Platz beim Fahrer?
AFB III

Ein Mitglied schlägt vor, Platz und Minuten als Attribute von Fahrer zu speichern und die Tabelle Start zu streichen. Beurteilen Sie den Vorschlag.

Wie viele Plätze hat ein Fahrer in einer Saison?
Ein Attribut hat genau einen Wert je Fahrer.
Musterlösung anzeigen (zählt als erledigt)

Ein Fahrer startet bei mehreren Rennen und hat je Rennen einen eigenen Platz. Als Attribut von Fahrer ließe sich nur ein Wert speichern — frühere Ergebnisse würden überschrieben, oder der Fahrer müsste mehrfach gespeichert werden (Redundanz, Anomalien). Außerdem ginge verloren, zu welchem Rennen der Platz gehört. Der Vorschlag ist ungeeignet; Platz und Minuten sind Attribute der n:m-Beziehung.

A3
Eine fehlerhafte Auswertung
AFB III

Gesucht ist die Zahl der Starts je Team. Ein Praktikant schreibt:

SELECT Team.Name, COUNT(*)
FROM Team, Fahrer, Start
WHERE Team.TeamNr = Fahrer.TeamNr
GROUP BY Team.Name;

Analysieren Sie den Fehler: Welcher Wert erscheint bei Nordwind?

Wie viele Verbundbedingungen braucht man bei drei Tabellen?
Start ist mit niemandem verbunden → Kreuzprodukt mit allen 10 Starts.
Lösung anzeigen
Nordwind hat 2 Fahrer, jeder wird mit allen 10 Starts kombiniert = 20. Korrektur: AND Fahrer.FahrerNr = Start.FahrerNr ergänzen — dann 4.