SlideShare une entreprise Scribd logo
HMIN313 : 1er Cours
Les bases de donn´ees NoSQL
BD orient´ees graphes
Hatim CHAHDI
UMR Espace-DEV
Universit´e de Montpellier
14 Septembre 2016
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 1 / 42
Objectifs du cours
Comprendre la probl´ematique de stockage de donn´ees
Prendre conscience des alternatives No-SQL existantes par rapport
aux syst`emes traditionnels
´Etude approfondie des bases de donn´ees orient´ees graphe
Pr´esentation de Neo4J comme exemple d’une BD orient´ee graphe
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 2 / 42
Base de donn´ees relationnelles ! Pourquoi pas ?
”I suppose it is tempting, if the only tool you have is a hammer, to treat
everything as if it were a nail.”
Abraham Maslow : The Psychology of Science 1966
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 3 / 42
Base de donn´ees relationnelles ! Pourquoi pas ?
”I suppose it is tempting, if the only tool you have is a hammer, to treat
everything as if it were a nail.”
Abraham Maslow : The Psychology of Science 1966
Pourquoi utiliser d’autres types de bases de donn´ees ?
Si le seul outil que j’ai en ma possession est un SGBD relationnel. Alors
tout m’apparaˆıtra comme une table
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 3 / 42
Motivations
Mission principale d’un SGBD
Un SGBD cherche `a fournir un syst`eme de stockage et un acc`es pratique,
fiable, efficace et sˆur `a des quantit´es importantes de donn´ees
persistantes.
´Evolution du Web :
Plusieurs sources de donn´ees disponibles
Acquisition facilit´ee des donn´ees : Navigation, pr´ef´erences des
utilisateurs...
...
Complexit´e des donn´ees : Gros volumes de donn´ees interconnect´ees
Des besoins de flexibilit´e avec des sch´emas qui ´evoluent, des priorit´es
sur l’acc`es, des donn´ees manquantes
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 4 / 42
Motivations
Les performances des SGBD restaient tr`es insatisfaisantes...
Scalabilit´e
Consistance des donn´ees
Complexit´e des sch´emas
. . .
Constat :
Les SGBD relationnels ne sont pas toujours la meilleure solution de gestion
et/ou traitement des donn´ees
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 5 / 42
Le monde No-SQL : Des alternatives !
Des besoins diff´erents. Des structures de
stockage diff´erentes
R´esultat
Apparition des Syst`emes dits No-SQL.
Les diff´erents types des SGBD No-SQL:
Cl´e/Valeur
Colonne
Document
Graphe
. . .
No-SQL = Not Only SQL
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 6 / 42
Base de donn´ees orient´ee Cl´e/Valeur
Principes: Repr´esentation des donn´ees sous forme de cl´e/valeur .
Les valeurs peuvent ˆetre de simple chaˆınes de caract`eres ou des objets
s´erialis´es complexes.
Utilisation: d´epˆot de donn´ees avec besoins de requˆetage simples
(pr´ef´erences d’utilisateur, donn´ees de panier, les logs . . . )
Figure : mod`ele cl´e/valeur
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 7 / 42
Base de donn´ees orient´ee Cl´e/Valeur
Principes: Repr´esentation des donn´ees sous forme de cl´e/valeur .
Les valeurs peuvent ˆetre de simple chaˆınes de caract`eres ou des objets
s´erialis´es complexes.
Utilisation: d´epˆot de donn´ees avec besoins de requˆetage simples
(pr´ef´erences d’utilisateur, donn´ees de panier, les logs . . . )
Figure : mod`ele cl´e/valeur
Exploitation bas´ee sur 4
op´erations (CRUD): Acc`es par
la cl´e
Create: Cr´eation d’un objet.
Read: Lecture d’un objet.
Update: Mise `a jour d’un
objet.
Delete: Suppression un objet.
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 7 / 42
Base de donn´ees orient´ee colonnes
Principes: Proche du relationnel. Mais le stockage des donn´es se fait
par colonne et non par ligne.
Ajout de colonnes facile et dynamique
Possibilit´e de compression des donn´ees
Utilisation: Optimisation de la recherche, traitement et analyse de
donn´ees structur´ees (BI) . . .
Figure : mod`ele colonne
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 8 / 42
Base de donn´ees orient´ee colonnes
Principes: Proche du relationnel. Mais le stockage des donn´es se fait
par colonne et non par ligne.
Ajout de colonnes facile et dynamique
Possibilit´e de compression des donn´ees
Utilisation: Optimisation de la recherche, traitement et analyse de
donn´ees structur´ees (BI) . . .
Figure : mod`ele colonne
Impl´ementation `a ´etudier dans
la suite de l’UE
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 8 / 42
Base de donn´ees orient´ee document
Principes: C’est une variante des SGBD cl´e/valeur, o`u la valeur est
un document de type XML ou JSON.
Les documents ont une structure arborescente, ils sont compos´es de
champs et des valeurs associ´ees
Ce type de SGBD permet d’effectuer des requˆetes sur le contenu des
documents.
Utilisation: Enregistrements d’´ev´enements, gestion de contenu . . .
Figure : mod`ele document
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 9 / 42
Base de donn´ees orient´ee document
Principes: C’est une variante des SGBD cl´e/valeur, o`u la valeur est
un document de type XML ou JSON.
Les documents ont une structure arborescente, ils sont compos´es de
champs et des valeurs associ´ees
Ce type de SGBD permet d’effectuer des requˆetes sur le contenu des
documents.
Utilisation: Enregistrements d’´ev´enements, gestion de contenu . . .
Figure : mod`ele document
Impl´ementations connues
CouchDB fondation apache
MangoDB
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 9 / 42
Base de donn´ees orient´ee graphe
Principes
Les donn´ees sont repr´esent´ees sous-forme de graphe : Des noeuds pour
les entit´es, des arcs pour les relations entre les entit´es
Ce type de SGBD est adapt´e `a la manipulation de donn´ees fortement
connect´ees
Utilisation: Syst`emes de recommandations, R´eseaux sociaux,
Syst`emes de transport . . .
Figure : mod`ele graphe
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 10 / 42
Base de donn´ees orient´ee graphe
Principes
Les donn´ees sont repr´esent´ees sous-forme de graphe : Des noeuds pour
les entit´es, des arcs pour les relations entre les entit´es
Ce type de SGBD est adapt´e `a la manipulation de donn´ees fortement
connect´ees
Utilisation: Syst`emes de recommandations, R´eseaux sociaux,
Syst`emes de transport . . .
Figure : mod`ele graphe
Impl´ementations connues
Neo4J
AllegroGraph
. . .
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 10 / 42
Passage oblig´e au NoSQL ?
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 11 / 42
R´ecapitulatif : Passage oblig´e au NoSQL ?
Alternatives adapt´ees `a des cas particuliers
´Evolution fr´equente des sch´emas
Flexibilit´e dans la gestion des donn´ees manquantes (ou non
conformes)
Flux important : Passage `a l’´echelle
. . .
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 12 / 42
Des syst`emes compl´ementaires
Utilisation conjointe pour une meilleure gestion des donn´ees
Figure : Persistance dite polyglotte
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 13 / 42
Des syst`emes compl´ementaires
Utilisation conjointe pour une meilleure gestion des donn´ees
Figure : Persistance dite polyglotte
One Size doesn’t fit all
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 13 / 42
Caract´eristiques des syst`emes NoSQL : CAP
Consistency, Availability, Partition tolerance
Consistency ou coh´erence des donn´ees : toute modification de
donn´ee est suivie d’effet pour tous les noeuds du syst`eme
Availability ou disponibilit´e des donn´ees : toute requˆete ´emise et
trait´ee par un noeud du syst`eme, re¸coit une r´eponse (mˆeme en
situation d’´echec `a produire une r´eponse)
Partition tolerance ou recouvrement des noeuds assurer une
continuit´e du fonctionnement en cas d’ajout/suppression de noeud
(ou partition) du syst`eme distribu´e
Constat de Brewer : aucun des syst`emes distribu´es n’est `a mˆeme de
satisfaire en mˆeme temps les principes C, A et P
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 14 / 42
Th´eor`eme CAP : un choix `a faire !
Un syst`eme distribu´e va satisfaire deux des trois points CAP
Consid´erations SGBDR / Syst`emes NoSQL
SGBDR : Coh´erence et haute disponibilit´e (pas ou peu de P : de
diff´erents noeuds syst`eme)
Syst`emes NoSQL : Choix du P (syst`eme naturellement distribu´e) et
s´election soit du C, soit du A
abandon du A ⇐ Accepte d’attendre que les donn´ees soient coh´erentes
abandon du C ⇐ Accepte de recevoir des donn´ees parfois incoh´erentes
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 15 / 42
Positionnement des syst`emes / CAP
Figure : Synth`ese CAP
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 16 / 42
Les Bases de Donn´ees orient´ees Graphes
Figure : Graphe du trafic a´erien mondial
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 17 / 42
Base de Donn´ees orient´ee Graphes
Histoire des graphes
Th´eorie des graphes
Les graphes en base de donn´ees
Neo4J: un SGBD orient´e graphe open source*
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 18 / 42
Des probl`emes remontant `a 840 . . .
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 19 / 42
Des probl`emes remontant `a 840 . . .
Le probl`eme du cavalier
Pos´e par le joueur et th´eoricien
d’´echecs al-Adli ar-Rumi :
Comment un cavalier peut-il
visiter toute les cases sans passer
deux fois par la mˆeme ?
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 19 / 42
Des probl`emes remontant `a 840 . . .
Le probl`eme du cavalier
Pos´e par le joueur et th´eoricien
d’´echecs al-Adli ar-Rumi :
Comment un cavalier peut-il
visiter toute les cases sans passer
deux fois par la mˆeme ?
Figure : La solution de Ar-Rumi
Une solution parmi les milliards de
solution possibles
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 19 / 42
Les sept ponts de K¨onigsberg
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 20 / 42
Les sept ponts de K¨onigsberg
Figure : Mod´elisation simple
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 20 / 42
Les sept ponts de K¨onigsberg
Figure : Mod´elisation simple
Solution d´emontr´ee par Euler
Pas de promenade possible
Naissance de la th´eorie des
graphes : 1736
Figure : Mod´elisation sous forme de
graphe
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 20 / 42
Des probl´ematiques plus r´ecentes...
Gestion de code
R´eseaux sociaux
Transport et logistique
Collaborations
Chimie et biologie
spatial
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 21 / 42
Des probl´ematiques plus r´ecentes...
Gestion de code
R´eseaux sociaux
Transport et logistique
Collaborations
Chimie et biologie
spatial
Pourquoi et quand utiliser les graphes ?
Mod´elisation efficace des donn´ees connect´ees
Donner de l’importance aux relations entre diff´erentes entit´es
. . .
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 21 / 42
Des probl´ematiques plus r´ecentes...
Gestion de code
R´eseaux sociaux
Transport et logistique
Collaborations
Chimie et biologie
spatial
Pourquoi et quand utiliser les graphes ?
Mod´elisation efficace des donn´ees connect´ees
Donner de l’importance aux relations entre diff´erentes entit´es
. . .
Quand les SGBD relationnels et les autres SGBD No-SQL n´egligent
les relations, toute la puissance des SGBD graphes est dans leur
prise en compte et repr´esentation explicite des relations
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 21 / 42
La th´eorie des graphes : Notions de base
D´efinitions
Un graphe permet de repr´esenter simplement la structure, les
connexions et les cheminements possibles d’un ensemble
complexe comprenant un grand nombre de situations, en
exprimant les relations, les d´ependances entre ses ´el´ements
G = ( V , E , L ) o`u L : E -> V x V
avec :
V: Ensemble des sommets.
E: Ensemble des arˆetes.
L: fonction associant `a chaque arˆete une paire de sommets.
Les diff´erents types de graphes: orient´e, non orient´e,
multigraphe, r´eflexif . . .
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 22 / 42
La th´eorie des graphes : Notions de base
Op´erations
Adjacent(G,x,y): Tester s’il existe une arˆete de x `a y.
Voisinage(G,x): Retourner, s’ils existent, les sommets li´es par
une arˆete avec le sommet x.
Ajout(G,x,y,l): Ajouter `a un graphe G une arˆete ,´etiquet´ee l,
entre les sommets x et y.
Atteindre(G,x,y): Tester s’il existe un chemin entre les
sommets x et y.
Chemin(G,x,y): Retourne le plus court chemin entre les
sommets x et y.
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 23 / 42
Les BD graphes
Mod`ele de representation des donn´ees s’appuyant sur les algorithmes
d´evelopp´es en th´eorie des graphes pour offrir des impl´ementations
simples et efficaces.
Mod´elisation, stockage et manipulation de donn´ees complexes
li´ees par des relations.
Le Graphe est l’entit´e qui va enregistrer les donn´ees dans des Noeuds
qui poss`edent des propri´et´es. Ces Noeuds peuvent ˆetre reli´es entre
eux avec des arcs (relations).
Figure : Graphe avec 3 noeuds et 2 relations
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 24 / 42
Les impl´ementations des graphes
Liste d’adjacence
Pour chaque noeud, on repr´esente la liste des voisins.
Efficace pour obtenir les voisins d’un noeud.
N’est pas optimale pour tester l’existence de chemin entre deux noeuds.
Liste d’incidence
Les arcs et les noeuds sont stock´es comme des objets dans la base.
chaque noeud enregistre les arcs incidents.
chaque arc enregistre les noeuds incidents.
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 25 / 42
Les impl´ementations des graphes
Matrice d’adjacence
repr´esentation du graphe en deux dimensions.
Les lignes repr´esentent les noeuds sources.
Les colonnes repr´esentent les noeuds de destination.
Les valeurs repr´esentent les arcs.
Matrice d’incidence
repr´esentation du graphe en deux dimensions.
Les lignes repr´esentent les noeuds.
Les colonnes repr´esentent les colonnes.
La valeur pr´ecise si le noeud est la source ou la destination des arcs.
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 26 / 42
Les SGBD orient´es graphe disponibles
Deux courants d’impl´ementations : Pour des besoins diff´erents
Stockage optimis´e : des SGBD offrant des performances accrues pour
le stockage de graphe.
Analyse optimis´ee : des SGBD performant pour l’analyse et le calcul
de graphes.
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 27 / 42
Neo4J
Qu’est ce que c’est Neo4J ?
Un SGBD orient´e graphe ´ecrit en Java.
Transactionnel : ACID (Atomicit´e, Consistance, Isolation, Durabilit´e).
Scalabilit´e : Jusqu’`a un degr´e
Disponible en version embarqu´ee et serveur.
Dispose d’une API REST.
Peut-il servir comme un endpoint SPARQL ?
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 28 / 42
Neo4J : Couches logiques
Figure : Couches logiques de Neo4J
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 29 / 42
Neo4J : Architecture
Figure : Architecture technique de Neo4J
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 30 / 42
Neo4J : deux modes :Embarqu´e et Serveur
Mode embarqu´e:
Ex´ecution de Neo4J dans le mˆeme processus de l’application.
Acc`es direct aux diff´erentes API du SGBD : Core API, traversal
framework et cypher le langage de requˆetage.
Contrˆole total sur le cycle des transactions.
Remarques:
Faire attention au GC de la JVM.
L’application doit g´erer les cycles de la base de donn´ees.
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 31 / 42
Neo4J : API Java avec deux modes : Embarqu´e et
Serveur
Mode serveur:
Au coeur de chaque serveur, une instance embarqu´ee de Neo4J.
Communication avec le SGBD au travers de l’API REST : envoi de
requˆetes format´ees en JSON avec le protocole HTTP.
B´enificie des avantages de l’architecture Client/Serveur.
Remarques:
Faire attention aux communications sur le r´eseau.
Chaque requˆete est execut´ee dans une transaction s´epar´ee.
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 32 / 42
Neo4J : Schema-less
Figure : Exemple (Documentation Neo4J)
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 33 / 42
Neo4J : Mod`ele de donn´ees
mod`ele : graphe marqu´e, orient´e , attribu´e et multi-valu´e
Figure : Un autre exemple (Documentation Neo4J)
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 34 / 42
Jeux de donn´ees plus larges : OpenStreetMap ou
MusicBrainz
Gestion pouvant aller jusqu’`a plusieurs milliards de nœuds
Figure : Un exemple plus complet : cartographie en Norv`ege avec OSM
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 35 / 42
Cypher : expressions pour poser des filtres sur le graphe
Figure : Exemple de requˆete (Documentation Neo4J)
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 36 / 42
Exemple Cypher
Clauses dans une grammaire d´eclarative `a rapprocher de SQL : START,
MATCH, WHERE, RETURN
Listing 1: Read-Only Query Structure (doc. Neo4J)
START me = node : people (name = ’ Pierre ’ )
MATCH me −[:FRIEND]−> f r i e n d
WHERE f r i e n d . age > 28
RETURN f r i e n d . name
ORDER BY f r i e n d . age ASC
SKIP 5 LIMIT 10
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 37 / 42
Autre exemple Cypher
Listing 2: Compter sur le type des relations
MATCH () −[ r ]−>()
RETURN TYPE( r ) AS r e l t y p e , count (∗) AS r e l c a r d i n a l i t
MATCH ( : Person ) −[: l i k e s ]−>( r : Restaurant )
WITH r , count (∗) as t r
WHERE t r > 2
RETURN r . name as RESTAURANT, t r as TOTAL
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 38 / 42
Une force : les appels r´ecursifs
Listing 3: parcourir le graphe
(A)−>()−>()−>()−>(B)
(A)−[∗]−>(B)
MATCH ( John {name : ’ John ’ }) −[: f r i e n d ]−> ()
−[: f r i e n d ]−> ( f o f )}
RETURN John , f o f
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 39 / 42
Retrouver le sch´ema
Listing 4: Infos sur le sch´ema
match n
r e t u r n d i s t i n c t l a b e l s (n )
match n−[ r ] −()
r e t u r n d i s t i n c t type ( r )
match n−[ r ] −()
r e t u r n d i s t i n c t l a b e l s (n ) , type ( r )
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 40 / 42
Exemple Cypher
Autres op´erations CRUD
Listing 5: Tout supprimer dans la base (doc. Neo4J)
MATCH ( n)
OPTIONAL MATCH (n)−[ r ] −()
DELETE n , r
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 41 / 42
Conclusion
Bienvenue dans le cot´e obscure de la force : NoSQL!
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 42 / 42
Conclusion
Bienvenue dans le cot´e obscure de la force : NoSQL!
Salle TD : 5.08
Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 42 / 42

Contenu connexe

Tendances

Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
Amal Abid
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
Mouna Torjmen
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
Amal Abid
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQLebiznext
 
Introduction au big data
Introduction au big dataIntroduction au big data
Introduction au big data
Abdelghani Azri
 
Bases de données réparties
Bases de données répartiesBases de données réparties
Bases de données réparties
Abdelouahed Abdou
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
Lilia Sfaxi
 
Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -
IliasAEA
 
noSQL
noSQLnoSQL
noSQL
Klee Group
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
Amal Abid
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
Amal Abid
 
Base de données distribuée
Base de données distribuéeBase de données distribuée
Base de données distribuée
kamar MEDDAH
 
Introduction à la big data v3
Introduction à la big data v3 Introduction à la big data v3
Introduction à la big data v3
Mehdi TAZI
 
Présentation des bases de données orientées graphes
Présentation des bases de données orientées graphesPrésentation des bases de données orientées graphes
Présentation des bases de données orientées graphes
Koffi Sani
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
Lilia Sfaxi
 
Big data
Big dataBig data
Big data
Yosra ADDALI
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
Lilia Sfaxi
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudoux
Laurent Broudoux
 
Introduction à Neo4j
Introduction à Neo4jIntroduction à Neo4j
Introduction à Neo4j
Neo4j
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
Lilia Sfaxi
 

Tendances (20)

Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQL
 
Introduction au big data
Introduction au big dataIntroduction au big data
Introduction au big data
 
Bases de données réparties
Bases de données répartiesBases de données réparties
Bases de données réparties
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -
 
noSQL
noSQLnoSQL
noSQL
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Base de données distribuée
Base de données distribuéeBase de données distribuée
Base de données distribuée
 
Introduction à la big data v3
Introduction à la big data v3 Introduction à la big data v3
Introduction à la big data v3
 
Présentation des bases de données orientées graphes
Présentation des bases de données orientées graphesPrésentation des bases de données orientées graphes
Présentation des bases de données orientées graphes
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
Big data
Big dataBig data
Big data
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudoux
 
Introduction à Neo4j
Introduction à Neo4jIntroduction à Neo4j
Introduction à Neo4j
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 

Similaire à Bases de Données non relationnelles, NoSQL (Introduction) 1er cours

Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Hatim CHAHDI
 
cours06-nosql.pdf
cours06-nosql.pdfcours06-nosql.pdf
cours06-nosql.pdf
hbadir
 
Bases de données no sql.pdf
Bases de données no sql.pdfBases de données no sql.pdf
Bases de données no sql.pdf
ZkSadrati
 
Spad big data - sfds - 2016
Spad   big data - sfds - 2016Spad   big data - sfds - 2016
Spad big data - sfds - 2016
Julien BLAIZE
 
Bluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantesBluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantes
BluestoneServices
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
MICHRAFY MUSTAFA
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing Théâtre
Soft Computing
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solutionJEMLI Fathi
 
Intro2019
Intro2019Intro2019
Intro2019
kdkvfe
 
Distributed programing (hadoop && java) version finale.pptx
Distributed programing  (hadoop && java) version finale.pptxDistributed programing  (hadoop && java) version finale.pptx
Distributed programing (hadoop && java) version finale.pptx
Ahmed rebai
 
Serveur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développementServeur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développement
Ludovic REUS
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Microsoft
 
Morning With MongoDB
Morning With MongoDBMorning With MongoDB
Morning With MongoDB
FastConnect
 
Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]linasafaa
 
Morning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast ConnectMorning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast ConnectMongoDB
 
Big Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptxBig Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptx
KhadijaHaddaoui
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX Hadoop
Joseph Glorieux
 
Architecture de la bibliothèque numérique : Modélisation et migrations de don...
Architecture de la bibliothèque numérique : Modélisation et migrations de don...Architecture de la bibliothèque numérique : Modélisation et migrations de don...
Architecture de la bibliothèque numérique : Modélisation et migrations de don...
Bibliothèques Virtuelles Humanistes - CESR, Université de Tours, UMR 7323
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
Romain Cambien
 
Croisière sur le data lake
Croisière sur le data lakeCroisière sur le data lake
Croisière sur le data lake
David Morel
 

Similaire à Bases de Données non relationnelles, NoSQL (Introduction) 1er cours (20)

Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
cours06-nosql.pdf
cours06-nosql.pdfcours06-nosql.pdf
cours06-nosql.pdf
 
Bases de données no sql.pdf
Bases de données no sql.pdfBases de données no sql.pdf
Bases de données no sql.pdf
 
Spad big data - sfds - 2016
Spad   big data - sfds - 2016Spad   big data - sfds - 2016
Spad big data - sfds - 2016
 
Bluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantesBluestone - Panorama des solutions analytiques existantes
Bluestone - Panorama des solutions analytiques existantes
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing Théâtre
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
Intro2019
Intro2019Intro2019
Intro2019
 
Distributed programing (hadoop && java) version finale.pptx
Distributed programing  (hadoop && java) version finale.pptxDistributed programing  (hadoop && java) version finale.pptx
Distributed programing (hadoop && java) version finale.pptx
 
Serveur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développementServeur web / Base de donnees Langages de développement
Serveur web / Base de donnees Langages de développement
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Morning With MongoDB
Morning With MongoDBMorning With MongoDB
Morning With MongoDB
 
Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]
 
