# TP : Base de données d'un service de streaming musical
## Contexte
Vous êtes data analyst chez **Musicfy**, un service de streaming musical concurrent de Spotify et Deezer. Votre mission est d'analyser les données d'écoute pour comprendre les habitudes des utilisateurs et proposer des améliorations.
Vous disposez d'une base de données contenant les informations sur les artistes, albums, titres, utilisateurs et leurs écoutes.
---
## Objectifs
- Pratiquer les requêtes SQL sur une base de données réaliste
- Maîtriser les jointures entre plusieurs tables
- Utiliser les fonctions d'agrégation pour l'analyse de données
- Comprendre l'organisation d'une base de données relationnelle
---
## Partie 1 : Découverte de la base de données
### 1.1. Création de la base
1. Ouvrez **DB Browser for SQLite** et créez une nouvelle base de données `musicfy.db`.
2. Exécutez les requêtes suivantes pour créer les tables :
Dessinez le schéma relationnel de la base de données en identifiant :
- Les clés primaires (PK)
- Les clés étrangères (FK)
- Les relations entre les tables
---
## Partie 2 : Requêtes de base
**Pour chaque question, écrivez la requête SQL et notez le résultat.**
1. Affichez tous les artistes de la base de données.
2. Affichez le nom et le pays des artistes français.
3. Affichez les titres de tous les albums sortis après 2015.
4. Affichez les pseudos des utilisateurs ayant un abonnement premium.
5. Affichez les titres (chansons) qui durent plus de 4 minutes (240 secondes).
6. Affichez les artistes dont le genre principal est "Hip-Hop" ou "Pop".
---
## Partie 3 : Requêtes avec jointures
7. Affichez le nom des titres avec le nom de leur album.
8. Affichez le nom des titres avec le nom de l'artiste qui les a créés.
*(Indice : vous devez passer par la table ALBUMS)*
9. Affichez les albums de Daft Punk avec leur année de sortie.
10. Affichez la liste des écoutes avec le pseudo de l'utilisateur et le nom du titre écouté.
11. Affichez tous les titres des artistes français.
12. Pour chaque écoute, affichez le pseudo de l'utilisateur, le nom du titre, le nom de l'album et le nom de l'artiste.
---
## Partie 4 : Agrégations
13. Combien y a-t-il de titres dans la base de données ?
14. Quelle est la durée moyenne des titres (en secondes) ?
15. Quel est le titre le plus long ? Le plus court ?
16. Combien d'albums a sorti chaque artiste ? Affichez le nom de l'artiste et le nombre d'albums.
17. Combien d'écoutes ont été effectuées par chaque utilisateur ? Affichez le pseudo et le nombre d'écoutes.
18. Quel est le nombre total de titres par genre musical ?
*(Indice : il faut passer par ARTISTES et ALBUMS)*
---
## Partie 5 : Requêtes avancées
19. Quels sont les artistes ayant sorti plus d'un album ?
20. Quels sont les 5 titres les plus écoutés ? Affichez le nom du titre et le nombre d'écoutes.
21. Quels utilisateurs ont écouté des titres de Stromae ?
22. Quelle est la durée totale d'écoute (en minutes) par utilisateur ?
23. Quels artistes n'ont aucun titre explicite dans leurs chansons ?
24. Pour chaque pays d'utilisateur, calculez le nombre d'écoutes et la durée totale d'écoute.
---
## Partie 6 : Analyse business
Le département marketing vous demande des analyses pour améliorer le service.
25.**Taux de conversion** : Combien d'utilisateurs ont un abonnement payant (premium, famille ou étudiant) vs gratuit ?
26.**Artistes populaires en France** : Quels artistes sont les plus écoutés par les utilisateurs français ?
27.**Recommandations** : Trouvez les utilisateurs qui ont écouté Daft Punk mais pas Stromae (ces utilisateurs pourraient aimer Stromae).
28.**Contenu explicite** : Quel pourcentage des titres est marqué comme explicite ?
29.**Rétention** : Quels utilisateurs inscrits avant 2021 ont écouté de la musique en janvier 2024 ?
30.**Rapport final** : Créez une vue synthétique montrant pour chaque artiste : son nom, son pays, son genre, le nombre d'albums, le nombre de titres et le nombre total d'écoutes.
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Licence Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a> <br />Ce cours est mis à disposition selon les termes de la <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International</a>.