SlideShare une entreprise Scribd logo
1  sur  20
Bases orientées graphe
A L’AIDE DE NEO4J
Des relations
 Vous l’avez compris, on collecte de plus en plus de
données
 Ces données ne vivent pas isolées, elles sont reliées
entre elles
 Il s’agit donc de modéliser (représenter) dans la base
de relations telles que :
 Pierre a acheté une 205
 Deux entités
 Une relation
2
Avec une base « classique » 3
En rouge les personnes (1 table)
En bleu les véhicules (1 table)
En jaune les relations entre les deux tables (qui est aussi une table)
Avec une base « classique »
 Plus le nombre d’entités à lier augmente, plus le
nombre de tables intermédiaires augmente
 L’opération de mise en relation est le JOIN
 Plus les tables augmentent en taille, plus la requête
est lente (c’est presque le produit cartésien des
tables) -> pas forcément adapté au big data
 Les schémas sont figés
 Avantage : on ne peut pas faire n’importe quoi
 Inconvénient : on ne peut pas faire de que l’on veut
4
Base graphe
 Modélise, stocke requête des données connectées
 Nos dessins au tableau deviennent le modèle
5
Quand utiliser une base graphe ?
 Les données sont dynamiques
 Les données sont connectées
 Le schéma est flexible
 Le schéma est complexe
 On a besoin des réponses en temps réel
6
Neo4j 7
Neo4j
 Repose sur quatre notions :
 Les nœuds
 Les relations
 Les propriétés des relations
 Les propriétés des nœuds
8
Un exemple 9
Noeuds 10
 Représente une entité qui peut être complexe
 Possède des propriétés
 Un label (ou plusieurs) qui permet de différencier les nœuds (personne, pays, …)
 Représente les attributs de l’entité
 Ou des métadonnées (dates, …)
 Des paires clef/valeur
 Chaque nœud peut posséder des propriétés différentes de celles d’un
autre nœud
 En valeur
 En nature
Relations 11
 Chaque relation possède deux principaux attributs
 Un nom
 Un sens
 Une relation peut porter des propriétés
 Chaque relation possède un nœud de départ et un nœud d’arrivée
 Pas de relations « pendantes »
Relations 12
Nom :
Pierre
Nom :
Sam
Nom :
Paul
Nom :
Lucy
Est ami de
Est ami de
Est ami de
Nom :
Pierre
Est voisin de
Nom :
Paul
Est ami de
Nom :
Pierre
S’est proposé
Le langage : Cypher 13
Personne Personne
Est ami de
(:Personne)-[:EST_AMI_DE]->(:Personne)
Propriétés 14
(:Personne{Nom:pierre})-[:EST_AMI-DE]->(:Personne{Nom:Paul})
Nom : Pierre Nom : Paul
Est ami de
Personne
Personne
Identifiants 15
(p1:Personne{Nom:pierre})-[r:EST_AMI-DE]->(p2:Personne{Nom:Paul})
Nom : Pierre Nom : Paul
Est ami de
Personne
Personne
Requête 16
MATCH (p1:Personne{Nom:pierre})-[r:EST_AMI-DE]->(ses_amis)
RETURN ses_amis
Construction d’un modèle 17
 Une question concrète
 Quelle personnes travaillant dans la même entreprise que moi ont les mêmes
compétences ?
 On identifies les entités
 Quelle personnes travaillant dans la même entreprise que moi ont les mêmes
compétences ?
 On identifies les relations
 Personne TRAVAILLE_POUR entreprise
 Personne POSSEDE compétence
 La structure
 (:Personne)-[:TRAVAILLE_POUR]->(:Entreprise)
 (:Personne)->[:POSSEDE]->(:Compétence)
Schéma global 18
 (:Personne)-[:TRAVAILLE_POUR]->(:Entreprise)
 (:Personne)->[:POSSEDE]->(:Compétence)
 (:Entreprise)<-[:TRAVAILLE_POUR]-(:Personne)-[:POSSEDE]->(:Compétence)
La requête 19
 MATCH (entreprise)<-[:TRAVAILLE_POUR]-(:Personne{nom:patrick})
-[:POSSEDE]->(competence),
(entreprise)<-[TRAVAILLE_POUR]-(college)-[:POSSEDE]->(COMPETENCE)
RETURN college.nom AS nom,
COUNT(competence) AS score
COLLECT(competence.nom) AS compétences
GROUP BY score DESC
Qui a les mêmes compétences que
patrick ?
20
 MATCH (entreprise)<-[:TRAVAILLE_POUR]-(:Personne{nom:patrick})
-[:POSSEDE]->(competence),
(entreprise)<-[TRAVAILLE_POUR]-(college)-[:POSSEDE]->(COMPETENCE)

Contenu connexe

Plus de Patrick Bury

09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreducePatrick Bury
 
