Académique Documents
Professionnel Documents
Culture Documents
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