Articulo de referencia

Base de datos multimodelo

En el campo del diseño de bases de datos, una base de datos multimodelo es un sistema de gestión de bases de datos diseñado para admitir múltiples modelos de datos en un único b...

En el campo del diseño de bases de datos, una base de datos multimodelo es un sistema de gestión de bases de datos diseñado para admitir múltiples modelos de datos en un único backend integrado. En contraste, la mayoría de los sistemas de gestión de bases de datos se organizan en torno a un único modelo de datos que determina cómo se pueden organizar, almacenar y manipular los datos. [ 1 ] Los modelos de documentos , grafos , relacionales y clave-valor son ejemplos de modelos de datos que puede admitir una base de datos multimodelo.

Fondo

El modelo de datos relacional se popularizó tras su publicación por Edgar F. Codd en 1970. Debido a la creciente necesidad de escalabilidad horizontal y tolerancia a fallos , las bases de datos NoSQL cobraron gran importancia después de 2009. Las bases de datos NoSQL utilizan diversos modelos de datos, siendo los más populares los de documentos , grafos y clave-valor. [ 2 ]

Una base de datos multimodelo es aquella que puede almacenar, indexar y consultar datos en más de un modelo. Durante algún tiempo, las bases de datos han admitido principalmente un solo modelo, como por ejemplo: base de datos relacional , base de datos orientada a documentos , base de datos de grafos o almacén de triples . Una base de datos que combina varios de estos es multimodelo. Esto no debe confundirse con los sistemas de bases de datos multimodales como Pixeltable o ApertureDB , que se centran en la gestión unificada de diferentes tipos de medios (imágenes, vídeo, audio, texto) en lugar de diferentes modelos de datos.

Durante un tiempo, se olvidó casi por completo (o se consideró irrelevante) la existencia de otros modelos de bases de datos además de las relacionales. El modelo relacional y la noción de tercera forma normal eran el estándar predeterminado para el almacenamiento de datos. Sin embargo, antes del predominio del modelado de datos relacionales, aproximadamente entre 1980 y 2005, el modelo de base de datos jerárquico era de uso común. Desde el año 2000 o 2010, muchos modelos NoSQL no relacionales, como documentos, triples, almacenes clave-valor y grafos, se han popularizado. Podría decirse que los datos geoespaciales , temporales y de texto también constituyen modelos independientes, aunque los datos de texto indexados y consultables se denominan generalmente " motor de búsqueda " en lugar de base de datos.

La primera vez que se asoció la palabra "multimodelo" a las bases de datos fue el 30 de mayo de 2012 en Colonia, Alemania, durante la conferencia magistral de Luca Garulli " Adopción de NoSQL: ¿Cuál es el siguiente paso? ". [ 3 ] [ 4 ] Luca Garulli vislumbró la evolución de los productos NoSQL de primera generación hacia nuevos productos con más características que pudieran ser utilizados por múltiples casos de uso.

La idea de las bases de datos multimodelo se remonta a los sistemas de gestión de datos objeto-relacionales (ORDBMS) de principios de la década de 1990 y, en un ámbito más amplio, incluso a los sistemas de gestión de bases de datos federados e integrados de principios de la década de 1980. Un sistema ORDBMS gestiona diferentes tipos de datos, como relacionales, de objetos, de texto y espaciales, mediante la incorporación de tipos de datos, funciones e implementaciones de índices específicos del dominio en los núcleos del DBMS. Una base de datos multimodelo es una respuesta directa al enfoque de " persistencia políglota " de combinar múltiples productos de bases de datos, cada uno manejando un modelo diferente, para lograr una capacidad multimodelo como la descrita por Martin Fowler . [ 5 ] Esta estrategia tiene dos desventajas principales: conlleva un aumento significativo de la complejidad operativa y no hay soporte para mantener la coherencia de los datos entre los distintos almacenes de datos, por lo que las bases de datos multimodelo han comenzado a llenar este vacío.

Las bases de datos multimodelo están diseñadas para ofrecer las ventajas de modelado de datos de la persistencia políglota, [ 5 ] sin sus desventajas. La complejidad operativa, en particular, se reduce mediante el uso de un único almacén de datos. [ 2 ]

Evaluación comparativa de bases de datos multimodelos

