Es ist eine Datenbank mit MySQL zum Thema Sport zu erstellen, die folgende abbilden kann: Eine Sportlerin bzw. ein Sportler startet für genau eine Nation und betreibt eine oder mehrere Sportarten.
Zunächst benötigt man eine
Tabelle für Sportlerinnen und Sportler
in der die wichtigsten Daten verwaltet werden können.
Tabellenname: sp_person
per_id
: Primärschlüsselper_vorname
per_name
per_gebdat
: Geburtsdatumper_geschlecht
: w-weiblich, m-männlichper_masse
: in kgper_groesse
: in cmper_info
: allgemeine Informationen
Tabelle für die Nationen
Tabellenname: sp_nation
nat_id
: Hier wird für den Primärschlüssel keine INT-Zahl vergeben, sondern der bei Sportveranstaltungen international verwendete Ländercode des IOC mit drei Buchstaben.nat_name
: Name der Nationnat_kontinent
:nat_info
: allgemeine Informationen
Für die Beziehung zwischen den beiden Tabellen gilt:
- Jede Person startet für genau eine Nation.
- Für jede Sport-Nation können eine oder mehrere Personen bei einem Bewerb starten
Die Beziehung (Relation) zwischen den beiden Tabellen sp_nation
und sp_person
ist daher vom Typ 1:n. Um diese Relation herzustellen, wird der Wert eines Primär-Schlüssels der Tabelle sp_nation
als Fremd-Schlüssel in den Datensatz der Person eingetragen. Die Tabelle sp_person
ist daher um das Feld
per_fid_nation
: Fremdschlüssel (foreign id)
zu ergänzen. Dabei ist zu beachten, dass der Datentyp genau jenem von nat_id entspricht. In diesem Fall also VARCHAR(3) für die drei Buchstaben des IOC-Codes.
Beziehungsansicht:
Daten erfassen: mindestens 10 Sportler aus mindestens 4 Ländern
Abfragen testen – zum Beispiel:
- alle Sportlerinnen aus Europa
- alle Sportler aus Frankreich
- SportlerInnen, die nach 1980 geboren wurden
- Mittelwert der Masse über alle Sportler aus Deutschland
- Mittelwert der Größe der Sportler je Land
- die größten Sportler jeder Nation
- Anzahl der Sportlerinnen je Land
- Länder ohne Sportlerinnen oder Sportler
- Sportler nach Größe sortiert
- Älteste Sportlerinnen oder Sportler je Land
Ergänzung der Sportarten
Die Sportarten werden in einer weiteren Tabelle sp_art
erfasst:
art_id
: Primärschlüsselart_bezeichnung
: Slalom, Super-G, Hochsprung, Weitsprung, …art_jahreszeit
: Sommer, Winter, ganzjährig, Halleart_kategorie
: Überbegriff wir Schifahren Alpin, Leichtathletik, …art_info
: allgemeine Informationen zur Sportart
Ergänzt man nun die Tabelle sp_person
um die Spalte für die Sportart, so tritt diese dort als Fremdschlüssel für per_fid_art
auf. Das wäre eine 1:n-Beziehung. Allerdings kann dann jeder Person nur eine einzige Sportart zugeordnet werden.
Da jede Person mehrere Sportarten ausüben kann und jede Sportart natürlich auch von mehreren Personen ausgeübt wird ist die Beziehung zwischen diesem beiden Tabellen vom Typ m:n. Dieser Beziehungstyp kann nur durch eine weitere Zwischentabelle (Beziehungstabelle) aufgelöst werden. Dadur entstehen zwei 1:n Beziehungen.
Sie Struktur in der vorigen Abbildung kann als Satz „Person betreibt Sportart“ aufgefasst werden. Hier steht jedes Wort für eine Tabelle. Subjekt „Person“ und Objekt „Sportart“ werden durch die neue Tabelle für das Prädikat „betreibt“ in Beziehung gesetzt. In dieser neuen Tabelle werden die Primärschlüsselfelder art_id
und per_id
als Fremdschlüssel eingetragen.