Multiplate-forme et open-source
Écrit en Java
Version actuelle : 4.0 (janv. 2020)
Développé par la société Neo4j, Inc
Licence : GPLv3 pour la version Community, AGPLv3 ou licence commerciale pour la version Entreprise
Téléchargement
Site officiel : neo4j.com
Console de test
Neo4j est un système de gestion de bases de données orienté graphe. À la différence des systèmes classiques, son approche n'est pas fondée sur l'algèbre relationnelle mais sur la théorie des graphes. Les données sont stockées de manière assez libre (sans modèle prédéterminé) dans des nœuds reliés entre eux par des relations (des arcs porteurs d'une sémantique forte).
Neo4j utilise un langage d'interrogation spécifique CYPHER, conçu pour être assez intuitif.
Une API REST permet de manipuler les données à distance. Des connecteurs clients sont disponibles pour différents langages : Java, .NET, Ruby, Python, Go, etc...
Les bases de données Neo4j, et d'une manière plus générale les bases de données orientées graphes, sont particulièrement adaptées dans des contextes où les données sont fortement connectées et organisées selon des modèles complexes. La structure de l'entité (noeud ou relation) y est définie au moment du stockage de la donnée (et non préalablement comme les tables d'une base de données relationnelle), ce qui lui confère une très grande flexibilité. En outre, elles présentent des performances exceptionnelles en termes de lecture et de parcours de données dans le graphe. L'API REST permet l'utilisation d'un certain nombre d'algorithmes classiques de la théorie des graphes (plus court chemin, Dijsktra, A*, calcul de centralité…).
Neo4j, pour quoi faire ?
Neo4j permet :
- de manipuler des données fortement connectées ;
- de supporter un modèle complexe et flexible ;
- d'obtenir des performances exceptionnelles pour la recherche de chemin : plus court chemin, détection de boucles, identification de sous-graphes, …. ou de manière plus concrète : calculs de trajets, mais aussi détection de fraude, recommandation, réseaux sociaux, etc ;
- d'analyser avec une grande profondeur les relations entre les données.
Qui utilise Neo4j ?
Parmi les grands noms, on citera : Viadeo, ebay, National Geographic, Adobe, Cisco, Deutsche Telekom, Walmart, Glowbl, Career Builder, Meetic, SFR, Voyages-SNCF, etc.
Les cas d'usage sont nombreux : dans l'énergie, les services financiers (pour la détection de fraudes), la gestion des ressources humaines, l'informatique, les jeux, la logistique (pour le routage de colis, par exemple), mais aussi la distribution (pour la recommandation de produits) et le transport (pour le calcul d'itinéraires).