5. Persistencia de objetos

5.1. ¿De qué va este tema?

Compararemos bases objeto-relacionales y orientadas a objetos. Utilizaremos sus mecanismos de acceso para conservar estructuras, consultar y modificar objetos y comprobar transacciones mediante componentes de persistencia.

Dedicación orientativa: unas 40 horas. El tiempo que necesites dependerá de tus conocimientos previos y de las dificultades que encuentres.

Punto de partida: dominio, contrato, conectores y experiencia con ORM.

5.2. Clases

5.2.1. ORM y bases que almacenan objetos

  • Filas, objetos, identidad y estructura del dominio.

  • Mecanismo de mapeo frente a modelo de almacenamiento del gestor.

Actividad

  • Base objeto-relacional, orientada a objetos y documental.

  • Capacidades, ventajas y límites según el escenario.

Actividad

5.2.2. Tipos estructurados en el gestor relacional

  • Tipos, atributos y colecciones según capacidades del motor.

  • Representación de un objeto mediante SQL.

Actividad

  • Funciones del gestor y acceso desde la aplicación.

  • Conversión del conector frente a estructura conservada por el motor.

Actividad

5.2.3. Identidad y referencias en una base de objetos

  • Identidad persistente, referencias, grafos y alcance de persistencia.

  • Objetos compartidos frente a copias con iguales valores.

Actividad

  • API de acceso, recuperación y lenguaje de consulta.

  • Preparación de una base orientada a objetos y comparación de garantías.

Actividad

5.2.4. Conectar y cerrar en ambos modelos

  • Configuración, apertura y autenticación en el gestor objeto-relacional.

  • Conector y recurso adquirido.

Actividad

  • Sesión o conexión en la base de objetos.

  • Cierre garantizado y diferencias entre ambas APIs.

Actividad

5.2.5. Persistir objetos simples

  • Identidad, atributos y representación persistente.

  • Almacenamiento de una entidad sencilla.

Actividad

  • Recuperación después de cerrar y reabrir.

  • Misma comprobación en ambos modelos de almacenamiento.

Actividad

5.2.6. Objetos estructurados y colecciones

  • Composición, colección y relaciones del dominio.

  • Alcance del conjunto que se debe conservar.

Actividad

  • Inserción, recuperación, anidamiento y cardinalidad.

  • Comprobación de estructuras en los dos gestores.

Actividad

5.2.7. Referencias, profundidad y límites de persistencia

  • Referencia compartida, carga y profundidad.

  • Copias inesperadas y pérdida de relaciones.

Actividad

  • Objeto ausente, colección vacía y ciclo de vida.

  • Modificación de referencias y comprobación tras reabrir la sesión.

Actividad

5.2.8. Consultas sobre objetos persistentes

  • SQL de objetos y consulta de atributos estructurados.

  • Selección por valores y relaciones.

Actividad

  • API o lenguaje del gestor de objetos; fundamentos de OQL.

  • Conversión de resultados al contrato de acceso.

Actividad

5.2.9. Modificar y eliminar objetos

  • Identidad, actualización y estado persistente.

  • Cambio sobre un objeto recuperado.

Actividad

  • Colecciones, referencias y eliminación.

  • Diferencias de propagación entre los modelos.

Actividad

5.2.10. Transacciones en los dos gestores

  • Límites, confirmación y reversión según la API.

  • Agrupación de cambios en una operación.

Actividad

  • Fallo intermedio, estado en memoria y recarga.

  • Garantías efectivamente comprobadas en cada gestor.

Actividad

5.2.11. Componente, pruebas y documentación

  • Contrato, adaptadores y selección de implementación.

  • Operaciones y configuración del componente de objetos.

Actividad

  • Pruebas comunes, fallos y documentación de la aplicación.

  • Reproducción del comportamiento en ambos modelos.

Actividad

5.2.12. Comparar las soluciones de objetos

  • Identidad, estructura, lenguaje y transacciones.

  • Resultados comunes y diferencias de comportamiento.

Actividad

  • Uso, límites y requisitos de un escenario.

  • Diagnóstico de divergencias con pruebas existentes.

Actividad

Test de autoevaluación

Actividad final integradora