Qu'est-ce qu'une base de données orientée graphe ?
Une base de données orientée graphe est une collecte systématique de données qui met l’accent sur les relations entre les différentes entités de données. La base de données NoSQL utilise la théorie mathématique des graphes pour montrer les connexions de données. Contrairement aux bases de données relationnelles, qui stockent les données dans des structures de table rigides, les bases de données orientées graphe stockent les données sous la forme d'un réseau d'entités et de relations. C'est pourquoi ces bases de données offrent souvent de meilleures performances et une meilleure flexibilité, car elles sont mieux adaptées à la modélisation de scénarios réels.
Qu'est-ce qu'un graphe ?
Le terme « graphe » vient du domaine des mathématiques. Un graphe contient un ensemble de nœuds et d'arêtes.
Nœuds
Les nœuds sont des sommets qui stockent les objets de données. Chaque nœud peut avoir un nombre et des types de relations illimités.
Arêtes
Les arêtes représentent les relations entre les nœuds. Par exemple, les arêtes peuvent décrire les relations, les actions ou la propriété parents-enfants. Elles peuvent représenter à la fois des relations de type "one-to-many" et "many-to-many". Une arête possède toujours un nœud initial, un nœud final, un type et une direction.
Propriétés
Chaque nœud possède des propriétés ou des attributs qui le décrivent. Dans certains cas, les arêtes ont également des propriétés. Les graphes dotés de propriétés sont également appelés graphes de propriétés.
Exemple de graphe
Les graphes de propriétés suivants montrent un exemple de graphe pour un réseau social. Au vu des personnes (nœuds) et de leurs relations (arêtes), vous pouvez déterminer qui sont les « amis des amis » d'une certaine personne : par exemple, les amis des amis d'Howard.
Quels sont les cas d'utilisation des bases de données orientées graphe ?
Les bases de données orientées graphe possèdent des avantages pour les cas d'utilisation tels que les réseaux sociaux, les moteurs de recommandation ou encore la détection des fraudes, lorsqu'elles sont utilisées pour établir des relations entre des données et interroger rapidement ces relations.
Détection des fraudes
Les bases de données orientées graphe peuvent détecter les fraudes de manière sophistiquée. Par exemple, vous pouvez utiliser les relations des bases de données orientées graphe pour traiter les transactions financières en temps presque réel. En formulant des requêtes de graphe rapides, vous pouvez 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 à 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 emplacements physiques différents.
Moteurs de recommandation
Le modèle orienté graphe est un bon choix pour les applications qui fournissent des recommandations. 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 dont les intérêts et l'historique d'achat sont similaires. Vous pouvez également 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.
Optimisation de routage
Les problèmes d'optimisation de routage impliquent l'analyse d'un jeu de données et la recherche des valeurs les plus adaptées à un scénario particulier. Par exemple, vous pouvez utiliser une base de données orientée graphe pour rechercher les éléments suivants :
- l'itinéraire le plus court d'un point A à un point B sur une carte en tenant compte des différents chemins ;
- le bon employé pour un quart de travail spécifique en analysant les disponibilités, les emplacements et les compétences ;
- les meilleures machines pour les opérations en tenant compte de paramètres tels que le coût et la durée de vie de l'équipement.
Les requêtes de graphe peuvent analyser ces situations beaucoup plus rapidement, car elles peuvent compter et comparer le nombre de liens entre deux nœuds.
Découverte de modèles
Les bases de données orientées graphe sont parfaitement adaptées pour découvrir des relations complexes et des modèles cachés dans les données. Par exemple, une entreprise de réseaux sociaux utilise une base de données orientée graphe pour faire la distinction entre les comptes de bots et les comptes de personnes réelles. Celle-ci analyse l'activité du compte pour découvrir les liens entre les interactions du compte et l'activité du bot.
Gestion des connaissances
Les bases de données orientées graphe proposent des techniques d'intégration de données, de données liées et de partage d'informations. Elles représentent des métadonnées ou des concepts de domaine complexes dans un format standardisé et fournissent une sémantique riche pour le traitement du langage naturel. Vous pouvez également utiliser ces bases de données pour les graphes de connaissances et la gestion des données principales. Par exemple, les algorithmes de machine learning font la distinction entre la forêt amazonienne et la marque Amazon grâce à des modèles de graphe.
Quels sont les avantages des bases de données orientées graphe ?
Les bases de données orientées graphe sont conçues sur mesure pour gérer des données hautement connectées. À mesure que la connectivité et le volume des données modernes augmentent, les bases de données orientées graphe permettent d'utiliser et d'analyser les données de manière rentable. Voici les trois principaux avantages de l'analyse de graphe.
Flexibilité
Le schéma et la structure des modèles de graphe peuvent changer en fonction de vos applications. Les analystes de données peuvent ajouter ou modifier des structures de graphe existantes sans affecter les fonctions existantes. Il n'est pas nécessaire de modéliser les domaines à l'avance.
Performances
Les modèles de bases de données relationnelles deviennent moins optimaux à mesure que le volume et la profondeur des relations augmentent. Cela entraîne une duplication et une redondance des données : plusieurs tables doivent être traitées pour découvrir les résultats des requêtes. En revanche, les performances des bases de données orientées graphe s'améliorent de plusieurs ordres de grandeur lors de l'interrogation des relations. Les performances restent constantes même lorsque le volume de données de graphes augmente.
Efficacité
Les requêtes de graphe sont plus courtes et plus efficaces que les bases de données relationnelles pour générer les mêmes rapports. Les technologies de graphe tirent parti des nœuds liés. Traverser des liaisons ou des relations se fait très rapidement, car les relations entre les nœuds ne sont pas calculées au moment des requêtes, mais sont conservées dans la base de données.
Comment fonctionnent l'analyse de graphe et les bases de données orientées graphe ?
Les bases de données orientées graphe fonctionnent à l'aide d'un langage de requête standardisé et d'algorithmes de graphe.
Langages de requête de graphe
Les langages de requête de graphe sont utilisés pour interagir avec les bases de données orientées graphe. Semblables à SQL, ils possèdent des fonctionnalités permettant d'ajouter, de modifier et d'interroger des données. Mais ils tirent parti des structures de graphe sous-jacentes pour traiter efficacement les requêtes complexes. Ils fournissent une interface qui vous permet d'obtenir des informations telles que :
- le nombre de sauts entre les nœuds ;
- le chemin le plus long, le plus court ou optimal ;
- la valeur des nœuds.
Apache TinkerPop Gremlin, SPARQL et openCypher sont des langages de requête de graphe populaires.
Algorithmes de graphe
Les algorithmes de graphes sont des opérations qui analysent les relations et les comportements dans les données interconnectées. Par exemple, ils explorent la distance et les chemins entre les nœuds ou analysent les arêtes entrantes et les nœuds voisins pour générer des rapports. Ils peuvent identifier des modèles, des anomalies, des communautés et des chemins communs qui relient les éléments de données. Voici quelques exemples d'algorithmes de graphe :
Clustering
Les applications telles que le traitement d'images, les statistiques et l'exploration de données utilisent le clustering pour regrouper les nœuds en fonction de caractéristiques communes. Le clustering peut être effectué à la fois sur les différences entre clusters et sur les similitudes intra-clusters.
Partitionnement
Vous pouvez partitionner ou découper des graphes au niveau du nœud avec le moins d'arêtes. Les applications telles que les tests de réseau utilisent le partitionnement pour détecter les points faibles du réseau.
Recherche
Les recherches de graphe ou les parcours peuvent privilégier soit la largeur, soit l'étendue. Les recherches axées sur l'étendue se déplacent d'un nœud à l'autre sur le graphe. Elles sont utiles pour découvrir des chemins de façon optimale. Les recherches axées sur la profondeur se déplacent le long d'une seule branche pour trouver toutes les relations d'un nœud donné.
Quand les bases de données orientées graphe ne conviennent-elles pas ?
Une base de données orientée graphe dédiée est la meilleure option pour les jeux de données hautement connectés et pour toutes les analyses nécessitant des recherches de relations cachées et apparentes. Si cela ne correspond pas à votre cas d'utilisation, d'autres types de bases de données peuvent être plus adaptés.
Par exemple, imaginez un scénario dans lequel vous devez enregistrer l'inventaire des produits par article. Il vous suffit de stocker des informations telles que le nom des articles et les unités disponibles. Comme il n'est pas nécessaire de retenir des informations supplémentaires, les colonnes de la table ne changeront pas. En raison de sa nature tabulaire, une base de données relationnelle est plus adaptée à ce type de données non liées.
Il est également important de ne pas utiliser les bases de données orientées graphe simplement comme des magasins clé-valeur. Le résultat d'une recherche à partir d'une clé connue n'optimise pas la fonction pour laquelle les bases de données orientées graphe ont été créées.
Comment AWS peut-il prendre en charge vos besoins en matière de bases de données orientées graphe ?
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 graphes populaires, à savoir le graphe de propriétés et le Resource Description Framework (RDF) du W3C. Le service prend également en charge les langages de requête respectifs Apache TinkerPop Gremlin et SPARQL pour générer facilement des requêtes qui naviguent efficacement dans les jeux de données hautement connectés. Les principales fonctionnalités de Neptune incluent :
- Sans serveur : cette fonctionnalité vous permet de mettre instantanément à l'échelle les charges de travail de graphe par incréments précis et d'économiser jusqu'à 90 % sur les coûts de base de données par rapport à l'allocation pour une capacité de pointe.
- Haute disponibilité, notamment la Base de données mondiale Amazon Neptune pour les applications distribuées dans le monde entier prenant en charge des performances de lecture rapides et locales.
- Le stockage et le calcul découplés afin d'améliorer les performances de lecture grâce à un maximum de 15 réplicas en lecture partageant le même stockage sous-jacent, sans avoir à effectuer des écritures sur les nœuds de réplica.
- Très fiable et durable grâce à son stockage tolérant aux pannes avec fonction d'autoréparation, la réparation ponctuelle, les sauvegardes continues, etc. Amazon Neptune assure la durabilité de vos données sur trois zones d'une même région en répliquant les nouvelles écritures de six manières, alors que vous ne payez que pour une copie.
- Hautement sécurisé grâce au chiffrement par défaut au repos, à l'isolement du réseau et à un audit avancé, tout en offrant la possibilité de contrôler les autorisations au niveau des ressources grâce à un accès précis.
- Vaste couverture de conformité, y compris FedRAMP (Moderate et High), SOC (1, 2 et 3) et HIPAA.
- Neptune étant 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.
Démarrez avec les bases de données orientées graphe sur AWS en créant un compte gratuit dès aujourd'hui.