06 cloud souverain
06 cloud souverain06 cloud souverain
06 cloud souverainPatrick Bury
 
05 creation instance ovh
05 creation instance ovh05 creation instance ovh
05 creation instance ovhPatrick Bury
 
04 big data fournisseurs
04 big data fournisseurs04 big data fournisseurs
04 big data fournisseursPatrick Bury
 
03 big data stockage
03 big data stockage03 big data stockage
03 big data stockagePatrick Bury
 
03 big data échelle
03 big data échelle03 big data échelle
03 big data échellePatrick Bury
 
02 big data definition
02 big data definition02 big data definition
02 big data definitionPatrick Bury
 
01 big data introduction
01 big data introduction01 big data introduction
01 big data introductionPatrick Bury
 
15 map reduce on azure
15 map reduce on azure15 map reduce on azure
15 map reduce on azurePatrick Bury
 
14 big data gitlab
14 big data gitlab14 big data gitlab
14 big data gitlabPatrick Bury
 
13 big data docker
13 big data docker13 big data docker
13 big data dockerPatrick Bury
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreducePatrick Bury
 
08 big data dataviz
08 big data dataviz08 big data dataviz
08 big data datavizPatrick Bury
 

Plus de Patrick Bury (20)

12 big data azure
12 big data azure12 big data azure
12 big data azure
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreduce
 
07 big data sgbd
07 big data sgbd07 big data sgbd
07 big data sgbd
 
06 cloud souverain
06 cloud souverain06 cloud souverain
06 cloud souverain
 
05 creation instance ovh
05 creation instance ovh05 creation instance ovh
05 creation instance ovh
 
04 big data fournisseurs
04 big data fournisseurs04 big data fournisseurs
04 big data fournisseurs
 
03 big data stockage
03 big data stockage03 big data stockage
03 big data stockage
 
03 big data échelle
03 big data échelle03 big data échelle
03 big data échelle
 
02 big data definition
02 big data definition02 big data definition
02 big data definition
 
01 open data
01 open data01 open data
01 open data
 
01 big data introduction
01 big data introduction01 big data introduction
01 big data introduction
 
15 map reduce on azure
15 map reduce on azure15 map reduce on azure
15 map reduce on azure
 
14 big data gitlab
14 big data gitlab14 big data gitlab
14 big data gitlab
 
100 évaluation
100 évaluation100 évaluation
100 évaluation
 
13 big data docker
13 big data docker13 big data docker
13 big data docker
 
12 big data azure
12 big data azure12 big data azure
12 big data azure
 
11 big data aws
11 big data aws11 big data aws
11 big data aws
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
09 big data mapreduce
09 big data mapreduce09 big data mapreduce
09 big data mapreduce
 
08 big data dataviz
08 big data dataviz08 big data dataviz
08 big data dataviz
 

Dernier

EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesEL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesSOLIANAEvelyne
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024frizzole
 
Webinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsWebinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsTechnologia Formation
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptxTxaruka
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Technologia Formation
 
Système National de Santé au- Maroc-(2017)."pdf"
Système National de Santé au- Maroc-(2017)."pdf"Système National de Santé au- Maroc-(2017)."pdf"
Système National de Santé au- Maroc-(2017)."pdf"tachakourtzineb
 
Quitter la nuit. pptx
Quitter          la        nuit.    pptxQuitter          la        nuit.    pptx
Quitter la nuit. pptxTxaruka
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?sashaflor182
 
Présentation sur les Risques Électriques et Leur Prévention en Algérie
Présentation sur les Risques Électriques et Leur Prévention en AlgériePrésentation sur les Risques Électriques et Leur Prévention en Algérie
Présentation sur les Risques Électriques et Leur Prévention en AlgérieSeifTech
 
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Pedago Lu
 
Festival de Cannes 2024. pptx
Festival    de   Cannes      2024.  pptxFestival    de   Cannes      2024.  pptx
Festival de Cannes 2024. pptxTxaruka
 

Dernier (12)

EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les ÉcolesEL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
EL KATRY Reem: Proposition de Programme Artistique et Exposition pour les Écoles
 
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
PLANNING HEBDO ET CR LYCEE COUDON 21 MAI2024
 
Webinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctionsWebinaire Technologia | DAX : nouvelles fonctions
Webinaire Technologia | DAX : nouvelles fonctions
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptx
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
 
Système National de Santé au- Maroc-(2017)."pdf"
Système National de Santé au- Maroc-(2017)."pdf"Système National de Santé au- Maroc-(2017)."pdf"
Système National de Santé au- Maroc-(2017)."pdf"
 
Quitter la nuit. pptx
Quitter          la        nuit.    pptxQuitter          la        nuit.    pptx
Quitter la nuit. pptx
 
