• Contenu
  • Bas de page
blog-ouidou_logoblog-ouidou_logoblog-ouidou_logoblog-ouidou_logo
  • Actualités Ouidou
  • Articles Techniques
  • Livres blancs
  • Interviews Clients
  • Interviews collaborateurs
Découvrir Ouidou
✕
No results See all results
Le web en Crystal

Le web en Crystal

27 août 2020
Stimulus : Mettez des paillettes dans votre HTML

Stimulus : Mettez des paillettes dans votre HTML

16 octobre 2020
Ressources > Neo4j : un graphe comme base de données?

Neo4j : un graphe comme base de données?

Écrit par Louis Jeanne-Julien

Neo4j : c’est quoi?

Neo4j est un SGBD opensource développé en Java et Scala, disponible depuis début 2010, qui a la particularité de représenter les données sous forme de graphes.
Un serveur Neo4j contient une ou plusieurs bases de données non relationnelles, chacune associée à un graphe. Le graphe est un modèle de données contenu dans la base de données : il n’empêche pas l’utilisateur de lire les données sous forme de lignes, mais permet d’en avoir une vision d’ensemble, et en facilite la lecture.

Neo4j : ça ressemble à quoi?

Pour être simple et exhaustif, un graphe Neo4j, c’est :

  • un ensemble de Nodes (représentés sous forme de cercles), de Relationships (représentées sous forme de flèches), et de Properties.
  • les Nodes et les Relationships peuvent appartenir à différents types définis par l’utilisateur, appelés Labels : cette appartenance est visible grâce à la couleur du Node. Ces Labels sont l’équivalent des tables dans les DB relationnelles.
  • les Nodes et les Relationships possèdent des Properties qui sont des paires clef/valeur.
  • les Relationships sont uni- ou bi-directionnelles, et comportent un Node de départ et un Node de fin.

Le DataBrowser de Neo4J permet de visualiser les données sous deux formats, selon le besoin de l’utilisateur :

  • UI view : le graphe, dont les données sont exportables en format JSON.
  • Grid view : un tableau, dont les données sont exportables en format CSV ou JSON.

Neo4j : pourquoi?

Les principaux avantages de Neo4j résident dans la clarté de la lecture des données et des requêtes :

  • La représentation en graphe est particulièrement adaptée lorsque les données sont étroitement liées entre elles, et permet une représentation bien structurée et hiérarchisée.
  • Nul besoin d’effectuer des jointures complexes entre des tables pleines de clefs étrangères : il est aisé de naviguer entre les données qui sont reliées.
  • Utilisation de CQL (Cypher Query Language) : un langage déclaratif, dont la structure est voisine du SQL, et dont la syntaxe orientée ‘art ascii’ permet de représenter visuellement les requêtes.
  • Possible indexation des données pour plus de rapidité d’exécution lors de requêtes complexes sur de grosses applications.

Le langage CQL en quelques commandes

Je veux retrouver :
  • un Node selon l’un de ses Labels : MATCH (node:label)
  • un Node selon l’une de ses Properties : MATCH (node {key:value})
Je veux créer :
  • un Node : CREATE (node)
  • un Node appartenant à un Label : CREATE (node:Label)
  • un Node possédant une Property : CREATE (node {key:value})
  • un Node appartenant à un Label et possédant une Property : CREATE (node:label {key:value})
  • une Relationship entre deux Nodes (les Properties sont optionnelles) : CREATE (start node)-[relationship:nom_ou_type_de_la_relation {key1:value1, key2:value2}]->(end node)
Je veux ajouter :
  • un Label ou une Property à un Node (le fonctionnement est le même sur une Relationship) : MATCH (n:Label {key:value}) SET n :label
Je veux supprimer :
  • un Label ou une Property à un Node (le fonctionnement est le même pour l’ajout sur une Relationship) : MATCH (n:Label {key:value}) REMOVE n :label
  • un Node ou une Relationship (l’instruction DETACH permet de supprimer les Relationships du Node avant de le supprimer) : MATCH (n:label {key:value}) DETACH DELETE n
Je veux tout créer d’un coup :

Des Nodes, appartenant à différents Labels, et possédant différentes Properties, liés entre eux par des Relationships

  • CREATE (node1:Label1:Label2 {key1:value1, key2:value2, key3:value3})-[relation1:nom_de_la_relation]->(node2:Label1:Label3 {key1:value1, key2:value2, key3:value3})-[relation2:nom_de_la_relation]->(node3:Label4:Label2 {key1:value1, key2:value2, key3:value3})
Un exemple : le Seigneur des Anneaux en base de données

Commençons par créer les protagonistes : les Labels feront office de différentes factions, et nous utiliserons une Property pour attribuer un prénom à chacun.

  • Ajoutons ensuite les liens hiérarchiques de rigueur au sein de chaque faction, par exemple :
  • Ajoutons enfin les liens entre les membres de chaque faction, par exemple :
  • Sur le résultat final, nous voyons les Nodes de différentes couleurs selon leurs Labels:
  • bleu : “Gentil”
  • rouge : “Mechant” + “Mordor”
  • jaune : “Mechant” + “Isengard”
  • vert : “Objet”

Neo4j : ils l’ont adopté

J’espère que cette courte introduction vous a donné une idée de la valeur ajoutée apportée par Neo4j, déjà présent au sein de grandes organisations :

Liens

Site web : https://neo4j.com/
Dépôt GitHub : https://github.com/neo4j/neo4j

À lire aussi

Diagnostiquer, comprendre et optimiser les performances d’une application React
4 mai 2026

Diagnostiquer, comprendre et optimiser les performances d’une application React

Lire la suite de l'article

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation
15 avril 2026

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation

Lire la suite de l'article

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe
8 avril 2026

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe

Lire la suite de l'article

Replay webinaire Ouidou x Sonar
2 juillet 2026

Replay webinaire Ouidou x Sonar

Lire la suite de l'article

Articles associés

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation
15 avril 2026

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation


Lire la suite
Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe
8 avril 2026

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe


Lire la suite
Comment préparer votre Jira Cloud dès maintenant ? 
14 novembre 2025

Comment préparer votre Jira Cloud dès maintenant ? 


Lire la suite
Replay webinaire IA
5 novembre 2025

Replay webinaire IA


Lire la suite
  • Linkedin Ouidou
  • Youtube Ouidou

Blog Ouidou, le rendez-vous des équipes tech qui veulent comprendre avant de décider. Veille, retours d'expérience et décryptages pour rester à la pointe.

© 2026 Ouidou | Tous droits réservés | Plan du site | Mentions légales | Déclaration d'accessibilité
    Découvrir Ouidou
    No results See all results