Saltar al contenido

💻 Examen Final Profesional – Acceso a Datos DAM (con soluciones tipo)


¿Quieres probar si estás listo para trabajar con datos reales? Este simulacro integra varios formatos, tecnologías y retos como los que podrías encontrar tanto en el examen final como en un proyecto real.


📂 Parte 1 – Extracción de Datos

1. Lectura y unificación de múltiples fuentes

Enunciado:
Carga los siguientes archivos en una estructura común PaisCompleto:

  • paises.csv (datos básicos)
  • paises.xls (superficie y costa)
  • paises.json (para verificar consistencia)
  • religiones.xml (estructura DOM o JAXB)

Objetivo:
Unificar los datos sin duplicados, reportando inconsistencias en consola.

Solución esperada:

class PaisCompleto {
    String nombre;
    int habitantes;
    String idioma;
    double superficie;
    double kmCosta;
    List<Religion> religiones;
}

🧪 Parte 2 – Validación y transformación

2. Validación con XSD y conversión

Enunciado:
Valida el archivo religiones.xml con un esquema XSD.
Luego, transforma las religiones con más de 10 millones de practicantes en cada país a un nuevo XML (mayorias.xml), usando JAXB o XSLT.

Bonus:
Genera también una versión mayorias.json equivalente.


🧷 Parte 3 – Persistencia Dual

3. Hibernate + MongoDB sincronizados

Enunciado:

  • Almacena los países y religiones en Hibernate.
  • Almacena las ciudades en MongoDB.
  • Cuando se elimine un país en Hibernate, las ciudades correspondientes deben ser eliminadas en MongoDB automáticamente.

Tip:
Implementa una lógica en el DAO con @Transactional y una llamada al cliente Mongo.


🔍 Parte 4 – Consultas combinadas

4A. XQuery en eXistDB

Consulta:
Muestra todos los países con:

  • Más de 2 religiones distintas con más de 1 millón de practicantes.
  • Al menos una ciudad con más de 1 millón de habitantes.

4B. MongoDB (Consulta de agregación)

Consulta que devuelva:

  • Las ciudades con más densidad de población.
  • Mostrando: nombre ciudad, país, habitantes, superficie, densidad.

Pipeline sugerido:

db.ciudades.aggregate([
  { $project: {
      nombre: 1,
      pais: 1,
      num_habitantes: 1,
      superficie: 1,
      densidad: { $divide: ["$num_habitantes", "$superficie"] }
  }},
  { $sort: { densidad: -1 } }
])

💡 Parte 5 – Miniaplicación CLI

Enunciado:
Desarrolla una aplicación de consola con este menú:

  1. Cargar datos de todos los formatos
  2. Mostrar países con mayoría religiosa
  3. Mostrar las 3 ciudades más densas
  4. Exportar países en JSON
  5. Guardar datos en Mongo o Hibernate
  6. Salir

Extra: Permite que el usuario decida si trabajar en modo:

  • Solo Mongo
  • Solo Hibernate
  • Modo sincronizado

🧠 Conclusión

Este examen pone a prueba tu capacidad para trabajar con múltiples fuentes de datos, validarlas, transformarlas y consultarlas de forma eficiente. Dominarlo significa estar listo para el mundo laboral real.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

¿Atascado con tu proyecto? Presupuesto GRATIS

X
error: Content is protected !!
Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad