Vor dem Erstellen des ERD muss man überlegen, welche Entitäten mit welchen Attributen notwendig sind.
In jedem Jahr gibt es in der Formel 1 Plätze für die besten Fahrer und die beste Teams. Die Reihenfolge wird durch die Summe von Punkten festgelegt, die in Einzelrennen erreicht worden.
In der Datenbank sollen die Fahrer und die Teams sowie die Nationen, aus denen sie stammen, geführt werden. Für jede Saison werden die jeweils ersten drei Plazierungen mit den erreichten Punkten geführt. Zur Vereinfachung der Struktur werden die Einzelrennen nicht mit einbezogen.
Aufgabe: Erstellen Sie ein erstes ERD für die Fahrer, die Teams und die Nationen.
Jeder Fahrer gehört zu einer Nation. Zwischen den beiden Tabellen wird über die nation_id eine Beziehung hergestellt.
fahrer_id | Name | nation_id | Nation |
---|---|---|---|
1 | Verstappen | 1 | Niederlande |
2 | Hamiltion | 2 | Großbritanien |
3 | Bottas | 3 | Finnland |
4 | Vettel | 4 | Deutschland |
5 | Rosberg | 4 | Deutschland |
6 | Ricciardo | 5 | Australien |
7 | Alonso | 6 | Spanien |
8 | Räikkönen | 3 | Finnland |
9 | Button | 2 | Großbritanien |
10 | Webber | 5 | Australien |
Dazu muss in der Tabelle fahrer eine zusätzliche Spalte mit dem Attribut nation_id erzeugt werden. Die SQL-Anweisung lautet:
ALTER TABLE fahrer
ADD nation_id INT
Welche Bedeutung hat der Zusatz INT hinter dem Namen der neuen Spalte?
Als nächstes müssen die Werte für die nation_id in die Tabelle fahrer eingetragen werden. Der Befehl für den ersten Eintrag lautet:
UPDATE fahrer
SET nation_id = 1
WHERE fahrer_id=1
Nutzen Sie den Befehl für alle weiteren Einträge.
Wenn alles richtig gemacht wurde, muss eine Abfrage über die beiden Tabellen die folgendeTabelle zeigen. Überprüfen Sie das durch eine entsprechende Abfrage.
Im nächsten Schritt werden den Teams die Nationen zugeordnet.
team_id | Name | nation_id | Nation |
---|---|---|---|
1 | Mercedes | 4 | Deutschland |
2 | Reb Bull | 2 | Großbritanien |
3 | Ferrari | Italien | |
4 | McLaren | 2 | Großbritanien |
5 | Willimas | 2 | Großbritanien |
6 | Brawn | 2 | Großbritanien |
7 | BMW Sauber | 4 | Deutschland |
8 | Renault | Frankreich |
Da Italien und Frankreich noch nicht in der Tabelle nation enthalten sind, müssen sie vorher noch eingetragen werden.
INSERT INTO nation (land)
VALUES ('Italien')
Die nation_id muss nicht mit angegeben werden, da dieses Feld auf autoinkrement eingestellt wurde. Damit zählt es beim Eintrag einen neuen Datensatzes automatisch weiter.
Überprüfen Sie durch eine entsprechende Abfrage, ob die Zuordnung der Teams und Nationen richtig ist.
Da sowohl bei den Weltmeistern als auch bei den Teams die Jahre mit verknüpft sind, werden die Jahreszahlen in einer extra Tabelle geführt. Importieren Sie in Ihre Datenbank die Tabelle saison.csv
Bauen Sie diese Entität in das ERD mit ein.
Sie werden merken, dass eine zusätzliche Tabelle saison_fahrer.csv notwendig ist. Importieren Sie auch diese bereits fertige Tabelle in die Datenbank ein. Es muss jetzt eine Abfrage möglich sein, die die folgende Tabelle anzeigt. Im Bild ist nur der erste Teil der Tabelle zu sehen.