Marathon

Beschreibung

Die Datenbank marathon enthält Ergebnisse mehrerer großer internationaler Marathonveranstaltungen in relationaler Form. Sie basiert im Wesentlichen auf historische Ergebnisdateien aus dem GitHub-Repository AndrewMillerOnline/marathon-results. Die Datenbank ist für die SQL-Lehre und für analytische Fragestellungen rund um Laufveranstaltungen konzipiert, insbesondere für Joins, Aggregationen, Rankings, Zeitvergleiche und Split-Analysen.

Die Datenbank besteht aus fünf Haupttabellen: events, editions, results, splits und countries. Das relationale Modell trennt Veranstaltung, Jahresausgabe, Einzelergebnis und Zwischenzeiten sauber voneinander: Ein event hat viele editions, eine edition hat viele results und ein result kann viele splits enthalten. Die Tabelle countries dient als Lookup-Tabelle für Nationalitätscodes und ermöglicht zusätzliche Auswertungen nach Herkunftsländern.

Insgesamt umfasst die Datenbank 7 Veranstaltungen, 174 Jahresausgaben, 2.473.193 Ergebnisse und 9.522.150 Zwischenzeiten. Enthalten sind Daten zum Berlin Marathon, Boston Marathon, Chicago Marathon, Honolulu Marathon, London Marathon, New York City Marathon und Portland Marathon. Damit eignet sich die Datenbank besonders gut für lehrbezogene Fragestellungen mit realistisch großen Datenmengen.

Relationales Schema

Abbildung 1: Relationales Modell der marathon Datenbank

Tabellen

countries (346 Zeilen)

Die countries Tabelle ist eine Lookup-Tabelle für Nationalitäts- und Länderinformationen. Sie enthält pro Ländercode einen Namen sowie eine grobe geografische Einordnung nach Kontinent und Region. In der Datenbank wird sie vor allem verwendet, um Ergebnisse nach Nationalität auszuwerten oder mit Länderbezeichnungen anzureichern.

Spaltenname Datentyp Constraints Beschreibung
code TEXT PRIMARY KEY Ländercode bzw. Nationalitätscode
name TEXT Name des Landes
continent TEXT Kontinent
region TEXT Region

events (7 Zeilen)

Die events Tabelle beschreibt die Marathonveranstaltungen auf oberster Ebene. Sie enthält pro Veranstaltung einen eindeutigen Namen sowie grundlegende Kontextinformationen wie Austragungsort, Land und offizielle Website.

Spaltenname Datentyp Constraints Beschreibung
event_id INTEGER PRIMARY KEY Eindeutige ID der Veranstaltung
event_name TEXT NOT NULL Name der Marathonveranstaltung
city TEXT Austragungsort
country TEXT Land der Veranstaltung
official_url TEXT Offizielle URL der Veranstaltung

editions (174 Zeilen)

Die editions Tabelle bildet die einzelnen Jahresausgaben der Veranstaltungen ab. Dadurch lassen sich wiederkehrende Marathons sauber über Jahre hinweg modellieren und mit Jahreszahl, Datum und Ausgabenummer analysieren.

Spaltenname Datentyp Constraints Beschreibung
edition_id INTEGER PRIMARY KEY Eindeutige ID der Jahresausgabe
event_id INTEGER FOREIGN KEY Referenz auf die Veranstaltung
year INTEGER NOT NULL Jahr der Austragung
edition_date DATE Datum der Veranstaltung
edition_number INTEGER Laufende Nummer der Ausgabe

results (2.473.193 Zeilen)

Die results Tabelle ist die zentrale Faktentabelle der Datenbank. Sie enthält für jede Person und jede Jahresausgabe ein Ergebnis mit Zielzeit sowie, soweit verfügbar, weiteren Informationen wie Startnummer, Geschlecht, Altersklasse, Nationalität, Verein und Platzierungen.

Spaltenname Datentyp Constraints Beschreibung
result_id INTEGER PRIMARY KEY Eindeutige ID des Einzelergebnisses
edition_id INTEGER FOREIGN KEY Referenz auf die Jahresausgabe
bib_number TEXT Startnummer
first_name TEXT Vorname
last_name TEXT Nachname
gender TEXT Geschlecht
age_group TEXT Altersklasse
nationality TEXT Nationalität
club TEXT Verein oder Team
place_overall INTEGER Gesamtplatzierung
place_gender INTEGER Platzierung innerhalb des Geschlechts
time_finish INTERVAL Offizielle Zielzeit

splits (9.522.150 Zeilen)

Die splits Tabelle enthält vorhandene Zwischenzeiten zu einzelnen Ergebnissen. Sie ist im Long-Format organisiert und ermöglicht damit flexible Analysen zu Rennverlauf, Pace, negativen Splits oder Vergleichen zwischen Veranstaltungen und Jahren.

Spaltenname Datentyp Constraints Beschreibung
result_id INTEGER PRIMARY KEY, FOREIGN KEY Referenz auf das Einzelergebnis
split_code TEXT PRIMARY KEY Code des Zwischenpunkts, z. B. 5K oder HM
distance_km NUMERIC Distanz des Splits in Kilometern
split_time INTERVAL Gemessene Zwischenzeit
Zurück nach oben