O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Institut National des Sciences Appliquées et de Technologie Tunisie
Big Data
2015-2016
TP5- NOSQL ORIENTE
GRAPHES AVEC NEO...
TP5 : NOSQL Orientées Graphes avec Neo4J
Page 2
I. Bases de Données orientées Graphes : Neo4J
I.1. Graphes
Formellement, u...
TP5 : NOSQL Orientées Graphes avec Neo4J
Page 3
Les données que nous traitons représentent :
- Les films avec un label :Mo...
TP5 : NOSQL Orientées Graphes avec Neo4J
Page 4
- Dans la fenêtre qui apparaît, cliquer sur le code de création du graphe
...
TP5 : NOSQL Orientées Graphes avec Neo4J
Page 5
(a {name: "Keanu Reeves", born : 1964}) Acteur avec des propriétés name
et...
TP5 : NOSQL Orientées Graphes avec Neo4J
Page 6
propertyB de chaque couple de nœuds node2 et node1 qui sont connectés
par ...
TP5 : NOSQL Orientées Graphes avec Neo4J
Page 7
La requête permettant de trouver tous les caractères du film The Matrix es...
TP5 : NOSQL Orientées Graphes avec Neo4J
Page 8
I.4.2. Les Chemins (Paths)
Un chemin est un ensemble de nœuds connectés et...
TP5 : NOSQL Orientées Graphes avec Neo4J
Page 9
MATCH p = (a)-[ :ACTED_IN]->(m)<-[ :DIRECTED]-(d)
RETURN rels(p)
Activité ...
TP5 : NOSQL Orientées Graphes avec Neo4J
Page 10
Activité 4. Exécuter les requêtes suivantes dans votre éditeur:
- Créer u...
Próximos SlideShares
Carregando em…5
×

BigData_TP5 : Neo4J

Utilisation de la base Neo4J

  • Seja o primeiro a comentar

