Mariella

Aus ProgrammingWiki
Archivierte Version vom 2026-02-03T17:04:31+00:00. Aktuelle Version

Inhaltsverzeichnis

Musikdienst Spotify

Ziel der Datenbank

Spotify ist ein digitaler Streamingdienst für Musik, Podcasts und Videos, mit dem du Zugriff auf Millionen Songs und andere Inhalte von kreativen Köpfen aus der ganzen Welt hast.
Der Sinn dieser Datenbank ist die strukturierte Speicherung, Verwaltung und Auswertung von Nutzern, Songs und Playlists, um Musikinhalte effizient zu gestalten und die personalisierte Nutzung zu ermöglichen.'''

Modellierung in einem ER-Modell

Mariella_Screenshot_2026-01-21_103301.png

Transformation in das Relationenmodell

  • Song (Song_ID, Artist, Titel, Länge, Album)
  • Nutzer (Nutzer_ID, Nutzername, Follower, Premium)
  • Playlist (Playlist_ID, Erstellungsdatum, Name)
  • zugehören -> Playlistinhalt (Song_ID, Playlist_ID, Position)
  • hören -> Hörerverlauf (Nutzer_ID, Song_ID, Datum, Uhrzeit, Gerät)

Alle Songs, die die Playlist Chill Vibes für Sonntage beinhält

Die Länge der Playlist Workout Motivation (in Sekunden) ermitteln => So lang sollte das Workout gehen ;)

Der meistgehörte Song (wird wichtig für Spotify-Awards)

Die meistgehörten Songs von PartyQueen => Spotify-Wrapped

Ausgabe der beliebtesten Geräte zum Abspielen

Kritische Reflexion und Vorgehensweise

Mein Ziel war es, die Funktionsweise der App Spotify möglichst genau nachzustellen. Dabei muss man allerdings sagen, dass Spotify weit aus komplexer ist und über viel mehr Funktionen, Songs bzw. weiteren Inhalten verfügt. Das war in der gegebenen Zeit allerdings nicht umsetzbar. Deshalb ist die gezeigte Datenbank schlichtweg eine Vereinfachung zur Veranschaulichung. Mögliche Erweiterungen könnten u.a. in Tabellen für Artists, Albums oder Genres erscheinen, welche das Modell immer näher an die Realität anpassen würden. Bei der Erstellung des gesamten Modells habe ich mir zunächst Gedanken über das ERM und die dazugehörigen Kardinalitäten gemacht. Daraufhin war es für mich wichtig, direkt festzulegen, was die Tabellen darstellen, die bei n:m Kardinalitäten aus Relationen entstehen. Außerdem habe ich in meiner Spotify-App nach Eigenschaften gesucht, die später Attribute wurden. Bei dem Umschreiben in das RM fiel mir auf, dass ich im ERM bei der Entität „Song“ das Attribut „Titel“ vergessen habe. Dieses habe ich beim Fortfahren einfach ergänzt, damit die Abfragen bzw. deren Ausgaben später auch Sinn ergeben. Außerdem habe ich die Attribute des Playlistinhalts noch verändert, da es sinnvoller war, die Dauer später ausrechnen zu lassen und dafür die Position der Songs direkt anzugeben. Für das Programmieren habe ich mich an gegebenen Seiten (Learningview-> SQL-Codes, Programmingwiki -> bereits erstellte Tabellen wie Bibliothek) und fertiggestellten Seiten aus vergangenen Jahren orientiert. Für eine kreative Songauswahl bzw. Namensgebung habe ich künstliche Intelligenz hinzugezogen, um Zeit zu sparen, in der man ewig überlegen bzw. suchen würde. Bevor ich die Ausgaben in meiner Seite eingefügt habe, habe ich diese auf der zur Verfügung gestellten Übungsseite auf ihre Funktion getestet. Die Ideen dafür kamen mir durch meine eigene Spotify-Nutzung bzw. mein Wissen über diese App. Gesamt kann man sagen, dass SQL das Darstellen und Abfragen von Datensätzen stark vereinfacht und bei der Nutzung hilft. Allerdings benötigt es eine strukturierte und durchdachte Planung von Anfang an. Bei diesen umfangreichen Projekten wie Spotify kann das sehr viel Zeit beanspruchen. Mir persönlich hat es aber den Umgang mit SQL sehr verbildlicht und alltäglicher gemacht, wodurch ich die gesamten Abläufe des Programmierens besser verstehe und selbst anwenden kann.


Quellen

https://support.spotify.com/de/article/what-is-spotify/