<div class="page"> <div class="cover text-center"> <img class="mx-auto" src=/itb/images/logo_mislata.png alt="logo"> # DDL Música <div class="text-end fit-content ms-auto my-3 mt-auto pt-3"> <p><strong>Autor:</strong> Joan Puigcerver Ibáñez</p> <p><strong>Correu electrònic:</strong> j.puigcerveribanez@edu.gva.es</p> <p><strong>Curs:</strong> 2024/2025</p> </div> <div> <p class="fw-bold mb-0">Llicència: BY-NC-SA</p> <p class="d-none d-md-block">(Reconeixement - No Comercial - Compartir Igual)</p> <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ca" target="_blank"> <img class="mx-auto" src="/itb/images/license.png" alt="Licence"/> </a> </div><!--license--> </div><!--cover--> </div><!--page--> {:toc} ## Objectius L'objectiu d'aquest exercici és practicar en definir un model relacional en una base de dades relacional a partir del Diagrama d'Entitat Relació i el Model Relacional. ## Enunciat Crea la base de dades __musica__ i defineix les taules necessàries per emmagatzemar correctament la informació. Totes les sentències per la creacó de la base de dades i les taules han de ser especificades en un únic fitxer anomenat __create_schema_music.sql__, que ha de poder executar-se directament en el SGBD sense cap error. ### Diagrama Entitat Relació ![Diagrama Entitat Relació Música](/itb/DAM-BD/files/ca/musica/img/musica_er.png){.center} ### Model Relacional - [ARTISTA]{.blue}(++[#dni]{.red}++, nom) - [GRUP_MUSICAL]{.blue}(++[#id]{.red}++, nom, data_fundacio, pais) - [ARTISTA_GRUP]{.blue}(++_[#id_grup]{.red}([GRUP_MUSICAL]{.blue}:[#id]{.red})_++, ++_[#dni_artista]{.red}([ARTISTA]{.blue}:[#dni]{.red})_++, rol) - [CLUB_FANS]{.blue}(++[#id]{.red}++, nom, direcció, nombre_membres, _id_grup([GRUP_MUSICAL]{.blue}:[#id]{.red})_) - [COMPANYIA_PRODUCTORA]{.blue}(++[#id]{.red}++, nom, direccio, telefon, fax) - [ALBUM]{.blue}(++[#id]{.red}++, nom, data_publicacio, _id_grup([GRUP_MUSICAL]{.blue}:[#id]{.red})_, _id_productora([COMPANYIA_PRODUCTORA]{.blue}:[#id]{.red})_) - [CANÇO]{.blue}(++[#id]{.red}++, titol, duracio) - [CANÇO_ALBUM]{.blue}(++_[#id_album]{.red}([ALBUM]{.blue}:[#id]{.red})_++, ++_[#id_canço]{.red}([CANÇO]{.blue}:[#id]{.red})_++) ### Taules i consideracions Crea les següents taules en la base de dades __musica__. | Table | Field | Type | Description | Constraints | | --------------------- | --------------- | ----------- | ----------- | ----------- | | grup_musical | id | int | ID del grup musical | | | ^^ | nom | varchar(30) | Nom del grup musical | NN | | ^^ | data_fundacio | date | Data de fundació del grup musical | | | ^^ | pais | varchar(30) | País del grup musical | | | companyia_productora | id | int | ID de la companyia productora | | | ^^ | nom | varchar(30) | Nom de la companyia productora | NN | | ^^ | direccio | varchar(30) | Direcció de la companyia productora | | | ^^ | fax | varchar(10) | Fax de la companyia productora | | | ^^ | telefon | varchar(10) | Telèfon de la companyia productora | | | album | id | int | ID de l'àlbum | | | ^^ | nom | varchar(30) | Nom de l'àlbum | NN | | ^^ | data_publicacio | date | Data de publicació de l'àlbum | | | ^^ | id_productora | int | ID de la companyia productora d'aquest àlbum | | | ^^ | id_grup_musical | int | ID del grup musical al qual pertany aquest àlbum | | | canço | id | int | ID de la cançó | | | ^^ | titol | varchar(30) | Títol de la cançó | NN | | ^^ | duracio | int | Duració de la cançó en minuts | | | canço_album | id_canço | int | ID de la cançó que pertany al àlbum | | | ^^ | id_album | int | ID de l'àlbum al que pertany la cançó | | | artist | dni | varchar(10) | DNI de l'artista | | | ^^ | nom | varchar(30) | Nom de l'artista | NN | | artista_grup | dni_artista | varchar(10) | DNI de l'artista que pertany a el grup | | | ^^ | id_grup_musical | int | ID del grup musical al qual pertany l'artista | | | ^^ | rol | varchar(20) | Rol que té l'artista en el grup musical | | | club_fans | id | int | ID del club de fans | | | ^^ | nom | varchar(30) | Nom del club de fans | NN | | ^^ | direcció | varchar(30) | Direcció del club de fans | | | ^^ | nombre_membres | int | Nombre de membres del club de fans| NN, No pot ser negatiu, Per defecte és 0 | | ^^ | id_grup_musical | int | Grup musical del qual el club és fan | | ::: note - Heu de respectar el nom de les taules i el noms dels atributs. - __NN__: `NOT NULL` - No s'han especificat totes les restriccions que haurien d'existir. - Heu de respectal al màxim possible les cardinalitats del model proposat. - Podeu utilitzar `NOT NULL` o `UNIQUE` quan cregueu necessari. ::: ## Bibliografia Aquest material és propietat del profesorat de "Bases de Dades i Sistemes d'Informació". Escola Tècnica Superior d'Enginyeria Informàtica. Universitat Politècnica de València. Adaptat per <a href="/about/">Joan Puigcerver</a> ## Llicència Aquest material és propietat del profesorat de "Bases de Dades i Sistemes d'Informació". Escola Tècnica Superior d'Enginyeria Informàtica. Universitat Politècnica de València. © Tots els drets reservats. No es permet la còpia ni redistribució d'aquest material.