Files
graph-mesamis/neo4j.md
2025-10-23 13:40:23 +02:00

1.5 KiB
Raw Blame History

Neo4J

Neo4j est une base de données orientée graphes (Graph Database). Contrairement aux bases relationnelles (comme PostgreSQL ou MySQL), qui organisent les données en tables et relations, Neo4j stocke les informations sous forme de nœuds (nodes) et de relations (relationships) — ce qui permet de modéliser naturellement les connexions entre entités.

Noeuds

Les noeuds sont les entités principales du graphe.

(:Person { name: "Sigourney", age: 30 })
(:Film { title: "Alien", year: 1979 })

Chaque nœud peut avoir :

  • une ou plusieurs étiquettes (labels) (:Person, :Film, etc.)
  • des propriétés sous forme de paires clé/valeur.

Relations

Les relations relient deux nœuds et ont elles aussi un type et des propriétés :

(:Person {name: "Sigourney"})-[:JOUE { role: "Ellen" }]->(:Film {title: "Alien"})

JOUE est le type de relation.

{ role: "Ellen" } est une propriété de cette relation.

Les relations sont orientées : elles vont dun nœud source vers un nœud cible -[]->.

Le langage Cypher

Cypher est le langage de requête de Neo4j, inspiré de SQL mais adapté aux graphes.

Trouver un noeud

MATCH (p:Person { name: "Sigourney" })
RETURN p;

Trouver des relations directes

MATCH (a:Person)-[:KNOWS]->(b:Person)
RETURN a.name, b.name;

Trouver des chemins

MATCH path = (a:Person {name:"Alice"})-[:KNOWS*1..3]->(b:Person)
RETURN path;

[:KNOWS*1..3] cherche des chemins de 1 à 3 sauts.