Académique Documents
Professionnel Documents
Culture Documents
Module 1 - SQL Vers NoSQL
Module 1 - SQL Vers NoSQL
2
Forces des SGBDR
Indépendance entre :
Modèle de données et structures de stockage
Requêtes déclaratives et exécution
4
Propriétés ACID
5
Limites des BDR
Incapable de gérer de très grands volumes de données
(de l’ordre du péta-octets)
6
Limites des BDR
Les propriétés ACID entraînent de sérieux surcoûts en
latence, accès disques, temps CPU (verrous,
journalisation, etc.)
7
Bases de données NOSQL
Not Only SQL
8
Bases de données NOSQL
Types des bases de données NOSQL :
Clef/valeur
Orientées colonnes
Orientées documents
Orientées graphes
9
Bases de données NOSQL
Modèle Clef-Valeur
L’un des types les plus simples, sorte de Hashmap
distribuée.
10
Bases de données NOSQL
Communications se résumant surtout aux
opérations PUT, GET et DELETE
Nom_$#_Stella~~Humeur_$#_Heureuse
Chien_12 ~~Date_naissance_$#_2007-04-01…
12
Bases de données NOSQL
BD orientées documents
Étendent le paradigme clef/valeur, avec des «
documents » plus complexes à la place des données
simples, et une clef unique pour chacun d’eux.
Documents de type JSON, XML…
Chaque document est un objet, contient un ou
plusieurs champs, et chaque champ contient une valeur
typée (string, date, binary ou array)
13
Bases de données NOSQL
Permettent de stocker, extraire et gérer les informations
orientées documents (données semi-structurées)
14
Bases de données NOSQL
Id Nom Humeur Date_naissanc Couleur
e
12 Stella Heureuse 2007-04-01 NULL
13 Wimma Faim NULL Noire
9 Ninja NULL NULL NULL
Document(V2)
{
type : « Chien »,
nom : « Stella »,
Document(V1) humeur : « Heureuse »,
date_naissance : 2007-04-01
{ aboiement : [
{ texte : « j’ai mangé
Clef type : « Chien », de la pâtée »
nom : « Stella », commentaires : [
Chien_12 humeur : « Heureuse », { id_chien : «
chien_4 »,
date_naissance : 2007-04-01 }
texte : « on
]
} } s’en fout! »
}
]
15
Bases de données NOSQL
BD orientées colonnes
Évolution des BD clef/valeur
16
Bases de données NOSQL
Exemples : Hbase (Hadoop), Cassandra (Facebook,
Twitter), BigTable (Google)
ID Nom Prénom Prime
1 Doe John 8000
2 Smith Jane 4000
3 Beck Sam 1000
Dans une BD orientée Colonnes les données sont stockées comme suit :
1,2,3;Doe,Smith,Beck;John,Jane,Sam;8000,4000,1000;
17
Bases de données NOSQL
BD orientées Graphes
Basées sur les théories des graphes
S’appuient sur les notions de nœuds, de relations et des
propriétés qui leur sont rattachées
Conçues pour les données dont les relations sont représentées
comme graphes, et ayant des éléments interconnectés, avec un
nombre indéterminé de relations entre elles.
Adapté aux traitements des données des réseaux sociaux
Exemples : Neo4J et InfiniteGraph, OrientDB
18
Bases de données NOSQL
Id Nom Humeur Date_naissance Couleur
Chien_4
commente
Chien Commentaire
_ 83
19
NOSQL vs BDR
Le choix de NOSQL plutôt que les bases de données
relationnelles est conduit par les contraintes du marché et les
besoins techniques suivants :
Big Data
Adaptation des BD NOSQL aux Big Data
o Vitesse (Velocity) : beaucoup de données qui arrivent
rapidement, à partir de plusieurs sources
o Variété (Variety) : données structurées, semi-structurées
ou non-structurées
o Volume (Volume) : données massives (To et Po)
20
NOSQL vs BDR
Modèles de données flexibles
o Une des raisons majeures
o Dans le modèle relationnel :
Les relations entre les tables sont prédéfinies, fixes et organisées dans
un schéma strict et uniforme
Problèmes d’évolutivité et de performance en gérant de grands
volumes de données.
o Les BD NOSQL peuvent accepter tout type de données
(structurées, semi-structurées ou non-structurées) plus
facilement.
o Dans les BDR, les performances posent problème, surtout
quand des lignes « larges » sont utilisées et les actions de
modification sont nombreuses.
21
NOSQL vs BDR
Disponibilité continue des données
◦ Le manque de disponibilité peut être fatal pour une
entreprise.
22
NOSQL vs BDR
Indépendance de l’emplacement
o Possibilité
de consulter et modifier une BD sans savoir où
est-ce que ces opérations ont réellement lieu.
23
NOSQL vs BDR
Capacité des bases NOSQL à exploiter les données
collectées pour dériver des idées
o Extraction d’informations décisionnelles à partir d’un
grand volume de données : difficile à obtenir avec des
bases relationnelles.
24
NOSQL vs BDR
Capacités transactionnelles modernes
o Nouvelles définitions du principe de transaction
25
NOSQL vs BDR
Toutes les BDR supportent les transactions ACID.
Mais :
26
NOSQL vs BDR
Théorème CAP :
Dans les systèmes distribués, il est impossible de
satisfaire les trois propriétés CAP en même temps.
27
NOSQL vs BDR
Pourquoi est-il impossible de satisfaire les 3 propriétés CAP en
même temps?
Soit un système distribué. On est entrain de modifier une donnée sur
le nœud N1 et d’essayer de la lire à partir du nœud N2 :
N2 peut retourner la dernière bonne valeur dont il dispose, ce qui
viole la Consistance.
N2 attend que la nouvelle valeur lui parvienne. Comme c’est un
système distribué, les risques d’un échec de transmission sont assez
importantes, ce qui provoquera une attente infinie de N2. D’où une
violation de la Disponibilité.
Si on veut satisfaire à la fois la consistance et la disponibilité, le
système de stockage ne doit pas être partitionné. D’où violation de la
Tolérance au partitionnement.
28
NOSQL vs BDR
BASE
Basically Available
Le système garantit la disponibilité, comme définie dans le
théorème CAP
Soft-State
L’état du système peut changer dans le temps, même sans
nouvelles entrées, et ce à cause du principe de consistance
éventuelle.
Eventual Consistency
Les modifications arriveront éventuellement à tous les
serveurs, si on leur donne suffisamment de temps.
29
NOSQL vs BDR - Synthèse
Bases de données NOSQL :
o Performances sur de gros volumes de données
o Performances sur des données non structurées
o Evolutivité très importante, même pour de faibles volumes
Cependant :
Technologie assez jeune => Manque d’outils la supportant
Encore en évolution, pas de standards
Pas de langage de requête commun comme SQL, mais divers :
o Requêtes spécifiques au langage (Java, Python…)
o Requêtes spéciales pour la base (Cassandra Query Language)
o API basée sur Map Reduce…
30
NOSQL vs BDR
Quand utiliser NOSQL?
Si l’évolutivité est une préoccupation
Mais attention, ce n’est pas toujours un MUST : Flickr et
Wikipédia utilisent des SGBDR
Si l’absence de schéma est une préoccupation
Si être IN et FASHION est une préoccupation
Pour un nombre important de personnes, l’utilisation d’un nouveau
paradigme ou technologie est nécessaire !
31