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