Une base de données orientée graphe est un type de base de données qui stocke les données sous forme de nœuds et d’arêtes. Cette méthode permet une modélisation et une interrogation efficaces des relations complexes. Les bases de données graphes sont donc particulièrement adaptées aux applications traitant des informations fortement interconnectées.

De quoi est composée une base de données orientée graphe et à quoi sert-elle ?

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, qui sont 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 bases de données orientées graphes sont notamment utilisées pour analyser les relations des utilisateurs dans les réseaux sociaux ou les comportements d’achat dans les boutiques en ligne. En stockant les relations, il est alors possible de proposer des recommandations de produits et d’amis et de créer des réseaux personnalisés de personnes et de produits.

Note

Les bases de données relationnelles stockent les données dans des tables et utilisent SQL pour les interroger. En revanche, les bases de données orientées graphes font partie de la famille NoSQL et offrent une structure plus flexible pour gérer efficacement des relations complexes entre les données.

Exemples de graph databases

Il existe différents concepts qui décrivent la structure de ces bases de données orientées graphes. Les plus connus sont le Labeled Property Graph (LPG) et le Resource Description Framework (RDF).

Labeled Property Graph

Dans un Labeled Property Graph, chaque nœud et chaque arête du graphe se voit attribuer des propriétés spécifiques, appelées properties, ainsi que des étiquettes (labels). Ces éléments stockent des informations spécifiques sur les entités ou les relations. Les labels servent à catégoriser les éléments, par exemple, un nœud peut être étiqueté comme « Personne » ou « Entreprise », tandis que les propriétés peuvent contenir des attributs supplémentaires tels que le nom, l’âge ou les coordonnées géographiques.

Cette structure permet des requêtes de données très flexibles et performantes, car les relations et les propriétés sont directement stockées dans la base de données et peuvent être récupérées par des requêtes simples. Les LPG sont particulièrement adaptés à la modélisation de réseaux complexes, où les entités et leurs connexions sont décrites dans différents contextes.

Resource Description Framework

Dans le Resource Description Framework, les informations sont organisées en triplets composés d’un sujet, d’un prédicat et d’un objet, offrant ainsi une structure simple pour représenter les relations entre les entités. Chaque triplet constitue une affirmation, où le sujet désigne la ressource, le prédicat décrit la propriété ou la relation, et l’objet représente la valeur ou une autre ressource.

Avec RDF, les données peuvent être liées de manière standardisée, ce qui permet de les combiner et de les récupérer à travers différents systèmes. Cette flexibilité rend RDF particulièrement utile pour les applications reposant sur la connexion de données provenant de sources diverses, comme dans le cas des graphes de connaissances.

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

Lors de l’utilisation d’une base de données 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 graph databases 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.

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

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 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, ces bases de données 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.

Voici un aperçu des avantages et inconvénients des graph databases :

Avantages Inconvénients
La vitesse des requêtes dépend uniquement du nombre de relations concrètes et non de la quantité de données Mauvaise scalabilité, car conçu pour une architecture à un serveur
Résultats en temps réel
Représentation claire et lisible des relations
Structures flexibles et agiles

En principe, les bases de données orientées graphes ne doivent pas être considérées comme un remplacement systématique des bases de données relationnelles traditionnelles. Les bases de données relationnelles demeurent des modèles standards fiables, garantissant une forte intégrité et stabilité des données, tout en permettant une mise à l’échelle flexible. Comme cela est souvent le cas, tout dépend en fait du but recherché !

Graph databases : comparaison

Il existe plusieurs bases de données orientées graphes adaptées à différents cas d’utilisation. Voici quatre modèles populaires :

  • Neo4j : Neo4j est la base de données graphe la plus populaire, conçue selon un modèle open source.
  • Amazon Neptun : cette base de données 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 : la base de données combine des approches orientées document et basées sur des graphes, et est considérée comme l’un des modèles les plus rapides actuellement disponibles.

En comparaison directe, il apparaît que les bases de données offrent différentes fonctionnalités, qui peuvent être utiles en fonction du cas d’utilisation spécifique :

Neo4j Amazon Neptune SAP HANA Graph OrientDB
Type Natif Géré (Cloud) Extension Graph Multi-modèle
Langages de requête Cypher SPARQL, Gremlin, OpenCypher Basé sur SQL Proche de SQL, Gremlin
Modèle(s) de données Property Graph Property Graph, RDF Relationnel, modèle graphes Graphes, documents
Cas d’utilisation typiques Réseaux sociaux, détection de fraude, services de recommandation, gestion de réseaux Graphes de connaissances, gestion des identités et des accès, applications Cloud-native Business analytics, IoT, analyse financière, applications SAP Gestion de contenu, relations complexes entre données, systèmes distribués
Cet article vous a-t-il été utile ?
Aller au menu principal