Persistencia políglota


La persistencia políglota es un término que se refiere al uso de múltiples tecnologías de almacenamiento de datos para diferentes necesidades de almacenamiento de datos en una aplicación o dentro de componentes más pequeños de una aplicación. Tales necesidades de almacenamiento de datos variables podrían surgir en ambos casos, es decir, una empresa con múltiples aplicaciones o componentes singulares de una aplicación que necesitan almacenar datos de manera diferente.

La persistencia políglota comparte sus orígenes con la definición del término programación políglota . La programación políglota es un término acuñado por Neal Ford en 2006, y expresa la idea de que las aplicaciones informáticas deben escribirse en una mezcla de diferentes lenguajes de programación , a fin de aprovechar el hecho de que diferentes lenguajes son adecuados para abordar diferentes problemas. Las aplicaciones complejas combinan diferentes tipos de problemas, por lo que elegir el idioma adecuado para cada trabajo puede ser más productivo que tratar de resolver todos los aspectos del problema utilizando un solo idioma. Este mismo concepto se puede aplicar a las bases de datos., que una aplicación puede comunicarse con diferentes bases de datos, utilizando cada una de ellas para lo que es mejor para lograr un objetivo final, de ahí el término persistencia políglota .

Dado que existen numerosas bases de datos disponibles para resolver diferentes problemas, el uso de una sola base de datos para satisfacer todos los requisitos de un programa puede resultar en una solución que no funcione , "el mejor de todos, el maestro de ninguno". Las bases de datos relacionales , por ejemplo, son buenas para hacer cumplir las relaciones que existen entre varias tablas de datos. Para descubrir una relación o buscar datos de diferentes tablas que pertenecen al mismo objeto, se puede utilizar una operación de combinación SQL . Esto podría funcionar cuando los datos son más pequeños, pero se vuelve problemático cuando los datos involucrados crecen. Una base de datos gráfica puede resolver el problema de las relaciones en el caso de Big Data , pero puede que no resuelva el problema detransacciones de bases de datos , que son proporcionadas por sistemas de gestión de bases de datos relacionales. En cambio, se puede utilizar una base de datos de documentos NoSQL para almacenar datos no estructurados para esa parte particular del problema. De esta manera, diferentes sistemas de bases de datos resuelven diferentes problemas, todos dentro de la misma aplicación.

Como Martin Fowler (ingeniero de software) también lo cita en uno de sus artículos, una de las consecuencias interesantes de esto es que nos estamos preparando para un cambio hacia la persistencia políglota donde cualquier empresa de tamaño decente tendrá una variedad de diferentes tecnologías de almacenamiento de datos para diferentes tipos de datos. Seguirá habiendo grandes cantidades gestionadas en tiendas relacionales, pero cada vez más nos preguntaremos primero cómo queremos manipular los datos y solo luego averiguaremos qué tecnología es la mejor opción para ello. [1]