Skip to main content
Datenbankdesign, Normalisierung und Integrität
Alle Lehrpfade4. Datenbanken und SQL
intermediate+30 XP

Datenbankdesign, Normalisierung und Integrität

💡 Die Kernidee im Alltag:

"Redundanz reduzieren und Regeln in der Datenbank ausdrücken."

Konzepte verständlich erklärt (für Einsteiger jeden Alters)

Lernziele

Redundanz reduzieren und Regeln in der Datenbank ausdrücken. Nach dieser Lektion kannst du das Konzept erklären, ein kleines Beispiel umsetzen und typische Grenzen benennen.

Erklärung

Normalisierung trennt Fakten, die unabhängig geändert werden. Constraints wie NOT NULL, UNIQUE, CHECK und Fremdschlüssel sichern Invarianten nahe an den Daten. Eine Transaktion fasst zusammengehörige Änderungen als Einheit zusammen.

Schrittweises Beispiel

Speichere Kundendaten einmal in customers und referenziere sie aus vielen Bestellungen. Bei zwei zusammengehörigen Updates gilt: beide committen oder beide zurückrollen.

schema = "CREATE TABLE authors (id INTEGER PRIMARY KEY, name TEXT NOT NULL);\nCREATE TABLE books (id INTEGER PRIMARY KEY, author_id INTEGER NOT NULL REFERENCES authors(id), title TEXT NOT NULL);"
print(schema)

Zusammenfassung

Integrität gehört sowohl in Anwendungslogik als auch in deklarative Datenbankregeln.

Lerncheck & Übung

Etwa 35 Minuten · intermediate

Das lernst du

  • Erkläre die Kernidee von „Datenbankdesign, Normalisierung und Integrität“ in eigenen Worten.
  • Wähle eine passende Technik für einen konkreten Anwendungsfall.
  • Erkenne mindestens eine typische Fehlerquelle.

Voraussetzungen

  • Keine Zugriffsvoraussetzungen. Vorwissen wird in der Erklärung eingeführt.

Häufige Fehler

  • App-Validierung ersetzt keinen Datenbank-Constraint, da andere Clients schreiben können. Zu starke Normalisierung kann Abfragen komplizierter machen; messe echte Anforderungen.

Wissenscheck

Was schützt `UNIQUE(email)`?

Praktische Aufgabe

Skizziere Tabellen `authors` und `books` mit Fremdschlüssel für viele Bücher pro Autor.

Die Aufgabe entwirft SQL-Abfragen. In dieser Plattform ist keine SQL-Laufzeit aktiviert; der Editor führt eine harmlose Python-Darstellung aus und sendet SQL nicht an eine Datenbank.

KI-Power-Tipp für Entwickler
Empfohlener Assistent: Optionaler Lernpartner (ohne Verbindung aus dieser Plattform)
Golden Prompt für deinen Editor:
Prüfe meine Erklärung zu „Datenbankdesign, Normalisierung und Integrität“: Nenne eine fehlende Annahme und stelle mir eine Gegenfrage.
Qualitäts-Prüfung: Vergleiche die Antwort mit dem Beispiel und prüfe Randfälle eigenständig.

Interaktive Übung & lokaler Testlauf

Skizziere Tabellen `authors` und `books` mit Fremdschlüssel für viele Bücher pro Autor.

Hinweise auf Wunsch anzeigen
  • Zerlege die Aufgabe in Eingabe, Verarbeitung und erwartete Ausgabe.
  • Prüfe auch einen leeren oder ungültigen Fall.
Isolierte Ausführungsumgebung