Vous êtes sur la page 1sur 17

Bases

 de  données  NoSQL  


Jean-­‐François  Im  
SQL  
•  Tables  et  colonnes  fixes  
•  Basé  sur  l’algèbre  relaAonnelle  
•  Cependant,  certains  types  de  problèmes  
s’expriment  mal  
Un  exemple  de  problème  
•  Les  six  degrés  de  séparaAon  est  une  théorie  
établie  par  le  hongrois  Frigyes  Karinthy  en  
1929  qui  évoque  la  possibilité  que  toute  
personne  sur  le  globe  peut  être  reliée  à  
n'importe  quelle  autre,  au  travers  d'une  
chaîne  de  relaAons  individuelles  comprenant  
au  plus  cinq  autres  maillons.  

Source: http://fr.wikipedia.org/wiki/Six_degrés_de_séparation
En  SQL?  
•  1  degré  de  profondeur:  
SELECT  Connections.to  
   FROM  Connections  
   WHERE  Connections.from  =  1  
En  SQL?  
•  2  degrés  de  profondeur:  
SELECT  DISTINCT  Connections.to    
   FROM  Connections  
   WHERE  Connections.from  =  1  
       OR  Connections.from  IN  (  
           SELECT  DISTINCT  Connections.to  
               FROM  Connections  
               WHERE  Connections.from  =  1  )  
•  Et  trois  degrés  de  profondeur?  Quatre?  Mille?  
Pourtant…  

Source: LinkedIn
Un  autre  exemple…  

Source: Google
NoSQL  
•  N’uAlisent  pas  SQL  comme  langage  de  requête  
•  Habituellement  des  modèles  de  données  
différents  
Types  de  bases  de  données  
•  Document  store  
•  Key-­‐value  store  
•  Graph  database  
Document  stores  
•  Basé  sur  le  concept  d’un  «  document  »  
–  Ensemble  d’a`ributs  non  fixes  pour  décrire  une  
enAté  
•  Exemples:  CouchDB,  MongoDB,  Redis  
DÉMONSTRATION  
Key-­‐value  store  
•  Similaire  à  un  «  HashMap  »  en  Java  
–  Sert  à  obtenir  des  enAtés  à  l’aide  d’une  clef  
•  Exemples:  HBase,  Cassandra,  Dynamo,  Riak,  
Redis,  MongoDB,  Tokyo  Cabinet  
Exemple:  Cassandra  
•  MySQL  (>  50GB  data)  
–  Écriture:  300ms  
–  Lecture:  350ms  
•  Cassandra  (>  50GB  data)  
–  Écriture:  0.12ms  
–  Lecture:  15ms  

Source: http://www.slideshare.net/Eweaver/cassandra-presentation-
at-nosql
Exemple:  Cassandra  
 
•  Limites  
–  Une  ligne  doit  tenir  sur  un  seul  noeud  (sur  le  
disque)  
–  Maximum  de  colonnes  pour  une  ligne:  2  milliards  
Graph  database  
•  Basé  sur  les  graphes  en  mathémaAques  
–  Sert  à  parcourir  des  relaAons  entre  des  enAtés  
•  Exemples:  neo4j,  OrientDB  
Source: https://github.com/tinkerpop/gremlin/wiki/Basic-Graph-Traversals
Un  exemple  
•  La  requête  du  début:  
TRAVERSE  Connections  FROM  #6:0  
WHERE  $depth  <=  2  

Vous aimerez peut-être aussi