Cloud Data Database

Définition du NoSQL (Not Only SQL database)

NoSQL (Not Only SQL database)

⌚: 6 minutes

NoSQL est une approche de la conception de bases de données qui peut s’adapter à une grande variété de modèles de données, y compris les formats avec des clés, des documents, des colonnes et des graphiques (Graph Database). NoSQL, qui signifie « not only SQL », est une alternative à la base de donnée relationnelle traditionnelles dans lesquelles les données sont placées dans des tables et le schéma de données est soigneusement conçu avant la construction de la base de données. Les bases de données NoSQL sont particulièrement utiles pour travailler avec de grands ensembles de données distribuées.

NoSQL vs SGBDR

Le terme NoSQL peut être appliqué à certaines bases de données antérieures au système de gestion de bases de données relationnelles, mais il désigne plus communément les bases de données construites au début des années 2000 dans le but de regrouper des bases de données dans des applications web et du Cloud. Dans ces applications, les exigences de performance et d’évolutivité l’emportaient sur la nécessité d’une cohérence immédiate et rigide des données que la SGBDR fournissait aux applications d’entreprise transactionnelles.

En particulier, les systèmes NoSQL n’étaient pas tenus de suivre un schéma relationnel établi. Les GAFAM  comme Google et Amazon ont utilisé les bases de données NoSQL très tôt pour se concentrer sur des objectifs opérationnels  et utiliser des bases de données relationnelles comme complément lorsque la cohérence des données étaient plus importantes et plus adéquates aux données qui y seront stockées. En effet il est difficile sur une base de donnée classique d’enregistrer des vidéos de format différents et de taille inconnue à l’avance, sur Youtube par exemple.

Les premières bases de données NoSQL pour le web et les applications cloud avaient tendance à se concentrer sur des caractéristiques très spécifiques de la gestion des données. La capacité à traiter de très gros volumes de données et à les distribuer rapidement à travers les clusters de calcul qui étaient des caractéristiques souhaitables dans la conception du web et du Cloud. Les développeurs qui ont mis en place des systèmes web et de Cloud computing ont également cherché à créer des schémas de données flexibles – ou pas de schéma du tout – pour mieux permettre des changements rapides aux applications qui étaient continuellement mises à jour.

Key-value stores

Les key-value stores, ou bases de données de valeurs clés, mettent en œuvre un modèle de données simple qui associe une clé unique à une valeur associée. Ce modèle étant simple, il peut conduire au développement de bases de données de valeurs clés, qui sont extrêmement performantes et hautement évolutives pour la gestion des sessions et la mise en cache dans les applications web. Les implémentations diffèrent dans la façon dont elles sont orientées pour fonctionner avec la RAM, les lecteurs à semi-conducteurs (SSD) ou les lecteurs de disque. Citons par exemple Aerospike, Berkeley DB, MemchacheDB, Redis et Riak.

Bases de données pour les documents

Les bases de données de documents, également appelées « Document stores », stockent des données semi-structurées et des descriptions de ces données sous forme de documents. Elles permettent aux développeurs de créer et de mettre à jour des programmes sans avoir besoin de référencer un schéma directeur. L’utilisation des bases de données de documents a augmenté avec l’utilisation de JavaScript et de la notation d’objet JavaScript (JSON), un format d’échange de données qui s’est largement répandu parmi les développeurs d’applications web, bien que XML et d’autres formats de données puissent également être utilisés. Les bases de données documentaires sont utilisées pour la gestion de contenu et le traitement des données des applications mobiles. Couchbase Server, CouchDB, DocumentDB, MarkLogic et MongoDB sont des exemples de bases de données documentaires.

Graph Data

Les « Graph Data Store » organisent les données sous forme de nœuds, qui sont comme des enregistrements dans une base de données relationnelle, avec des arêtes, qui représentent les connexions entre les nœuds. Comme le système de graphe stocke les relations entre les nœuds, il peut prendre en charge des représentations plus riches des relations entre les données. De plus, contrairement aux modèles relationnels qui reposent sur des schémas stricts, le modèle de données des graphes peut évoluer avec le temps et l’utilisation. Les bases de données de graphes sont appliquées dans des systèmes qui doivent cartographier les relations, tels que les systèmes de réservation ou la gestion des relations avec les clients. Parmi les exemples de bases de données de graphiques, on peut citer AllegroGraph, IBM Graph, Neo4j et Titan.

Évolution du NoSQL

La Data Base de Berkeley a été un système influent dans l’évolution de l’utilisation des bases de données NoSQL. Développée à l’Université de Californie à Berkeley, au début des années 1990, la Berkeley DB était largement décrite comme une base de données intégrée qui répondait étroitement aux besoins de stockage d’applications spécifiques. Ce logiciel open source fournissait un simple stockage des valeur clés. Berkeley DB a été commercialisé par Sleepycat Software en 1999. La société a ensuite été rachetée par Oracle en 2006. Oracle a continué à soutenir l’open source Berkeley DB.

Parmi les autres bases de données NoSQL qui ont pris de l’importance, citons les bases de données NoSQL hébergées dans le Cloud de Amazon DynamoDB, Google BigTable, ainsi que Apache Cassandra et MongoDB.

Les classifications de base des bases de données NoSQL ne sont que des indications. Au fil du temps, les fournisseurs ont mélangé et fait correspondre des éléments de différents  de bases de données NoSQL pour obtenir des systèmes plus utiles et performant. Cette évolution est visible, par exemple, dans MarkLogic, qui a ajouté un Graph data store et d’autres éléments à ses bases de données de documents d’origine. Couchbase Server prend en charge à la fois les approches par valeur clé et par document. Cassandra a combiné des éléments de valeurs-clés avec Wide Column et une Graph Data. Parfois, des éléments NoSQL sont mélangés avec des éléments SQL, créant ainsi une variété de bases de données dites multimodèles.

Ecrire un commentaire