Neo4j - Présentation
Neo4j est la première base de données de graphes open source au monde développée à l'aide de la technologie Java. Il est hautement évolutif et sans schéma (NoSQL).
Qu'est-ce qu'une base de données graphique?
Un graphique est une représentation picturale d'un ensemble d'objets où certaines paires d'objets sont reliées par des liens. Il est composé de deux éléments: les nœuds (sommets) et les relations (arêtes).
La base de données Graph est une base de données utilisée pour modéliser les données sous forme de graphique. Ici, les nœuds d'un graphe représentent les entités tandis que les relations décrivent l'association de ces nœuds.
Bases de données graphiques populaires
Neo4j est une base de données graphique populaire. Les autres bases de données graphiques sont Oracle NoSQL Database, OrientDB, HypherGraphDB, GraphBase, InfiniteGraph et AllegroGraph.
Pourquoi des bases de données graphiques?
De nos jours, la plupart des données existent sous la forme de relations entre différents objets et le plus souvent, la relation entre les données est plus précieuse que les données elles-mêmes.
Les bases de données relationnelles stockent des données hautement structurées qui ont plusieurs enregistrements stockant le même type de données afin qu'elles puissent être utilisées pour stocker des données structurées et, elles ne stockent pas les relations entre les données.
Contrairement à d'autres bases de données, les bases de données graphiques stockent les relations et les connexions en tant qu'entités de premier ordre.
Le modèle de données pour les bases de données de graphes est plus simple que les autres bases de données et peut être utilisé avec les systèmes OLTP. Ils fournissent des fonctionnalités telles que l'intégrité transactionnelle et la disponibilité opérationnelle.
Base de données SGBDR Vs Graph
Voici le tableau qui compare les bases de données relationnelles et les bases de données Graph.
Sr. Non | SGBDR | Base de données graphique |
---|---|---|
1 | les tables | Graphiques |
2 | Lignes | Nœuds |
3 | Colonnes et données | Propriétés et ses valeurs |
4 | Contraintes | Des relations |
5 | Rejoint | Traversée |
Avantages de Neo4j
Voici les avantages de Neo4j.
Flexible data model - Neo4j fournit un modèle de données flexible, simple mais puissant, qui peut être facilement modifié en fonction des applications et des industries.
Real-time insights - Neo4j fournit des résultats basés sur des données en temps réel.
High availability - Neo4j est hautement disponible pour les applications en temps réel des grandes entreprises avec des garanties transactionnelles.
Connected and semi structures data - En utilisant Neo4j, vous pouvez facilement représenter des données connectées et semi-structurées.
Easy retrieval - En utilisant Neo4j, vous pouvez non seulement représenter, mais aussi facilement récupérer (parcourir / naviguer) des données connectées plus rapidement par rapport à d'autres bases de données.
Cypher query language- Neo4j fournit un langage de requête déclaratif pour représenter visuellement le graphe, en utilisant une syntaxe ascii-art. Les commandes de ce langage sont dans un format lisible par l'homme et très faciles à apprendre.
No joins - En utilisant Neo4j, il ne nécessite PAS de jointures complexes pour récupérer les données connectées / liées car il est très facile de récupérer son nœud adjacent ou les détails de sa relation sans jointures ni index.
Caractéristiques de Neo4j
Voici les caractéristiques notables de Neo4j -
Data model (flexible schema)- Neo4j suit un modèle de données nommé modèle de graphe de propriétés natif. Ici, le graphique contient des nœuds (entités) et ces nœuds sont connectés les uns aux autres (représentés par des relations). Les nœuds et les relations stockent les données dans des paires clé-valeur appelées propriétés.
Dans Neo4j, il n'est pas nécessaire de suivre un schéma fixe. Vous pouvez ajouter ou supprimer des propriétés selon les besoins. Il fournit également des contraintes de schéma.
ACID properties - Neo4j prend en charge les règles ACID (atomicité, cohérence, isolement et durabilité) complètes.
Scalability and reliability- Vous pouvez mettre à l'échelle la base de données en augmentant le nombre de lectures / écritures et le volume sans affecter la vitesse de traitement des requêtes et l'intégrité des données. Neo4j prend également en chargereplication pour la sécurité et la fiabilité des données.
Cypher Query Language- Neo4j fournit un puissant langage de requête déclaratif appelé Cypher. Il utilise l'art ASCII pour représenter des graphiques. Cypher est facile à apprendre et peut être utilisé pour créer et récupérer des relations entre des données sans utiliser les requêtes complexes comme les jointures.
Built-in web application - Neo4j fournit un intégré Neo4j Browserapplication Web. Grâce à cela, vous pouvez créer et interroger vos données graphiques.
Drivers - Neo4j peut fonctionner avec -
API REST pour travailler avec des langages de programmation tels que Java, Spring, Scala, etc.
Java Script pour fonctionner avec les frameworks UI MVC tels que Node JS.
Il prend en charge deux types d'API Java: l'API Cypher et l'API Java native pour développer des applications Java. En plus de cela, vous pouvez également travailler avec d'autres bases de données telles que MongoDB, Cassandra, etc.
Indexing - Neo4j prend en charge les index en utilisant Apache Lucence.