ArangoDB - Une première base de données multimodèle

ArangoDB est salué comme une base de données multi-modèle native par ses développeurs. Ceci est différent des autres bases de données NoSQL. Dans cette base de données, les données peuvent être stockées sous forme de documents, de paires clé / valeur ou de graphiques. Et avec un seul langage de requête déclaratif, vous pouvez accéder à tout ou partie de vos données. De plus, différents modèles peuvent être combinés dans une seule requête. Et, en raison de son style multi-modèle, on peut créer des applications allégées, qui seront évolutives horizontalement avec l'un ou l'ensemble des trois modèles de données.

Bases de données multi-modèles en couches et natives

Dans cette section, nous mettrons en évidence une différence cruciale entre les bases de données multimodèles natives et multicouches.

De nombreux fournisseurs de bases de données appellent leur produit «multi-modèle», mais l'ajout d'une couche de graphes à une clé / valeur ou à un magasin de documents ne constitue pas un multi-modèle natif.

Avec ArangoDB, le même noyau avec le même langage de requête, on peut regrouper différents modèles de données et fonctionnalités dans une seule requête, comme nous l'avons déjà indiqué dans la section précédente. Dans ArangoDB, il n'y a pas de «commutation» entre les modèles de données, et il n'y a pas de déplacement des données de A vers B pour exécuter des requêtes. Cela conduit à des avantages de performances pour ArangoDB par rapport aux approches «en couches».

Le besoin d'une base de données multimodale

L'interprétation de l'idée de base [de Fowler] nous amène à réaliser les avantages de l'utilisation d'une variété de modèles de données appropriés pour différentes parties de la couche de persistance, la couche faisant partie de l'architecture logicielle plus large.

Selon cela, on pourrait, par exemple, utiliser une base de données relationnelle pour conserver des données tabulaires structurées; un magasin de documents pour les données non structurées de type objet; un magasin clé / valeur pour une table de hachage; et une base de données de graphiques pour des données référentielles hautement liées.

Cependant, la mise en œuvre traditionnelle de cette approche conduira à utiliser plusieurs bases de données dans le même projet. Cela peut entraîner des frictions opérationnelles (déploiement plus compliqué, mises à niveau plus fréquentes) ainsi que des problèmes de cohérence et de duplication des données.

Le prochain défi après l'unification des données pour les trois modèles de données est de concevoir et d'implémenter un langage de requête commun qui peut permettre aux administrateurs de données d'exprimer une variété de requêtes, telles que des requêtes de documents, des recherches clé / valeur, des requêtes graphiques et des combinaisons arbitraires. de ceux-ci.

Par graphy queries, nous entendons des requêtes impliquant des considérations de théorie des graphes. En particulier, ceux-ci peuvent impliquer les caractéristiques de connectivité particulières provenant des bords. Par exemple,ShortestPath, GraphTraversal, et Neighbors.

Les graphiques conviennent parfaitement comme modèle de données pour les relations. Dans de nombreux cas réels tels que les réseaux sociaux, les systèmes de recommandation, etc., un modèle de données très naturel est un graphique. Il capture les relations et peut contenir des informations d'étiquette avec chaque arête et avec chaque sommet. De plus, les documents JSON conviennent naturellement pour stocker ce type de données de sommet et d'arête.

ArangoDB ─ Caractéristiques

Il existe diverses fonctionnalités notables d'ArangoDB. Nous soulignerons les caractéristiques importantes ci-dessous -

  • Paradigme multimodèle
  • Propriétés ACID
  • API HTTP

ArangoDB prend en charge tous les modèles de base de données courants. Voici quelques modèles pris en charge par ArangoDB -

  • Modèle de document
  • Modèle clé / valeur
  • Modèle graphique

Un seul langage de requête suffit pour récupérer des données hors de la base de données

Les quatre propriétés Atomicity, Consistency, Isolation, et Durability(ACID) décrivent les garanties des transactions de base de données. ArangoDB prend en charge les transactions conformes à ACID.

ArangoDB permet aux clients, tels que les navigateurs, d'interagir avec la base de données avec l'API HTTP, l'API étant orientée ressources et extensible avec JavaScript.