Morning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast ConnectMorning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast Connect
 
Big Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptxBig Data Visualization PowerPoint Templates.pptx
Big Data Visualization PowerPoint Templates.pptx
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX Hadoop
 
Architecture de la bibliothèque numérique : Modélisation et migrations de don...
Architecture de la bibliothèque numérique : Modélisation et migrations de don...Architecture de la bibliothèque numérique : Modélisation et migrations de don...
Architecture de la bibliothèque numérique : Modélisation et migrations de don...
 
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDBSGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
SGBDR vs NoSQL, Différences et Uses Cases. Focus sur ArangoDB
 
Croisière sur le data lake
Croisière sur le data lakeCroisière sur le data lake
Croisière sur le data lake
 

Bases de Données non relationnelles, NoSQL (Introduction) 1er cours

  • 1. HMIN313 : 1er Cours Les bases de donn´ees NoSQL BD orient´ees graphes Hatim CHAHDI UMR Espace-DEV Universit´e de Montpellier 14 Septembre 2016 Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 1 / 42
  • 2. Objectifs du cours Comprendre la probl´ematique de stockage de donn´ees Prendre conscience des alternatives No-SQL existantes par rapport aux syst`emes traditionnels ´Etude approfondie des bases de donn´ees orient´ees graphe Pr´esentation de Neo4J comme exemple d’une BD orient´ee graphe Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 2 / 42
  • 3. Base de donn´ees relationnelles ! Pourquoi pas ? ”I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail.” Abraham Maslow : The Psychology of Science 1966 Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 3 / 42
  • 4. Base de donn´ees relationnelles ! Pourquoi pas ? ”I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail.” Abraham Maslow : The Psychology of Science 1966 Pourquoi utiliser d’autres types de bases de donn´ees ? Si le seul outil que j’ai en ma possession est un SGBD relationnel. Alors tout m’apparaˆıtra comme une table Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 3 / 42
  • 5. Motivations Mission principale d’un SGBD Un SGBD cherche `a fournir un syst`eme de stockage et un acc`es pratique, fiable, efficace et sˆur `a des quantit´es importantes de donn´ees persistantes. ´Evolution du Web : Plusieurs sources de donn´ees disponibles Acquisition facilit´ee des donn´ees : Navigation, pr´ef´erences des utilisateurs... ... Complexit´e des donn´ees : Gros volumes de donn´ees interconnect´ees Des besoins de flexibilit´e avec des sch´emas qui ´evoluent, des priorit´es sur l’acc`es, des donn´ees manquantes Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 4 / 42
  • 6. Motivations Les performances des SGBD restaient tr`es insatisfaisantes... Scalabilit´e Consistance des donn´ees Complexit´e des sch´emas . . . Constat : Les SGBD relationnels ne sont pas toujours la meilleure solution de gestion et/ou traitement des donn´ees Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 5 / 42
  • 7. Le monde No-SQL : Des alternatives ! Des besoins diff´erents. Des structures de stockage diff´erentes R´esultat Apparition des Syst`emes dits No-SQL. Les diff´erents types des SGBD No-SQL: Cl´e/Valeur Colonne Document Graphe . . . No-SQL = Not Only SQL Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 6 / 42
  • 8. Base de donn´ees orient´ee Cl´e/Valeur Principes: Repr´esentation des donn´ees sous forme de cl´e/valeur . Les valeurs peuvent ˆetre de simple chaˆınes de caract`eres ou des objets s´erialis´es complexes. Utilisation: d´epˆot de donn´ees avec besoins de requˆetage simples (pr´ef´erences d’utilisateur, donn´ees de panier, les logs . . . ) Figure : mod`ele cl´e/valeur Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 7 / 42
  • 9. Base de donn´ees orient´ee Cl´e/Valeur Principes: Repr´esentation des donn´ees sous forme de cl´e/valeur . Les valeurs peuvent ˆetre de simple chaˆınes de caract`eres ou des objets s´erialis´es complexes. Utilisation: d´epˆot de donn´ees avec besoins de requˆetage simples (pr´ef´erences d’utilisateur, donn´ees de panier, les logs . . . ) Figure : mod`ele cl´e/valeur Exploitation bas´ee sur 4 op´erations (CRUD): Acc`es par la cl´e Create: Cr´eation d’un objet. Read: Lecture d’un objet. Update: Mise `a jour d’un objet. Delete: Suppression un objet. Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 7 / 42
  • 10. Base de donn´ees orient´ee colonnes Principes: Proche du relationnel. Mais le stockage des donn´es se fait par colonne et non par ligne. Ajout de colonnes facile et dynamique Possibilit´e de compression des donn´ees Utilisation: Optimisation de la recherche, traitement et analyse de donn´ees structur´ees (BI) . . . Figure : mod`ele colonne Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 8 / 42
  • 11. Base de donn´ees orient´ee colonnes Principes: Proche du relationnel. Mais le stockage des donn´es se fait par colonne et non par ligne. Ajout de colonnes facile et dynamique Possibilit´e de compression des donn´ees Utilisation: Optimisation de la recherche, traitement et analyse de donn´ees structur´ees (BI) . . . Figure : mod`ele colonne Impl´ementation `a ´etudier dans la suite de l’UE Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 8 / 42
  • 12. Base de donn´ees orient´ee document Principes: C’est une variante des SGBD cl´e/valeur, o`u la valeur est un document de type XML ou JSON. Les documents ont une structure arborescente, ils sont compos´es de champs et des valeurs associ´ees Ce type de SGBD permet d’effectuer des requˆetes sur le contenu des documents. Utilisation: Enregistrements d’´ev´enements, gestion de contenu . . . Figure : mod`ele document Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 9 / 42
  • 13. Base de donn´ees orient´ee document Principes: C’est une variante des SGBD cl´e/valeur, o`u la valeur est un document de type XML ou JSON. Les documents ont une structure arborescente, ils sont compos´es de champs et des valeurs associ´ees Ce type de SGBD permet d’effectuer des requˆetes sur le contenu des documents. Utilisation: Enregistrements d’´ev´enements, gestion de contenu . . . Figure : mod`ele document Impl´ementations connues CouchDB fondation apache MangoDB Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 9 / 42
  • 14. Base de donn´ees orient´ee graphe Principes Les donn´ees sont repr´esent´ees sous-forme de graphe : Des noeuds pour les entit´es, des arcs pour les relations entre les entit´es Ce type de SGBD est adapt´e `a la manipulation de donn´ees fortement connect´ees Utilisation: Syst`emes de recommandations, R´eseaux sociaux, Syst`emes de transport . . . Figure : mod`ele graphe Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 10 / 42
  • 15. Base de donn´ees orient´ee graphe Principes Les donn´ees sont repr´esent´ees sous-forme de graphe : Des noeuds pour les entit´es, des arcs pour les relations entre les entit´es Ce type de SGBD est adapt´e `a la manipulation de donn´ees fortement connect´ees Utilisation: Syst`emes de recommandations, R´eseaux sociaux, Syst`emes de transport . . . Figure : mod`ele graphe Impl´ementations connues Neo4J AllegroGraph . . . Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 10 / 42
  • 16. Passage oblig´e au NoSQL ? Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 11 / 42
  • 17. R´ecapitulatif : Passage oblig´e au NoSQL ? Alternatives adapt´ees `a des cas particuliers ´Evolution fr´equente des sch´emas Flexibilit´e dans la gestion des donn´ees manquantes (ou non conformes) Flux important : Passage `a l’´echelle . . . Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 12 / 42
  • 18. Des syst`emes compl´ementaires Utilisation conjointe pour une meilleure gestion des donn´ees Figure : Persistance dite polyglotte Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 13 / 42
  • 19. Des syst`emes compl´ementaires Utilisation conjointe pour une meilleure gestion des donn´ees Figure : Persistance dite polyglotte One Size doesn’t fit all Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 13 / 42
  • 20. Caract´eristiques des syst`emes NoSQL : CAP Consistency, Availability, Partition tolerance Consistency ou coh´erence des donn´ees : toute modification de donn´ee est suivie d’effet pour tous les noeuds du syst`eme Availability ou disponibilit´e des donn´ees : toute requˆete ´emise et trait´ee par un noeud du syst`eme, re¸coit une r´eponse (mˆeme en situation d’´echec `a produire une r´eponse) Partition tolerance ou recouvrement des noeuds assurer une continuit´e du fonctionnement en cas d’ajout/suppression de noeud (ou partition) du syst`eme distribu´e Constat de Brewer : aucun des syst`emes distribu´es n’est `a mˆeme de satisfaire en mˆeme temps les principes C, A et P Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 14 / 42
  • 21. Th´eor`eme CAP : un choix `a faire ! Un syst`eme distribu´e va satisfaire deux des trois points CAP Consid´erations SGBDR / Syst`emes NoSQL SGBDR : Coh´erence et haute disponibilit´e (pas ou peu de P : de diff´erents noeuds syst`eme) Syst`emes NoSQL : Choix du P (syst`eme naturellement distribu´e) et s´election soit du C, soit du A abandon du A ⇐ Accepte d’attendre que les donn´ees soient coh´erentes abandon du C ⇐ Accepte de recevoir des donn´ees parfois incoh´erentes Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 15 / 42
  • 22. Positionnement des syst`emes / CAP Figure : Synth`ese CAP Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 16 / 42
  • 23. Les Bases de Donn´ees orient´ees Graphes Figure : Graphe du trafic a´erien mondial Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 17 / 42
  • 24. Base de Donn´ees orient´ee Graphes Histoire des graphes Th´eorie des graphes Les graphes en base de donn´ees Neo4J: un SGBD orient´e graphe open source* Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 18 / 42
  • 25. Des probl`emes remontant `a 840 . . . Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 19 / 42
  • 26. Des probl`emes remontant `a 840 . . . Le probl`eme du cavalier Pos´e par le joueur et th´eoricien d’´echecs al-Adli ar-Rumi : Comment un cavalier peut-il visiter toute les cases sans passer deux fois par la mˆeme ? Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 19 / 42
  • 27. Des probl`emes remontant `a 840 . . . Le probl`eme du cavalier Pos´e par le joueur et th´eoricien d’´echecs al-Adli ar-Rumi : Comment un cavalier peut-il visiter toute les cases sans passer deux fois par la mˆeme ? Figure : La solution de Ar-Rumi Une solution parmi les milliards de solution possibles Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 19 / 42
  • 28. Les sept ponts de K¨onigsberg Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 20 / 42
  • 29. Les sept ponts de K¨onigsberg Figure : Mod´elisation simple Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 20 / 42
  • 30. Les sept ponts de K¨onigsberg Figure : Mod´elisation simple Solution d´emontr´ee par Euler Pas de promenade possible Naissance de la th´eorie des graphes : 1736 Figure : Mod´elisation sous forme de graphe Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 20 / 42
  • 31. Des probl´ematiques plus r´ecentes... Gestion de code R´eseaux sociaux Transport et logistique Collaborations Chimie et biologie spatial Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 21 / 42
  • 32. Des probl´ematiques plus r´ecentes... Gestion de code R´eseaux sociaux Transport et logistique Collaborations Chimie et biologie spatial Pourquoi et quand utiliser les graphes ? Mod´elisation efficace des donn´ees connect´ees Donner de l’importance aux relations entre diff´erentes entit´es . . . Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 21 / 42
  • 33. Des probl´ematiques plus r´ecentes... Gestion de code R´eseaux sociaux Transport et logistique Collaborations Chimie et biologie spatial Pourquoi et quand utiliser les graphes ? Mod´elisation efficace des donn´ees connect´ees Donner de l’importance aux relations entre diff´erentes entit´es . . . Quand les SGBD relationnels et les autres SGBD No-SQL n´egligent les relations, toute la puissance des SGBD graphes est dans leur prise en compte et repr´esentation explicite des relations Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 21 / 42
  • 34. La th´eorie des graphes : Notions de base D´efinitions Un graphe permet de repr´esenter simplement la structure, les connexions et les cheminements possibles d’un ensemble complexe comprenant un grand nombre de situations, en exprimant les relations, les d´ependances entre ses ´el´ements G = ( V , E , L ) o`u L : E -> V x V avec : V: Ensemble des sommets. E: Ensemble des arˆetes. L: fonction associant `a chaque arˆete une paire de sommets. Les diff´erents types de graphes: orient´e, non orient´e, multigraphe, r´eflexif . . . Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 22 / 42
  • 35. La th´eorie des graphes : Notions de base Op´erations Adjacent(G,x,y): Tester s’il existe une arˆete de x `a y. Voisinage(G,x): Retourner, s’ils existent, les sommets li´es par une arˆete avec le sommet x. Ajout(G,x,y,l): Ajouter `a un graphe G une arˆete ,´etiquet´ee l, entre les sommets x et y. Atteindre(G,x,y): Tester s’il existe un chemin entre les sommets x et y. Chemin(G,x,y): Retourne le plus court chemin entre les sommets x et y. Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 23 / 42
  • 36. Les BD graphes Mod`ele de representation des donn´ees s’appuyant sur les algorithmes d´evelopp´es en th´eorie des graphes pour offrir des impl´ementations simples et efficaces. Mod´elisation, stockage et manipulation de donn´ees complexes li´ees par des relations. Le Graphe est l’entit´e qui va enregistrer les donn´ees dans des Noeuds qui poss`edent des propri´et´es. Ces Noeuds peuvent ˆetre reli´es entre eux avec des arcs (relations). Figure : Graphe avec 3 noeuds et 2 relations Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 24 / 42
  • 37. Les impl´ementations des graphes Liste d’adjacence Pour chaque noeud, on repr´esente la liste des voisins. Efficace pour obtenir les voisins d’un noeud. N’est pas optimale pour tester l’existence de chemin entre deux noeuds. Liste d’incidence Les arcs et les noeuds sont stock´es comme des objets dans la base. chaque noeud enregistre les arcs incidents. chaque arc enregistre les noeuds incidents. Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 25 / 42
  • 38. Les impl´ementations des graphes Matrice d’adjacence repr´esentation du graphe en deux dimensions. Les lignes repr´esentent les noeuds sources. Les colonnes repr´esentent les noeuds de destination. Les valeurs repr´esentent les arcs. Matrice d’incidence repr´esentation du graphe en deux dimensions. Les lignes repr´esentent les noeuds. Les colonnes repr´esentent les colonnes. La valeur pr´ecise si le noeud est la source ou la destination des arcs. Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 26 / 42
  • 39. Les SGBD orient´es graphe disponibles Deux courants d’impl´ementations : Pour des besoins diff´erents Stockage optimis´e : des SGBD offrant des performances accrues pour le stockage de graphe. Analyse optimis´ee : des SGBD performant pour l’analyse et le calcul de graphes. Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 27 / 42
  • 40. Neo4J Qu’est ce que c’est Neo4J ? Un SGBD orient´e graphe ´ecrit en Java. Transactionnel : ACID (Atomicit´e, Consistance, Isolation, Durabilit´e). Scalabilit´e : Jusqu’`a un degr´e Disponible en version embarqu´ee et serveur. Dispose d’une API REST. Peut-il servir comme un endpoint SPARQL ? Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 28 / 42
  • 41. Neo4J : Couches logiques Figure : Couches logiques de Neo4J Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 29 / 42
  • 42. Neo4J : Architecture Figure : Architecture technique de Neo4J Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 30 / 42
  • 43. Neo4J : deux modes :Embarqu´e et Serveur Mode embarqu´e: Ex´ecution de Neo4J dans le mˆeme processus de l’application. Acc`es direct aux diff´erentes API du SGBD : Core API, traversal framework et cypher le langage de requˆetage. Contrˆole total sur le cycle des transactions. Remarques: Faire attention au GC de la JVM. L’application doit g´erer les cycles de la base de donn´ees. Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 31 / 42
  • 44. Neo4J : API Java avec deux modes : Embarqu´e et Serveur Mode serveur: Au coeur de chaque serveur, une instance embarqu´ee de Neo4J. Communication avec le SGBD au travers de l’API REST : envoi de requˆetes format´ees en JSON avec le protocole HTTP. B´enificie des avantages de l’architecture Client/Serveur. Remarques: Faire attention aux communications sur le r´eseau. Chaque requˆete est execut´ee dans une transaction s´epar´ee. Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 32 / 42
  • 45. Neo4J : Schema-less Figure : Exemple (Documentation Neo4J) Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 33 / 42
  • 46. Neo4J : Mod`ele de donn´ees mod`ele : graphe marqu´e, orient´e , attribu´e et multi-valu´e Figure : Un autre exemple (Documentation Neo4J) Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 34 / 42
  • 47. Jeux de donn´ees plus larges : OpenStreetMap ou MusicBrainz Gestion pouvant aller jusqu’`a plusieurs milliards de nœuds Figure : Un exemple plus complet : cartographie en Norv`ege avec OSM Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 35 / 42
  • 48. Cypher : expressions pour poser des filtres sur le graphe Figure : Exemple de requˆete (Documentation Neo4J) Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 36 / 42
  • 49. Exemple Cypher Clauses dans une grammaire d´eclarative `a rapprocher de SQL : START, MATCH, WHERE, RETURN Listing 1: Read-Only Query Structure (doc. Neo4J) START me = node : people (name = ’ Pierre ’ ) MATCH me −[:FRIEND]−> f r i e n d WHERE f r i e n d . age > 28 RETURN f r i e n d . name ORDER BY f r i e n d . age ASC SKIP 5 LIMIT 10 Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 37 / 42
  • 50. Autre exemple Cypher Listing 2: Compter sur le type des relations MATCH () −[ r ]−>() RETURN TYPE( r ) AS r e l t y p e , count (∗) AS r e l c a r d i n a l i t MATCH ( : Person ) −[: l i k e s ]−>( r : Restaurant ) WITH r , count (∗) as t r WHERE t r > 2 RETURN r . name as RESTAURANT, t r as TOTAL Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 38 / 42
  • 51. Une force : les appels r´ecursifs Listing 3: parcourir le graphe (A)−>()−>()−>()−>(B) (A)−[∗]−>(B) MATCH ( John {name : ’ John ’ }) −[: f r i e n d ]−> () −[: f r i e n d ]−> ( f o f )} RETURN John , f o f Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 39 / 42
  • 52. Retrouver le sch´ema Listing 4: Infos sur le sch´ema match n r e t u r n d i s t i n c t l a b e l s (n ) match n−[ r ] −() r e t u r n d i s t i n c t type ( r ) match n−[ r ] −() r e t u r n d i s t i n c t l a b e l s (n ) , type ( r ) Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 40 / 42
  • 53. Exemple Cypher Autres op´erations CRUD Listing 5: Tout supprimer dans la base (doc. Neo4J) MATCH ( n) OPTIONAL MATCH (n)−[ r ] −() DELETE n , r Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 41 / 42
  • 54. Conclusion Bienvenue dans le cot´e obscure de la force : NoSQL! Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 42 / 42
  • 55. Conclusion Bienvenue dans le cot´e obscure de la force : NoSQL! Salle TD : 5.08 Hatim CHAHDI (Espace Dev - UM) Intro NoSQL, BD Graphes 14 Septembre 2016 42 / 42