Introduction
- La domination historique des bases de données relationnelles.
- L’apparition des bases NoSQL et les différents types de bases NoSQL.
- Une présentation de Neo4j, son positionnement et ses avantages.
Démonstration
Des exemples d’utilisation de Neo4j.
Installation
- Les plateformes supportées et la configuration requise.
- Les installations sous Linux et sous Windows.
- La création de service, le lancement et la configuration.
Travaux pratiques
Installer Neo4j sur son poste de développement (avec Linux ou Windows).
La structure des données sous Neo4j
- Qu’est-ce qu’un graphe ?
- Les nœuds : les propriétés et les labels.
- Les relations : les propriétés, les types et les sens.
- Les propriétés : les types et les tableaux.
- Les chemins et les parcours de données.
- Les schémas, les index et les contraintes.
Travaux pratiques
Manipulations de différents graphes.
Le langage Cypher
- La syntaxe : les expressions, les variables, les paramètres, les opérateurs, les motifs, les tableaux, etc.
- Les clauses : les lectures, les écritures, les unions, les projections, etc.
- Les fonctions : les mathématiques, les agrégations, les scalaires, liées aux tableaux et aux chaînes, etc.
- Les index : la création, l'utilisation, la suppression, l'ajout de contraintes.
- L'optimisation de requêtes et plans d’exécution.
- L'importation de données.
Travaux pratiques
Importation de la base d’exemple et exécution de requêtes via l’interface Web.
Accéder à Neo4j depuis vos propres programmes
- Un aperçu de l’embarquement de Neo4j au sein d’un programme Java.
- Les drivers fournis par Neo4j (.Net, Java, JavaScript, Python).
- Un focus sur un driver au choix (Java, JavaScript, Spring ou Python).
- Les connexions au serveur et authentification, les requêtes en lectures/écritures et les transactions.
Travaux pratiques
Exécution de requêtes via le driver Java, JavaScript ou Python.
L’API REST et GraphQL
- L'API REST versus GraphQL.
- Racine et authentification. Flux JSON. Service transactionnel.
- La manipulation directe de nœuds et la manipulation directe de relations.
- Le service historique (le transactionnel et le non transactionnel).
- Le recensement des propriétés, les labels et les types de relations utilisés dans la base.
- La gestion de l’indexation et des contraintes.
Travaux pratiques
L'exécution de requêtes via l’API REST.