Nelly

Aus ProgrammingWiki
Archivierte Version vom 2026-01-31T10:13:03+00:00. Aktuelle Version

Inhaltsverzeichnis

Datenbank - Fitnessstudio

Erstellen und Modellieren von meinem Datenbankprojekt

Ziel der Datenbank

Diese Datenbank dient zur Strukturierung und Verwaltung der Daten eines Fitnessstudios, indem Mitglieder, deren Verträge sowie angebotene Kurse übersichtlich erfasst und miteinander verknüpft werden. Zusätzlich ermöglicht sie durch die Teilnahme Tabelle die Dokumentation, welche Mitglieder an welchen Kursen teilnehmen und unterstützt so Auswertungen und organisatorische Prozesse.

Modellierung in einem ERM

Nels_Screenshot_2026-01-26_105952.jpg


Transformation in das Relationenmodell (= die zu erstellende Tabellen)

  • Mitglied (Mitglied_ID, Vorname, Nachname, Geschlecht, Ort, Straße, Status)
  • Vertrag (Vertrag_ID, Startdatum, Enddatum, Laufzeit, Monatsbeitrag, Mitglied_ID )
  • Kurs (Kurs_ID, Kursname, Trainername, Raum, Wochentag, Uhrzeit)
  • Teilnahme(Mitglied_ID, Kurs_ID)

Erläuterungen des Datenbank-Modells

  1. Entitäten:
    • Mitglied: angemeldete Personen im Fitnessstudio
    • Vertrag: abgeschlossene Mitgliedsverträge (z.B Bronze, Silber, Gold)
    • Kurs: angebotene Fitnesskurse des Studios
  2. Attribute:
    • beschreiben die Eigenschaften einer Entität
    • Mitglied:lle persönlichen und organisatorischen Informationen
    • Vertrag: Vertragsdaten eines Mitglieds, wie Laufzeit oder monatilicher Beitrag
    • Kurs: Angaben wie Kursname, Trainer oder Termin
  3. Primär- und Fremdschlüssel
    • Primärschlüssel identifizieren den Datensatz eindeutig (z.B Mitglied_ID)
    • Mitglied_ID ist im Vertrag als Fremdschlüssel enthalten, um den Vertrag einem Mitglied zuzuordnen
  4. Beziehungen und Kardinalitäten
    • Eine Beziehung beschreibt wie Entitäten miteinander verknüpft sind
    • Kardinalitäten geben an, wie viele Entitäten an der Beziehung beteiligt sind
    • Zwischen Mitglied und Vertrag besteht eine 1:n Beziehung, da ein Mitglied im Laufe der Zeit mehrere Verträge besitzen kann (Gold, Silber, Bronze = Vertragsart) aber ein Vertrag nur einem Mitglied zugeordnet ist
    • Zwischen Mitglied und Kurs eine n:m Beziehung, da ein Mitglied mehrere Kurse besuchen kann und ein Kurs von mehreren Mitgliedern besucht wird
    • die n:m Beziehung wird in einer dritten Tabelle ufgelößt, wodurch die Datenbank übersichtlich, redundantfrei und erweiterbar bleibt

Datenbank

Abfragen

Ausgabe aller Mitglieder mit Vorname und Nachname

SELECT Kursname, Trainername FROM Kurs;

SELECT Vertragsart, Monatsbeitrag FROM Vertrag;

SELECT Mitglied.Vorname, Mitglied.Nachname, Vertrag.Vertragsart FROM Mitglied JOIN Vertrag ON Mitglied.M_ID = Vertrag.Mitglied_ID;

SELECT Mitglied.Vorname, Mitglied.Nachname FROM Mitglied JOIN Teilnahme ON Mitglied.M_ID = Teilnahme.Mitglied_ID JOIN Kurs ON Teilnahme.Kurs_ID = Kurs.Kurs_ID WHERE Kurs.Kursname = 'Yoga';

SELECT Mitglied.Vorname, Mitglied.Nachname, COUNT(Teilnahme.Kurs_ID) AS Anzahl_Kurse FROM Mitglied JOIN Teilnahme ON Mitglied.M_ID = Teilnahme.Mitglied_ID GROUP BY Mitglied.M_ID, Mitglied.Vorname, Mitglied.Nachname HAVING COUNT(Teilnahme.Kurs_ID) > 1;

SELECT Mitglied.Vorname, Mitglied.Nachname, COUNT(DISTINCT Vertrag.Vertragsart) AS Anzahl_Vertragsarten FROM Mitglied JOIN Vertrag ON Mitglied.M_ID = Vertrag.Mitglied_ID GROUP BY Mitglied.M_ID, Mitglied.Vorname, Mitglied.Nachname HAVING COUNT(DISTINCT Vertrag.Vertragsart) >= 2;