NoSQL

NoSQL (ou Not Only SQL ou encore Non-relationnel SQL) est une façon de concevoir les bases de données qui repose non plus sur la notion relationnelle des SGBD (des tables avec des liens entre elles) mais sur une architecture plus simple à manipuler.

Initialement, le besoin est apparu avec les très très grosses bases de données qui avaient des problèmes de rapidité et de cohérence (voir tests ACID). En effet, lorsqu’il y a des milliards de données à traiter, les performances peuvent se dégrader de manière significatives. Et lorsqu’il faut s’assurer que les données sont bien synchronisés en temps réel sur différents lieux aux quatre coins du globe, des problèmes insurmontables apparaissent (connu par exemple sous le nom de théroème CAP).

Le principe du NoSQL est donc de simplifier au maximum pour améliorer les performances. Cette simplification entraîne des effets de bords indésirables. Les relations très structurées et permettant de représenter des interactions complexes sont délaissées au profit de modèles plus simples de représentation : les informaticiens nomment cela un tableau associatif que l’on peut comparé à un immense tableur composé d’une clé (la première colonne) et de valeurs qui en découlent (la ou les autres colonnes).

NoSQL ne s’oppose donc pas à SQL et il est fréquent de retrouver les deux dans les systèmes informatiques d’une certaine ampleur. On utilise alors SQL et les bases de données relationnelles pour modéliser finement et NoSQL pour des besoins plus simples mais ou la rapidité est cruciale.

Effet de mode à causes de leur utilisation par les ténors du web, le NoSQL est encore très jeune et le marché est loin d’être mature : les prémices de NoSQL date de 1998 mais le coup d’envoi de cette technologie ne date réellement que de 2009. Pourtant, on trouve déjà sur le marché différents outils spécifiques ou compatibles NoSQL :  Cassandra, Voldemort, MongoDB, SimpleDB et CouchDB notamment.