Saltar al contenido

🧪 Examen Final Avanzado – Acceso a Datos DAM (con soluciones)


¿Quieres ponerte realmente a prueba antes del examen final de Acceso a Datos? Este simulacro avanzado te exigirá dominar DOM, SAX, JAXB, Hibernate, MongoDB, eXistDB, XQJ y más. ¡Vamos al grano!


🔥 Parte 1 – Ficheros complejos

1. Integración CSV + XML + Excel (nivel alto)

Diseña una aplicación que lea los siguientes archivos:

  • paises.csv
  • paises.xls
  • religiones.xml

Y cree una única estructura Java unificada (una lista de objetos Pais) que combine todos los datos coherentemente. Cada país debe tener una lista de religiones con número de practicantes.

Solución esperada:

  • Leer CSV/Excel y unificar datos por nombre.
  • Parsear XML con DOM o JAXB.
  • Usar equals/hashCode personalizados para evitar duplicados.
  • Mostrar resumen final por consola.

📊 Parte 2 – Hibernate y consultas avanzadas

2. Hibernate + Relaciones OneToMany

  • Crea un modelo con entidades Pais, Ciudad, Religion, Practica con sus relaciones reales.
  • Importa todos los datos del XML a la base de datos con Hibernate.
  • Crea una consulta JPQL que devuelva el país con más variedad religiosa y otro con más población religiosa total.

Solución esperada:

SELECT p FROM Pais p ORDER BY SIZE(p.practicas) DESC
SELECT p FROM Pais p JOIN p.practicas pr GROUP BY p ORDER BY SUM(pr.practicantes) DESC

🧾 Parte 3 – Consultas XQuery en eXistDB

3. XQuery + XQJ

  • Sube religiones.xml a eXistDB.
  • Realiza una consulta XQuery que devuelva las ciudades con más de 1 millón de habitantes, agrupadas por país, y las religiones más practicadas en ese país.

Solución esperada (fragmento de XQuery):

for $c in //ciudad[xs:integer(@num_habitantes) > 1000000]
let $pais := $c/@pais
let $religion := max(//practica[@id_pais = $pais]/@practicantes)
return <resultado>
  {$c/@nombre}
  {$religion}
</resultado>

🧬 Parte 4 – MongoDB + JSON complejo

4. MongoDB + JSON enriquecido

  • Usa paises.json y genera dinámicamente un nuevo documento JSON por país, incluyendo: nombre, habitantes, superficie, lista de religiones con
  • Inserta los documentos en MongoDB.
  • Crea una consulta que devuelva los países donde alguna religión tenga más del 50

Ejemplo de documento resultante:

{
  "nombre": "España",
  "habitantes": 47420000,
  "religiones": [
    { "nombre": "Catolicismo", "practicantes": 30000000, "porcentaje": 63.3 },
    ...
  ]
}

Consulta MongoDB:

db.paises.find({ "religiones.porcentaje": { $gt: 50 } })

🧩 Parte 5 – Desafío final

5. Aplicación completa (consola o GUI)

Diseña una aplicación que:

  • Cargue datos desde CSV, Excel, JSON y XML.
  • Permita guardar en MongoDB o BD relacional según el formato de entrada.
  • Permita consultar países por cantidad de habitantes, religiones predominantes, o número de ciudades costeras.
  • Exporte los resultados a formato XML, JSON o Excel (a elegir por el usuario).
  • Incluya un menú interactivo y control de errores robusto.

Consejos para resolverlo:

  • Usa interface CargadorDatos e implementaciones específicas.
  • Usa Strategy o Factory para exportar.
  • Usa Hibernate y MongoDB con DAO separados.

✅ ¿Estás listo?

Este examen te prepara para un entorno real de trabajo: importación y exportación de datos, modelos relacionales y no relacionales, múltiples formatos y consultas complejas.

Si lo resuelves por completo, no solo apruebas, sino que te diferencias como profesional de verdad.


¿Quieres que este post se genere como HTML puro o en formato de WordPress visual? ¿Quieres los códigos Java completos para cada ejercicio? Solo dímelo.

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