DAMAcceso a DatosEjercicios
Contenido verificado · 26 unidades

Ejercicios y práctica · Acceso a Datos · DAM

Convierte los RA y errores frecuentes del módulo en práctica adaptativa. Esta página se construye únicamente con contenido verificado y con los RA del módulo.

Practicar este módulo con José

Qué deberías ser capaz de hacer

RA1

Desarrolla aplicaciones que gestionan información almacenada en ficheros identificando el campo de aplicación de los mismos y utilizando clases específicas.

RA2

Desarrolla aplicaciones que gestionan información almacenada en bases de datos relacionales identificando y utilizando mecanismos de conexión.

RA3

Gestiona la persistencia de los datos identificando herramientas de mapeo objeto relacional (ORM) y desarrollando aplicaciones que las utilizan.

RA4

Desarrolla aplicaciones que gestionan la información almacenada en bases de datos objeto relacionales y orientadas a objetos valorando sus características y utilizando los mecanismos de acceso incorporados.

RA5

Desarrolla aplicaciones que gestionan la información almacenada en bases de datos nativas XML evaluando y utilizando clases específicas.

RA6

Programa componentes de acceso a datos identificando las características que debe poseer un componente y utilizando herramientas de desarrollo.

Errores frecuentes que la práctica debería detectar

  • Confundir una clase con un componente: Una clase es una plantilla para objetos, mientras que un componente es una unidad de software autocontenida y desplegable que puede estar compuesta por varias clases. Corrección: Un componente debe tener una interfaz bien definida, ser autocontenido y reutilizable en diferentes contextos, no solo una clase aislada.
  • Ignorar la gestión de dependencias: No usar un gestor de dependencias puede llevar a conflictos de versiones (DLL Hell en .NET, Jar Hell en Java) o a la falta de librerías necesarias. Corrección: Integrar Maven, Gradle o NuGet desde el inicio del proyecto para declarar y resolver dependencias de forma automática y consistente.
  • No cerrar recursos (ficheros, conexiones DB): Esto puede llevar a fugas de memoria, bloqueos de ficheros o agotamiento de conexiones a la base de datos. Corrección: Utilizar bloques `try-with-resources` en Java o sentencias `using` en C# para asegurar el cierre automático de los recursos, o cerrar explícitamente en bloques `finally`.
  • Inyección SQL: Construir consultas SQL concatenando cadenas directamente con la entrada del usuario. Corrección: Usar `PreparedStatement` en JDBC o `SqlCommand` con parámetros en ADO.NET para evitar la inyección SQL, ya que los parámetros se envían por separado de la consulta.
  • Problemas de rendimiento con ORM (N+1 selects, carga perezosa mal gestionada): un uso ingenuo del ORM puede generar muchas consultas pequeñas en vez de una consulta optimizada. Corrección: entender cómo el ORM traduce las operaciones a SQL, elegir estrategias de carga adecuadas (eager/lazy) según el caso y recurrir a consultas nativas o proyecciones (DTOs) cuando el mapeo automático no sea eficiente.
  • Ignorar el esquema en bases de datos XML: aunque son flexibles, no definir una estructura esperada para los documentos puede provocar inconsistencias difíciles de consultar. Corrección: usar XML Schema (XSD) o DTD para validar los documentos antes de insertarlos, facilitando consultas XQuery consistentes.
  • Confundir 'no necesito SQL' con 'no necesito entender el modelo de datos': usar un ORM no exime de diseñar bien las entidades y sus relaciones; un mal diseño de entidades genera consultas ineficientes independientemente de la herramienta usada.
  • Falta de cobertura de pruebas: No probar todos los escenarios (casos límite, errores) del componente de acceso a datos. Corrección: Diseñar pruebas que cubran el 100% de las ramas de código importantes, incluyendo escenarios de éxito, error, datos nulos y volúmenes grandes.
  • Documentación desactualizada o inexistente: Un componente sin documentación es difícil de usar y mantener. Corrección: Integrar la generación de documentación en el proceso de desarrollo (ej. Javadoc, XML Comments) y mantenerla actualizada con cada cambio significativo en el API del componente.
  • Confundir NXDB con bases de datos que simplemente almacenan XML como CLOB/BLOB: La NXDB entiende y procesa la estructura XML internamente, no solo la guarda como un texto. Esto afecta la eficiencia de las consultas. Corrección: Entender que la 'nativa' implica indexación y consulta directa de la estructura.
  • Aplicar NXDB a datos puramente relacionales: Intentar modelar datos tabulares simples en XML puede introducir complejidad innecesaria y penalizar el rendimiento. Corrección: Evaluar la naturaleza de los datos y si su estructura jerárquica es intrínseca o artificial.
  • Subestimar la curva de aprendizaje de XQuery/XPath: Asumir que son triviales para un desarrollador SQL puede llevar a retrasos. Corrección: Planificar tiempo para la formación y práctica en estos lenguajes de consulta.
  • Dejar la contraseña por defecto del usuario 'admin': riesgo de seguridad grave. Corrección: cambiarla inmediatamente tras la instalación, desde la GUI o mediante comandos administrativos verificados en la documentación oficial de la versión usada.
  • Suponer que un fallo de conexión cliente-servidor es un problema del código de la aplicación sin comprobar antes puertos y firewall. Corrección: verificar con herramientas de red que los puertos configurados (1984/8984 por defecto) están abiertos y accesibles.
  • Buscar un archivo 'basex.properties' que no existe en BaseX. Corrección: la configuración persistente se gestiona mediante el archivo oculto '.basex' y comandos internos (SET), cuyo nombre y ubicación exactos conviene confirmar en la documentación oficial de la versión instalada.
  • Usar comandos inexistentes como 'CREATE FOLDER' o 'DROP FOLDER': BaseX no los reconoce y la aplicación lanzará una excepción. Corrección: usar los comandos reales 'CREATE DB', 'ADD', 'DELETE' y 'DROP DB' según se quiera crear una base de datos, añadir un documento en una ruta, borrar una ruta o eliminar la base de datos completa.
  • Confundir el modelo de colecciones de BaseX con el de otros gestores (por ejemplo eXist-db): asumir que existen colecciones independientes de la base de datos lleva a diseñar operaciones que no existen en la API. Corrección: comprobar en la documentación oficial del gestor instalado cómo se modela ese concepto antes de programar.
  • No abrir la base de datos correcta antes de operar: ejecutar 'ADD' o 'DELETE' sin haber hecho antes 'OPEN nombre_bd' provoca un error o afecta a la base de datos equivocada. Corrección: comprobar con 'LIST' que la base existe y ejecutar 'OPEN' antes de cualquier operación sobre documentos.

Del contenido SEO a tu estado real

Esta página explica el módulo. José, dentro del workspace, utiliza tu dominio, autonomía, confianza y evidencias para decidir si necesitas diagnóstico, práctica, reenseñanza o repaso.

Practicar este módulo con José
Canal Estudios es un servicio de Skillback S.L. · NIF B2481724 · Barcelona, España
Aviso legal · Privacidad · Cookies · Términos