Tout sur la graph database : la base de données pour une mise en réseau efficace

Les Big Data représentent depuis longtemps la quintessence de la numérisation progressive de notre société. Cependant, la haute disponibilité de grandes quantités de données pose également de nombreux problèmes : des volumes de données en croissance rapide, en rapide évolution et peu structurées nécessitent des solutions informatiques performantes pour pouvoir être analysés et utilisés de manière efficace.

La base de données orientée graphe est un modèle de base de données capable de gérer de nombreuses informations interconnectées. Elle apporte une réponse aux problèmes posés par la base de données relationnelle classique, qui atteint rapidement ses limites dans le cas de masses de données très volumineuses et complexes. Cela la situe parmi les alternatives modernes de base de données, qui se démarquent de l'approche relationnelle traditionnelle et sont regroupés sous le terme NoSQL (« Not only SQL »). Mais comment fonctionne exactement une base de données orientée graphe et quels sont les avantages qu’offre sa structure ?

Qu’est-ce qu’une base de données orientée graphe (Graph Database)?

Comme son nom l'indique, une base de données orientée graphe (en anglais graph database) est une représentation basée sur des graphes. Ces graphes permettent de représenter de manière lisible, et de stocker dans un grand ensemble de données cohérent, des informations qui sont connectées les unes aux autres de manière complexe, ainsi que leurs relations les unes avec les autres. Les graphes sont composés de nœuds, des entités ou objets de données désignés et identifiables de manière unique, et d’arêtes, également appelées Edges. Ces dernières représentent les relations des objets les uns avec les autres. Visuellement, ces deux éléments sont respectivement représentés par des points et par des lignes. Les arêtes ont donc chacune un point de départ et point d’arrivée, tandis que chaque nœud a toujours un certain nombre de relations vers d'autres nœuds, qu'elles soient entrantes, sortantes ou non orientées.

Les concepts courants pour la construction de telles bases de données orientées graphe sont le Graphe Étiqueté (Labeled-Property-Graph) et le Cadre de Description des Ressources (RDF - Resource Description Framework). Dans le premier cas, des propriétés spécifiques (properties en anglais) sont attribuées aux nœuds comme aux arêtes. Dans le cadre de description des ressources (RDF), par contre, la modélisation du graphe se fait à l’aide de triplets et de quadruplets (ou quads) : les triplets sont constitués de trois éléments selon le schéma nœud-arête-nœud. Les quads complètent les triplets avec des informations contextuelles supplémentaires, facilitant ainsi le regroupement de ces derniers en groupes.

Comment fonctionnent les requêtes dans une base de données orientée graphe ?

Lors de l'utilisation d'une base de données orientée graphe, on peut recourir à différents types de requêtes. Cela vient principalement du fait qu'il n'y a pas de langage de requête standard et uniforme. Contrairement aux modèles traditionnels, les bases de données orientées graphe mettent également en œuvre des algorithmes spécifiques pour accomplir leur mission essentielle : faciliter et accélérer les requêtes de données complexes.

Au nombre des algorithmes les plus importants, on trouve le parcours en profondeur d’abord et le parcours en largeur d’abord. Lors d’un parcours en profondeur d’abord, c’est le nœud immédiatement inférieur qui est exploré en premier, alors que le parcours en largeur d’abord explore le graphe d'un niveau à l'autre. Les algorithmes permettent de trouver des modèles (appelés Graph Patterns) ainsi que les nœuds voisins directs et indirects. D'autres algorithmes permettent de calculer le chemin le plus court entre deux nœuds et d'identifier des cliques (sous-ensembles de nœuds) et des hotspots (informations très fortement connectées). L'un des points forts de la base de données orientée graphe est que les relations sont stockées dans la base de données elle-même et qu’elles ne doivent donc pas être calculées sur requête. Cela donne une vitesse de performance élevée, même pour les requêtes complexes.

Différences avec les bases de données relationnelles et d'autres bases de données NoSQL

Les bases de données relationnelles sont devenues une norme pour les bases de données depuis leur création en 1970. Contrairement aux bases de données orientées graphe, elles travaillent sur la base de tables qui maintiennent des relations de n-uplets, nommés enregistrements, dans des lignes individuelles. Dans les colonnes, on peut représenter des propriétés avec différentes valeurs d'attribut. Outre sa structure et sa construction, son mode de travail diffère ainsi fondamentalement de la représentation par graphe. Quand les informations sont fortement connectées les unes aux autres, il faut interconnecter et calculer plusieurs tables si on veut pouvoir représenter et sauvegarder les relations. Cela peut souvent prendre beaucoup de temps et coûter cher pour de grandes quantités de données.

