cours
Qu'est-ce qu'une base de données graphique ? Guide du débutant
Si vous avez déjà regardé un vrai film policier, vous connaissez déjà le pouvoir des liens entre les relations. Il y a toujours une scène où l'on voit un mur des principaux suspects et divers articles de journaux les reliant entre eux.
Imaginez que vous preniez ce tableau et que vous y ajoutiez un moteur mathématique permettant d'interroger rapidement les différentes relations. C'est l'essence même d'une base de données graphique.
Dans cet article, nous aborderons les sujets suivants :
- Qu'est-ce qu'une base de données graphique ?
- Bases de données graphiques vs. Bases de données relationnelles
- Les composants d'une base de données graphique
- Cas d'utilisation des bases de données graphiques
Qu'est-ce qu'une base de données graphique ?
Une base de données graphique est une plateforme spécialisée à usage unique utilisée pour créer et manipuler des données de nature associative et contextuelle. Le graphe lui-même contient des nœuds, des arêtes et des propriétés qui se combinent pour permettre aux utilisateurs de représenter et de stocker des données d'une manière que les bases de données relationnelles ne sont pas en mesure de faire.
Le concept principal d'un système de base de données graphique est la relation. Les relations sont définies comme des citoyens de première classe, ce qui signifie que tout ce que vous pouvez faire avec d'autres éléments peut être fait avec une relation. Les données sont reliées entre elles dans un graphique pour stocker une collection de nœuds et d'arêtes, où les arêtes représentent la relation entre les nœuds.
Les relations permettent de relier directement les données au sein du système. L'interrogation des relations dans une base de données graphique est rapide car elles sont stockées de manière immuable. Vous pouvez également les visualiser, ce qui les rend parfaits pour obtenir des informations sur des données fortement interconnectées.
Une représentation des relations dans une base de données de graphes de réseaux sociaux
Base de données graphique et base de données relationnelle : Similitudes et différences
Vous vous demandez peut-être encore en quoi une base de données graphique diffère d'une base de données relationnelle. Tous deux stockent des informations et sont utilisés pour représenter les relations entre les données, mais la façon dont ils atteignent cet objectif est différente.
Nous allons répartir les différences entre eux en cinq catégories :
- Modèle de données
- Fonctionnement
- Évolutivité
- Performance
- Facilité d'utilisation
- Application
Voyons plus en détail en quoi ils diffèrent.
Modèle de données
Les bases de données relationnelles utilisent des tableaux de données pour structurer les informations en lignes et en colonnes. Chaque colonne définit un attribut spécifique de l'entité de données, tandis que les lignes représentent un enregistrement de données individuel. Les tableaux de données ayant un schéma fixe, les utilisateurs doivent définir les relations entre les différents tableaux à l'aide de clés primaires et étrangères.
En revanche, une base de données graphique structure les données à l'aide d'une structure graphique dans laquelle les nœuds, les arêtes et les propriétés sont utilisés pour représenter les données. Les nœuds définissent les objets, les arêtes illustrent les relations entre les nœuds et les propriétés décrivent les attributs des nœuds et des arêtes. Vous trouverez plus d'informations à ce sujet plus bas.
Opérations
Les bases de données relationnelles exploitent la puissance du langage SQL pour manipuler les données. SQL permet aux développeurs d'effectuer diverses requêtes et de traiter efficacement des données structurées avec des relations bien définies entre les tableaux. Il excelle particulièrement dans le filtrage, l'agrégation et la jonction de données entre plusieurs tableaux.
Les bases de données de graphes utilisent des algorithmes de traversée pour interroger le modèle de données de graphes. Les algorithmes de parcours peuvent être de type "deep-first" ou "breadth-first", ce qui permet de découvrir et d'extraire rapidement des données connectées.
Évolutivité
Bien qu'il soit possible de faire évoluer une base de données relationnelle horizontalement (c'est-à-dire en utilisant le partage), cela augmente considérablement la complexité du stockage des données et peut donner lieu à d'autres problèmes tels que la cohérence. Il est recommandé de faire évoluer une base de données relationnelle verticalement. La mise à l'échelle verticale consiste à mettre à niveau le matériel (par exemple, le processeur, le stockage, la mémoire, etc.) afin d'augmenter la charge de travail qu'un serveur peut gérer.
D'autre part, les bases de données graphiques sont très performantes en termes d'évolutivité horizontale. Ils y parviennent en utilisant le partitionnement, une technique qui divise les objets stockés dans la base de données en parties distinctes sur différents serveurs. Ces partitions permettent ensuite à de nombreux serveurs de traiter des requêtes graphiques en parallèle.
Performance
Les bases de données graphiques utilisent généralement une adjacence sans index. Cela signifie que chaque nœud fait directement référence aux nœuds voisins. Ainsi, l'accès aux relations et aux données connexes consiste simplement à consulter des points de mémoire. Cela signifie essentiellement qu'il est rapide.
Les bases de données relationnelles doivent effectuer des balayages de différents tableaux afin d'identifier les relations entre les entités. Par exemple, si vous souhaitez joindre plusieurs tableaux, le système de base de données devra parcourir l'ensemble des données pour trouver les relations. Cela signifie que plus les données sont volumineuses, plus les performances diminuent.
Facilité d'utilisation
Les relations sont au cœur des bases de données graphiques. Cela les rend extrêmement faciles à utiliser lorsque vous utilisez des données connectées, en particulier lorsque vous effectuez des requêtes multi-sauts, c'est-à-dire des requêtes permettant de parcourir des chemins avec des relations multiples. Dans une base de données relationnelle, cette opération doit être effectuée à l'aide du langage SQL. L'écriture d'une requête multi-sauts en SQL n'est pas naturelle. Ils peuvent devenir très complexes et conduire facilement à des requêtes en vrac difficiles à lire et à gérer.
Application
L'accent mis sur les relations rend les bases de données graphiques bien adaptées aux tâches qui observent fréquemment des changements et des adaptations dynamiques. Ces tâches comprennent la recherche sémantique et les moteurs de recommandation. En revanche, la rigidité des bases de données relationnelles les rend idéales pour les données structurées d'abord bien rangées dans des tableaux. Il s'agit par exemple des données relatives aux clients et aux transactions.
Base de données graphique |
Base de données relationnelle |
|
Modèle de données / Schéma |
Fixe |
Flexible |
Opérations |
Algorithmes de traversée |
SQL |
Évolutivité |
Horizontal en utilisant le cloisonnement |
Verticalement (on peut le faire horizontalement mais cela ajoute de la complexité). |
Performance |
Rapide (y compris pour les grands ensembles de données) |
Plus lent à mesure que l'ensemble de données s'agrandit |
Facilité d'utilisation |
Intuitif |
Non naturels (mais beaucoup plus matures et populaires dans de nombreux cas d'utilisation). |
Application |
Tâches qui observent fréquemment des changements et des adaptations dynamiques (par exemple, recherche sémantique, moteurs de recommandation, etc.) |
Les tâches qui dépendent de l'intégrité des données (par exemple, les données des clients, les transactions, etc.) |
Composants essentiels des bases de données graphiques
Comme indiqué précédemment, les bases de données graphiques permettent aux utilisateurs de représenter les données sous la forme d'un graphique. Les trois composants essentiels utilisés pour modéliser les données dans ce format sont les nœuds, les arêtes et les propriétés.
Nœuds
Les objets ou les instances sont représentés par un nœud. Sur le plan conceptuel, les nœuds sont l'équivalent d'une ligne dans une base de données relationnelle et agissent comme un sommet dans un graphe. Le regroupement d'un nœud se fait simplement en appliquant une étiquette à chaque membre.
Edges
Un autre nom pour les arêtes d'un graphique est celui de relations. Les relations sont toujours constituées d'un nœud de départ, d'un nœud d'arrivée, d'un type et d'une direction. Ils forment les modèles de données en décrivant les relations parents-enfants, les actions, la propriété, etc.
Propriétés
Les propriétés sont tout simplement les informations associées aux nœuds.
Exemples de bases de données graphiques
Jetons un coup d'œil à quelques-unes des bases de données graphiques les plus populaires disponibles aujourd'hui, afin de mieux comprendre leurs principales caractéristiques.
Quelques bases de données graphiques populaires
Neo4j
Neo4j est l'une des principales bases de données de graphes au monde. Elle permet aux utilisateurs de découvrir rapidement, facilement et en profondeur des modèles et des informations sur des milliards de connexions de données. Neo4j est une base de données open-source NoSQL hautement évolutive, développée en Java. Consultez notre cours sur les concepts NoSQL pour en savoir plus.
Les principales caractéristiques sont les suivantes :
- Modèle de données du graphe des propriétés
- Permet une modélisation intuitive et flexible des données, facilitant la navigation dans des relations de données complexes.
- Traitement et stockage natif des graphes
- Optimise l'extraction des données et la traversée des graphes, garantissant un traitement rapide et efficace des grands ensembles de données et des requêtes complexes.
- Transactions conformes aux principes d'atomicité, de cohérence, d'isolation et de durabilité (ACID)
- Garantit un traitement fiable des données, en maintenant l'exactitude et la fiabilité des données pour toutes les transactions.
- Langage d'interrogation graphique Cypher
- Fournit une méthode puissante et conviviale d'interrogation des données graphiques, simplifiant l'extraction d'informations significatives à partir de données interconnectées.
- API native haute performance
- Garantit une interaction efficace avec la base de données, ce qui est crucial pour les applications nécessitant des interactions avec la base de données à faible latence et à haut débit.
- Client Cypher
- Facilite l'exécution transparente des requêtes Cypher à partir des applications, améliorant ainsi les expériences dynamiques et interactives des utilisateurs.
- Pilotes linguistiques pour plusieurs langages de programmation
- Offre une flexibilité dans le développement en fournissant des pilotes pour divers langages de programmation, notamment C#, Go, Java, JavaScript et Python, garantissant une intégration facile dans diverses piles technologiques.
Amazon Neptune
Les applications utilisant des données densément connectées peuvent être développées et exécutées rapidement et facilement à l'aide d'Amazon Neptune, un service de base de données graphique rapide, fiable et entièrement géré. Neptune s'appuie sur un moteur de base de données graphique hautes performances spécialement conçu à cet effet. Ce moteur est conçu pour interroger le graphe avec une latence de l'ordre de la milliseconde tout en conservant des milliards de relations.
Les principales caractéristiques sont les suivantes :
- Prise en charge des API de graphes ouverts
- Facilite la compatibilité et la flexibilité en prenant en charge diverses API de graphes ouvertes telles que Gremlin et openCypher pour les graphes de propriétés, et SPARQL pour les graphes RDF, ce qui permet aux développeurs d'interagir avec la base de données à l'aide de langages de requête familiers.
- Haute sécurité
- Assurer la protection des données et la conformité réglementaire en mettant en œuvre des dispositifs de sécurité robustes, en sauvegardant les données et en maintenant l'intégrité et la confidentialité des informations stockées dans la base de données.
- Gestion complète
- Simplifie l'expérience de l'utilisateur en gérant les tâches liées aux bases de données telles que l'approvisionnement en matériel, les correctifs logiciels, l'installation et la configuration, ce qui permet aux développeurs de se concentrer sur la création d'applications plutôt que sur la gestion des opérations liées aux bases de données.
- Sauvegardes automatisées
- Améliore la durabilité des données et facilite la reprise après sinistre en gérant automatiquement les processus de sauvegarde, en veillant à ce que les données soient protégées contre les pertes accidentelles et puissent être restaurées en cas de besoin.
Autres bases de données graphiques
Deux autres options populaires sont ArangoDB et OrientDB.
ArangoDB est un système de base de données graphique NoSQL gratuit et open-source. Il prend en charge trois modèles de données (graphes, documents JSON et clé/valeur), ce qui signifie qu'il est multi-modèle, avec un noyau de base de données unique et un langage de requête unifié, ArangoDB Query Language (AQL). Cet outil est principalement un langage de requête et permet de combiner différents modèles d'accès aux données en une seule requête.
OrientDB est un système de gestion de base de données NoSQL open-source écrit en Java. À l'instar d'ArangoDB, OrientDB est également une base de données multimodèle qui prend en charge les graphes, les documents JSON, les modèles clé/valeur et les modèles objet ; toutefois, les relations sont gérées comme dans les bases de données de graphes (c'est-à-dire des connexions directes entre les enregistrements). L'outil dispose d'un système robuste de profilage de la sécurité basé sur les utilisateurs et les rôles et prend en charge l'interrogation avec Gremlin ainsi que SQL étendu pour la traversée des graphes.
Notre guide sur les bases de données NoSQL explore d'autres raisons pour lesquelles elles sont si utiles pour la science des données.
Cas d'utilisation des bases de données graphiques
Réseaux sociaux
Les réseaux de médias sociaux sont naturellement représentés par le modèle de données des graphes. L'utilisation d'une base de données graphique simplifie le processus de capture des relations puisque les données n'ont pas besoin d'être converties d'un graphique à un tableau et vice-versa. Le modèle de données graphique peut être utilisé directement pour représenter des éléments tels que les utilisateurs et leurs relations.
Moteurs de recommandation
Les relations entre les catégories d'informations telles que les amis d'un réseau, l'intérêt d'un client et l'historique des achats peuvent être stockées dans une base de données graphique. Des recommandations de produits peuvent alors être faites à un utilisateur sur la base des produits achetés par d'autres utilisateurs ayant des intérêts ou un historique d'achat similaires. Dans le scénario des amis dans un réseau, vous pouvez utiliser la base de données graphique pour découvrir des utilisateurs ayant des amis en commun qui ne sont pas encore connectés et les recommander l'un à l'autre.
Détection de la fraude
Les bases de données graphiques peuvent être utilisées pour stocker les relations entre les transactions, les personnes et d'autres informations pertinentes afin de permettre aux utilisateurs de trouver des modèles communs et de créer des applications capables de détecter les activités frauduleuses. Par exemple, il peut être utilisé pour découvrir facilement des modèles de relations indiquant une fraude, tels que plusieurs personnes associées à une même adresse électronique ou plusieurs personnes partageant la même adresse IP mais résidant à des adresses physiques différentes.
Conclusion
Dans ce guide, vous avez appris que les bases de données graphiques sont des plateformes spécialisées à usage unique utilisées pour créer et manipuler des données de nature associative et contextuelle. Vous avez également appris que, malgré l'obligation évidente de stocker des données et de représenter des relations, les bases de données relationnelles et les bases de données graphiques sont très différentes dans la manière dont elles atteignent leur objectif. Par exemple, les bases de données relationnelles utilisent SQL pour leurs opérations, alors que les bases de données graphiques utilisent des algorithmes de traversée, ce qui les rend beaucoup plus rapides, même pour les grands ensembles de données, et mieux adaptées aux données fortement interconnectées.
Ces ressources vous permettront d'en savoir plus sur les bases de données :
Commencez dès aujourd'hui votre voyage dans les bases de données !
cours
Introduction à MongoDB en Python
cours