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.
Team(TeamNr, Name, Stadt)
Fahrer(FahrerNr, Name, Jahrgang, TeamNr)
Rennen(RennenNr, Titel, Datum, Km)
Start(FahrerNr, RennenNr, Platz, Minuten)
| TeamNr | Name | Stadt |
|---|---|---|
| T1 | Nordwind | Kiel |
| T2 | Speiche | Hannover |
| T3 | Kette | Bremen |
| FahrerNr | Name | Jahrgang | TeamNr |
|---|---|---|---|
| F1 | Anna | 2007 | T1 |
| F2 | Bela | 2008 | T1 |
| F3 | Cleo | 2007 | T2 |
| F4 | Deniz | 2006 | T2 |
| F5 | Emre | 2008 | T3 |
| F6 | Fiona | 2007 | NULL |
| RennenNr | Titel | Datum | Km |
|---|---|---|---|
| R1 | Frühjahrsklassiker | 12.04. | 80 |
| R2 | Bergpreis | 03.05. | 45 |
| R3 | Stadtkriterium | 21.06. | 30 |
| FahrerNr | RennenNr | Platz | Minuten |
|---|---|---|---|
| F1 | R1 | 2 | 118 |
| F2 | R1 | 3 | 125 |
| F3 | R1 | 1 | 115 |
| F4 | R1 | NULL | NULL |
| F1 | R2 | 3 | 96 |
| F3 | R2 | 1 | 90 |
| F5 | R2 | 2 | 93 |
| F2 | R3 | 1 | 42 |
| F4 | R3 | 2 | 43 |
| F6 | R3 | 3 | 45 |
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.
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.
Ein Mitglied schlägt vor, Platz und Minuten als Attribute von Fahrer zu speichern und die Tabelle Start zu streichen. Beurteilen Sie den Vorschlag.
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.
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?
Lösung anzeigen
AND Fahrer.FahrerNr = Start.FahrerNr ergänzen — dann 4.