Relationale Datenbanken
Relationale Datenbanken
Eine relationale Datenbank teilt Daten in verknüpfte Tabellen. Statt einer riesigen Tabelle hat hotel_db gosti, sobe, rezervacije und placanja — jede mit klarer Rolle.
Beziehungen nutzen Primär- und Fremdschlüssel. Eine Reservierung referenziert gost_id und soba_id statt Namen zu kopieren. In hotel_db teilen Rezeption, Finanzen und Housekeeping gosti, sobe, rezervacije, placanja und zaposleni — jede Änderung muss für alle Module konsistent bleiben.
Im Detail
Normalisierung reduziert Redundanz. SQL JOIN verbindet Tabellen für vollständige Ansichten. Führen Sie das SQL-Beispiel in Workbench auf Testdaten aus, prüfen Sie EXPLAIN bei wachsenden Tabellen und dokumentieren Sie erwartete Ergebnisse.
Wichtige Punkte
- Jede Tabelle hat eine Rolle. — hotel_db-Beispiel.
- PK identifiziert eindeutig. — hotel_db-Beispiel.
- FK verknüpft Tabellen. — hotel_db-Beispiel.
- JOIN beim Lesen. — hotel_db-Beispiel.
- Modell folgt Hotelprozess. — hotel_db-Beispiel.
Praxisbeispiel
JOIN gosti und rezervacije.
SELECT g.ime, r.datum_od
FROM gosti g
JOIN rezervacije r ON r.gost_id = g.id;Häufiger Fehler
Alles in einer Tabelle weil es anfangs einfacher wirkt. Typische Folge: inkonsistente Daten, verlorene Reservierungen oder Check-in-Blockade in der Hochsaison — immer Backup vor Produktions-DDL/DML.
Zusammenfassung
Das relationale Modell ist das Fundament von hotel_db. Üben Sie erneut auf hotel_db, bis Sie jede Ergebniszeile erklären und mit Hotelprozessen (Check-in, Abrechnung, Reporting) verbinden können.
Hinweis: Tipp: versionierte .sql-Skripte (hotel_schema.sql, seed.sql) in Git pflegen — Reproduzierbarkeit ist wichtig, wenn mehrere am gleichen hotel_db-Modell arbeiten.
