ArangoDB - Modèles de données et modélisation

Dans ce chapitre, nous nous concentrerons sur les sujets suivants -

  • Interaction avec la base de données
  • Modèle de données
  • Récupération de données

ArangoDB prend en charge le modèle de données basé sur un document ainsi que le modèle de données basé sur un graphique. Décrivons d'abord le modèle de données basé sur un document.

Les documents d'ArangoDB ressemblent étroitement au format JSON. Aucun ou plusieurs attributs sont contenus dans un document et une valeur est associée à chaque attribut. Une valeur est soit d'un type atomique, tel qu'un nombre, booléen ou nul, une chaîne littérale, soit d'un type de données composé, tel qu'un document / objet incorporé ou un tableau. Les tableaux ou sous-objets peuvent être constitués de ces types de données, ce qui implique qu'un seul document peut représenter des structures de données non triviales.

Plus loin dans la hiérarchie, les documents sont organisés en collections, qui peuvent ne contenir aucun document (en théorie) ou plus d'un document. On peut comparer des documents à des lignes et des collections à des tables (ici, les tableaux et les lignes font référence à ceux des systèmes de gestion de bases de données relationnelles - SGBDR).

Mais, dans le SGBDR, la définition de colonnes est une condition préalable pour stocker des enregistrements dans une table, en appelant ces schémas de définitions. Cependant, en tant que nouvelle fonctionnalité, ArangoDB est sans schéma - il n'y a aucune raison a priori de spécifier les attributs que le document aura.

Et contrairement au SGBDR, chaque document peut être structuré d'une manière complètement différente d'un autre document. Ces documents peuvent être enregistrés ensemble dans une seule collection. En pratique, des caractéristiques communes peuvent exister parmi les documents de la collection, mais le système de base de données, c'est-à-dire ArangoDB lui-même, ne vous lie pas à une structure de données particulière.

Nous allons maintenant essayer de comprendre ArangoDB [graph data model], qui nécessite deux types de collections - la première est les collections de documents (appelées collections de sommets en langage théorique des groupes), la seconde est les collections de bord. Il existe une différence subtile entre ces deux types. Les collections Edge stockent également des documents, mais elles se caractérisent par l'inclusion de deux attributs uniques,_from et _topour créer des relations entre documents. En pratique, un document (bord de lecture) lie deux documents (sommets de lecture), tous deux stockés dans leurs collections respectives. Cette architecture est dérivée du concept théorique des graphes d'un graphe orienté étiqueté, excluant les arêtes qui peuvent non seulement avoir des étiquettes, mais qui peuvent être un document JSON complet en soi.

Pour calculer des données fraîches, supprimer des documents ou les manipuler, des requêtes sont utilisées, qui sélectionnent ou filtrent les documents selon les critères donnés. Soit elles sont simples comme une «requête d'exemple», soit aussi complexes que des «jointures», les requêtes sont codées en AQL - ArangoDB Query Language.