BASES DE DONNÉES NOSQL

Samy Dindane	

30/10/2013
SOMMAIRE
•

Pourquoi ? 	


•

Comment ? 	


•

Types de BDD NoSQL	


•

Démo
NoSQL	


Not Only SQL	

!

Utilisation de bases données autres que SQL
LES SGBDR
•

Forte consistence	


•

Transactionnels	


•

Très matures	


•

Adoption facile
MAIS…
!

Avec l’avènement du big data, elles ne sont pas
scalables
Big data : Ensembles de données tellement volumineux qu...
SCALABILITÉ

•

En lecture	


•

En écriture

SCALABILITÉ
•

En lecture : Généralement pas de problème	


•

En écriture : Faible, principalement à cause des
contrainte...
SCALABILITÉ : COMMENT ?
•

On optimise (tuning)

•

On ajoute des ressources

•

On ajoute des serveurs
THE CAP THEOREM
•

Consistency	


•

Availability	


•

Partition Tolerance

Seul deux de ces trois points
peuvent être ga...
PROBLÈMES DE L’ATOMICITÉ

•

Une opération atomique ne permet pas des accès
entrelacés	

•

La BDD est verrouillée pendant...
SE PASSER DE L’ATOMICITÉ

Réduit la durée de verrouillage ou supprime le
verrouillage de la BDD
PROBLÈMES DE LA CONSISTENCE
•

Toutes les transactions doivent être totalement
commitées ou totalement annulées	


•

Tous...
SE PASSER DE LA CONSISTENCE
•

Plus besoin d’avoir exactement les mêmes données sur
toutes les instances	

•

•

Mais on s...
PROBLÈMES DE LA DURABILITÉ

Avant de répondre au client, on doit être sûr que les
données ont été écrites sur le disque
SE PASSER DE LA DURABILITÉ

Ne pas écrire sur le disque directement, ou ne pas
attendre la confirmation de l’écriture
FAMILLES DE BDD NOSQL
•

BDD clé-valeur (Ex : Redis, Riak)	


•

BDD orientées graphes (Ex : Neo4J, OrientDB)	


•

BDD or...
…

BDD ORIENTÉES CLÉ-VALEUR

•

Les BBD NoSQL les plus simples	


•

Chaque élément est une paire (clé, valeur)	


•

Cert...
…

BDD ORIENTÉES GRAPHES
•

Les données sont représentées par des graphes 	


Un élément : un nœud	

• Les relations : des...
…

BDD ORIENTÉES GRAPHES
…

BDD ORIENTÉES DOCUMENTS
•

Les données sont stockées dans des documents
représentés dans des formats standards (JSON, X...
…

BDD ORIENTÉES DOCUMENTS
{	

"_id": {	


{	


"$oid": "52542F284206C5860EC02465"	


"_id": {	


},	


"$oid": "5253DE0E4...
SQL VS NOSQL

Le choix dépendra des réponses à ces questions :	

• Comment veut-on structurer nos données ?	

• Combien de...
DEMO TIME !
MERCI !	

!

QUESTIONS ?
Prochain SlideShare
Chargement dans…5
×

Bases de données NoSQL

2 948 vues

Publié le

Une présentation que j'ai donné à mes camarades en M1 Informatique à l'Université Paris-Est Marne-la-Vallée.

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 948
Sur SlideShare
0
Issues des intégrations
0
Intégrations
26
Actions
Partages
0
Téléchargements
143
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Bases de données NoSQL

  1. 1. BASES DE DONNÉES NOSQL Samy Dindane 30/10/2013
  2. 2. SOMMAIRE • Pourquoi ? • Comment ? • Types de BDD NoSQL • Démo
  3. 3. NoSQL Not Only SQL ! Utilisation de bases données autres que SQL
  4. 4. LES SGBDR • Forte consistence • Transactionnels • Très matures • Adoption facile
  5. 5. MAIS… ! Avec l’avènement du big data, elles ne sont pas scalables Big data : Ensembles de données tellement volumineux qu'il est difficile de les manipuler avec des outils classiques de gestion de base de données. Scalabilité  : Capacité d’un système à maintenir ses fonctionnalités et ses performances en cas de forte demande.
  6. 6. SCALABILITÉ • En lecture • En écriture

  7. 7. SCALABILITÉ • En lecture : Généralement pas de problème • En écriture : Faible, principalement à cause des contraintes ACID Rappel : Atomicité, Consistence, Isolation, Durabilité
  8. 8. SCALABILITÉ : COMMENT ? • On optimise (tuning) • On ajoute des ressources • On ajoute des serveurs
  9. 9. THE CAP THEOREM • Consistency • Availability • Partition Tolerance Seul deux de ces trois points peuvent être garantis à la fois
  10. 10. PROBLÈMES DE L’ATOMICITÉ • Une opération atomique ne permet pas des accès entrelacés • La BDD est verrouillée pendant l’écriture
  11. 11. SE PASSER DE L’ATOMICITÉ Réduit la durée de verrouillage ou supprime le verrouillage de la BDD
  12. 12. PROBLÈMES DE LA CONSISTENCE • Toutes les transactions doivent être totalement commitées ou totalement annulées • Tous les nœuds d’un cluster doivent avoir les mêmes 
 données : en modifiant une données on doit la màj sur tous les autres nœuds • Respect des schémas
  13. 13. SE PASSER DE LA CONSISTENCE • Plus besoin d’avoir exactement les mêmes données sur toutes les instances • • Mais on synchronise quand on le peut Plus de contraintes sur les champs (schemaless)
  14. 14. PROBLÈMES DE LA DURABILITÉ Avant de répondre au client, on doit être sûr que les données ont été écrites sur le disque
  15. 15. SE PASSER DE LA DURABILITÉ Ne pas écrire sur le disque directement, ou ne pas attendre la confirmation de l’écriture
  16. 16. FAMILLES DE BDD NOSQL • BDD clé-valeur (Ex : Redis, Riak) • BDD orientées graphes (Ex : Neo4J, OrientDB) • BDD orientées documents (Ex : MongoDB, CouchDB) • BDD orientée colonnes (Ex : Cassandra, HBase)
  17. 17. … BDD ORIENTÉES CLÉ-VALEUR • Les BBD NoSQL les plus simples • Chaque élément est une paire (clé, valeur) • Certains systèmes supportent des valeurs typées
  18. 18. … BDD ORIENTÉES GRAPHES • Les données sont représentées par des graphes Un élément : un nœud • Les relations : des arêtes orientées • Les deux peuvent avoir des attributs •
  19. 19. … BDD ORIENTÉES GRAPHES
  20. 20. … BDD ORIENTÉES DOCUMENTS • Les données sont stockées dans des documents représentés dans des formats standards (JSON, XML, etc.) • Les documents sont enregistrés dans des collections (équivalentes aux tables SQL)
  21. 21. … BDD ORIENTÉES DOCUMENTS { "_id": { { "$oid": "52542F284206C5860EC02465" "_id": { }, "$oid": "5253DE0E4206C5860EC02435" "emails": ["sdi@zenexity.com", "samy@dindane.com"], }, "profile": { "profile": { "username": "Dinduks", "username": "Chuck", "firstname": "Samy", "birthDate": { "birthDate": { "$date": 453420000000.000000 "$date": 453420000000.000000 }, }, "city": "Paris" "gender": "m", } } } }
  22. 22. SQL VS NOSQL Le choix dépendra des réponses à ces questions : • Comment veut-on structurer nos données ? • Combien de données à manipuler ? • Ratio lectures/écritures ?
  23. 23. DEMO TIME !
  24. 24. MERCI ! ! QUESTIONS ?

×