Zum Inhalt springen

Datenbanken und SQL — so werden strukturierte Daten gespeichert und abgerufen

Tabellen, Schlüssel und die Befehle, die die Datenbank abfragen

Einleitung

Eine relationale Datenbank speichert Daten strukturiert in Tabellen, ähnlich wie eine Tabellenkalkulation, aber mit Regeln dafür, wie die Tabellen zusammenhängen. Die Datenbank sorgt dafür, dass die Daten konsistent bleiben, selbst wenn viele Benutzer gleichzeitig lesen und schreiben, und dass man große Datenmengen über Indizes schnell finden und abrufen kann.

Tabellen, Zeilen und Spalten

Eine Tabelle repräsentiert eine Art von Daten — z. B. Kunden, Bestellungen oder Benutzer. Jede Spalte hat einen Namen und einen Datentyp (Text, Zahl, Datum), und jede Zeile ist ein konkreter Datensatz. Ein Primärschlüssel (primary key) ist eine Spalte oder eine Kombination von Spalten, die jede Zeile eindeutig identifiziert — typischerweise eine laufende Nummer, die nie wiederverwendet wird, auch wenn die Zeile gelöscht wird.

Zusammenhänge zwischen Tabellen

Daten werden bewusst über mehrere Tabellen verteilt, um zu vermeiden, dieselbe Angabe an mehreren Stellen zu speichern — das nennt man Normalisierung. Ein Fremdschlüssel (foreign key) in einer Tabelle verweist auf den Primärschlüssel in einer anderen, so verweist etwa eine Auftragszeile auf die Kundennummer, zu der der Auftrag gehört. Normalisierung macht es leichter, eine Angabe an einer Stelle zu korrigieren, und verringert das Risiko, dass sich Daten in zwei Tabellen widersprechen.

SQL — die Sprache, die die Datenbank befragt

  • 01SELECT holt Daten aus einer oder mehreren Tabellen, ggf. mit Bedingungen (WHERE) und Sortierung
  • 02INSERT fügt eine neue Zeile in eine Tabelle ein
  • 03UPDATE ändert Werte in vorhandenen Zeilen
  • 04DELETE entfernt Zeilen
  • 05JOIN kombiniert Daten aus mehreren Tabellen anhand ihres Schlüsselzusammenhangs, z. B. Kunden zusammen mit ihren Bestellungen
BefehlWas sie bewirkt
SELECT navn FROM kunder WHERE by = 'Odense'Holt die Namen von Kunden in Odense
INSERT INTO kunder (navn, by) VALUES ('A', 'Vejle')Fügt einen neuen Kunden hinzu
UPDATE kunder SET by = 'Odense' WHERE id = 12Korrigiert die Stadt bei Kunde Nummer 12

Eine gut entworfene Datenbank macht die richtigen Fragen leicht zu stellen und die falschen unmöglich zu erschleichen.

Fachliche Grundregel in der Systementwicklung