Qu'est-ce qu'une base de données orientée graphe ?

Définition d'une base de données orientée graphe

Les bases de données orientées graphe sont conçues pour stocker et rechercher des relations. Les relations sont des citoyens de première classe dans les bases de données orientées graphe, et la majeure partie de la valeur de ces bases de données est issue de ces relations. Les bases de données orientées graphe recourent à des nœuds pour stocker les entités de données, ainsi qu'à des périphéries pour stocker les relations entre les entités. Une périphérie possède toujours un nœud de départ, un nœud de fin, un type et une direction. Un nœud peut décrire les relations, actions, possession parent-enfant, etc. Le nombre et le type de relations qu'un nœud peut avoir sont illimités.

Un graphe contenu dans une base de données orientée graphe peut être traversé le long de types de périphéries spécifiques ou à travers le graphe tout entier. Dans les bases de données orientées graphe, traverser des liaisons ou des relations se fait très rapidement, car les relations entre les nœuds ne sont pas calculés aux temps de demande, mais sont maintenues dans la base de données. Elles possèdent des avantages sur les bases de données relationnelles pour des cas d'utilisation tels que les réseaux sociaux, les moteurs de recommandation ou encore la détection des fraudes, pour lesquelles il est nécessaire d'établir des relations entre des données et d'interroger rapidement ces relations.

Les graphes suivants montrent un exemple de graphe pour un réseau social. Au vu des personnes (nœuds) et de leurs relations (périphéries), vous pouvez déterminer qui sont les « amis des amis » d'une certaine personne : par exemple, les amis des amis d'Howard. 

Exemple de graphe pour un réseau social

Cas d'utilisation

Détection des fraudes

Les bases de données orientées graphe peuvent détecter les fraudes de manière sophistiquée. Avec des bases de données orientées graphe, vous pouvez utiliser les relations pour traiter les transactions financières et les transactions d'achat en temps presque réel. En formulant des requêtes de graphe rapides, vous pouvez par exemple détecter qu'un acheteur potentiel utilise la même adresse e-mail et la même carte de crédit enregistrées lors d'un précédent cas de fraude. Les bases de données orientées graphe peuvent également vous aider dans la conception de requêtes de graphe afin de facilement détecter les modèles de relations, tels que les cas d'utilisation d'une adresse e-mail personnelle par plusieurs personnes ou de partage d'adresse IP entre plusieurs personnes se trouvant à des adresses physiques différentes. 

Moteurs de recommandation

Les bases de données orientées graphe sont un bon choix pour les applications de recommandation. Avec des bases de données orientées graphe, vous pouvez stocker dans un graphe des relations entre des catégories d'informations telles que les intérêts d'un client, ses amis et son historique d'achat. Vous pouvez utiliser une base de données orientée graphe à disponibilité élevée afin de recommander des produits à un utilisateur en fonction des produits achetés par les autres utilisateurs qui sont abonnés à la même page sportive et dont l'historique d'achat est similaire. Vous pouvez aussi trouver les personnes qui ont un ami en commun, mais qui ne se connaissent pas encore et ensuite émettre une recommandation de mise en relation. 

Bases de données orientées graphe populaires

Amazon Neptune

Amazon Neptune est un moteur de base de données orientée graphe très performant et créé sur mesure, optimisé pour le stockage de milliards de relations et les requêtes de graphe avec une latence de l'ordre de quelques millisecondes. Neptune prend en charge les modèles de graphe très appréciés Property Graph et W3C Resource Description Framework (RDF), ainsi que les langages de requête associés Apache TinkerPop Gremlin et SPARQL, ce qui vous permet de créer facilement des requêtes qui parcourent efficacement les ensembles de données hautement connectés. 

Neptune est hautement disponible grâce aux réplicats de lecture, à la restauration à un instant dans le passé, à la sauvegarde continue sur Amazon S3 et à la réplication à travers les zones de disponibilité. Neptune est sécurisé avec prise en charge du chiffrement au repos. Comme Neptune est entièrement géré, vous n'avez plus besoin de vous soucier des tâches de gestion de base de données, comme la mise en service de matériel, l'application de correctifs logiciels, l'installation, la configuration ou les sauvegardes.

Annonce d'Amazon Neptune lors de la conférence AWS re:Invent 2017

Neo4j

Neo4j est une base de données orientée graphe open source, non relationnelle et native, qui fournit un backend transactionnel conforme pour vos applications. Neo4j est une base de données orientée graphe native, car elle implémente efficacement le modèle de graphe propriétaire, jusqu'au niveau de stockage. Neo4j fournit également des fonctionnalités complètes de base de données, y compris la conformité de transaction ACID, la prise en charge des clusters et le basculement du runtime. Neo4j prend en charge son propre langage de requêtes, Cypher, ainsi que Gremlin.

Pour commencer à utiliser Neo4j, rendez-vous sur AWS Marketplace.