Aufgaben zur LK-Vorbereitung
Aufgabe 2
-
Die Musik-Streaming-App „BeatBox“
-
Ein Startup entwickelt eine neue Musik-App und bittet dich um Hilfe bei der Datenbankstrukturierung. Die App funktioniert wie folgt:
-
- Es gibt Nutzer, die sich mit einem User-Tag (ID), ihrer E-Mail-Adresse und einem gewählten Passwort registrieren.
- Die Nutzer können Playlists erstellen. Jede Playlist hat eine Playlist-ID, einen Titel (z. B. „Sommer Hits“) und ein Erstellungsdatum.
- Ein Nutzer kann mehrere Playlists anlegen, aber jede Playlist gehört fest zu genau dem Nutzer, der sie erstellt hat.
- In der Datenbank sind Tausende von Songs gespeichert. Jeder Song wird durch eine Song-ID, den Titel und die Dauer in Sekunden identifiziert.
- Ein Song kann in beliebig vielen Playlists enthalten sein, und eine Playlist besteht natürlich aus vielen Songs.
- Zusätzlich gibt es Interpreten (Künstler). Ein Interpret wird mit einer Künstler-ID und seinem Künstlernamen gespeichert.
- Zur Vereinfachung nehmen wir an: Jeder Song gehört zu genau einem Haupt-Interpreten. Ein Interpret hat aber in der Regel viele Songs veröffentlicht.
-
Arbeitsaufträge:
-
- ERM: Modelliere den Sachverhalt als Entity-Relationship-Modell (ERM) in der Krähenfuß-Notation oder Chen-Notation. Achte darauf, alle Entitätstypen und Beziehungen korrekt darzustellen.
- RM: Leite aus deinem Diagramm das Relationen-Schema ab. Notiere die Schemata in der Textschreibweise: Tabellenname(Primärschlüssel, Attribut1, Fremdschlüssel, ...)
- Zusatzfrage: Warum entsteht beim Überführen der Beziehung zwischen Playlists und Songs eine neue, zusätzliche Tabelle, während dies bei der Beziehung zwischen Nutzer und Playlists nicht passiert? Begründe kurz.