Le NoSQL, qu’est ce que c’est? comment ça marche? et à quoi ça sert?!

Les bases de données relationnelles ont été pendant longtemps quasiment les seules solutions de stockage disponibles sur le marché.

Cependant, pour pallier à certaines limites de performances et/ou de partitionnement , un certain nombre de nouvelles bases de données ont vu le jour ces dernières années.

 

NoSQL = Not Only SQL

 

Beaucoup de ces “nouvelles” bases se sont spécialisées sur des cas d’usage très spécifiques, que les bases relationnelles ne peuvent pas (ou difficilement) traiter, et ont été regroupées dans une catégorie que l’on nomme  NoSQL pour “Not Only” SQL. Cette désignation de Not Only SQL” (controversée car elle prête à confusion, même si largement adoptée) désigne simplement des bases de données qui ne respectent plus parfaitement le paradigme ACID. Ainsi ces dernières ne viennent pas remplacer les bases de données relationnelles, mais bien les compléter.

Bien que très différentes les bases NoSQL ont en commun un certain nombre de caractéristiques :

  • Elles privilégient souvent la disponibilité  et le partitionnement à la cohérence (théorème CAP)
  • Leurs langages de requête sont souvent plus complexes, mais plus flexibles que le SQL (Java, PHP)
  • Leurs schémas de stockage sont dynamiques (elles privilégient la flexibilité)
  • Elles ont une scalabilité verticale ET  horizontale (partitionnement des données et partage des calculs)
  • Leur scalabilité est linéaire
  • Leur mode d’utilisation : peu d’écritures, beaucoup de lectures
  • Leurs données sont distribuées : on a souvent la possibilité d’utiliser des algorithmes MapReduce et/ou du Spark

On les regroupe généralement en 4 ‘ familles’ qui diffèrent particulièrement dans leur manière de stocker et d’accéder aux données  :

illu - NoSQL

  • Les bases NoSQL Clé/valeur

    Ces bases, comme leur nom l’indique, ne permettent de stocker que des couples [clé, valeur].Cette valeur peut être une simple chaîne de caractères comme un document, ou encore un objet beaucoup plus complexe pouvant contenir une multitude d’information.

  • Les bases NoSQL orientées documents

    Ces solutions reposent également sur le paradigme [clé, valeur], et la valeur, dans ce cas, est un document.
    Ce document  a une structure arborescente : il contient une liste de champs, un champs est associée à une valeur qui peut elle même être une liste. Ces documents sont principalement de type  JSON ou XML.

  • Les bases NoSQL orientées colonnes

    Ces bases sont très proches des SGBDR, on y retrouve le principe de « table »,  mais elles présentent deux grosses différences : les colonnes sont dynamiques et l’historisation de la données se fait à la valeur et non à la ligne.

  • Les bases NoSQL graphes

    Ces bases stockent les données en se basant sur la théorie des graphes. Elles s’appuient sur la notion de noeuds, de relations et de propriétés qui leur sont rattachées.

Nous détaillerons les caractéristiques de chaque famille de bases NoSQL, leurs points forts/faibles ainsi que leur principaux cas d’utilisation dans 2 prochains articles! Stay tuned!

Article écrit par Anne-Sophie LAUGIER et Louis-Baptiste FRANCE

2 thoughts on “Le NoSQL, qu’est ce que c’est? comment ça marche? et à quoi ça sert?!