Datenbankübung Sport

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üssel
  • per_vorname
  • per_name
  • per_gebdat: Geburtsdatum
  • per_geschlecht: w-weiblich, m-männlich
  • per_masse: in kg
  • per_groesse: in cm
  • per_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 Nation
  • nat_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.

Tabelle Person

Tabelle Person – sp_person

Tabelle Nation

Tabelle Nation – sp_nation

Beziehungsansicht:

1:n Beziehung Nation -> Person

1:n Beziehung Nation -> Person

Daten erfassen: mindestens 10 Sportler aus mindestens 4 Ländern

Abfragen testen – zum Beispiel:

  1. alle Sportlerinnen aus Europa
  2. alle Sportler aus Frankreich
  3. SportlerInnen, die nach 1980 geboren wurden
  4. Mittelwert der Masse über alle Sportler aus Deutschland
  5. Mittelwert der Größe der Sportler je Land
  6. die größten Sportler jeder Nation
  7. Anzahl der Sportlerinnen je Land
  8. Länder ohne Sportlerinnen oder Sportler
  9. Sportler nach Größe sortiert
  10. Älteste Sportlerinnen oder Sportler je Land

Ergänzung der Sportarten

Die Sportarten werden in einer weiteren Tabelle sp_art erfasst:

  • art_id: Primärschlüssel
  • art_bezeichnung: Slalom, Super-G, Hochsprung, Weitsprung, …
  • art_jahreszeit: Sommer, Winter, ganzjährig, Halle
  • art_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.

m:n Beziehung Person - Sportart

m:n Beziehung Person – Sportart

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.