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

Bases de données NoSQL

Embed Size (px)

DESCRIPTION

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

Citation preview

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'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.

SCALABILITÉ

• En lecture

• En écriture

SCALABILITÉ

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

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

Rappel : Atomicité, Consistence, Isolation, Durabilité

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 garantis à la fois

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

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 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

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)

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 orientées documents (Ex : MongoDB, CouchDB)

• BDD orientée colonnes (Ex : Cassandra, HBase)

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

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

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, XML, etc.)

• Les documents sont enregistrés dans des collections (équivalentes aux tables SQL)

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"

}

}

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 ?

DEMO TIME !

MERCI ! !

QUESTIONS ?