En informatique et en bases de données, NoSQL désigne une famille de systèmes de gestion de base de données qui s’écarte du paradigme classique des bases relationnelles. L’explicitation la plus populaire de l’acronyme est Not only SQL même si cette interprétation peut être discutée


Les 4 types de structure NoSQL
NoSQL – Orientée Clé-valeur
- La plus simple
- 3 opérations : PUT GET DELETE
- Pas de langage de requête
- Adaptée aux caches et aux accès rapides aux informations
- Lecture / écriture = accès disque simple
- Exemples (Amazon DynamoDB, Redis)
NoSQL – Orientée Colonnes
- Se rapproche d’une base de données traditionnelles
- Colonnes dynamiques, il n’y a pas de valeur nulles
- Plus évolutive, flexible que les clé-valeurs
- Exemples (Big Table, Apache HBase)
NoSQL – Orientée graphes
- Palie à des problèmes impossible à résoudre avec des BDD relationnelles
- Forme de graphe
- Utilisation typique des réseaux sociaux
- Exemples (Neo4j, Amazon Neptune)
NoSQL – Orientée Document
- Proche de la version clé-valeur
- Chaque valeur est représentée sous la forme d’un document
- Sous forme hiérarchique (.json)
- Exemples : (CouchDB, MongoDB)
ACID vs BASE
A = Atomicité : Transaction s’effectue soit entièremenent, soit pas dutout.
C = Cohérence : Le contenu de la base doit être cohérent.
I = Isolation : Tant qu’une transaction n’est pas finie, les modifications ne sont pas validées.
D = Durabilité : Une fois la transaction validée, l’état est permanent.
B = Basically & A = Available : Quelle que soit la charge de la base de données, le système garanti un taux de disponibilité de la donnée
S = Soft-state : La base peut changer lors de mises à jour
E = Eventually consistent : A terme la base aura un état cohérent
Théorème de CAP
Consistency (conhérence) : Une donnée n’a qu’un seul état visible.
Availability (disponibilité) : Tant que le système tourne, la donnée doit être disponible.
Partition Tolerance (Distribution) : Quel que soit le nombre de serveurs, toute requête doit fournir un résultat correct.

Liens
datascientestopenclassrooms
db-engines