Table des matières:
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 le 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 "Non 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 pensent que NoSQL est la base de données moderne de choix qui évolue avec les 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.
Techopedia 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 (atomicité, cohérence, intégrité, durabilité). 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 les 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 pouvoir 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 des mégadonnées, un certain nombre de bases de données massives qui ont vu le jour ont été forcé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 que «évoluer» ou augmenter les ressources sur un serveur central. Une implémentation NoSQL, d'autre part, 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 de problèmes particulières - de la flexibilité des données stockées (magasins de documents) au ciblage des cas d'utilisation, comme les relations (bases de données graphiques) et l'agrégation de données (bases de données colonnes) ou simplement la simplification de l'idée d'une base de données jusqu'à quelque chose qui stocke une valeur (magasins de clés / valeurs).
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 les fonctionnalités de reporting et d'analyse riches du SGBDR.
