Saltar al contenido

🎓 Examen Final Máster – Acceso a Datos DAM (con soluciones avanzadas)


¿Te atreves con un simulacro profesional? Este examen tipo final combina lectura de datos, modelado, consultas y persistencia en múltiples tecnologías: XML, MongoDB, Hibernate, XQuery y más. Requiere dominio total de lo aprendido durante el curso. ¡Súbete al reto!


📁 Parte 1 – Ingesta e integración múltiple

1. Lectura múltiple (CSV + Excel + XML + JSON)

Enunciado:
Diseña un sistema que permita cargar datos de países desde 4 fuentes distintas (.csv, .xls, .json, .xml), los unifique en una colección de objetos Pais, y los relacione con Ciudad y Religion.

Objetivos:

  • Detectar duplicados entre formatos.
  • Validar datos incoherentes (p.ej. país sin idioma, ciudad sin superficie).
  • Consolidar todo en una lista final.

Tecnologías esperadas:

  • CSV → Scanner o OpenCSV
  • Excel → Apache POI
  • XML → JAXB
  • JSON → Gson o Jackson

🗂️ Parte 2 – Validación y normalización

2. Validación con XML Schema y exportación a JAXB

Enunciado:

  • Valida el archivo religiones.xml usando un esquema XSD.
  • Si es válido, conviértelo a objetos con JAXB.
  • Exporta solo los datos de países con más de 3 religiones distintas y guárdalos como destilado.xml.

Tecnologías:

  • javax.xml.validation
  • JAXB

🔎 Parte 3 – Persistencia relacional y no relacional

3. MongoDB + Hibernate simultáneos

Enunciado:

  • Guarda las ciudades en MongoDB y los países + religiones en MySQL con Hibernate.
  • Relaciona ambos mediante id_pais.

Objetivo extra:

  • Implementa sincronización automática: si se borra un país de Hibernate, sus ciudades se eliminan en MongoDB.

Tecnologías:

  • MongoDB Java Driver
  • Hibernate con relaciones OneToMany + eventos @PreRemove

💡 Parte 4 – Consultas compuestas

4. XQuery + MongoDB

A. XQuery:
Consulta desde eXistDB:

  • Países con más de 2 ciudades y al menos una en la costa (> 0 km).

Consulta esperada:

for $p in //pais
let $ciudades := //ciudad[@pais=$p/@id_pais]
where count($ciudades) > 2 and some $c in $ciudades satisfies xs:decimal($c/km_linea_costa) > 0
return $p/nombre

B. MongoDB:
Consulta en MongoDB las ciudades:

  • Que pertenezcan a países con idioma oficial «Español» o «Portugués»
  • Y tengan más de 500.000 habitantes.

Consulta esperada:

db.ciudades.aggregate([
  {
    $lookup: {
      from: "paises",
      localField: "id_pais",
      foreignField: "id",
      as: "pais"
    }
  },
  { $unwind: "$pais" },
  {
    $match: {
      "pais.idioma_oficial": { $in: ["Español", "Portugués"] },
      "num_habitantes": { $gt: 500000 }
    }
  }
])

🧠 Parte 5 – Desafío final

5. App completa: Geografía y Religiones

Diseña una aplicación modular que:

  • Importe los datos de los archivos anteriores.
  • Almacene datos en MongoDB y Hibernate.
  • Permita al usuario:
    • Buscar un país por nombre y mostrar sus ciudades y religiones.
    • Listar los países ordenados por
    • Exportar los resultados como XML o JSON a elección.
  • El usuario debe poder elegir si quiere trabajar solo con Mongo, solo con Hibernate, o ambos en espejo.

Consejo técnico:

  • Usa interfaces para cargar y persistir datos (CargadorXML, PersistenciaMongo, PersistenciaRelacional).
  • Diseña DAO para cada entidad.
  • Incluye logs y manejo de excepciones.

✅ Conclusión

Este examen final está pensado para que midas tu nivel como futuro profesional. Combina lectura, escritura, modelado, persistencia y consultas en múltiples formatos y tecnologías.

Si quieres el post en formato HTML puro, Markdown, o incluso un PDF imprimible, solo dímelo. También puedo generarte el código base de cada ejercicio o un repositorio Git de plantilla.

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