lunes, 22 de mayo de 2023

Oracle 23c & JSON - Relational Duality Views - Parte #3


En este artículo final de la serie de JSON Relational Duality Views, vamos a analizar las ventajas y casos de uso que nos ofrece esta nueva funcionalidad de Oracle Database 23c.


Algunas Ventajas de JSON Relational Duality Views


Alta Concurrencia

JSON Relational Duality Views introducen control de concurrencia sin bloqueo previo (concurrencia optimista), basado en versiones que contempla la actualización de datos tanto mediante el UPDATE de un documento JSON como la ejecución de sentencias UPDATE en forma directa a las tablas relacionales involucradas.


Eliminación de Datos Duplicados

Las bases de datos de documentos tienen (en general) el problema de mantener sus documentos independientes. Al no tener un buen mecanismo para declarar relaciones entre documentos, que genera duplicación de datos e inconsistencias. Los datos duplicados conducen a mayores costos de mantenimiento, errores en la toma de decisiones y oportunidades comerciales perdidas.

JSON Relational Duality elimina la duplicación de datos ya que la información de un único documento JSON es almacenada mediante transacciones ACID (atomicidad, consistencia, aislamiento, durabilidad) en diversas tablas relacionales, eliminando la duplicación de datos pero manteniendo la consistencia automáticamente.


Datos Accesibles en Múltiples Documentos

Las bases de datos de documentos no son flexibles cuando debemos tener información compartida entre distintas jerarquías. Si deseamos tener información de los productos en los documentos de Compras y Ventas, es probable que tengamos que duplicar la misma en ambas jerarquías, o que debamos usar una tercer jerarquía que se relacione a ambas pero sacrificando la integridad y generando un modelo mixto (documentos relacionados) que suma mas problemas que lo que soluciona.

Las vistas duales JSON Relational permiten definir multiples múltiples vistas de JSON en grupos de tablas superpuestas. Este modelado de datos flexible hace que la creación de múltiples aplicaciones con los mismos datos sea fácil y eficiente, permitiendo por ejemplo que la tabla relacional de productos sea incluida tanto en la vista de Compras como la de Ventas, siendo actualizable en ambas pero almacenada en forma única y consistente.


Eliminar Roundtrips

Al desarrollar una aplicación es necesario mapear entre objetos de nivel de aplicación (como clases, utilizados por lenguajes de programación) y las tablas relacionales. Es normal tener que modificar datos de varias tablas para implementar un caso de uso empresarial, lo cual genera un problema llamado "desajuste de impedancia relacional de objetos". Es frecuente el uso de frameworks (Object Relational Mapping - ORM) que facilitan las tareas de mapeo, pero en general es a expensas de performance ya que no utilizan las funciones avanzadas que ofrecen las bases de datos. Dado que una operación en un objeto de nivel de aplicación puede dar lugar a múltiples accesos o actualizaciones de las tablas participantes, esto ralentiza el rendimiento de la aplicación.

JSON Relational Duality Views elimina la necesidad de asignar objetos a tablas relacionales a nivel de la aplicación, proporcionando vistas JSON totalmente actualizables sobre los datos almacenados en forma relacional. Las aplicaciones pueden leer un documento, realizar los cambios necesarios y volver a escribir el documento sin preocuparse por la estructura de datos subyacente, el mapeo, la consistencia o el ajuste del rendimiento, permitiendo recuperar o almacenar todos los datos necesarios para una aplicación en una sola operación de base de datos.


Lo Mejor de Ambos Mundos

En definitiva, con JSON Relational Duality Views podemos unir las ventajas de ambos mundos!



JSON Relational Duality Views permite:
  • Eliminar el uso de frameworks de ORM para mapear información de las aplicaciones al modelo de datos relacional que la almacena.
  • Acceder a la información relacional mediante APIs de documentos como ser Oracle REST Data Services u Oracle Database API for MongoDB.

Si desean conocer más sobre Oracle 23c, es recomendable que vean estos artículos en este blog como punto de partida:

Adicionalmente, pueden consultar todos los artículos relacionados a Oracle Database 23c agrupados en en el tag Database 23c.

No hay comentarios.:

Publicar un comentario