Alors que les bases de données fondées sur des tables utilisent uniquement le langage de requête SQL ("Structured Query Language"), les bases de données plus modernes NoSQL s'éloignent de plus en plus de ce langage de requête et de l’approche relationnelle associée. C’est une tendance qu’on trouve aussi avec les bases de données orientées graphe, en tant que membres de la famille NoSQL. Outre les bases de données orientées graphe, de nombreux autres modèles, tels que les bases de données clé-valeur, les bases de données orientées colonnes et les bases de données orientées document, appartiennent à cette famille. Celles-ci traitent et stockent surtout des enregistrements de données plus structurés et moins interconnectés.

À quoi servent les bases de données orientées graphe ?

Les bases de données orientées graphe peuvent être utilisées dans toutes sortes de domaines et à toutes sortes de fins. Elles permettent d'analyser des informations interconnectées, de comprendre, d'évaluer et d'exploiter les processus et les connexions.

L'analyse des relations entre utilisateurs dans les réseaux sociaux ou du comportement d'achat des clients dans les magasins en ligne est un exemple typique d'utilisation des bases de données orientées graphe. Sur la base des différentes données et relations, des recommandations ciblées de produits ou de connexions de type « ami » peuvent ainsi être données et des réseaux de personnes ou de produits individuels peuvent être constitués. En outre, les entreprises bénéficient de la possibilité de créer des profils clients complets à partir des informations provenant des requêtes de recherche, de l'historique des clics et d'autres composants. Dans la gestion de la chaîne logistique, les bases de données orientées graphe permettent de suivre tous les processus, de la conception à la vente. Enfin, ces bases de données sont utilisées pour l'analyse des risques, la détection des fraudes et la recherche de pannes.

Avantages et inconvénients des bases de données orientées graphe

La force d'une base de données peut être principalement mesurée selon quatre critères : intégrité, performance, efficience et passage à l’échelle. La requête de données doit être plus rapide et plus simple, c’est ainsi qu’on peut résumer grossièrement l’objectif principal des bases de données orientées graphe. Lorsque par exemple les bases de données relationnelles atteignent leurs limites de performances, le modèle basé sur les graphes fonctionne de manière très agile. La complexité et la quantité de données n'affectent pas négativement le processus de requête dans ce modèle.

De plus, les faits réels peuvent être stockés de manière naturelle avec le modèle de base de données orientée graphe. La structure utilisée est très similaire à la pensée humaine et rend donc les liens particulièrement évocateurs. Cependant, les bases de données orientées graphe ne sont pas pour autant des solutions universelles. Elles atteignent par exemple leurs limites pour ce qui est du passage à l’échelle. Comme elles sont principalement conçues pour une architecture à serveur unique, la croissance pose un problème (mathématique). De plus, elles ne disposent pas encore d’un langage de requête standard.

Résumé des avantages et inconvénients des bases de données orientées graphique :

Avantages Inconvénients
La vitesse de la requête dépend uniquement du nombre de relations concrètes et non de la quantité de données Peu évolutif car conçu pour une architecture à serveur unique
Résultats en temps réel Pas de langage de requête standard
Présentation claire et lisible des relations  
Structures flexibles et agiles  

En principe, les bases de données orientées graphe ne doivent pas être considérées comme un substitut absolu et préférable aux bases de données traditionnelles. Les structures relationnelles restent des modèles standards raisonnables, qui garantissent une intégrité et une stabilité élevées des données et permettent un passage à l’échelle flexible. Comme cela est souvent le cas, tout dépend en fait du but recherché !

Vue d’ensemble des bases de données orientées graphe les plus populaires

  • Neo4j : Neo4j est la base de données orientée graphe la plus populaire, conçue selon un modèle open source.
  • Amazon Neptun : cette base de données orientée graphe est disponible sur le cloud public d'Amazon Web Services et a été publiée en 2018 en tant que base de données hautes performances.
  • SAP Hana Graph : avec SAP Hana, le développeur SAP a créé une plateforme basée sur un système de gestion de base de données relationnelle et complétée par le modèle intégré orienté graphe SAP Hana.
  • OrientDB : cette base de données orientée graphe est considérée comme l'un des modèles les plus rapides actuellement disponibles.