ArangoDB - Um primeiro banco de dados Multi-Model

ArangoDB é saudado como um banco de dados multi-modelo nativo por seus desenvolvedores. Isso é diferente de outros bancos de dados NoSQL. Neste banco de dados, os dados podem ser armazenados como documentos, pares de chave / valor ou gráficos. E com uma única linguagem de consulta declarativa, qualquer um ou todos os seus dados podem ser acessados. Além disso, diferentes modelos podem ser combinados em uma única consulta. E, devido ao seu estilo multi-modelo, pode-se fazer aplicativos enxutos, que serão escalonáveis ​​horizontalmente com qualquer um ou todos os três modelos de dados.

Bancos de dados multi-modelos em camadas vs. nativos

Nesta seção, destacaremos uma diferença crucial entre bancos de dados multimodelos nativos e em camadas.

Muitos fornecedores de banco de dados chamam seu produto de “multimodelo”, mas adicionar uma camada de gráfico a uma chave / valor ou armazenamento de documento não se qualifica como multimodelo nativo.

Com ArangoDB, o mesmo núcleo com a mesma linguagem de consulta, pode-se agrupar diferentes modelos de dados e recursos em uma única consulta, como já afirmamos na seção anterior. No ArangoDB, não há “troca” entre os modelos de dados, e não há troca de dados de A para B para executar consultas. Isso leva a vantagens de desempenho para ArangoDB em comparação com as abordagens “em camadas”.

A necessidade de banco de dados multimodal

A interpretação da ideia básica [de Fowler] nos leva a perceber os benefícios de usar uma variedade de modelos de dados apropriados para diferentes partes da camada de persistência, sendo a camada parte da arquitetura de software maior.

De acordo com isso, pode-se, por exemplo, usar um banco de dados relacional para persistir dados tabulares estruturados; um armazenamento de documentos para dados não estruturados e semelhantes a objetos; um armazenamento de chave / valor para uma tabela hash; e um banco de dados gráfico para dados referenciais altamente vinculados.

No entanto, a implementação tradicional desta abordagem levará a usar vários bancos de dados no mesmo projeto. Isso pode levar a algum atrito operacional (implantação mais complicada, atualizações mais frequentes), bem como a consistência de dados e problemas de duplicação.

O próximo desafio, após unificar os dados para os três modelos de dados, é conceber e implementar uma linguagem de consulta comum que pode permitir que os administradores de dados expressem uma variedade de consultas, como consultas de documentos, pesquisas de chave / valor, consultas gráficas e combinações arbitrárias destes.

De graphy queries, queremos dizer consultas envolvendo considerações teóricas de grafos. Em particular, isso pode envolver os recursos de conectividade específicos provenientes das bordas. Por exemplo,ShortestPath, GraphTraversale Neighbors.

Os gráficos são um ajuste perfeito como modelo de dados para relações. Em muitos casos do mundo real, como rede social, sistema de recomendação, etc., um modelo de dados muito natural é um gráfico. Ele captura relações e pode conter informações de rótulo com cada aresta e com cada vértice. Além disso, os documentos JSON são um ajuste natural para armazenar este tipo de vértice e dados de borda.

ArangoDB ─ Recursos

Existem vários recursos notáveis ​​do ArangoDB. Vamos destacar as características proeminentes abaixo -

  • Paradigma Multi-modelo
  • Propriedades ACID
  • API HTTP

ArangoDB suporta todos os modelos de banco de dados populares. A seguir estão alguns modelos suportados pelo ArangoDB -

  • Modelo de documento
  • Modelo de chave / valor
  • Modelo gráfico

Uma única linguagem de consulta é suficiente para recuperar dados do banco de dados

As quatro propriedades Atomicity, Consistency, Isolatione Durability(ACID) descreve as garantias das transações do banco de dados. ArangoDB suporta transações compatíveis com ACID.

ArangoDB permite que clientes, como navegadores, interajam com o banco de dados com a API HTTP, a API sendo orientada a recursos e extensível com JavaScript.