dynamodb nosql

Quelles sont les différences entre une base SQL et une base NoSql ?

Les bases de données NoSql servent tout d’abord à servir très rapidement des données. Et pour accélérer l’accès aux données, le plus simple est d’avoir un socle technique très simple. Les gains de performance sont bien au rendez-vous mais ils se font au détriment d’autres aspects.

Différences entre bases SQL et bases NoSql

  • Les bases SQL reposent sur des données structurées. Tout est bien rangé et les liaisons entre les données sont solides. Mais cela pose aussi des problèmes au jour le jour. Lorsque les données à disposition sont partielles ou approximatives, lorsqu’il faut réaliser des imports de données pas forcément propres, lorsqu’il faut faire évoluer très vite la façon dont les données sont structurées… Dans ces cas, une base de type NoSql, beaucoup plus permissive, permet de s’accommoder de ces aspects. Autant pour faire de l’informatique bancaire, il faut que tout soit parfaitement nickel, autant pour stocker des données non critiques (données de navigation de profils anonymisés par exemple) un certain flou n’est pas gênant.
  • Les bases de données SQL ont une longue durée de vie et grandissent de façon verticale. À l’inverse, les bases NoSql se développent horizontalement et répondent à des besoins plus pressants et plus changeants. NoSql est plus séduisant lorsqu’on tâtonne (typiquement lorsque le métier à informatiser n’est pas encore bien stabilisé – en startup notamment). NoSql permet de nombreux ajustements et permet un développement rapide. À l’inverse, les bases de données SQL sont plus intéressantes lorsque la feuille de route est claire et que l’on sait qu’on ne sortira pas des rails. Dit autrement, lorsqu’elles grossissent les bases de données ont besoin de plus de ressources. Les bases SQL sont boostées en ajoutant de l’espace disque, des processeurs et de la mémoire vive. Les bases NoSql sont plus « scalables » et s’accommodent plus facilement d’ajouts de serveurs. S’il faut grossir rapidement, les bases NoSql sont une solution plus facile à mettre en oeuvre.
  • Les bases de données SQL peuvent réaliser des extractions complexes de données. C’est aussi possible en NoSQL mais ce n’est pas pourquoi ces outils existent.
  • Les bases de données SQL sont plus complexes à rentrer dedans. D’une part d’un point de vue technique, d’autre part parce que derrière la base de données structurée, il y a eu une réflexion approfondie sur les traitements et les données traitées. Bref, c’est plus réfléchi, donc c’est plus complexe. En NoSql, les données sont plus simple et il est plus facile de rentrer directement dans le cœur du sujet.
  • Les 2 peuvent gérer les contraintes ACID. Les données peuvent donc être protégées et fiables. NoSql est bien plus permissif sur le sujet et il faut bien savoir quel degré de sécurité est attendu afin de ne pas se retrouver piégé au milieu du gué.
  • Les bases de données SQL peuvent gérer de gros volumes de données. Mais les bases NoSql le font encore mieux.
  • Les bases de données SQL s’attaquent avec le langage SQL qui existe depuis longtemps et dont les standards sont bien partagés. Avec le NoSql, c’est encore le grand flou et chacun essaye de proposer /imposer sa techno.
  • Parce qu’utilisé depuis plusieurs décennies, le SQL est rassurant. Offres de support, expertises, solutions packagées existent et sont bien rodées. Avec le NoSql, c’est encore un peu le Far West et il y a encore pas mal de briques à poser pour obtenir une solution vraiment opérationnelle et capable de discuter avec les autres logiciels.

Pour résumer : les bases SQL sont à privilégier pour les métiers et les données critiques. Les bases de données NoSql sont à préférer lorsque le besoin a informatiser n’est pas encore stabilisé et qu’il faut gérer de très grandes quantités de données.

Photo : Vitaly Zdanevich