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 mo­dé­li­sa­tion et une in­ter­ro­ga­tion efficaces des relations complexes. Les bases de données graphes sont donc par­ti­cu­liè­re­ment adaptées aux ap­pli­ca­tions traitant des in­for­ma­tions fortement in­ter­con­nec­té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 re­pré­sen­ta­tion basée sur des graphes. Ces graphes per­met­tent de re­pré­sen­ter de manière lisible, et de stocker dans un grand ensemble de données cohérent, des in­for­ma­tions qui sont con­nec­té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 iden­ti­fiables de manière unique, et d’arêtes, également appelées Edges. Ces dernières re­pré­sen­tent les relations des objets les uns avec les autres. Vi­suel­le­ment, ces deux éléments sont res­pec­ti­ve­ment re­pré­sen­té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 uti­li­sa­teurs dans les réseaux sociaux ou les com­por­te­ments d’achat dans les boutiques en ligne. En stockant les relations, il est alors possible de proposer des re­com­man­da­tions de produits et d’amis et de créer des réseaux per­son­na­li­sés de personnes et de produits.

Note

Les bases de données re­la­tion­nelles stockent les données dans des tables et utilisent SQL pour les in­ter­ro­ger. 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 ef­fi­ca­ce­ment des relations complexes entre les données.

Exemples de graph databases

Il existe dif­fé­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 Des­crip­tion Framework (RDF).

Labeled Property Graph

Dans un Labeled Property Graph, chaque nœud et chaque arête du graphe se voit attribuer des pro­prié­tés spé­ci­fiques, appelées pro­per­ties, ainsi que des éti­quettes (labels). Ces éléments stockent des in­for­ma­tions spé­ci­fiques sur les entités ou les relations. Les labels servent à ca­té­go­ri­ser les éléments, par exemple, un nœud peut être étiqueté comme « Personne » ou « En­tre­prise », tandis que les pro­prié­tés peuvent contenir des attributs sup­plé­men­taires tels que le nom, l’âge ou les coor­don­nées géo­gra­phiques.

Cette structure permet des requêtes de données très flexibles et per­for­mantes, car les relations et les pro­prié­tés sont di­rec­te­ment stockées dans la base de données et peuvent être ré­cu­pé­rées par des requêtes simples. Les LPG sont par­ti­cu­liè­re­ment adaptés à la mo­dé­li­sa­tion de réseaux complexes, où les entités et leurs con­nexions sont décrites dans dif­fé­rents contextes.

Resource Des­crip­tion Framework

Dans le Resource Des­crip­tion Framework, les in­for­ma­tions sont or­ga­ni­sées en triplets composés d’un sujet, d’un prédicat et d’un objet, offrant ainsi une structure simple pour re­pré­sen­ter les relations entre les entités. Chaque triplet constitue une af­fir­ma­tion, où le sujet désigne la ressource, le prédicat décrit la propriété ou la relation, et l’objet re­pré­sente la valeur ou une autre ressource.

Avec RDF, les données peuvent être liées de manière stan­dar­di­sée, ce qui permet de les combiner et de les récupérer à travers dif­fé­rents systèmes. Cette flexi­bi­lité rend RDF par­ti­cu­liè­re­ment utile pour les ap­pli­ca­tions reposant sur la connexion de données provenant de sources diverses, comme dans le cas des graphes de con­nais­sances.

Comment fonc­tion­nent les requêtes dans une base de données orientée graphe ?

Lors de l’uti­li­sa­tion d’une base de données graphe, on peut recourir à dif­fé­rents types de requêtes. Cela vient prin­ci­pa­le­ment du fait qu’il n’y a pas de langage de requête standard et uniforme. Con­trai­re­ment aux modèles tra­di­tion­nels, les graph databases mettent également en œuvre des al­go­rithmes spé­ci­fiques pour accomplir leur mission es­sen­tielle : faciliter et accélérer les requêtes de données complexes.

