Top Banner
BASES DE DONNÉES NOSQL Samy Dindane 30/10/2013
24

Bases de données NoSQL

Dec 05, 2014

Download

Documents

Samy Dindane

Une présentation que j'ai donné à mes camarades en M1 Informatique à l'Université Paris-Est Marne-la-Vallée.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bases de données NoSQL

BASES DE DONNÉES NOSQL

Samy Dindane 30/10/2013

Page 2: Bases de données NoSQL

SOMMAIRE

• Pourquoi ?

• Comment ?

• Types de BDD NoSQL

• Démo

Page 3: Bases de données NoSQL

NoSQL Not Only SQL

!

Utilisation de bases données autres que SQL

Page 4: Bases de données NoSQL

LES SGBDR

• Forte consistence

• Transactionnels

• Très matures

• Adoption facile

Page 5: Bases de données NoSQL

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.

Page 6: Bases de données NoSQL

SCALABILITÉ

• En lecture

• En écriture

Page 7: Bases de données NoSQL

SCALABILITÉ

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

• En écriture : Faible, principalement à cause des contraintes ACID

Rappel : Atomicité, Consistence, Isolation, Durabilité

Page 8: Bases de données NoSQL

SCALABILITÉ : COMMENT ?

• On optimise (tuning)

• On ajoute des ressources

• On ajoute des serveurs

Page 9: Bases de données NoSQL

THE CAP THEOREM

• Consistency

• Availability

• Partition Tolerance

Seul deux de ces trois points peuvent être garantis à la fois

Page 10: Bases de données NoSQL

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

Page 11: Bases de données NoSQL

SE PASSER DE L’ATOMICITÉ

Réduit la durée de verrouillage ou supprime le verrouillage de la BDD

Page 12: Bases de données NoSQL

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

Page 13: Bases de données NoSQL

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)

Page 14: Bases de données NoSQL

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

Page 15: Bases de données NoSQL

SE PASSER DE LA DURABILITÉ

Ne pas écrire sur le disque directement, ou ne pas attendre la confirmation de l’écriture

Page 16: Bases de données NoSQL

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)

Page 17: Bases de données NoSQL

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

Page 18: Bases de données NoSQL

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

Page 19: Bases de données NoSQL

BDD ORIENTÉES GRAPHES

Page 20: Bases de données NoSQL

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)

Page 21: Bases de données NoSQL

BDD ORIENTÉES DOCUMENTS

{

"_id": {

"$oid": "52542F284206C5860EC02465"

},

"emails": ["[email protected]", "[email protected]"],

"profile": {

"username": "Dinduks",

"firstname": "Samy",

"birthDate": {

"$date": 453420000000.000000

},

"gender": "m",

}

}

{

"_id": {

"$oid": "5253DE0E4206C5860EC02435"

},

"profile": {

"username": "Chuck",

"birthDate": {

"$date": 453420000000.000000

},

"city": "Paris"

}

}

Page 22: Bases de données NoSQL

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 ?

Page 23: Bases de données NoSQL

DEMO TIME !

Page 24: Bases de données NoSQL

MERCI ! !

QUESTIONS ?