Lösung: Schweizer Regionen

Crow's-Foot-Diagramm Schweizer Regionen Klicken Sie aufs Bild, um es vergrössert anzuzeigen.

Fremdschlüssel

Mehrere Fremdschlüssel in derselben Tabelle sind kein Fehler: Sie treten immer dann auf, wenn eine Entität an zwei unabhängigen 1:n-Beziehungen die „viele“-Seite ist.

Besonderheit: Der Primärschlüssel von kanton ist kantons_kennzeichen CHAR(2) – kein INT wie in allen anderen Tabellen. Das ist ein sogenannter natürlicher Schlüssel: „ZH“, „BE“, „GR“ sind von Natur aus eindeutig und ändern sich nie, eine künstliche Zusatz-ID wäre hier unnötig. Der Fremdschlüssel in gemeinde übernimmt exakt denselben Typ (CHAR(2)) – Primär- und Fremdschlüssel müssen immer vom gleichen Datentyp sein.

Datentypen

Spalte Typ Begründung
kantons_kennzeichen CHAR(2) Natürlicher Schlüssel, immer genau 2 Zeichen („ZH“, „BE“ …)
gemeinde_id, anlage_id INT Ganzzahlige, künstliche IDs
einwohnerzahl INT Ganze Zahl
flaeche DECIMAL(6,2) Fläche mit Nachkommastellen, exakt – der grösste Kanton (GR, ca. 7105 km²) passt in 4 Vorkommastellen
plz CHAR(4) Einzelne, repräsentative Postleitzahl
name VARCHAR Textlänge variabel

SQL: Tabellen erstellen

Fremdschlüssel-Spalten sind angelegt, aber noch ohne FOREIGN-KEY-Constraint – den setzen wir später im Modul.

CREATE TABLE kanton (
  kantons_kennzeichen CHAR(2) PRIMARY KEY,
  name VARCHAR(20) NOT NULL,
  einwohnerzahl INT,
  flaeche DECIMAL(6,2)
);
 
CREATE TABLE kva (
  anlage_id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(20) NOT NULL,
  ort VARCHAR(20)
);
 
CREATE TABLE gemeinde (
  gemeinde_id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(20) NOT NULL,
  einwohnerzahl INT,
  plz CHAR(4),
  kantons_kennzeichen CHAR(2),
  anlage_id INT
);