Différence entre SQL et noSql
Définitions du SQL
SQL, le langage des données structure
- SQL
- Structured Query Language
Forme
- Relationnelle
- Tableau 2 dimensions
NoSQL, le SQL des bases de données non relationnelles
2 signication
- Not only SQL
- Non-relationnel
Forme
- pas de modèle relationnel
- pas de tableau
- schémas flexibles
- regrouper des données ayant des structures différentes
- distribuées
- stockées sur plusieurs systèmes
SQL et NoSQL solutions différentes au théorème de CAP
Le théorème de Brewer/CAP
- Cohérence (Consistency en anglais) : la donnée a toujours un seul état visible à un instant précis, peu importe le nombre de copies ;
- Disponibilité (Availability en anglais) : la donnée est disponible tant que le système tourne ;
- Distribution (Partition tolerance en anglais) : toute requête fournit un résultat correct, peu importe le nombre de serveurs.
Selon le théorème de CAP, dans toute base de données, vous ne pouvez respecter au plus que 2 propriétés parmi la cohérence, la disponibilité et la distribution.
- CA (cohérence et disponibilité): SQL
- Oracle
- MySQL
- SQLServer.
- CP (cohérence et distribution): NoSQL
- HBase
- BigTable
- MongoDB*
- CosmosDB*
- AP (disponibilité et distribution): NoSQL comme Elasticsearch
- Spark
- Neo4j
- OrientDB
- FlockDB
- Redis
- SimpleDB*
- Memcached*
- DynamoDB*
- CouchBase*
- Cassandra*.
* Les langages suivis d’un astérisque ont la capacité de pouvoir passer de CP à AP ou inversement.
Cas d’usages du SQL et du NoSQL
SQL
- BDD complexe
- scalabilité verticale : augmentation de capacité sur un serveur existant,
NoSql
- scalabilité verticale : augmentation de capacité sur un serveur existant,
- scalabilité horizontale : augmentation du nombre de serveurs.
- certains calculs plus complexe