| Spaltenname | Datentyp | Constraints | Beschreibung |
|---|---|---|---|
| code | TEXT | PRIMARY KEY | Ländercode bzw. Nationalitätscode |
| name | TEXT | Name des Landes | |
| continent | TEXT | Kontinent | |
| region | TEXT | Region |
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
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.
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 |