Introduction aux bases de données NoSQL
Achref El Mouelhi
Docteur de l’université d’Aix-Marseille
Chercheur en programmation par contrainte (IA)
Ingénieur en génie logiciel
[Link]@[Link]
H & H: Research and Training 1 / 14
Plan
1 NoSQL
2 Propriétés A.C.I.D
3 Théorème de CAP
H & H: Research and Training 2 / 14
NoSQL
NoSQL
Deux types de base de données
H I ©
EL
Base de données relationnelle : données structurées et stockées dans des tables et
U
O
gérées par le langage SQL (Structured Query Language)
E LM
Base de données non relationnelle : données avec plusieurs structures différentes, non
f
r e
stockées dans des tables et gérées par un langage de la mouvance (ou du mouvement)
NoSQL (Not Only SQL)
ch
©A
H & H: Research and Training 3 / 14
NoSQL
NoSQL
La mouvance NoSQL
H I ©
ne désigne pas un groupe de personnes
U EL
O
LM
{ idées + approches + technologies } qui ont émergé en réaction aux limitations des bases
r e f E
de données relationnelles traditionnelles
ch
terme popularisé en 2009
©A
H & H: Research and Training 4 / 14
NoSQL
NoSQL
Base de données NoSQL
permettent de stocker des données semi-structurées ou non structurées
répartissant les données sur plusieurs serveurs
H I ©
conçues pour s’adapter à une croissance importante du volume de données en
U EL
conçues pour garantir une haute disponibilité en répliquant les données sur plusieurs
O
LM
nœuds et en permettant la récupération en cas de panne
r e f E
ch
©A
H & H: Research and Training 5 / 14
NoSQL
NoSQL
Base de données NoSQL
permettent de stocker des données semi-structurées ou non structurées
répartissant les données sur plusieurs serveurs
H I ©
conçues pour s’adapter à une croissance importante du volume de données en
U EL
conçues pour garantir une haute disponibilité en répliquant les données sur plusieurs
O
LM
nœuds et en permettant la récupération en cas de panne
r e f E
ch
Remarque
©A
Les bases de données NoSQL ne remplacent pas les bases de données relationnelles mais
elles les complètent.
H & H: Research and Training 5 / 14
NoSQL
Principalement cinq types de base de données NoSQL
NoSQL orienté clé/valeur :
Stockent les données sous forme de paires clé-valeur simples
Exemples : Redis, Amazon DynamoDB, LevelDB (Google), Oracle NoSQL
NoSQL orienté document :
H I ©
Stockent les données sous forme de documents semi-structurés (JSON, BSON, XML)
EL
Exemples : MongoDB, CouchDB, RethinkDB
NoSQL orienté colonnes :
O U
f E LM
Stockent les données de manière tabulaire,
ch r e
Exemples : BigTable (Google), Apache Cassandra, Hbase (utilisé par Hadoop), ClickHouse
©A
NoSQL orienté graphe :
Stockent les données sous forme de graphes : avec des nœuds représentant des entités et des arêtes
représentant les relations entre ces entités
Exemples : Neo4j, Amazon Neptune, Blazegraph
NoSQL multi-modèles :
Prennent en charge plusieurs modèles de données au sein d’un même système
Exemples : OrientDB (Supporte document et graphe), ArangoDB (Supporte document, graphe, et clé-valeur)
H & H: Research and Training 6 / 14
Propriétés A.C.I.D
NoSQL
Les propriétés A.C.I.D : (Atomicité, Cohérence, Isolation, Durabilité)
sera exécutée en toute fiabilité
H I ©
forment un ensemble de propriétés dont l’objectif est de garantir qu’une transaction informatique
U EL
Atomicité : une transaction se fait au complet ou pas du tout.
O
f E LM
Cohérence : chaque transaction amènera la base d’un état valide à un autre état valide.
ch r e
Isolation : Toute transaction doit s’exécuter comme si elle était la seule sur le système.
©A
Ses modifications ne sont accessibles que lorsque la transaction a été validée.
Durabilité : Une fois la transaction validée, elle demeure enregistrée même à la suite
d’une panne ou autre.
H & H: Research and Training 7 / 14
Propriétés A.C.I.D
NoSQL
Remarques
H I ©
EL
OU
Les propriétés A.C.I.D sont garanties par les SGBD relationnels.
M
Les bases de données NoSQLE
f Lincompatibles avec les propriétés A.C.I.D.
sont
chr e
© A
H & H: Research and Training 8 / 14
Théorème de CAP
NoSQL
Caractérisation des BD : théorème de CAP [Bewer 2000]
Quelle que soit la base de données (relationnelle ou NoSQL), on ne peut respecter
I ©
qu’au plus que 2 propriétés parmi les trois : la cohérence, la disponibilité et la
H
distribution.
U EL
O
LM
La cohérence (Consistency) : considérant une donnée d, à un instant t, tous les
r e f E
utilisateurs récupère une seule et même valeur de la donnée d
ch
La disponibilité (Availability) : on doit retourner une réponse pour toute requête
reçue
©A
La distribution (Partition Tolerance) : Quel que soit le nombre de serveurs, toute
requête doit fournir un résultat correct
H & H: Research and Training 9 / 14
Théorème de CAP
NoSQL
Schématisation du théorème de CAP
Availability
H I ©
UEL
O
f E LM
ch r e
©A
Partition
Consistency
tolerance
H & H: Research and Training 10 / 14
Théorème de CAP
NoSQL
Répartition des BD
Availability
H I ©
U EL
Neo4j
Relationnel
MO DynamoDB
f E L Cassandra
ch r e
© A
Partition
Consistency
tolerance
Hadoop
MongoDB
H & H: Research and Training 11 / 14
Théorème de CAP
NoSQL
Availability
H I ©
UEL
O
LM Partition
ref E
Consistency
tolerance
A ch
©
Le couple CA (Consistency-Availability)
On garantit, après chaque modification, la cohérence et la disponibilité des données.
Mais, il ne faut pas que la base de données soit distribuée.
H & H: Research and Training 12 / 14
Théorème de CAP
NoSQL
Availability
H I ©
UEL
O
Consistency
f E LM Partition
tolerance
ch r e
© A
Le couple AP (Availability-Partition Tolerance)
On garantit, après chaque modification, la disponibilité des données sur les
différentes partitions. Mais, on ne garantit jamais la cohérence à 100 % (il faut du
temps pour mettre à jour toutes les partitions).
H & H: Research and Training 13 / 14
Théorème de CAP
NoSQL
Availability
H I ©
UEL
O
LM
Partition
Consistency
r e f E tolerance
A ch
©
Le couple CP (Consistency-Partition Tolerance)
On garantit, après chaque modification, la cohérence des données sur les partitions.
Mais, on ne garantit jamais la disponibilité (il faut du temps pour que la donnée soit la
même sur toutes les partitions).
H & H: Research and Training 14 / 14