TD-TP de Bases de Données Relationnelles Une base de données musicale – MusicBrainz Ensimag – juin 2014 Nous allons nous intéresser ici à la base de données libre MusicBrainz 1 dédiée au stockage et à la diffusion de métadonnées musicales. Cette base de données contient notamment des informations sur les artistes du monde entier, leurs pays d’origine, les titres et les albums, etc. Le schéma complet de cette base, ainsi que les explications associées sont disponibles sur le site de documentation de MusicBrainz. 2 Dans le cadre de ce TD-TP, nous allons travailler sur un fragment du schéma, concernant les artistes, les morceaux (recordings) les disques (releases) et les pays dans lesquels ces disques sont sortis. Voici l’extrait du schéma qui nous concerne ici : - MB_ARTIST : {idartist, nameartist} → L’artiste (ou groupe d’artistes) d’identifiant idartist, a pour nom nameartist. - - MB_RELEASE : {idrelease, idartist†, namerelease, type} → Le disque d’identifiant idrelease, a pour nom namerelease, a été enregistré par l’artiste d’identifiant idartist et a pour type type (« Album », « Single », « EP ». . .). L’attribut idartist référence MB_ARTIST(idartist). MB_RELEASE_COUNTRY : {idrelease†, namecountry, date_year, date_month, date_day} → Le disque d’identifiant idrelease est sorti dans le pays de nom namecountry au jour date_day du mois date_month de l’année date_year. L’attribut idrelease référence l’attribut idrelease de la table MB_RELEASE. - MB_RECORDING : {idrecording, idartist§, namerecording, idrelease¶, length} → Le morceau d’identifiant idrecording, a pour nom namerecording, a été enregistré par l’artiste d’identifiant idartist, sur le disque d’identifiant idrelease, et dure length millisecondes. L’attribut idartist référence MB_ARTIST(idartist) et idrelease référence MB_RELEASE(idrelease). NB : Dans toutes ces tables, tous les attributs (sauf les clefs) peuvent prendre des valeurs NULL, traduisant une absence d’information. Tenez-en compte dans vos requêtes. Ecrire en utilisant l’algèbre relationnelle et en SQL les requêtes suivantes : (R1) Quelle est la liste des noms des morceaux de l’artiste numéro ’22164’ ? (R2) Pouvez-vous donner le nom exact de cet artiste 3 ? (R3) Quels sont les albums du groupe Radiohead (donnez juste leur nom, sans doublon) ? (R4) Par qui a été composée la chanson Straumnes ? (R5) Sur quel album cette chanson est-elle enregistrée, et quels sont les morceaux de cet album ? (R6) Quel est la liste des identifiants d’artistes n’ayant sorti que des Singles ? (R7) Donnez la liste des albums du groupe U2, avec leur durée. (R8) Donnez la liste des albums du groupe U2 de plus d’une heure, avec leur durée. (R9) Quels artistes ont des disques dans tous les pays dans lesquels The Beatles en ont ? 1. http://musicbrainz.org/ 2. http://musicbrainz.org/doc/MusicBrainz_Database/Schema 3. Essayez de deviner avec le nom des morceaux si vous êtes d’humeur joueuse, puis vérifiez avec une requête SQL. Et pour aller plus loin... (R10) Quels sont les singles sortis en France en 2014 (noms + nom de l’artiste) ? (R11) Le titre Feeling Good a été chanté par un nombre impressionnant d’artistes. Donnez leur nom. (R12) Laquelle de ces versions est la plus longue (donnez sa longueur et l’artiste qui l’a composée) ? (R13) Quels disques ne sont sortis qu’en Finlande (aucun disque d’un autre pays ne porte le même nom) ? (R14) Parmi les chansons de Nina Simone, lesquelles ont été interprétées par un ou plusieurs autres artistes, et par qui ? (R15) Quel est le pays ayant le plus de disques sortis ? (R16) Quel jour de l’année y a-t-il le plus grand nombre de sorties musicales ? (R17) Depuis la sortie de leur premier album, en quelle(s) année(s) avons-nous eu la chance d’être épargnés par une sortie du groupe Tokio Hotel 4 ? 4. Oui, « Tokio », et pas « Tokyo ». 2 PSGBD : TD Algèbre relationnelle et SQL