Nelly
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
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
- Entitäten:
- Mitglied: angemeldete Personen im Fitnessstudio
- Vertrag: abgeschlossene Mitgliedsverträge (z.B Bronze, Silber, Gold)
- Kurs: angebotene Fitnesskurse des Studios
- 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
- 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
- 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
Ausgaben aller Tabellen
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;
