NoSQL
En informatique, NoSQL est un buzzword pour désigner une catégorie de système de gestion de base de données (abr. SGBD) destinés à manipuler des bases de données géantes pour des sites web de très grande audience tels que Google, Amazon.com, Facebook ou eBay[1]. Cette catégorie de produits fait le compromis d'abandonner certaines fonctionnalités classiques des SGBD relationnels au profit de la simplicité, la performance et une montée en charge (scalabilité) élevée[2].
De grand acteurs d'Internet, et notamment Google (BigTable), Amazon (Dynamo (en)), LinkedIn (Project Voldemort), Facebook (Cassandra Project puis HBase), SourceForge.net (MongoDB), Ubuntu One (CouchDB), etc. exploitent des bases de données de type NoSQL.
La rencontre meetup NoSQL de San Francisco du 11 juin 2009 a été particulièrement importante pour le développement de cette tendance. Plus de 100 développeurs de logiciels ont assisté à des présentations de solutions telles que Project Voldemort, Cassandra Project, Dynomite, HBase, Hypertable, CouchDB et MongoDB.
Sommaire |
[modifier] Historique
Le terme NoSQL (Not Only SQL) a été utilisé pour la première fois en 1998[3], il est la combinaison de non et de SQL, ce qui laisse penser que cette technologie s'oppose à SQL. Selon Shashank Tiwari dans son livre Professional NoSQL, « Les auteurs de ce néologisme ont probablement voulu signifier non-relationnel, mais ont préféré le mot NoSQL parce qu'il sonne mieux ». Le mot est aujourd'hui utilisé comme terme générique pour tous les SGBD et les logiciels de stockage de données qui ne suivent pas les principes classiques des SGBD relationnels[1].
Les SGBD non-relationnels sont plus anciens que les SGBD relationnels et sont répandus sur les mainframes et les logiciels d'annuaire. Ces SGBD ont connu une nouvelle jeunesse avec le NoSQL dans le domaine des services Internet. La plupart des logiciels NoSQL sont destinés à être utilisés dans les dispositifs en répartition de charge des grands services Internet[1].
La conférence meet-up de 2009 à San-Francisco est considérée comme l'inauguration de la communauté des développeurs de logiciels NoSQL. Des développeurs qui, selon le magazine Computerworld, « racontent comment ils ont renversé la tyranie des coûteux et lents SGBD relationnels par des moyens plus simples et plus rapide de manipuler des données ». Selon Jon Travis, un des présentateurs de la conférence, « les SGBD relationnels offrent trop, alors que les produits NoSQL offrent exactement ce dont vous avez besoin »[4].
Les leaders de cette communauté sont des start-up de développeurs qui n'ont pas les moyens d'acheter les SGBD de Oracle et qui ont développé leurs propres SGBD en imitant les produits de Google et Amazon.com. Les produits qu'ils ont créés sont capables de manipuler les très grandes quantités de données (qui se mesurent en centaines de Téraoctets) et offrent une scalabilité bien adaptée au besoins des applications Web 2.0 ce qui les rend attractifs sur le marché des SGBD. Les auteurs décrivent leurs produits comme n'étant pas des SGBD, mais plutôt des logiciels de stockage de données[4]
[modifier] Théorie
Un système de gestion de base de données (abr. SGBD) permet de réaliser des transactions atomiques, cohérentes, isolées, et durables (ACID). Les capacités ACID garantissent que si plusieurs utilisateurs font de manière simultanée des modifications des données, toutes les modifications vont être prises en compte, dans un ordre précis et maîtrisé de manière à avoir un résultat cohérent (intégrité des données) avec l'historique des modifications faites par chacun. La mise en oeuvre stricte des capacités ACID entraine forcément un coût et un niveau de performance moindre à infrastructure matérielle équivalente.
Certains SGBD se sont rendus très populaires en permettant de lever certaines de ces contraintes en fonction de l'usage, en particulier dans le cas du web où la grande majorité des accès aux bases de données sont de la lecture d'information sans modification (dans ce cas seule la propriété de persistance importe).
Pour faire face à des volumes importants de données, accédés de différents endroits du monde, il faut pouvoir répliquer ces données sur différentes machines physiques, c'est ce que l'on appelle un environnement distribué. Il n'existe pas de solution théorique permettant d'assurer des transactions totalement ACID dans un environnement distribué, mais différents travaux universitaires, dont l'un des principaux est le protocole PRAXOS[réf. nécessaire]. Ce protocole est très efficace pour la lecture dans un environnement distribué, beaucoup moins pour l'écriture/modification et il ne supporte pas les transactions ACID.
Les solutions du marché s'appuient sur une implémentation de ce protocole, complétée par différents composants visant à réduire les conséquences de ces limitations du protocole lors de mise à jour/écriture de données.
[modifier] Le marché
Les SGBD relationnels sont une des technologies les plus répandues dans les entreprises. Ils sont dimensionnés pour la quantité d'informations et le nombre d'utilisateurs d'une entreprise et sont destinés principalement au traitement de transactions. Ils montrent cependant leurs limites lorsqu'ils sont utilisés dans un périmètre plus large, tel qu'un site web populaire, en répartition de charge (load balancing), fréquenté par des millions de visiteurs dans le monde entier : Les SGBD relationnels nécessitent alors des logiciels et des ordinateurs coûteux ainsi que des connaissances pointues.
C'est ce segment de marché qui est occupé par les logiciels NoSQL: Ils sont conçus dès le départ dans l'optique d'être utilisés sur Internet[5]. Ces produits font le compromis d'abandonner certaines fonctionnalités classiques des SGBD relationnels tels que le stockage sous forme de matrice et le langage de commande SQL, au profit de la simplicité, la performance et une scalabilité élevée[2]. La complexité de mise en œuvre du traitement des transactions a été réduite dans le but d'obtenir des services plus simples et plus spécialisés[6].
Simple à mettre en œuvre, le stockage d'information à l'aide de tableaux associatifs (dits clé/valeur) existe depuis le début de l'histoire des bases de données, en 1970. Les nouvelles demandes en rapport avec les sites web de grande audience apparus dans les années 2000 et la facilité de mise en œuvre des tableaux associatifs sont à l'origine de la naissance de plusieurs nouvelles solutions basées sur ce principe. Ces solutions ont comme point commun qu'elles ne mettent pas en œuvre le langage de commande SQL et cette nouvelle tendance a été baptisée NoSQL. Ce titre est cependant trompeur, parce qu'il est probable qu'à l'avenir certaines de ces solutions offriront le langage SQL en option[7].
Dans le marché des SGBD NoSQL se trouvent Cassandra, MongoDB, Voldermort, CouchDB et SimpleDB. Selon Oracle, le « battage » autour de ces produits vient du fait qu'ils sont impliqués dans des grands sites Internet tels que Facebook, LinkedIn ou Amazon.com. C'est un marché jeune, ou il n'y a pas encore de leader (en 2011). Le marché est en évolution rapide, et les comparatifs de produits de ce marché se trouvent rapidement dépassés[8]. Lors d'un sondage réalisé en 2010 auprès des professionnels de l'informatique, 44% des sondés répondent qu'ils n'ont jamais entendu parler de NoSQL[9].
[modifier] Exemples
Exemples de produits NoSQL :
- Accumulo
- BigTable (Google)
- Cassandra (Facebook, Twitter, Digg)
- CouchDB
- DEX
- HBase
- MongoDB (SourceForge.net)
- Neo4j
- Project Voldemort (LinkedIn)
- Redis
- Riak
- SimpleDB (Amazon.com)
- Oracle NoSQL
[modifier] Voir aussi
[modifier] Articles connexes
- Base de données orientée objet
- Base de données relationnelle
- Base de données orientée colonnes
- Base de données orientée documents
[modifier] Liens externes
- (fr) Tour d’horizon des bases de données NoSQL
- (en) Eric Lai. (2009, July 1). No to SQL? Anti-database movement gains steam
[modifier] Références
- (en) Shashank Tiwari,Professional NoSQL,John Wiley & Sons - 2011,(ISBN 9781118167809)
- (en) Nick Rozanski, Eoin Woods,Solfware systems architecture: Working with Stakeholders using viewpoints and perspectives,Addison-Wesley,(ISBN 9780132906128)
- (en)http://newtech.about.com/od/databasemanagement/a/Nosql.htm NoSQL: An Overview of NoSQL Databases
- (en)http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam_ No to SQL? Anti-database movement gains steam
- (en) Adriaan De Jonge,Essential App Engine: Building High-Performance Java Apps with Google App Engine,Addison-Wesley Professional - 2011,(ISBN 9780321742636)
- (en) Daniel A. Keim, Jörn Kohlhammer, Geoffrey Ellis, Florian Mansmann,Mastering the Information Age - Solving Problems with Visual Analytics,Florian Mansmann,(ISBN 9783905673777)
- (en) Pete Warden,Big Data Glossary,O'Reilly Media Inc. - 2011,(ISBN 9781449314590)
- (en)http://ftp-developpez.com/gordon-fowler/Debunking%20the%20NoSQL%20Hype%20Oracle.pdf Oracle: Debunking the NoSQL Hype
- (en)http://www.informationweek.com/news/software/info_management/227500077?queryText=nosql+survey Informations Week: Surprise: 44% Of Business IT Pros Never Heard Of NoSQL