En este segundo taller aplicarás los conceptos del modelamiento EER a un dominio de mayor complejidad: un sistema de gestión musical. El sistema debe permitir que una discográfica administre artistas, álbumes y canciones, mientras que los usuarios de la plataforma crean y comparten playlists. A lo largo del taller identificarás entidades, atributos, relaciones con sus cardinalidades y aplicarás extensiones EER como jerarquías de especialización. Al finalizar, contarás con un diagrama EER completo en draw.io y un mapeo preliminar al modelo lógico relacional.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/tutosrive/db-relacionales-2026-1/llms.txt
Use this file to discover all available pages before exploring further.
Universo de Discurso
Lee atentamente el siguiente universo de discurso antes de comenzar a modelar. Subraya los sustantivos (posibles entidades o atributos) y los verbos (posibles relaciones).Una discográfica administra artistas. Cada artista tiene un identificador único, un nombre artístico y un género musical principal. Un artista puede ser un solista o una banda; en el caso de las bandas, se registra el número de integrantes. Los artistas graban álbumes. Cada álbum tiene un código único, un título, el año de lanzamiento y el nombre de la discográfica que lo publicó. Un álbum puede haber sido grabado por uno o varios artistas (colaboraciones), y un artista puede tener varios álbumes en su catálogo. Los álbumes contienen canciones. Cada canción tiene un código único, un título, la duración en segundos y el número de pista dentro del álbum. Una canción pertenece a exactamente un álbum. Los usuarios de la plataforma pueden crear playlists. Cada usuario tiene un identificador, un nombre de usuario único y un correo electrónico. Cada playlist tiene un identificador, un nombre y la fecha de creación. Un usuario puede tener múltiples playlists, y cada playlist le pertenece a exactamente un usuario. Una playlist puede incluir múltiples canciones, y una misma canción puede aparecer en múltiples playlists. Cuando una canción se agrega a una playlist se registra el orden en que aparece dentro de ella. Los artistas firman contratos con discográficas. Un contrato tiene una fecha de inicio, una fecha de fin y un porcentaje de regalías pactado. Un artista puede tener contratos con distintas discográficas a lo largo del tiempo, y una discográfica puede contratar a múltiples artistas.
Discográfica existe de forma independiente porque aparece también en los contratos. Nunca dupliques datos que pertenecen a una entidad propia — usa una relación.Proceso de Modelamiento
Identificar las entidades principales
| Entidad | Descripción |
|---|---|
Artista | Persona o grupo que graba música |
Álbum | Colección de canciones publicada por un artista |
Canción | Pista de audio individual dentro de un álbum |
Playlist | Lista de reproducción creada por un usuario |
Usuario | Persona registrada en la plataforma |
Discográfica | Empresa que publica álbumes y firma contratos |
Identificar relaciones y cardinalidades
| Relación | Entidades | Cardinalidad | Atributos de relación |
|---|---|---|---|
graba | Artista ↔ Álbum | M : N | — |
contiene | Álbum ↔ Canción | 1 : N | — |
incluye | Playlist ↔ Canción | M : N | orden_en_playlist |
crea | Usuario ↔ Playlist | 1 : N | — |
firma | Artista ↔ Discográfica | M : N | fecha_inicio, fecha_fin, royalty_pct |
Definir claves primarias y foráneas
Mapear a draw.io y construir el diagrama EER
- Abre draw.io y crea un nuevo archivo llamado
taller2_gestion_musical.drawio. - Activa la librería Entity Relation desde el panel lateral.
- Dibuja cada entidad como un rectángulo con su nombre en la cabecera y sus atributos listados abajo (o como elipses conectadas en notación Chen).
- Marca las PKs subrayando el atributo o con el prefijo
PK:. - Dibuja las relaciones: usa rombos para las relaciones con nombre y conecta las entidades con las cardinalidades correctas en los extremos (notación crow’s foot o (min,max)).
- Añade atributos de relación a los rombos correspondientes (
Contrato,incluye). - Aplica la jerarquía del siguiente paso.
Aplicar extensiones EER: jerarquía de Artista
- Superclase:
Artista(atributos comunes:id_artista,nombre_artistico,genero). - Subclase
Solista: sin atributos adicionales en este UoD (puedes agregarinstrumento_principalsi lo deseas). - Subclase
Banda: atributo adicionalnum_integrantes.
| Dimensión | Decisión | Justificación |
|---|---|---|
| Participación | Total | Todo artista en el sistema es solista o banda |
| Solapamiento | Disjoint (d) | Un artista no puede ser simultáneamente solista y banda |
d) conectado a Artista arriba y Solista / Banda abajo, con doble línea entre Artista y el símbolo de especialización para indicar participación total.Modelo Conceptual (Diagrama Mermaid)
El siguiente diagrama representa las relaciones principales del sistema en notación ER de Mermaid. Úsalo como referencia para verificar tu diagrama en draw.io.Mapeo al Modelo Lógico (Tablas Relacionales)
Una vez validado el diagrama EER, se aplican las reglas de mapeo para obtener el esquema relacional.Preguntas de Discusión
¿Por qué Contrato no es una entidad débil en el EER?
¿Por qué Contrato no es una entidad débil en el EER?
Contrato depende de Artista y Discográfica para ser identificado, pero en muchos diseños se le asigna un id_contrato propio, lo que lo convertiría en entidad fuerte. En el modelo presentado lo tratamos como relación con atributos porque su identidad está completamente determinada por (artista, discográfica, fecha_inicio). La decisión depende de qué tan central es el contrato para el negocio.¿Debería Álbum tener una FK directa a Discográfica?
¿Debería Álbum tener una FK directa a Discográfica?
Discográfica como entidad separada (lo cual es correcto dado que también participa en contratos), entonces Album debería tener una FK id_discografica en lugar de guardar el nombre como texto. Esto evita inconsistencias: si la discográfica cambia de nombre, solo se actualiza en un lugar.¿Es correcto que Canción pertenezca a exactamente un Álbum?
¿Es correcto que Canción pertenezca a exactamente un Álbum?
contiene cambia de 1:N a M:N, lo que requiere una tabla intermedia Album_Cancion. Este es un buen ejemplo de cómo el UoD puede simplificar la realidad y cómo el diseñador debe cuestionar esas simplificaciones con el cliente.¿Qué ocurre con la especialización Solista/Banda en el modelo lógico?
¿Qué ocurre con la especialización Solista/Banda en el modelo lógico?
Artista con columnas nulas según el tipo), (2) una tabla por subclase (solo los atributos específicos en Solista y Banda, con FK a Artista), y (3) una tabla por clase (cada subclase incluye todos los atributos heredados). El SQL presentado usa la estrategia (2), que es la más flexible y la que mejor preserva la semántica del EER.¿Cómo modelarías las 'colaboraciones' entre artistas en una canción?
¿Cómo modelarías las 'colaboraciones' entre artistas en una canción?
Artista_Album). Si se necesita registrar qué artistas participan en cada canción (feat.), habría que agregar una relación M:N entre Artista y Canción, con una tabla Artista_Cancion(id_artista, cod_cancion, rol) donde rol podría ser ‘Principal’ o ‘Invitado’. Este es un requisito que no está en el UoD actual pero es plausible en un sistema real.Entregable del Taller
- Archivo
taller2_gestion_musical.drawiocon el diagrama EER completo, incluyendo la jerarquíaArtista → Solista / Banday todos los atributos de relación. - Script SQL (
.sql) con el DDL completo del modelo lógico mapeado desde el EER, incluyendo restriccionesCHECK,NOT NULLyUNIQUEdonde apliquen. - Documento de decisiones (máximo 1 página) respondiendo al menos dos de las preguntas de discusión de arriba con justificación técnica.
- Sube los tres archivos al espacio del Taller 2 en la plataforma antes de la fecha límite.