Pour comprendre comment fonctionnent les bases de données de graphes, définissons-les d’abord. Une base de données graphique est un type de bases de données NoSQL qui stocke des nœuds et des relations au lieu de tables ou de documents. Les données sont stockées sans les restreindre à un modèle prédéfini donnant de la flexibilité. Les bases de données NoSQL mentionnées ci-dessus sont souvent perçues comme « pas de SQL » du tout, mais ce n’est en fait « pas seulement SQL ». Dans les bases de données SQL, les données sont uniquement stockées dans des tables. À l’aide de NoSQL, vous pouvez stocker quatre types de bases de données : document, clé-valeur, colonne large et graphique.
- Exemples de bases de données SQL : MySQL, PostgreSQL, OrientDB, MariaDB, CouchDB, etc.
- Exemples de bases de données NoSQL : MongoDB, Apache Cassandra, Neo4j, Redis, DynamoDB, HyperTable, etc.
En fait, il y a tellement de bases de données maintenant qu’il est difficile de choisir. Cependant, il existe des listes des meilleures bases de données ou des meilleures bases de données qui contiennent des descriptions de fonctionnalités et de cas d’utilisation.
Pourquoi utiliser une base de données de graphes ?
Les bases de données de graphes sont par nature multi-relationnelles contrairement aux bases de données relationnelles (SQL). Cela semble également plus pratique, car les données sont affichées de manière intuitive. Les relations sont déjà stockées dans la base de données, donc pas besoin de calculer. Les bases de données de graphes peuvent stocker de grandes quantités, être rapides et prendre en charge une diversité de données actuelles. Si vous souhaitez développer une application de médias sociaux ou une application communautaire, une base de données graphique serait le choix le plus raisonnable. Non seulement la base de données gérera un grand nombre d’utilisateurs, mais elle établira également des relations entre eux. Pour toute application impliquant des réseaux sociaux, la base de données graphique conviendra.
De plus, la base de données graphique est parfaite pour le Big Data en temps réel car vous pouvez facilement ajouter de nouveaux nœuds et des relations entre les nœuds. Cela n’affecte cependant pas les performances. Les bases de données NoSQL et les bases de données de graphes en particulier sont plus performantes car elles n’ont pas besoin de charger ou de toucher des données non liées pour une requête donnée.
Cas d’utilisation les plus populaires pour les bases de données de graphes
- Réseaux sociaux
- Cartographie de la chaîne d’approvisionnement
- Graphes de connaissances IA/apprentissage automatique
- Cartographie réseau/opérations
- Tout type d’analyse
- Moteurs de recommandations dans le retail
- Applications de télécommunications
- Confidentialité des données, risques et conformité
- Gestion du réseau et de l’informatique
- Détection de fraude
Composants des bases de données de graphes
Il existe trois composants principaux dans chaque base de données de graphes : les nœuds, les propriétés et les arêtes (ou relations). En termes simples, les nœuds sont des entités ou certains objets d’un domaine, tels que des utilisateurs, des emplacements et des objets. Des propriétés sont ajoutées aux nœuds pour ajouter plus de contexte. Dans certains cas, les arêtes ont également des propriétés. Et les bords connectent les nœuds et montrent un type de connexion. Jetez un oeil à l’image:
Les arêtes ou les relations peuvent avoir des valeurs attachées. Et voilà « Suit”, mais il peut y avoir plus d’une valeur. Un autre ajout concerne les étiquettes, qui définissent (classifient) le type de nœuds dont il s’agit (Étudiant et Enseignant). Ainsi, plusieurs nœuds forment ensemble une sorte d’écosystème de carte mentale.
Caractéristiques principales de Neo4j
Ce ne serait pas une base de données de graphes aussi populaire si elle n’avait pas de fonctionnalités uniques. La première chose est que Neo4j est une base de données graphique native, ce qui signifie que l’architecture sous-jacente de la façon dont les données sont stockées n’est pas construite sur des tables. Ce type de modèle de données est en fait un graphe hautement connecté, et lorsque vous effectuez une requête, dans Neo4j, vous n’avez pas à indexer chaque fois que vous faites un saut comme dans les bases de données relationnelles.
Le langage de requête Cypher est assez simple. C’est un langage déclaratif où les parenthèses et les relations représentent les nœuds sous forme de flèches et de crochets. Ci-dessous un exemple de requête Neo4j. Il démontre la requête dont les jeux voisins partagent le plus de caractéristiques avec le jeu sélectionné (c’est-à-dire recherché).
La plus belle partie de celui-ci est le code :
MATCH p=(game:Game)--(characteristic:ConceptEntry)
WHERE game.uid = 'game-borderlands_2' OR game.uid = 'game-fallout_3'
RETURN
Trois lignes font le travail impressionnant de trouver les données nécessaires.
Bases de données de graphiques populaires
Examinons maintenant des exemples de bases de données de graphes et leurs points forts.
- Neo4j est probablement la base de données de graphes la plus connue. Il semble simple et convivial et, en même temps, puissant. Les commandes du langage de requête sont relativement faciles à apprendre. La chose la plus importante à propos de Neo4j est qu’il représente clairement les données connectées. Rien qu’en le regardant, vous comprendrez les relations entre de nombreux nœuds. Neo4j fournit uniquement des services liés au type de base de données graphique. On peut dire que Neo4j gagne en termes de popularité et de fonctionnalité bien établie.
- ArangoDB est un multi-outil conçu spécifiquement pour maintenir différents types de bases de données NoSQL. Si le projet ou l’entreprise nécessite plusieurs bases de données en même temps, ArrangoDB sera d’une grande aide. Ce qui est encore plus unique à propos de ce service, c’est qu’il permet de combiner SQL et NoSQL dans un seul projet.
- Apollo était une base de données mais l’a envahie et est maintenant un écosystème d’outils, d’extensions de bibliothèques, etc. Il est hautement compatible avec les frameworks Javascript et prend en charge les extensions tierces. Ainsi, la principale différence par rapport aux autres est l’augmentation des niveaux d’intégration. Certaines choses importantes sont l’automatisation de divers processus, GraphQL et ses possibilités d’utilisation, et le processus de développement continu (oui, il est toujours en développement actif). Il est plus récent que les deux premiers, il a donc du chemin à parcourir.
Conclusion
Maintenant que vous en savez beaucoup sur les bases de données de graphes, vous pouvez être ravi de puissants ensembles de données. Il peut être utilisé dans des industries avec de gros volumes de données et différents types de données. Bien sûr, chaque projet est unique et a une logique métier différente. Alors, pesez le pour et le contre des bases de données de graphes avant de choisir. Vous savez maintenant comment fonctionnent les bases de données de graphes et les cas d’utilisation avec eux. Dans le développement de logiciels, il n’y a pas de réponse définitive à ces questions : quelle base de données est la meilleure ? Quel langage de programmation est le plus cool ? Le contexte compte, alors choisissez judicieusement.