BigData_TP5 : Neo4J

  1. 1. Institut National des Sciences Appliquées et de Technologie Tunisie Big Data 2015-2016 TP5- NOSQL ORIENTE GRAPHES AVEC NEO4J Dr. Lilia SFAXI Objectifs du TP : Se familiariser avec les bases de données NOSQL, orientées graphes avec Neo4J.
  2. 2. TP5 : NOSQL Orientées Graphes avec Neo4J Page 2 I. Bases de Données orientées Graphes : Neo4J I.1. Graphes Formellement, un graphe est une collection de nœuds et d’arcs qui les connectent. Les graphes représentent les entités sous forme de nœuds, et les manières dont ces entités sont reliées sous forme d’arcs. Cette structure a inspiré les bases de données orientées graphes, car elles permettent de modéliser tous types de scénarios. Par exemple, les relations entre les utilisateurs de Twitter peuvent être représentées de manière simplifiée par le graphe suivant : Un graphe peut représenter n’importe quel type de données. - Un nœud est l’équivalent d’un enregistrement - Une relation permet de relier des nœuds, et peut être typée - Les nœuds et les relations peuvent avoir des propriétés, représentant des attributs nommés - Un label est un nom permettant d’organiser les nœuds en groupes La base de données que nous allons utiliser dans ce TP est Neo4j1. Cette base utilise le langage Cypher pour représenter les requêtes. I.2. Exemple L’exemple que nous allons montrer dans ce manuscrit est tiré du tutorial fourni par Neo4j dans leur site sur ce lien: http://neo4j.com/graphacademy/online- course/ 1 Neo4J: http://neo4j.com/
  3. 3. TP5 : NOSQL Orientées Graphes avec Neo4J Page 3 Les données que nous traitons représentent : - Les films avec un label :Movie et les propriétés title, released et tagline - Les personnes avec un label :Person et des propriétés name et born - Une relation ACTED_IN allant d’un acteur à un film, avec une propriété roles contenant la liste des noms des caractères - Une relation DIRECTED allant d’un réalisateur à un film. Activité 1. Commencer par installer Neo4J, avec le fichier executable fourni par votre enseignante. Lancez le sur votre navigateur. Créer la base de données Movies donnée comme exemple par l’outil en suivant les étapes suivantes: - Une fois authentifié et le mot de passe par défaut remplacé, choisir : “Jump Into Code” pour commencer à développer. - Cliquer sur « Create a Graph » de la rubrique « Movie Graph » comme suit :
  4. 4. TP5 : NOSQL Orientées Graphes avec Neo4J Page 4 - Dans la fenêtre qui apparaît, cliquer sur le code de création du graphe pour le charger dans l’éditeur. L’exécuter. I.3. Le Langage Cypher Nœuds (a) Acteurs (m) Films ( ) Noeud Anonyme Relations -[r]-> relation appelée r (a) –[r]-> (m) acteurs ayant une relation r avec des films -[:ACTED_IN]-> La relation est de type ACTED_IN (a)-[:ACTED_IN]->(m) Les acteurs qui jouent dans un film (d)-[:DIRECTED]->(m) Les réalisateurs d’un film Propriétés des Nœuds (m {title : "The Matrix"}) Film avec une propriété title a m a m a m ACTED_IN ACTED_IN d mDIRECTED ACTED_IN
  5. 5. TP5 : NOSQL Orientées Graphes avec Neo4J Page 5 (a {name: "Keanu Reeves", born : 1964}) Acteur avec des propriétés name et born Propriétés des Relations (a)-[ :ACTED_IN {roles :[« Neo »]}]->(m) Relation ACTED_IN avec la propriété roles, qui est un tableau de noms Labels : permettent de reconnaître différents types de noeuds (a:Person)-[:ACTED_IN]->(m:Movie) Une personne qui a joué dans un film I.4. Requêtes Cipher I.4.1. Requêtes de lecture simples Voici des exemples de requêtes Cipher: La première instruction permet de retourner la valeur de la propriété property pour tous les nœuds. La seconde, retourne les valeurs de propertyA et m {title=”The Matrix”} a {name=”Keanu Reeves”, born=1964} a m ACTED_IN {roles:[“Neo”]} a m ACTED_IN Person Movie
  6. 6. TP5 : NOSQL Orientées Graphes avec Neo4J Page 6 propertyB de chaque couple de nœuds node2 et node1 qui sont connectés par une relation (quelle que soit sa nature). Pour retourner seulement les nœuds connectés par une relation de type REL_TYPE : Si la relation en question comporte des propriétés qu’on désire lire, lui donner un nom (ici rel) : Pour indiquer un type particulier de nœuds, utiliser les labels : Il est possible d’affecter un identifiant à une relation, puis retourner le type de la relation, ou bien ses propriétés : Pour étayer par un exemple, soit le graphe suivant :
  7. 7. TP5 : NOSQL Orientées Graphes avec Neo4J Page 7 La requête permettant de trouver tous les caractères du film The Matrix est la suivante : MATCH (movie :Movie)<-[role :ACTED_IN]-(actor :Person) WHERE movie.title= « The Matrix » RETURN role.roles, actor.name Un autre moyen est également possible pour filtrer les données (à la place du traditionnel WHERE), et ce remplaçant la requête précédente par : MATCH (movie :Movie (title : « The Matrix »)<-[role :ACTED_IN]-(actor :Person) RETURN role.roles, actor.name Activité 2. Exécuter les requêtes suivantes dans votre éditeur: - Donner tous les films où a joué Tom Hanks - Donner la liste de tous les personnages de Matrix - Donner pour chaque film sa date de sortie
  8. 8. TP5 : NOSQL Orientées Graphes avec Neo4J Page 8 I.4.2. Les Chemins (Paths) Un chemin est un ensemble de nœuds connectés et de relations, pouvant correspondre à un patron. Par exemple : (a) --> (b) --> (c) (a) --> (b) <-- (c) Exemple : Pour afficher tous les acteurs et réalisateurs de tous les films : MATCH (a)-[ :ACTED_IN]->(m)<-[ :DIRECTED]-(d) RETURN a.name, m.title, d.name Il est possible également de diviser la requête en plusieurs chemins, comme suit : MATCH (a)-[ :ACTED_IN]->(m), (m) <-[ :DIRECTED]-(d) RETURN a.name, m.title, d.name Ou bien : MATCH (a)-[ :ACTED_IN]->(m), (d)-[ :DIRECTED]->(m) RETURN a.name, m.title, d.name Les résultats des requêtes précédentes sont des tableaux. Il est possible de retourner le chemin entier, avec toutes les propriétés de tous les nœuds et relations concernés : MATCH p = (a)-[ :ACTED_IN]->(m)<-[ :DIRECTED]-(d) RETURN p Si cela représente trop d’informations, vous pouvez juste sélectionner les nœuds du chemin : MATCH p = (a)-[ :ACTED_IN]->(m)<-[ :DIRECTED]-(d) RETURN nodes(p) … ou bien seulement les relations :
  9. 9. TP5 : NOSQL Orientées Graphes avec Neo4J Page 9 MATCH p = (a)-[ :ACTED_IN]->(m)<-[ :DIRECTED]-(d) RETURN rels(p) Activité 3. Exécuter les requêtes suivantes dans votre éditeur: - Quels réalisateurs ont joué dans leurs propres films ? - Donner les films où Keanu Reeves a joué le rôle de Neo. - Quels acteurs ont déjà joué dans un même film avec Tom Hanks, et dans quel film ? - Quels acteurs ont joué dans un même film avec Tom Hanks, et avec Keanu Reeves ? - Quels sont les personnages du film « The Matrix » ? I.4.3. Éditer un graphe avec Cipher Pour ajouter un nœud au graphe : Pour ajouter (ou modifier) des propriétés à un nœud existant : Pour ajouter une relation entre deux nœuds existants :
  10. 10. TP5 : NOSQL Orientées Graphes avec Neo4J Page 10 Activité 4. Exécuter les requêtes suivantes dans votre éditeur: - Créer un film appelé Mystic River - Ajouter Kevin Bacon comme acteur dans le film « Mystic River » avec le rôle « Sean » - Modifier le rôle pour devenir « Sean Devine »

×