Traitement des eaux usées par lagunage a macrophytes.pptx
Traitement des eaux usées par lagunage a macrophytes.pptxTraitement des eaux usées par lagunage a macrophytes.pptx
Traitement des eaux usées par lagunage a macrophytes.pptx
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?
 
Présentation sur les Risques Électriques et Leur Prévention en Algérie
Présentation sur les Risques Électriques et Leur Prévention en AlgériePrésentation sur les Risques Électriques et Leur Prévention en Algérie
Présentation sur les Risques Électriques et Leur Prévention en Algérie
 
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
Fiche - Accompagnement du travail coopératif au sein d’une équipe d’enseignan...
 
Festival de Cannes 2024. pptx
Festival    de   Cannes      2024.  pptxFestival    de   Cannes      2024.  pptx
Festival de Cannes 2024. pptx
 

16 graph databases

  • 1. Bases orientées graphe A L’AIDE DE NEO4J
  • 2. Des relations  Vous l’avez compris, on collecte de plus en plus de données  Ces données ne vivent pas isolées, elles sont reliées entre elles  Il s’agit donc de modéliser (représenter) dans la base de relations telles que :  Pierre a acheté une 205  Deux entités  Une relation 2
  • 3. Avec une base « classique » 3 En rouge les personnes (1 table) En bleu les véhicules (1 table) En jaune les relations entre les deux tables (qui est aussi une table)
  • 4. Avec une base « classique »  Plus le nombre d’entités à lier augmente, plus le nombre de tables intermédiaires augmente  L’opération de mise en relation est le JOIN  Plus les tables augmentent en taille, plus la requête est lente (c’est presque le produit cartésien des tables) -> pas forcément adapté au big data  Les schémas sont figés  Avantage : on ne peut pas faire n’importe quoi  Inconvénient : on ne peut pas faire de que l’on veut 4
  • 5. Base graphe  Modélise, stocke requête des données connectées  Nos dessins au tableau deviennent le modèle 5
  • 6. Quand utiliser une base graphe ?  Les données sont dynamiques  Les données sont connectées  Le schéma est flexible  Le schéma est complexe  On a besoin des réponses en temps réel 6
  • 8. Neo4j  Repose sur quatre notions :  Les nœuds  Les relations  Les propriétés des relations  Les propriétés des nœuds 8
  • 10. Noeuds 10  Représente une entité qui peut être complexe  Possède des propriétés  Un label (ou plusieurs) qui permet de différencier les nœuds (personne, pays, …)  Représente les attributs de l’entité  Ou des métadonnées (dates, …)  Des paires clef/valeur  Chaque nœud peut posséder des propriétés différentes de celles d’un autre nœud  En valeur  En nature
  • 11. Relations 11  Chaque relation possède deux principaux attributs  Un nom  Un sens  Une relation peut porter des propriétés  Chaque relation possède un nœud de départ et un nœud d’arrivée  Pas de relations « pendantes »
  • 12. Relations 12 Nom : Pierre Nom : Sam Nom : Paul Nom : Lucy Est ami de Est ami de Est ami de Nom : Pierre Est voisin de Nom : Paul Est ami de Nom : Pierre S’est proposé
  • 13. Le langage : Cypher 13 Personne Personne Est ami de (:Personne)-[:EST_AMI_DE]->(:Personne)
  • 17. Construction d’un modèle 17  Une question concrète  Quelle personnes travaillant dans la même entreprise que moi ont les mêmes compétences ?  On identifies les entités  Quelle personnes travaillant dans la même entreprise que moi ont les mêmes compétences ?  On identifies les relations  Personne TRAVAILLE_POUR entreprise  Personne POSSEDE compétence  La structure  (:Personne)-[:TRAVAILLE_POUR]->(:Entreprise)  (:Personne)->[:POSSEDE]->(:Compétence)
  • 18. Schéma global 18  (:Personne)-[:TRAVAILLE_POUR]->(:Entreprise)  (:Personne)->[:POSSEDE]->(:Compétence)  (:Entreprise)<-[:TRAVAILLE_POUR]-(:Personne)-[:POSSEDE]->(:Compétence)
  • 19. La requête 19  MATCH (entreprise)<-[:TRAVAILLE_POUR]-(:Personne{nom:patrick}) -[:POSSEDE]->(competence), (entreprise)<-[TRAVAILLE_POUR]-(college)-[:POSSEDE]->(COMPETENCE) RETURN college.nom AS nom, COUNT(competence) AS score COLLECT(competence.nom) AS compétences GROUP BY score DESC
  • 20. Qui a les mêmes compétences que patrick ? 20  MATCH (entreprise)<-[:TRAVAILLE_POUR]-(:Personne{nom:patrick}) -[:POSSEDE]->(competence), (entreprise)<-[TRAVAILLE_POUR]-(college)-[:POSSEDE]->(COMPETENCE)