Nosql

Définition - Que signifie NoSQL?

NoSQL est une classe de systèmes de gestion de base de données (SGBD) qui ne suivent pas toutes les règles d'un SGBD relationnel et ne peuvent pas utiliser SQL traditionnel pour interroger des données. Le terme est quelque peu trompeur lorsqu'il est interprété comme «Pas de SQL», et la plupart le traduisent par «Pas seulement SQL», car ce type de base de données n'est généralement pas un remplacement mais plutôt un ajout complémentaire aux SGBDR et SQL.

Les systèmes basés sur NoSQL sont généralement utilisés dans de très grandes bases de données, qui sont particulièrement sujettes à des problèmes de performances causés par les limitations de SQL et le modèle relationnel des bases de données. Beaucoup considèrent NoSQL comme la base de données moderne de choix qui s'adapte aux exigences du Web. Certaines implémentations notables de NoSQL sont la base de données Cassandra de Facebook, BigTable de Google et SimpleDB et Dynamo d'Amazon.

Definir Tech explique NoSQL

Une base de données NoSQL ne suit pas nécessairement les règles strictes qui régissent les transactions dans les bases de données relationnelles. Ces règles violées sont connues sous l'acronyme ACID (Atomicity, Consistency, Integrity, Durability). Par exemple, les bases de données NoSQL n'utilisent pas de structures de schéma fixes et de jointures SQL.

Dans un SGBDR traditionnel, les opérations de base sont les lectures et les écritures. Les lectures peuvent être mises à l'échelle en répliquant les données sur plusieurs machines, équilibrant ainsi la charge des demandes de lecture. Cependant, cela affecte les écritures car la cohérence des données doit être maintenue. Seules les écritures peuvent être mises à l'échelle en partitionnant les données. Cela affecte les lectures, car les jointures distribuées sont généralement lentes et difficiles à implémenter. De plus, pour conserver les propriétés ACID, les bases de données doivent verrouiller les données. Cela signifie que lorsqu'un utilisateur ouvre un élément de données, aucun autre utilisateur ne doit être en mesure d'apporter des modifications au même élément. Cette restriction a de sérieuses implications sur les performances.

Ces limitations n'ont pas été un problème majeur dans le passé. Cependant, avec l'avènement des réseaux sociaux et du big data, un certain nombre de bases de données massives qui ont émergé ont été obligées de servir des dizaines, voire des centaines de millions de clients à travers le monde avec plusieurs milliers de lectures et d'écritures chaque minute. Les SGBDR traditionnels ne répondent tout simplement pas à ce besoin car ils ne peuvent «augmenter» ou augmenter les ressources sur un serveur central. Une implémentation NoSQL, en revanche, peut «évoluer» ou répartir la charge de la base de données sur plusieurs serveurs.

Les bases de données NoSQL se concentrent sur des classes particulières de problèmes - d'être plus flexible sur les données stockées (magasins de documents), au ciblage de cas d'utilisation, comme les relations (bases de données graphiques) et l'agrégation de données (bases de données de colonnes) ou simplement simplifier l'idée d'une base de données jusqu'à quelque chose qui stocke une valeur (clés / valeurs stockées).

Les bases de données NoSQL offrent les avantages d'une évolutivité rapide, de bien meilleures performances et d'une structure plus simple par rapport aux SGBDR. Cependant, ils souffrent également d'être une technologie relativement nouvelle et non éprouvée, et ils ne peuvent pas fournir la riche fonctionnalité de reporting et d'analyse du SGBDR.

Cette définition a été écrite dans le contexte de Database