🎫

SQL-Kiosk Ticketshop

Ein vollständiges Datenbank-Projekt zur Verwaltung eines Ticketshop-Systems mit MySQL

MySQL Datenbank-Design SQL Queries Stored Procedures Trigger

Projektübersicht

Das SQL-Kiosk Projekt ist eine umfassende Datenbanklösung für ein Ticketshop-System. Es demonstriert fortgeschrittene Datenbank-Konzepte und SQL-Techniken zur Verwaltung von Kunden, Veranstaltungen, Tickets und Bestellungen.

8
Datenbank-Tabellen
15+
SQL Queries
5
Stored Procedures
3
Trigger

Datenbank-Schema

Das Datenbankschema umfasst folgende Haupttabellen:

📋 kunden

  • KundenID (PK)
  • Name, Vorname
  • Email, Telefon
  • Adresse, Stadt, PLZ

🎭 veranstaltungen

  • VeranstaltungID (PK)
  • Name, Beschreibung
  • Datum, Uhrzeit
  • OrtID (FK), KategorieID (FK)

🎫 tickets

  • TicketID (PK)
  • VeranstaltungID (FK)
  • Preis, Kategorie
  • Verfügbarkeit, Sitzplatz

🛒 bestellungen

  • BestellungID (PK)
  • KundenID (FK)
  • Bestelldatum, Gesamtpreis
  • Status, Zahlungsmethode

🏢 orte

  • OrtID (PK)
  • Name, Adresse
  • Kapazität, Stadt

📁 kategorien

  • KategorieID (PK)
  • Name, Beschreibung

Implementierte SQL-Features

⚙️ Stored Procedures

1. NeueBestellung()

Erstellt eine neue Bestellung mit automatischer Berechnung des Gesamtpreises. Prüft Ticket-Verfügbarkeit und aktualisiert den Bestand.

CALL NeueBestellung(KundenID, TicketID, Anzahl);

2. KundeRegistrieren()

Registriert einen neuen Kunden mit Validierung der E-Mail und Telefonnummer.

CALL KundeRegistrieren(Name, Vorname, Email, Telefon, Adresse, Stadt, PLZ);

3. VeranstaltungSuchen()

Sucht Veranstaltungen nach Kategorie, Datum oder Ort mit flexiblen Suchkriterien.

⚡ Trigger

1. BestandAktualisieren (AFTER INSERT)

Aktualisiert automatisch die Ticket-Verfügbarkeit nach jeder Bestellung.

2. PreisValidierung (BEFORE INSERT/UPDATE)

Stellt sicher, dass Ticketpreise positiv sind und verhindert ungültige Werte.

3. BestellungLog (AFTER UPDATE)

Protokolliert alle Änderungen an Bestellungen für Audit-Zwecke.

🔍 Komplexe Queries

Umsatzanalyse pro Veranstaltung

SELECT v.Name, COUNT(b.BestellungID) AS AnzahlBestellungen,
SUM(b.Gesamtpreis) AS Gesamtumsatz
FROM veranstaltungen v
JOIN tickets t ON v.VeranstaltungID = t.VeranstaltungID
JOIN bestellungen b ON t.TicketID = b.TicketID
GROUP BY v.VeranstaltungID
ORDER BY Gesamtumsatz DESC;

Top-Kunden nach Bestellwert

SELECT k.Name, k.Vorname, COUNT(b.BestellungID) AS Bestellungen,
SUM(b.Gesamtpreis) AS Gesamtwert
FROM kunden k
JOIN bestellungen b ON k.KundenID = b.KundenID
GROUP BY k.KundenID
HAVING Gesamtwert > 100
ORDER BY Gesamtwert DESC
LIMIT 10;

Verfügbare Tickets mit Veranstaltungsdetails

SELECT v.Name, v.Datum, o.Name AS Ort,
t.Kategorie, t.Preis, t.Verfügbarkeit
FROM tickets t
JOIN veranstaltungen v ON t.VeranstaltungID = v.VeranstaltungID
JOIN orte o ON v.OrtID = o.OrtID
WHERE t.Verfügbarkeit > 0 AND v.Datum >= CURDATE()
ORDER BY v.Datum ASC;

Technische Umsetzung

🗄️ Datenbank-Design

  • ✓ Normalisierung bis 3. Normalform (3NF)
  • ✓ Referentielle Integrität mit Foreign Keys
  • ✓ Indizes für Performance-Optimierung
  • ✓ Check Constraints für Datenvalidierung

⚙️ Automatisierung

  • ✓ Stored Procedures für Geschäftslogik
  • ✓ Trigger für automatische Updates
  • ✓ Views für vereinfachte Abfragen
  • ✓ Transaktionen für Datenkonsistenz

🔐 Sicherheit

  • ✓ Benutzer-Rollen und Berechtigungen
  • ✓ Input-Validierung in Stored Procedures
  • ✓ Audit-Logs für Änderungsverfolgung
  • ✓ Backup-Strategie implementiert

Hauptfunktionen

👥

Kundenverwaltung

Vollständige Verwaltung von Kundendaten mit Validierung und Duplikatsprüfung

🎭

Veranstaltungen

Flexible Veranstaltungsverwaltung mit Kategorien, Orten und Zeitplanung

🎫

Ticketverwaltung

Automatische Bestandsverwaltung mit Kategorien und Preisstufen

🛒

Bestellsystem

Komplettes Bestellmanagement mit Status-Tracking und Zahlungsabwicklung

📊

Reporting

Umfangreiche Reports und Analysen für Umsatz, Kunden und Veranstaltungen

🔄

Automatisierung

Trigger und Procedures für automatische Prozesse und Validierungen

Verwendete Technologien

MySQL 8.0 SQL Stored Procedures Trigger Views Transactions ER-Modellierung

Gelernte Konzepte

Dieses Projekt demonstriert ein tiefes Verständnis von Datenbank-Design und SQL-Entwicklung:

📐 Datenbankdesign

  • Entity-Relationship-Modellierung (ERM)
  • Normalisierung und Denormalisierung
  • Primär- und Fremdschlüssel
  • Indizes und Performance

💻 SQL-Entwicklung

  • Komplexe JOIN-Operationen
  • Aggregatfunktionen und GROUP BY
  • Subqueries und CTEs
  • Window Functions

⚙️ Automatisierung

  • Stored Procedures mit Parametern
  • Trigger für Event-Handling
  • Error Handling und Validierung
  • Transaktionsmanagement

Weitere Projekte entdecken

Schaue dir meine anderen Projekte an oder kontaktiere mich für eine Zusammenarbeit.

Alle Projekte Kontakt aufnehmen