stringtranslate.com

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 backend integrado. Por el contrario, la mayoría de los sistemas de gestión de bases de datos están organizados en torno a un único modelo de datos que determina cómo se pueden organizar, almacenar y manipular los datos. [1] Los modelos de documento , gráfico , relacional y de valor-clave son ejemplos de modelos de datos que pueden ser compatibles con una base de datos multimodelo.

Fondo

El modelo de datos relacionales se hizo popular después de su publicación por Edgar F. Codd en 1970. Debido a los crecientes requisitos de escalabilidad horizontal y tolerancia a fallas , las bases de datos NoSQL se hicieron prominentes después de 2009. Las bases de datos NoSQL utilizan una variedad de modelos de datos, con documentos , gráficos y Los modelos clave-valor son populares. [2]

Una base de datos multimodelo es una base de datos que puede almacenar, indexar y consultar datos en más de un modelo. Durante algún tiempo, las bases de datos han soportado principalmente un solo modelo, como por ejemplo: base de datos relacional , base de datos orientada a documentos , base de datos de gráficos o triplestore . Una base de datos que combina muchos de estos es multimodelo.

Durante algún tiempo, casi se olvidó (o se consideró irrelevante) que existían otros modelos de bases de datos además de los relacionales. El modelo relacional y la noción de tercera forma normal eran el estándar predeterminado para todo el almacenamiento de datos. Sin embargo, antes del predominio del modelado de datos relacionales, aproximadamente entre 1980 y 2005, se utilizaba habitualmente el modelo de base de datos jerárquico . Desde 2000 o 2010, son populares muchos modelos NoSQL que no son relacionales, incluidos documentos, triples, almacenes clave-valor y gráficos. Podría decirse que los datos geoespaciales, los datos temporales y los datos de texto también son modelos separados, aunque los datos de texto indexados y consultables generalmente se denominan " motor de búsqueda " en lugar de base de datos. [ cita necesaria ]

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 imaginó la evolución de los productos NoSQL de primera generación hacia nuevos productos con más funciones capaces de ser utilizados en múltiples casos de uso.

La idea de bases de datos multimodelo se remonta a los sistemas de gestión de datos relacionales de objetos (ORDBMS) a principios de los años 1990 y, en un ámbito más amplio, incluso a los DBMS federados e integrados a principios de los años 1980. Un sistema ORDBMS gestiona diferentes tipos de datos, como relacionales, de objetos, de texto y espaciales, conectando 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 más directa al enfoque de " persistencia políglota " de unir múltiples productos de bases de datos, cada uno con un modelo diferente, para lograr una capacidad multimodelo como la describe Martin Fowler. [5] Esta estrategia tiene dos desventajas principales: conduce a un aumento significativo en la complejidad operativa y no hay soporte para mantener la coherencia de los datos en los almacenes de datos separados, por lo que las bases de datos multimodelo han comenzado a llenar este vacío.

Las bases de datos multimodelo están destinadas a ofrecer las ventajas del 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 multimodelo

A medida que se proponen cada vez más plataformas para tratar datos multimodelo, existen algunos trabajos sobre evaluación comparativa de bases de datos multimodelo. Por ejemplo, Pluciennik, [6] Oliveira, [7] y UniBench [8] revisaron las bases de datos multimodelo existentes e hicieron un esfuerzo de evaluación para comparar 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 de un solo modelo son las siguientes:

  1. son capaces de ingerir una variedad de formatos de datos como CSV (incluidos Graph, Relational) y JSON en el almacenamiento sin ningún esfuerzo adicional.
  2. pueden emplear un lenguaje de consulta unificado como AQL, Orient SQL, SQL/XML, SQL/JSON para recuperar datos multimodelo correlacionados, como gráfico-JSON-clave/valor, XML-relacional y JSON-relacional en un solo plataforma.
  3. son capaces de soportar transacciones ACID multimodelo en modo independiente.

Arquitectura

La principal diferencia entre las bases de datos multimodelo disponibles está relacionada con sus arquitecturas. Las bases de datos multimodelo pueden admitir diferentes modelos, ya sea dentro del motor o mediante diferentes capas en la parte superior del motor. Algunos productos pueden proporcionar un motor que admita documentos y gráficos, mientras que otros proporcionan capas encima de un almacén de claves. [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 está habilitada por transacciones ACID con alto rendimiento y escalabilidad. Para que un modelo de datos personalizado admita actualizaciones simultáneas, la base de datos debe poder sincronizar actualizaciones entre varias claves. Las transacciones ACID, si tienen el rendimiento suficiente, permiten dicha sincronización. [10] Los documentos JSON, gráficos y tablas relacionales se pueden implementar de una manera que herede la escalabilidad horizontal y la tolerancia a fallas del almacén de datos subyacente.

Ver también

Referencias

  1. ^ The 451 Group, "Ni pescado ni aves: el auge de las bases de datos multimodelo"
  2. ^ ab Infoworld, "El auge de la base de datos multimodelo"
  3. ^ "Almacenamiento multimodelo 1/2 un producto". 2012-06-01.
  4. ^ "Conferencia Nosql Matters 2012 | NoSQL Matters CGN 2012" (PDF) . 2012.nosql-matters.org . Consultado el 12 de enero de 2017 .
  5. ^ ab 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}}: Mantenimiento CS1: varios nombres: lista de autores ( enlace )
  9. ^ "capa"
  10. ^ ODBMS, "¿Persistencia políglota o múltiples modelos de datos?"

enlaces externos