TP : Découverte de Neo4j et du langage Cypher

De WIKOM

Révision datée du 1 novembre 2024 à 16:27 par Admin (discussion | contributions) (Page créée avec « = TP : Découverte de Neo4j et du langage Cypher = === Objectif === Apprendre à : # Comprendre les bases de données orientées graphes. # Installer et configurer Neo4… »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

TP : Découverte de Neo4j et du langage Cypher

Objectif

Apprendre à :

  1. Comprendre les bases de données orientées graphes.
  2. Installer et configurer Neo4j.
  3. Manipuler les données de graphe avec Cypher (création de noeuds, relations, requêtes).
  4. Interroger et analyser des données de graphe.

1. Introduction aux bases de données orientées graphe

Neo4j est une base de données orientée graphe, idéale pour gérer des réseaux sociaux, des chaînes logistiques, des réseaux de dépendance, etc. Dans ce modèle :

  • Noeuds : Les entités de votre graphe (par exemple : Person, City).
  • Relations : Les connexions entre les noeuds (par exemple : FRIEND, LIVES_IN).
  • Propriétés : Attributs stockés pour chaque noeud ou relation (par exemple : name, age, date).

2. Mise en place de Neo4j

Installation de Neo4j

  1. Télécharger Neo4j : Rendez-vous sur Neo4j Download Center pour télécharger la version compatible avec votre système d'exploitation.
  2. Installer Neo4j Desktop :
    • Suivez les instructions d'installation fournies sur le site.
    • Lancez Neo4j Desktop et créez un projet en cliquant sur “New Project” (nommez-le "TP_Neo4j").
    • Créez une base de données (Database) dans votre projet et démarrez-la.
  3. Accéder à Neo4j Browser :
    • Ouvrez Neo4j Browser pour exécuter les requêtes Cypher.
    • Par défaut, accédez-y à l'adresse suivante : http://localhost:7474.
  4. Se connecter :
    • Par défaut, utilisez l'utilisateur neo4j et le mot de passe défini lors de l’installation.

Modélisation du graphe : Cas d'un réseau social simple

Dans ce TP, nous allons modéliser un réseau social. Voici les éléments principaux :

  1. Noeuds :
    • Person : chaque personne possède des attributs name, age, et city.
    • City : ville avec l'attribut name.
  2. Relations :
    • FRIEND : relation d'amitié entre deux personnes.
    • LIVES_IN : relation entre une personne et sa ville.
  3. Exemple de données :
    • Noeuds :
      • Alice, 30 ans, vit à Paris.
      • Bob, 25 ans, vit à Lyon.
      • Carol, 35 ans, vit à Paris.
    • Relations :
      • Alice est amie avec Bob et Carol.
      • Alice et Carol vivent à Paris ; Bob vit à Lyon.

Création du graphe avec Cypher

Étape 1 : Création des noeuds

Dans Neo4j Browser, exécutez les commandes Cypher pour créer les noeuds.

CREATE (a:Person {name: 'Alice', age: 30, city: 'Paris'});
CREATE (b:Person {name: 'Bob', age: 25, city: 'Lyon'});
CREATE (c:Person {name: 'Carol', age: 35, city: 'Paris'});

CREATE (paris:City {name: 'Paris'});
CREATE (lyon:City {name: 'Lyon'});

Étape 2 : Création des relations

Maintenant, créez les relations entre les noeuds.

// Amis
MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})
CREATE (a)-[:FRIEND]->(b);

MATCH (a:Person {name: 'Alice'}), (c:Person {name: 'Carol'})
CREATE (a)-[:FRIEND]->(c);

// Lien avec les villes
MATCH (a:Person {name: 'Alice'}), (paris:City {name: 'Paris'})
CREATE (a)-[:LIVES_IN]->(paris);

MATCH (c:Person {name: 'Carol'}), (paris:City {name: 'Paris'})
CREATE (c)-[:LIVES_IN]->(paris);

MATCH (b:Person {name: 'Bob'}), (lyon:City {name: 'Lyon'})
CREATE (b)-[:LIVES_IN]->(lyon);

Vérifiez que vos noeuds et relations ont été correctement créés en exécutant :

MATCH (n) RETURN n;

Manipulation des données

Ajouter des informations supplémentaires

  1. Ajouter un nouveau noeud pour David, un ami de Bob vivant à Lyon

Modifier des données

  1. Changer la ville de Bob pour Paris :

Requêtes Cypher : Interroger le graphe

Requêtes de base

  1. Lister les noms de toutes les personnes :
  • Trouver les personnes vivant à Paris :
  • Trouver tous les amis d'Alice :
  • Trouver les amis des amis de Bob :

Requêtes avancées

  1. Trouver toutes les personnes âgées de plus de 30 ans et vivant à Paris :
  • Lister toutes les personnes avec leur nombre d’amis :
  • Lister toutes les villes avec le nombre d’habitants :

7. Suppression de noeuds et relations

  1. Supprimer la relation d'amitié entre Alice et Carol :
  • Supprimer un noeud et toutes ses relations (par exemple, le noeud David) :

8. Export des résultats

  1. Exporter une requête en CSV (optionnel) :
    • Neo4j permet d’exporter le résultat de requêtes en CSV. Par exemple, pour exporter les personnes et leur nombre d'amis :