A medida que se proponen más plataformas para gestionar datos multimodelo, existen algunos trabajos sobre la evaluación comparativa de bases de datos multimodelo. Por ejemplo, Pluciennik [ 6 ] , Oliveira [ 7 ] y UniBench [ 8 ] revisaron las bases de datos multimodelo existentes y realizaron una evaluación comparativa entre bases de datos multimodelo y otras bases de datos SQL y NoSQL , respectivamente. Señalaron que las ventajas de las bases de datos multimodelo sobre las bases de datos monomodelo son las siguientes : 

  1. Son capaces de incorporar una variedad de formatos de datos, como CSV (incluidos gráficos y relacionales) y JSON , al almacenamiento sin ningún esfuerzo adicional.
  2. Pueden emplear un lenguaje de consulta unificado como AQL , Orient SQL , SQL/XML o SQL/JSON para recuperar datos multimodales correlacionados, como datos de clave/valor JSON gráficos, XML relacionales y JSON relacionales, en una única plataforma.
  3. Son capaces de admitir transacciones ACID multimodelo en modo independiente.

Arquitectura

La principal diferencia entre las bases de datos multimodelo disponibles radica en sus arquitecturas. Las bases de datos multimodelo pueden admitir diferentes modelos, ya sea dentro del motor o mediante diferentes capas sobre el mismo. Algunos productos pueden proporcionar un motor que admite documentos y grafos, mientras que otros proporcionan capas sobre un almacén de clave-clave. [ 9 ] Con una arquitectura en capas, cada modelo de datos se proporciona a través de su propio componente .

Modelos de datos definidos por el usuario

Además de ofrecer múltiples modelos de datos en un único almacén de datos, algunas bases de datos permiten a los desarrolladores definir fácilmente modelos de datos personalizados. Esta capacidad se habilita mediante transacciones ACID con alto rendimiento y escalabilidad. Para que un modelo de datos personalizado admita actualizaciones concurrentes, la base de datos debe poder sincronizar las actualizaciones entre múltiples claves. Las transacciones ACID, si tienen un rendimiento suficiente, permiten dicha sincronización. [ 10 ] Los documentos JSON, los grafos y las tablas relacionales pueden implementarse de manera que hereden la escalabilidad horizontal y la tolerancia a fallos del almacén de datos subyacente.

Fundamentos teóricos para bases de datos multimodelos

La teoría tradicional de las relaciones resulta insuficiente para describir con precisión los sistemas de bases de datos multimodelos. Investigaciones recientes [ 11 ] se centran en el desarrollo de una nueva base teórica para estos sistemas. La teoría de categorías puede proporcionar un lenguaje unificado y riguroso para modelar, integrar y transformar diferentes modelos de datos. Al representar los datos multimodelos como conjuntos y sus relaciones como funciones o relaciones dentro de la categoría de Conjunto, podemos crear un marco formal para describir, manipular y comprender diversos modelos de datos y su interacción.

Véase también

Referencias

  1. El Grupo 451, "Ni pez ni ave: El auge de las bases de datos multimodelos"
  2. 1 2 Infoworld, "El auge de la base de datos multimodelo"
  3. "Almacenamiento multimodelo 1/2 un producto" . 1 de junio de 2012.
  4. "Conferencia NoSQL Matters 2012 | NoSQL Matters CGN 2012" (PDF) . 2012.nosql-matters.org . Consultado el 12 de enero de 2017 .
  5. 1 2 Persistencia políglota
  6. Ewa Pluciennik y Kamil Zgorzalek. "Las bases de datos multimodelo: una revisión". Bdas 2017 : 141– 152.
  7. Fábio Roberto Oliveira, Luis del Val Cura. "Evaluación del rendimiento de almacenes de datos multimodelo NoSQL en aplicaciones de persistencia políglota". Ideas '16 : 230– 235.
  8. ^ Chao Zhang, Jiaheng Lu, Pengfei Xu, Yuxing Chen. "UniBench: un punto de referencia para sistemas de gestión de bases de datos multimodelo" (PDF) . TPCTC 2018 .{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  9. "capa"
  10. ODBMS, "¿Persistencia políglota o modelos de datos múltiples?"
  11. MultiCategory: El procesamiento de consultas multimodelo se une a la teoría de categorías y la programación funcional.
  • Persistencia políglota
  • El Grupo 451, "Ni pez ni ave: El auge de las bases de datos multimodelos"
  • ODBMS, "Sobre bases de datos multimodelos. Entrevista con Martin Schönert y Frank Celler."
  • ODBMS, "¿Persistencia políglota o modelos de datos múltiples?"
  • Infoworld, "El auge de las bases de datos multimodelos"