Aufgabenblock — AFB II
Zehn Aufgaben zum Anwenden und Verknüpfen — Verbund, Gruppierung, Überführung, Anomalien und Datenschutz am selben Material.
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 | 5 | 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 |
Ermitteln Sie die Zeilenzahl von
SELECT Fahrer.Name, Team.Name
FROM Fahrer, Team
WHERE Fahrer.TeamNr = Team.TeamNr;
Lösung anzeigen
Bestimmen Sie die Zeilenzahl von
SELECT RennenNr, COUNT(*)
FROM Start
GROUP BY RennenNr
HAVING COUNT(*) > 3;
Lösung anzeigen
Berechnen Sie SELECT AVG(Minuten) FROM Start WHERE RennenNr = 'R2';
Lösung anzeigen
Begründen Sie, warum der Beziehungstyp startetBei zu einer eigenen Tabelle wird und warum Platz und Minuten dort stehen.
Musterlösung anzeigen (zählt als erledigt)
startetBei ist eine n:m-Beziehung: Ein Fahrer startet bei vielen Rennen, bei einem Rennen starten viele Fahrer. Ein einzelner Fremdschlüssel könnte nur einen Partner speichern, deshalb entsteht die Tabelle Start mit den Fremdschlüsseln ↑FahrerNr und ↑RennenNr als zusammengesetztem Primärschlüssel. Platz und Minuten gehören zu genau einem Start (Paar aus Fahrer und Rennen) und wandern als Beziehungsattribute mit.
Statt des Schemas würde eine einzige Tabelle Ergebnis(FahrerNr, Name, Teamname, RennenNr, Platz, Minuten) mit einer Zeile je Start verwendet. Das Team Speiche benennt sich um. Ermitteln Sie, in wie vielen Zeilen der Teamname geändert werden muss.
Lösung anzeigen
Bestimmen Sie mithilfe eines Verbunds von Start, Fahrer und Team, wie viele Rennen Fahrer des Teams Nordwind gewonnen haben.
Lösung anzeigen
Analysieren Sie die Abfrage und geben Sie ihr Ergebnis an:
SELECT SUM(Km)
FROM Start, Rennen
WHERE Start.RennenNr = Rennen.RennenNr
AND FahrerNr = 'F1';
Lösung anzeigen
Fahrer sollen während der Saison das Team wechseln können; für jede Zugehörigkeit wird der Beginn gespeichert. Verändern Sie ER-Modell und Schema entsprechend.
Musterlösung anzeigen (zählt als erledigt)
faehrtFuer wird eine n:m-Beziehung mit dem Attribut Beginn. ↑TeamNr entfällt in Fahrer; neue Tabelle Mitgliedschaft(FahrerNr, TeamNr, Beginn). Beginn gehört zum Schlüssel, damit ein Fahrer auch später in ein früheres Team zurückkehren kann.
Die Liga möchte alle Ergebnisse mit Name und Jahrgang auf ihrer Website veröffentlichen. Erläutern Sie zwei datenschutzrechtliche Grundsätze, die dabei zu beachten sind.
Musterlösung anzeigen (zählt als erledigt)
Name und Jahrgang sind personenbezogen. Zweckbindung: Die Daten wurden für die Wertung erhoben; eine Veröffentlichung ist ein neuer Zweck und braucht eine Rechtsgrundlage, bei Minderjährigen die Einwilligung der Sorgeberechtigten. Datenminimierung: Für die Ergebnisliste genügt z. B. Vorname und Team — der Jahrgang ist nur nötig, wenn nach Altersklassen gewertet wird.
Bestimmen Sie SELECT AVG(Platz) FROM Start WHERE RennenNr = 'R1'; auf zwei Nachkommastellen.
