Initiation Ludique à Neo4J
De Neo4J à Game of Thrones
Un beau matin, vous vous réveillez en Westeros... Sans aucune connaissance historique... Avant de vous mettre à réfléchir, il va falloir intégrer les informations du royaume ! L'idée est de découvrir de manière ludique le système de gestion de base de données Neo4J. |
Votre première tâche va être de créer les nœuds et relations dans votre base de données : Pour cela vous allez avoir besoin du fichier suivant :
Question
Avant de se servir de l'ensemble du fichier, nous allons essayer d'ajouter nous même un nœud au graphe :
(n'hésitez pas à regarder les indices pour les premières étapes)
Créer un noeud personnage ayant le formalisme suivant (commande CREATE) :
« (p:personnage { name : 'Gregor Clegane', nickname : 'The Mountain' }) »
Question
Nous allons maintenant chercher à créer une relation :
Tout d'abord, ajouter un nouveau nœud comme ceci :
Ensuite il va falloir créer un lien entre les deux nœuds déjà créés :
Créez une relation de type
« :TUE »
entre les deux noeuds avec comme paramètre :« type : 'duel' »
Nous allons maintenant charger les informations du royaume.
Pour cela, deux choix s'offrent à vous, soit :
-Vous ouvrez le fichier exercice_1.cypher dans un éditeur de texte et vous copier-coller son contenu dans la ligne de commande de Neo4J
-Soit vous l'ajoutez à vos scripts favoris dans le menu "étoile" du volet de gauche en glissant le fichier script dans "Drop Cypher script file to import", vous pourrez alors lancer le script en double cliquant dessus.
Voilà vous avez tout Westeros devant vous ! « (non contractuel) »
Petite astuce :
CTRL + ENTER -> Lance la commande présente dans la ligne de commande.
SHIFT + ENTER -> Permet de faire un saut de ligne dans la ligne de commande sans lancer celle-ci.
Pour les questions suivantes voici quelques commandes qui pourraient vous être utiles :
"match" agit presque comme un SELECT de SQL.
"return" renvoie l'ensemble des matchs.
Comme () désigne un noeud et que n est ici juste une variable, on va matcher avec l'ensemble des nœuds du graphes et donc récupérer l'intégralité des nœuds du graphe en retour ! On peut donc préférer sur un gros graphe rajouter un LIMIT 100 après le "return".
Il est possible de compter les nœuds en remplaçant "n" par COUNT(n) comme paramètre de retour.
Entraînez-vous sur Westeros !
Question
J'ai entendu dire que le clan des Starks avaient un grande influence sur l'univers, cependant, je ne m'y retrouve pas...
J'ai cru comprendre qu'il existait des nœuds clan comme celui-ci : (stark:clan { clanname : 'The Starks'}) et qu'ils pouvaient être liés à des personnages à l'aide de cette relation : (arya)-[:LIER{type : 'liendeclan'}]->(stark)
Pourriez vous m'aider en me montrant l'ensemble des Starks du graphe ?