Base de données NoSQL et Théorème CAP
SCIENCES ET TECHNIQUES
+ DE 2 ANS
Le 19/07/2012 à 13h21
141 vues
Question d'origine :
Bonjour,
Pour le cadre d'un travail d'étude, j'aurais voulu savoir en quoi les bases NoSQL répondent-elles mieux au théorème CAP que les relationnelles dans un système distribué ?
Wikipédia NoSQL
Théorème CAP
Merci !
Réponse du Guichet
bml_sci
- Département : Sciences et Techniques
Le 23/07/2012 à 10h02
Bonjour,
C’est une bonne question et nous vous remercions de l’avoir posée. Cela dit, nous faisons face, pour y répondre, à deux problèmes :
*le premier est que le Guichet n’est pas destiné à réaliser vos travaux scolaires, même si l’on va essayer de vous aider au mieux ;
*le second, nettement plus problématique, est que votre question nous échappe en grande partie. Après tout, il faut savoir reconnaître nos limites, nous sommes une bibliothèque de lecture publique, et non une bibliothèque universitaire.
Cela étant posé, nous pouvons malgré tout tenter de dégager des pistes. Sur vos deux éléments, d’abord.
Le théorème CAP stipule, en substance : plus c’est gros, moins ça marche, pour un système de calcul distribué.
Le système NoSQL est précisément destiné aux bases de données de très grande taille.
Votre question consiste à se demander si, et pourquoi, le système NoSQL serait plus adapté que les traditionnelles bases de données relationnelles, pour assurer la cohérence, la disponibilité et la résistance au morcellement des données (les trois éléments concernés par le théorème CAP), toujours dans un système de calcul distribué. Jusque là, si nous avons éclairci les choses pour nous, nous ne vous avons pas apporté d’élément nouveau. Avec ces bases, voyons dans quelle direction nous pouvons continuer.
« NoSQL is like sex for teenagers: everybody is talking about it but few have actually gone for it. » Emmanuel Bernard, 2011.
Un SGBD classique est censé réaliser des transactions ACID. Ce sont ces types de transaction (atomiques, cohérentes, isolés, durables) qui permettent à plusieurs utilisateurs de modifier simultanément des données. C’est ce qui va à l’encontre du CAP dont le sujet est précisément de dire que ce qui ne marche pas dans un gros système distribué, c’est que tous les nœuds du système ne peuvent pas voir les mêmes données au même moment ; ou que si on les voit, toutes les requêtes ne recevront pas de réponse, donc pas de modification simultanée.
Les systèmes NoSQL font le choix de n’assurer que certaines fonctions classiques des SGBD relationnels pour mettre l’accent sur d’autres caractéristiques, dont la performance et une extensibilité (scalabilité) importante. Plutôt que le caractère ACID, ils mettent en place la BASE (Basicaly-Available Soft-state Eventual consistency), qui favorise moins la cohérence mais davantage la disponibilité et la répartition.
Mais alors, considérant les fonctions abandonnées, les systèmes NoSQL sont-ils encore des SGBD, ou seulement des systèmes de stockage des données ? Question de sémantique ; dans tous les cas ce sont des systèmes qui ont été dès l’origine pensés pour le Web et pour les volumes gigantesques de données qui y sont quotidiennement consultées et transmises. Un exemple est donné par Aurélien Foucret, de Smile : c’est la cohérence qui est sacrifiée et tous les nœuds du système ne voient pas tous toutes les mêmes données au même moment, mais cette cohérence n’est pas toujours nécessaire, par exemple dans la presse, diffusée massivement, il est inutile que tous les articles apparaissent partout en même temps.
Ce diaporama partagé sur Slideshare par KleeGroup présente assez clairement le système NoSQL, la façon dont il s’inscrit dans un rapport aux bases relationnelles classiques et comment il fait face au théorème CAP. Sur son blog, David Masclet essaie également de nous expliquer, en dix minutes, les fondements du NoSQL et les différents types des bases NoSQL qui existent (ou plutôt qui existaient en 2010, date de l’article).
Le site NoSQL-database.org pointe vers un googlegroup France, qui sera sans aucun doute à même de vous apporter des réponses plus précises sur la nature des fonctionnalités abandonnées et en quoi cela concerne la façon dont ces systèmes répondent mieux au théorème CAP.
Le noSQL User Group de Paris (https://sites.google.com/a/octo.com/nosql/), car nous supposons que vous êtes en France, pourrait peut-être également pouvoir répondre à vos questions les plus pointues, mais il semble ne pas avoir connu d’activité récente.
Le site smile.fr propose de vous communiquer gratuitement un livre blanc sur le sujet du NoSQL, à cette adresse : http://www.smile.fr/Livres-blancs/Culture-du-web/NoSQL
Au sein de notre collection, l’écrasante majorité des ouvrages sur le SQL ou les SGBD s’appuient sur l’algèbre relationnelle et ne traitent pas des systèmes NoSQL. Nous vous signalons néanmoins cet ouvrage : Programmation : le langage SQL, de Frédéric Baurand, chez Ellipses Technosup.
DANS NOS COLLECTIONS :
Ça pourrait vous intéresser :
Commentaires 0
Connectez-vous pour pouvoir commenter.
Se connecter