C’est quoi « NoSQL » ?
Avec l’essor des grandes plateformes web, le volume de données à gérer par les applications a explosé, et les systèmes de gestion de données traditionnels, relationnels et transactionnels, basés sur le langage SQL, ont montré leur limites.
Depuis quelques années, de nouvelles approches du stockage et de la gestion des données sont apparues. Regroupées derrière le vocable NoSQL.
Le NoSQL correspond le plus souvent à des approches qui complètent les outils existants, pour en combler les faiblesses.
Ces technologies, portées par des acteurs majeurs du Web comme Google, Facebook et Twitter, ont rapidement acquis une légitimité réelle dans le domaine de la manipulation de volumétries de données très importantes et ont rapidement gagné tant en maturité qu’en notoriété.
Les SGBD relationnels ne sont pas adaptés aux environnements distribués requis par les volumes gigantesques de données et par les trafics tout aussi gigantesques générés par ces opérateurs.
Les besoins majeurs identifiés par ces acteurs (google, facebook et twitter) sont les suivants :
- Capacité à distribuer les traitements sur un nombre de machines important afin d’être en mesure d’absorber des charges très importantes. On parlera de scaling des traitements
- Capacité à répartir les données entre un nombre important de machines afin d’être en mesure de stocker de très grands volumes de données. On parlera de scaling des données
- La distribution de données sur plusieurs datacenters afin d’assurer une continuité de service en cas d’indisponibilité de service sur un datacenter.
Limites des SGBD relationnels dans les architectures distribuées
Les bases de données relationnelles mettent à la disposition des développeurs un certains nombre d’opérations de relations entre tables :
- Un système de jointure entre les tables
- Un système d’intégrité référentielle permettant de s’assurer que les liens entre les entités sont valides
La mise en oeuvre de tels mécanismes a un coût considérable dés lors que l’on se trouve dans le contexte d’un système distribué.
Limites des systèmes de SGBD relationnels face aux usage
Le principal point faible des modèles relationnels est l’absence de gestion d’objets hétérogènes ainsi que le besoin de déclarer au préalable l’ensemble des champs représentant un objet. Pour répondre au besoin des objets hétérogènes non pré-déclarés, on a vu apparaître des modélisations complexes sur le plan algorithmique comme le modèle Entity-Attribute-Value permettant de séparer un objet et ses champs. Ces modèles présentent un inconvénient majeur qui est leur très faible niveau de performance.
Types de base NoSQL
- base clé/valeur : comme Redis,Riak et Voldemort
- base documentaire, comme MongoDB, CouchDB et Terrastore
- base orienté colonne, comme Cassandra, Amazon SimpleDB, Google BigData, HBase
- base orienté graphe, comme Neo4j, OrientDB
source : NoSQL