Polyglot Persistence

Hoy en día, a la hora de crear una aplicación empresarial o modelar nuestro Data Warehouse, ya no tenemos que asumir que una base de datos relacional sea nuestra única opción. Será una opción más, y probablemente la más importante, pero no la única.

 

Hagamos un poquito de historia y remontémonos a diciembre de 2006. Neal Ford escribe un artículo en su blog personal y acuña el término “Polyglot Programming”. En su artículo nos dice que las aplicaciones pueden ser escritas en diferentes lenguajes, aprovechando las ventajas de cada uno de ellos dependiendo del problema a solucionar. Ford había plantado la semilla. Dos años después aparece ya el concepto de “Polyglot Persistence” en el blog personal de Scott Leberknight.

 

“Polyglot persistence” es una reinterpretación de “Polyglot Programming” y, al igual que él, nos propone usar la base de datos y manera de persistencia adecuada para cada tipo de dato y aplicativo.

 

Veamos el clásico ejemplo de una tienda online, donde la información no es uniforme. Podríamos persistir nuestra información de diferentes formas:

 

  • La información sobre las transacciones, clientes e información financiera podría alojarse en una base de datos relacional. Este tipo de información estructurada, en la que no nos podemos permitir perder una transacción, requiere de la potencia de este tipo de bases de datos.
  • Los Datos del “Shopping cart” en una base de datos documental o de key-value, ya que son datos a los que debemos acceder muy rápidamente y que mueren una vez terminada la compra.
  • El módulo de recomendación de productos en una base de datos de grafos. Los bases de datos de grafos nos permiten crear relaciones entre entidades de manera muy rápida y sin tener que modificar el modelo.

 

El mercado nos ofrece múltiples soluciones para la persistencia de nuestros datos; aprovechemos cada una para el caso de uso que más se le adapte.

 

Problemática

Hasta aquí todo nos hace pensar: ¿por qué no estoy usando ya este paradigma? El problema de estas aproximaciones “políglotas” es la gestión de múltiples bases de datos, con el coste asociado que ello implica y la dificultad de hacer que trabajen de manera conjunta. Manejar diferentes motores de base de datos a la hora de aplicar políticas de seguridad de acceso al dato puede ser un auténtico quebradero de cabeza.

 

La persistencia “políglota”, pese no ser un concepto nuevo, no tiene una gran introducción, aunque teóricamente es la solución perfecta de almacenamiento: usar la base de datos adecuada para cada uso. Por ello nace un nuevo concepto que Oracle ha comenzado ya a implementar: la persistencia políglota multimodelo, en contraposición a la aproximación “single model” clásica.

 

 

Se trata de dar la capacidad al motor de nuestra base de datos de poder trabajar con diferentes modelos de persistencia de manera separada y aislada, pero siempre bajo este mismo motor. Gracias a esta capacidad, la gestión de usuarios, las políticas de seguridad y el mantenimiento de la misma base de datos no tiene que duplicarse.

 

Oracle, desde la versión 12, ya ofrece estas características, pudiendo almacenar información relacional, key-value, XML, JSON, Grafos e información espacial.

Para más información: Multimodel Database White Paper.

 

Twitter
LinkedIn
Evolución, innovación y transformación
42 especializaciones avaladas por Oracle
Oportunidades ilimitadas
Posts 100% Oracle
Sigue nuestro día a día