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:
    1. 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.
    2. RM: Leite aus deinem Diagramm das Relationen-Schema ab. Notiere die Schemata in der Textschreibweise: Tabellenname(Primärschlüssel, Attribut1, Fremdschlüssel, ...)
    3. 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.