Introducción a las bases de datos relacionales - Normalización (Periodo III - Actividad I)
Taller: Normalización de Bases de Datos
Tema: Introducción a las bases de datos relacionales
Subtema: Normalización de bases de datos
Dirigido a: Estudiantes de séptimo de bachillerato
Duración: 2 clases
¿Qué es la Normalización de Bases de Datos?
La normalización es el proceso de organizar los datos de una base de datos para eliminar información repetida (redundante) y asegurar que los datos se almacenen de manera eficiente. Es como organizar tu cuarto: en lugar de tener todo revuelto en un solo lugar, separas las cosas en cajones específicos donde cada cosa tiene su lugar.
Las Formas Normales Más Importantes
Primera Forma Normal (1FN): Cada celda de la tabla debe contener un solo valor, no listas o múltiples datos.
Segunda Forma Normal (2FN): Elimina la información que se repite innecesariamente en diferentes filas.
Tercera Forma Normal (3FN): Separa los datos que dependen de otros datos que no son la clave principal.
Normalización de Bases de datos [tomado de bookdown.org]
Ejemplo 1: Tienda de Libros
Tabla Original (No normalizada):
| ID_Venta | Cliente | Teléfono | Libro | Autor | Precio |
|---|---|---|---|---|---|
| 001 | Juan Pérez | 300-1234 | Cien años de soledad | García Márquez | $45,000 |
| 002 | María López | 310-5678 | El Principito | Saint-Exupéry | $25,000 |
| 003 | Juan Pérez | 300-1234 | Don Quijote | Cervantes | $35,000 |
Problemas: El teléfono de Juan Pérez se repite, desperdiciando espacio.
Después de la normalización:
Tabla Clientes:
| ID_Cliente | Nombre | Teléfono |
|---|---|---|
| C001 | Juan Pérez | 300-1234 |
| C002 | María López | 310-5678 |
Tabla Libros:
| ID_Libro | Título | Autor | Precio |
|---|---|---|---|
| L001 | Cien años de soledad | García Márquez | $45,000 |
| L002 | El Principito | Saint-Exupéry | $25,000 |
| L003 | Don Quijote | Cervantes | $35,000 |
Tabla Ventas:
| ID_Venta | ID_Cliente | ID_Libro |
|---|---|---|
| 001 | C001 | L001 |
| 002 | C002 | L002 |
| 003 | C001 | L003 |
Ejemplo 2: Colegio
Tabla Original (No normalizada):
| ID_Inscripción | Estudiante | Grado | Materia | Profesor | Salón |
|---|---|---|---|---|---|
| 001 | Ana García | 7A | Matemáticas | Prof. López | 201 |
| 002 | Ana García | 7A | Ciencias | Prof. Ruiz | 105 |
| 003 | Carlos Mora | 7B | Matemáticas | Prof. López | 201 |
Después de la normalización:
Tabla Estudiantes:
| ID_Estudiante | Nombre | Grado |
|---|---|---|
| E001 | Ana García | 7A |
| E002 | Carlos Mora | 7B |
Tabla Materias:
| ID_Materia | Nombre | Profesor | Salón |
|---|---|---|---|
| M001 | Matemáticas | Prof. López | 201 |
| M002 | Ciencias | Prof. Ruiz | 105 |
Tabla Inscripciones:
| ID_Inscripción | ID_Estudiante | ID_Materia |
|---|---|---|
| 001 | E001 | M001 |
| 002 | E001 | M002 |
| 003 | E002 | M001 |
Before/After
¿Por qué es Útil la Normalización?
Ventajas:
- Elimina redundancia: No se repite la misma información
- Ahorra espacio: Menos datos duplicados = menos memoria usada
- Facilita actualizaciones: Si cambias el teléfono de un cliente, solo lo cambias en un lugar
- Evita inconsistencias: No hay riesgo de tener datos contradictorios
- Mejor organización: Los datos están estructurados lógicamente
Normalización de Bases de datos - Infografía [tomado de studocu.com]
Actividad a Desarrollar
Actividad A: Normalización (Dividir tablas grandes)
Ejercicio 1: Normaliza la tabla de pedidos dividiéndola en tres tablas: Clientes, Productos y Pedidos.
Tabla Original (Pedidos - No normalizada):
| ID_Pedido | Fecha_Pedido | ID_Cliente | Nombre_Cliente | Ciudad_Cliente | ID_Producto | Nombre_Producto | Precio_Unitario | Cantidad |
|---|---|---|---|---|---|---|---|---|
| 101 | 20-08-2025 | CLI-01 | Ana Pérez | Medellín | PROD-A4 | Portátil | 2,500,000 | 1 |
| 102 | 20-08-2025 | CLI-02 | Carlos Ramírez | Bogotá | PROD-B1 | Teclado | 350,000 | 1 |
| 103 | 21-08-2025 | CLI-03 | Sofía Gómez | Cali | PROD-C0 | Monitor | 1,800,000 | 1 |
| 104 | 21-08-2025 | CLI-01 | Ana Pérez | Medellín | PROD-D0 | Mouse | 120,000 | 1 |
| 105 | 22-08-2025 | CLI-04 | Luis Martínez | Barranquilla | PROD-E3 | Silla Gamer | 950,000 | 1 |
| 106 | 22-08-2025 | CLI-02 | Carlos Ramírez | Bogotá | PROD-A4 | Portátil | 2,500,000 | 1 |
| 107 | 23-08-2025 | CLI-05 | Laura Díaz | Bogotá | PROD-F1 | Audífonos | 450,000 | 2 |
| 108 | 23-08-2025 | CLI-03 | Sofía Gómez | Cali | PROD-G2 | Cámara Web | 280,000 | 1 |
| 109 | 24-08-2025 | CLI-01 | Ana Pérez | Medellín | PROD-H0 | Disco Externo | 320,000 | 1 |
| 110 | 24-08-2025 | CLI-02 | Carlos Ramírez | Bogotá | PROD-B1 | Teclado | 350,000 | 2 |
Crea estas tres tablas normalizadas:
Tabla Clientes:
| ID_Cliente | Nombre_Cliente | Ciudad_Cliente |
|---|---|---|
| CLI-01 | Ana Pérez | Medellín |
| … | … | … |
Tabla Productos:
| ID_Producto | Nombre_Producto | Precio_Unitario |
|---|---|---|
| PROD-A4 | Portátil | 2,500,000 |
| … | … | … |
Tabla Pedidos:
| ID_Pedido | Fecha_Pedido | ID_Cliente | ID_Producto | Cantidad |
|---|---|---|---|---|
| 101 | 20-08-2025 | CLI-01 | PROD-A4 | 1 |
| … | … | … | … | … |
Ejercicio 2: Normaliza la tabla de reservas dividiéndola en las tablas: Clientes, Destinos, Pasajeros, Viajes y Reservas.
Tabla Original (Reservas - No normalizada):
| id_reserva | fecha_reserva | nombre_cliente | apellido_cliente | email_cliente | destino_viaje | pais_destino | precio_total | nombre_pasajero1 | apellido_pasajero1 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 2025-10-05 | Carlos | Sánchez | c.sanchez@email.com | Playa del Carmen | México | 1500 | Carlos | Sánchez |
| 2 | 2025-10-06 | Ana | Gómez | a.gomez@email.com | Roma | Italia | 1200 | Ana | Gómez |
| 3 | 2025-10-06 | Carlos | Sánchez | c.sanchez@email.com | París | Francia | 1800 | Carlos | Sánchez |
| 4 | 2025-10-07 | Luis | Pérez | l.perez@email.com | Playa del Carmen | México | 1500 | Luis | Pérez |
| 5 | 2025-10-08 | Ana | Gómez | a.gomez@email.com | Roma | Italia | 1200 | Ana | Gómez |
| 6 | 2025-10-09 | Carlos | Sánchez | c.sanchez@email.com | Playa del Carmen | México | 1500 | Carlos | Sánchez |
| 7 | 2025-10-10 | Ana | Gómez | a.gomez@email.com | París | Francia | 1800 | Ana | Gómez |
| 8 | 2025-10-11 | Pedro | Torres | p.torres@email.com | Cancún | México | 1400 | Pedro | Torres |
| 9 | 2025-10-12 | Luis | Pérez | l.perez@email.com | Roma | Italia | 1200 | Luis | Pérez |
| 10 | 2025-10-13 | Pedro | Torres | p.torres@email.com | París | Francia | 1800 | Pedro | Torres |
Crea estas cinco tablas normalizadas:
Tabla Clientes:
| id_cliente | nombre | apellido | |
|---|---|---|---|
| 1 | Carlos | Sánchez | c.sanchez@email.com |
| … | … | … | … |
Tabla Destinos:
| id_destino | nombre_destino | pais |
|---|---|---|
| 1 | Playa del Carmen | México |
| … | … | … |
Tabla Pasajeros:
| id_pasajero | nombre | apellido |
|---|---|---|
| 1 | Carlos | Sánchez |
| … | … | … |
Tabla Viajes:
| id_viaje | id_destino | precio | fecha_reserva |
|---|---|---|---|
| 1 | 1 | 1500 | 2025-10-05 |
| … | … | … | … |
Tabla Reservas:
| id_reserva | id_cliente | id_viaje | id_pasajero |
|---|---|---|---|
| 1 | 1 | 1 | 1 |
| … | … | … | … |
Actividad B: Integración (Unir tablas pequeñas)
Ejercicio 3: A partir de las tablas Autores, Libros, Préstamos y Usuarios, crea la tabla Vista_Prestamos_Completos.
Tablas Base:
Tabla Autores:
| ID_Autor | Nombre_Autor | Nacionalidad |
|---|---|---|
| 1 | Mario Vargas Llosa | Peruana |
| 2 | Gabriel García Márquez | Colombiana |
| 3 | Octavio Paz | Mexicana |
| 4 | Jorge Luis Borges | Argentina |
| 5 | Isabel Allende | Chilena |
Tabla Libros:
| ID_Libro | Titulo | ID_Autor | Año_Publicacion |
|---|---|---|---|
| 101 | Cien años de soledad | 2 | 1967 |
| 102 | La ciudad y los perros | 1 | 1963 |
| 103 | La casa de los espíritus | 5 | 1982 |
| 104 | El laberinto de la soledad | 3 | 1950 |
| 105 | Ficciones | 4 | 1944 |
Tabla Usuarios:
| ID_Usuario | Nombre_Usuario |
|---|---|
| 22 | Ana |
| 23 | Carlos |
| 24 | María |
| 25 | Luis |
| 26 | Sofía |
Tabla Prestamos:
| ID_Prestamo | ID_Libro | ID_Usuario | Fecha_Prestamo |
|---|---|---|---|
| 5001 | 101 | 22 | 15-09-2025 |
| 5002 | 105 | 26 | 16-09-2025 |
| 5003 | 102 | 24 | 17-09-2025 |
| 5004 | 104 | 23 | 18-09-2025 |
| 5005 | 103 | 22 | 19-09-2025 |
Crea esta tabla integrada:
Tabla Vista_Prestamos_Completos:
| ID_Prestamo | Nombre_Usuario | Titulo_Libro | Nombre_Autor | Fecha_Prestamo |
|---|---|---|---|---|
| 5001 | Ana | Cien años de soledad | Gabriel García Márquez | 15-09-2025 |
| … | … | … | … | … |
Ejercicio 4: Usando las tablas Estudiantes, Profesores, Cursos e Inscripciones, forma la tabla Reporte_Inscripciones.
Tablas Base:
Tabla Estudiantes:
| ID_Estudiante | Nombre_Estudiante |
|---|---|
| E001 | Ana García |
| E002 | Carlos Mora |
| E003 | María López |
| E004 | Luis Pérez |
| E005 | Sofía Ruiz |
Tabla Profesores:
| ID_Profesor | Nombre_Profesor |
|---|---|
| P001 | Prof. Martínez |
| P002 | Prof. González |
| P003 | Prof. Rodríguez |
| P004 | Prof. Hernández |
| P005 | Prof. López |
Tabla Cursos:
| ID_Curso | Nombre_Curso | ID_Profesor |
|---|---|---|
| C001 | Matemáticas | P004 |
| C002 | Ciencias | P003 |
| C003 | Español | P003 |
| C004 | Inglés | P002 |
| C005 | Historia | P001 |
Tabla Inscripciones:
| ID_Inscripcion | ID_Estudiante | ID_Curso |
|---|---|---|
| I001 | E004 | C005 |
| I002 | E001 | C003 |
| I003 | E005 | C003 |
| I004 | E002 | C002 |
| I005 | E003 | C001 |
Crea esta tabla integrada:
Tabla Reporte_Inscripciones:
| ID_Inscripcion | Nombre_Estudiante | Nombre_Curso | Nombre_Profesor |
|---|---|---|---|
| I001 | Luis Pérez | Historia | Prof. Martínez |
| … | … | … | … |
Nota: Para la sustentación, cada pareja explicará su proceso de resolución y justificará sus decisiones.
Ejercicio 5: Sistema de Plataforma de Streaming de Películas.
Esta tarea consiste en integrar múltiples tablas normalizadas en dos etapas:
- Etapa Intermedia: Integrar pares de tablas relacionadas
- Etapa Final: Integrar las tablas intermedias en una tabla maestra
Clave del éxito: Presta especial atención a los nombres de las columnas en los encabezados de las tablas integradas, ya que estos revelan qué información se debe extraer de cada tabla base.
Tablas Base:
Tabla peliculas:
| pelicula_id | titulo | año_lanzamiento | duracion_min | director_id | estudio_id | genero_id |
|---|---|---|---|---|---|---|
| 1 | El Laberinto del Fauno | 2006 | 118 | 1 | 1 | 1 |
| 2 | Pulp Fiction | 1994 | 154 | 2 | 2 | 2 |
| 3 | El Resplandor | 1980 | 146 | 3 | 3 | 3 |
| 4 | Parasite | 2019 | 132 | 4 | 4 | 1 |
| 5 | Mad Max: Fury Road | 2015 | 120 | 5 | 5 | 4 |
| 6 | La Forma del Agua | 2017 | 123 | 1 | 6 | 1 |
| 7 | Django Unchained | 2012 | 165 | 2 | 7 | 8 |
| 8 | 2001: Odisea del Espacio | 1968 | 149 | 3 | 8 | 5 |
| 9 | Memories of Murder | 2003 | 131 | 4 | 9 | 6 |
| 10 | Interstellar | 2014 | 169 | 6 | 7 | 5 |
Tabla directores:
| director_id | nombre_director | nacionalidad | año_nacimiento | especialidad_genero | premios_oscar |
|---|---|---|---|---|---|
| 1 | Guillermo del Toro | Mexicana | 1964 | Fantasia | 3 |
| 2 | Quentin Tarantino | Estadounidense | 1963 | Drama | 2 |
| 3 | Stanley Kubrick | Estadounidense | 1928 | Terror | 1 |
| 4 | Bong Joon-ho | Surcoreana | 1969 | Drama | 4 |
| 5 | George Miller | Australiana | 1945 | Accion | 0 |
| 6 | Christopher Nolan | Britanica | 1970 | Ciencia Ficcion | 1 |
Tabla estudios:
| estudio_id | nombre_estudio | pais_origen | año_fundacion | presupuesto_promedio | tipo_distribucion |
|---|---|---|---|---|---|
| 1 | Estudios del Toro | Mexico | 2001 | 15000000 | Internacional |
| 2 | Miramax | Estados Unidos | 1979 | 25000000 | Global |
| 3 | Warner Bros | Estados Unidos | 1923 | 50000000 | Global |
| 4 | CJ Entertainment | Corea del Sur | 1995 | 8000000 | Regional |
| 5 | Village Roadshow | Australia | 1986 | 35000000 | Internacional |
| 6 | Fox Searchlight | Estados Unidos | 1994 | 20000000 | Global |
| 7 | The Weinstein Company | Estados Unidos | 2005 | 30000000 | Global |
| 8 | MGM | Estados Unidos | 1924 | 40000000 | Global |
| 9 | Sidus Pictures | Corea del Sur | 1999 | 5000000 | Regional |
Tabla generos:
| genero_id | nombre_genero | popularidad_score | target_edad | origen_historico |
|---|---|---|---|---|
| 1 | Fantasia | 85 | 13+ | Literatura Medieval |
| 2 | Drama | 92 | 16+ | Teatro Griego |
| 3 | Terror | 78 | 18+ | Folclore Gotico |
| 4 | Accion | 88 | 13+ | Epopeyas Heroicas |
| 5 | Ciencia Ficcion | 82 | 12+ | Literatura Visionaria |
| 6 | Thriller | 86 | 16+ | Novela Negra |
| 8 | Western | 65 | 15+ | Frontera Americana |
Tabla actores:
| actor_id | nombre_actor | nacionalidad_actor | año_nacimiento_actor | especializacion | cache_promedio |
|---|---|---|---|---|---|
| 1 | Ivana Baquero | Española | 1994 | Drama Infantil | 500000 |
| 2 | John Travolta | Estadounidense | 1954 | Comedia/Drama | 8000000 |
| 3 | Jack Nicholson | Estadounidense | 1937 | Terror/Drama | 12000000 |
| 4 | Song Kang-ho | Surcoreana | 1967 | Drama Social | 2000000 |
| 5 | Tom Hardy | Britanica | 1977 | Accion | 7000000 |
| 6 | Sally Hawkins | Britanica | 1976 | Drama/Romance | 3000000 |
| 7 | Jamie Foxx | Estadounidense | 1967 | Drama/Comedia | 6000000 |
| 8 | Keir Dullea | Estadounidense | 1936 | Ciencia Ficcion | 1000000 |
| 9 | Matthew McConaughey | Estadounidense | 1969 | Drama/Ciencia Ficcion | 9000000 |
| 10 | Leonardo DiCaprio | Estadounidense | 1974 | Drama | 25000000 |
Tabla reparto:
| reparto_id | pelicula_id | actor_id | tipo_papel | orden_creditos |
|---|---|---|---|---|
| 1 | 1 | 1 | Protagonista | 1 |
| 2 | 2 | 2 | Protagonista | 1 |
| 3 | 3 | 3 | Protagonista | 1 |
| 4 | 4 | 4 | Protagonista | 1 |
| 5 | 5 | 5 | Protagonista | 1 |
| 6 | 6 | 6 | Protagonista | 1 |
| 7 | 7 | 7 | Protagonista | 1 |
| 8 | 8 | 8 | Protagonista | 1 |
| 9 | 9 | 4 | Protagonista | 1 |
| 10 | 10 | 9 | Protagonista | 1 |
| 11 | 2 | 10 | Secundario | 2 |
| 12 | 5 | 1 | Secundario | 3 |
Tabla criticas:
| critica_id | pelicula_id | plataforma_critica | puntuacion | fecha_critica | critico_especializado |
|---|---|---|---|---|---|
| 1 | 1 | Rotten Tomatoes | 95 | 2006-10-11 | SI |
| 2 | 2 | IMDB | 89 | 1994-10-14 | NO |
| 3 | 3 | Metacritic | 87 | 1980-05-23 | SI |
| 4 | 4 | Rotten Tomatoes | 99 | 2019-05-30 | SI |
| 5 | 5 | IMDB | 81 | 2015-05-15 | NO |
| 6 | 6 | Metacritic | 92 | 2017-12-01 | SI |
| 7 | 7 | Rotten Tomatoes | 87 | 2012-12-25 | SI |
| 8 | 8 | IMDB | 83 | 1968-04-03 | NO |
| 9 | 9 | Metacritic | 90 | 2003-05-02 | SI |
| 10 | 10 | Rotten Tomatoes | 72 | 2014-11-07 | SI |
EJERCICIOS DE INTEGRACIÓN
ETAPA INTERMEDIA - Integraciones 2 a 2 con lógica de valor agregado:
Ejercicio 1: Tabla “peliculas_enriquecidas”
Lógica: Las películas necesitan información de sus directores para entender mejor su contexto artístico.
Integra peliculas + directores (la película se enriquece con datos del director)
| pelicula_id | titulo | año_lanzamiento | duracion_min | estudio_id | genero_id | nombre_director | nacionalidad_director | especialidad_genero | premios_oscar |
|---|---|---|---|---|---|---|---|---|---|
| 1 | El Laberinto del Fauno | 2006 | 118 | 1 | 1 | Guillermo del Toro | Mexicana | Fantasia | 3 |
| … | … | … | … | … | … | … | … | … | … |
Por qué esta integración: Enriquece cada película con el perfil artístico de su director.
Ejercicio 2: Tabla “reparto_protagonistas”
Lógica: Necesitamos identificar quiénes son los protagonistas de cada película con su información completa.
Integra actores + reparto (solo protagonistas: tipo_papel = ‘Protagonista’)
| pelicula_id | nombre_actor_principal | nacionalidad_actor | año_nacimiento_actor | especializacion_actor | cache_promedio | tipo_papel |
|---|---|---|---|---|---|---|
| 1 | Ivana Baquero | Española | 1994 | Drama Infantil | 500000 | Protagonista |
| … | … | … | … | … | … | … |
Por qué esta integración: Identifica los actores protagonistas con su información personal y profesional.
Ejercicio 3: Tabla “peliculas_con_casting”
Lógica: Las películas enriquecidas (con directores) necesitan información de sus protagonistas.
Integra peliculas_enriquecidas + reparto_protagonistas (usando pelicula_id)
| pelicula_id | titulo | año_lanzamiento | duracion_min | estudio_id | genero_id | nombre_director | especialidad_genero | premios_oscar | nombre_actor_principal | nacionalidad_actor | cache_promedio |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | El Laberinto del Fauno | 2006 | 118 | 1 | 1 | Guillermo del Toro | Fantasia | 3 | Ivana Baquero | Española | 500000 |
| … | … | … | … | … | … | … | … | … | … | … | … |
Por qué esta integración: Combina información creativa (director) con información de casting (protagonista).
IMPORTANTE: Mantenemos estudio_id y genero_id para la siguiente integración.
ETAPA FINAL:
Ejercicio 4: Tabla “catalogo_completo_streaming” (Tabla Final)
Lógica: Las películas con casting necesitan información del estudio y género para completar el catálogo.
Integra peliculas_con_casting + estudios + generos (usando estudio_id y genero_id)
| pelicula_id | titulo | año_lanzamiento | duracion_min | nombre_director | nacionalidad_director | especialidad_genero_director | premios_oscar | nombre_actor_principal | nacionalidad_actor | cache_promedio | nombre_estudio | pais_origen | presupuesto_promedio | nombre_genero | popularidad_score | target_edad |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | El Laberinto del Fauno | 2006 | 118 | Guillermo del Toro | Mexicana | Fantasia | 3 | Ivana Baquero | Española | 500000 | Estudios del Toro | Mexico | 15000000 | Fantasia | 85 | 13+ |
| … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
Por qué esta integración: Completa el catálogo con información integral de cada película incluyendo:
- Información básica: título, año, duración
- Equipo creativo: director con su perfil completo
- Casting principal: actor protagonista con su información
- Contexto de producción: estudio y género con sus características
Resultado final: 10 filas (una por cada película) con información completa e integrada para análisis del catálogo de streaming.
Rúbrica de Evaluación
| Criterio | Excelente (5.0) | Sobresaliente (4.5) | Aceptable (4.0) | Básico (3.5) | Insuficiente (3.0) |
|---|---|---|---|---|---|
| Comprensión conceptual | Explica perfectamente qué es normalización y sus ventajas | Explica bien la normalización con ejemplos claros | Entiende la normalización pero con algunas dudas | Comprensión básica del concepto | No comprende el concepto |
| Aplicación práctica | Resuelve todos los ejercicios correctamente | Resuelve la mayoría con pequeños errores | Resuelve la mitad correctamente | Resuelve algunos con ayuda | No logra resolver los ejercicios |
| Trabajo en equipo | Ambos participan activamente y se complementan | Buena colaboración con participación equilibrada | Trabajan juntos pero uno participa más | Participación desigual pero funcional | No hay trabajo colaborativo |
| Sustentación | Explica claramente todo el proceso y justifica decisiones | Explica bien con justificaciones apropiadas | Explica lo básico correctamente | Explica con dificultad pero entiende | No puede explicar el trabajo |
| Presentación | Organizado, limpio y completo | Bien organizado con pequeños detalles | Organización aceptable | Desorganizado pero completo | Incompleto y desorganizado |
Recursos Complementarios
- Video: “Normalización de Bases de Datos en 10 minutos” - Canal EduTech Colombia
- Artículo: “Formas Normales Explicadas Fácilmente” - TecnoAprender.com
- Herramienta práctica: MySQL Workbench (versión educativa gratuita)
Tiempo estimado de trabajo: 90 minutos por clase
Modalidad: Trabajo en parejas con sustentación individual



Comments
Post a Comment