Au nombre des al­go­rithmes les plus im­por­tants, on trouve le parcours en pro­fon­deur d’abord et le parcours en largeur d’abord. Lors d’un parcours en pro­fon­deur d’abord, c’est le nœud im­mé­dia­te­ment inférieur qui est exploré en premier, alors que le parcours en largeur d’abord explore le graphe d’un niveau à l’autre. Les al­go­rithmes per­met­tent de trouver des modèles (appelés Graph Patterns) ainsi que les nœuds voisins directs et indirects. D’autres al­go­rithmes per­met­tent de calculer le chemin le plus court entre deux nœuds et d’iden­ti­fier des cliques (sous-ensembles de nœuds) et des hotspots (in­for­ma­tions très fortement con­nec­té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 per­for­mance élevée, même pour les requêtes complexes.

Avantages et in­con­vé­nients des bases de données orientées graphes

La force d’une base de données peut être prin­ci­pa­le­ment mesurée selon quatre critères : intégrité, per­for­mance, ef­fi­cience 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 gros­siè­re­ment l’objectif principal des bases de données graphe. Lorsque par exemple les bases de données re­la­tion­nelles at­teig­nent leurs limites de per­for­mances, le modèle basé sur les graphes fonc­tionne de manière très agile. La com­plexité et la quantité de données n’affectent pas né­ga­ti­ve­ment 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 par­ti­cu­liè­re­ment évo­ca­teurs. Cependant, ces bases de données ne sont pas pour autant des solutions uni­ver­selles. Elles at­teig­nent par exemple leurs limites pour ce qui est du passage à l’échelle. Comme elles sont prin­ci­pa­le­ment conçues pour une ar­chi­tec­ture à serveur unique, la crois­sance pose un problème (ma­thé­ma­tique). De plus, elles ne disposent pas encore d’un langage de requête standard.

Voici un aperçu des avantages et in­con­vé­nients des graph databases :

Avantages In­con­vé­nients
La vitesse des requêtes dépend uni­que­ment du nombre de relations concrètes et non de la quantité de données Mauvaise sca­la­bi­lité, car conçu pour une ar­chi­tec­ture à un serveur
Résultats en temps réel
Re­pré­sen­ta­tion claire et lisible des relations
Struc­tures flexibles et agiles

En principe, les bases de données orientées graphes ne doivent pas être con­si­dé­rées comme un rem­pla­ce­ment sys­té­ma­tique des bases de données re­la­tion­nelles tra­di­tion­nelles. Les bases de données re­la­tion­nelles demeurent des modèles standards fiables, ga­ran­tis­sant une forte intégrité et stabilité des données, tout en per­met­tant une mise à l’échelle flexible. Comme cela est souvent le cas, tout dépend en fait du but recherché !

Graph databases : com­pa­rai­son

Il existe plusieurs bases de données orientées graphes adaptées à dif­fé­rents cas d’uti­li­sa­tion. Voici quatre modèles po­pu­laires :

  • 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 dis­po­nible sur le Cloud public d’Amazon Web Services et a été publiée en 2018 en tant que base de données hautes per­for­mances.
  • SAP Hana Graph : avec SAP Hana, le dé­ve­lop­peur SAP a créé une pla­te­forme basée sur un système de gestion de base de données re­la­tion­nelle 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 con­si­dé­rée comme l’un des modèles les plus rapides ac­tuel­le­ment dis­po­nibles.

En com­pa­rai­son directe, il apparaît que les bases de données offrent dif­fé­rentes fonc­tion­na­li­tés, qui peuvent être utiles en fonction du cas d’uti­li­sa­tion spé­ci­fique :

Neo4j Amazon Neptune SAP HANA Graph OrientDB
Type Natif Géré (Cloud) Extension Graph Multi-modèle
Langages de requête Cypher SPARQL, Gremlin, Open­Cy­pher Basé sur SQL Proche de SQL, Gremlin
Modèle(s) de données Property Graph Property Graph, RDF Re­la­tion­nel, modèle graphes Graphes, documents
Cas d’uti­li­sa­tion typiques Réseaux sociaux, détection de fraude, services de re­com­man­da­tion, gestion de réseaux Graphes de con­nais­sances, gestion des identités et des accès, ap­pli­ca­tions Cloud-native Business analytics, IoT, analyse fi­nan­cière, ap­pli­ca­tions SAP Gestion de contenu, relations complexes entre données, systèmes dis­tri­bués
Aller au menu principal