Tutoriel NoSQL : Types de bases de données NoSQL et exemples
⚡ Résumé intelligent
NoSQL est un système de gestion de bases de données non relationnelles qui ne nécessite pas de schéma fixe, évite les jointures et s'adapte facilement à la charge. Cette ressource explique ce qu'est NoSQL, pourquoi il existe, son histoire, ses caractéristiques, les quatre types de bases de données, le théorème CAP, la cohérence éventuelle, ainsi que ses avantages et ses inconvénients.

Qu'est-ce que NoSQL?
Base de données NoSQL NoSQL est un système de gestion de données non relationnel qui ne nécessite pas de schéma fixe. Il évite les jointures et est facilement extensible. L'intérêt principal des bases de données NoSQL réside dans les entrepôts de données distribués aux besoins de stockage colossaux. NoSQL est utilisé pour le Big Data et les applications web en temps réel. Par exemple, des entreprises comme Twitter, Facebook et… Google collecter des téraoctets de données utilisateur chaque jour.
Base de données NoSQL NoSQL signifie « Not Only SQL » ou « Not SQL ». Bien que « NoREL » soit un terme plus approprié, NoSQL s'est imposé. Carl Strozzi a introduit le concept de NoSQL en 1998.
Les SGBDR traditionnels utilisent la syntaxe SQL pour stocker et extraire des données afin de les analyser. À l'inverse, un système de base de données NoSQL englobe un large éventail de technologies permettant de stocker des données structurées, semi-structurées, non structurées et polymorphes. Ce tutoriel sur les bases de données NoSQL vous permettra de mieux comprendre ce qu'est un système NoSQL à l'aide d'un schéma.
Pourquoi NoSQL ?
Le concept de bases de données NoSQL est devenu populaire auprès des géants d'Internet comme Google, Facebook, Amazon, etc. qui traitent d’énormes volumes de données. Le temps de réponse du système devient lent lorsque vous utilisez un SGBDR pour des volumes massifs de données.
Pour résoudre ce problème, nous pourrions « faire évoluer » nos systèmes en mettant à niveau notre matériel existant. Ce processus est coûteux.
Une autre solution consiste à répartir la charge de la base de données sur plusieurs hôtes lorsque celle-ci augmente. Cette méthode est appelée « mise à l'échelle horizontale ».
Les bases de données NoSQL sont non relationnelles, elles s'adaptent donc mieux à la montée en charge horizontale que les bases de données relationnelles, car elles sont conçues spécifiquement pour les applications web.
Bref historique des bases de données NoSQL
- 1998 – Carlo Strozzi utilise le terme NoSQL pour désigner sa base de données relationnelle légère et open source.
- 2000 – Base de données graphiques Neo4j est lancé.
- 2004 - Google BigTable est lancé.
- 2005 - CouchDB est lancé.
- 2007 – Le document de recherche sur Amazon Dynamo est disponible.
- 2008 – Facebook rend le code source ouvert Cassandra .
- 2009 – Le terme NoSQL a été réintroduit.
Caractéristiques de NoSQL
Non relationnel
- Les bases de données NoSQL ne suivent jamais le modèle relationnel.
- Ne jamais fournir de tableaux avec des enregistrements à colonnes fixes.
- Travaillez avec des agrégats autonomes ou des BLOB.
- Ne nécessite pas de carte objet-relationnelleping et la normalisation des données.
- Aucune fonctionnalité complexe comme les langages de requête, les planificateurs de requêtes, les jointures d'intégrité référentielle ou ACID.
Sans schéma
- Les bases de données NoSQL sont soit sans schéma, soit dotées de schémas souples.
- Aucune définition du schéma des données n'est requise.
- Proposer des structures de données hétérogènes au sein d'un même domaine.

API simple
- Offre des interfaces conviviales pour le stockage et l'interrogation des données.
- Les API permettent des méthodes de manipulation et de sélection de données de bas niveau.
- Protocoles textuels principalement utilisés avec HTTP REST et JSON.
- Le plus souvent, aucun langage de requête NoSQL standard n'était utilisé.
- Bases de données accessibles via le Web fonctionnant comme des services exposés à Internet.
Distribué
- Plusieurs bases de données NoSQL peuvent être exécutées de manière distribuée.
- Offre des fonctionnalités de mise à l'échelle automatique et de basculement.
- Le concept ACID peut souvent être sacrifié au profit de l'évolutivité et du débit.
- Généralement, aucune réplication synchrone entre les nœuds distribués ; réplication asynchrone multi-maître, pair à pair, réplication HDFS.
- Garantir une cohérence à terme.
- Architecture sans partage. Cela permet une coordination réduite et une distribution accrue.
Types de bases de données NoSQL
Bases de données NoSQL Les bases de données se répartissent principalement en quatre catégories : paires clé-valeur, colonnes, graphes et documents. Chaque catégorie présente des caractéristiques et des limitations propres. Aucune de ces bases de données n’est idéale pour résoudre tous les problèmes. Le choix de la base de données doit se faire en fonction des besoins du produit.
Types de bases de données NoSQL :
- Basé sur une paire clé-valeur
- Graphique orienté colonnes
- Basé sur des graphiques
- Orienté document
Basé sur une paire de valeurs clés
Les données sont stockées sous forme de paires clé/valeur. Ce système est conçu pour gérer de grands volumes de données et des charges importantes. Les bases de données utilisant le stockage par paires clé/valeur utilisent une table de hachage où chaque clé est unique et la valeur peut être un objet JSON, BLOB (Binary Large Object), une chaîne de caractères, etc.
Par exemple, une paire clé-valeur peut contenir une clé comme « Site Web » associée à une valeur comme « Guru99 ".
Il s'agit d'un exemple parmi les plus simples de base de données NoSQL. Ce type de base de données NoSQL est utilisé pour gérer les collections, les dictionnaires, les tableaux associatifs, etc. Les bases de données clé-valeur permettent aux développeurs de stocker des données sans schéma. Elles sont particulièrement adaptées aux boutiques en ligne.ping Contenu du panier.
Redis, Dynamo et Riak sont quelques exemples de bases de données NoSQL de type clé-valeur. Elles sont toutes basées sur… AmazonLe papier Dynamo.
Basé sur des colonnes
Les bases de données orientées colonnes fonctionnent par colonnes et sont basées sur l'article BigTable de GoogleChaque colonne est traitée séparément. Les valeurs des bases de données à une seule colonne sont stockées de manière contiguë.
Ils offrent des performances élevées sur les requêtes d'agrégation telles que SUM, COUNT, AVG, MIN, etc., car les données sont facilement disponibles dans une colonne. Les bases de données NoSQL orientées colonnes sont largement utilisées pour gérer les entrepôts de données. l'intelligence d'entreprise, CRM et catalogues de fiches de bibliothèque.
HBase, CassandraHypertable et d'autres exemples de requêtes NoSQL pour les bases de données orientées colonnes.
Orienté document
Une base de données NoSQL orientée documents stocke et récupère les données sous forme de paires clé-valeur, la valeur étant stockée dans un document. Ce document est enregistré aux formats JSON ou XML. La base de données comprend la valeur et peut l'interroger.
Dans ce diagramme, à gauche, vous pouvez voir des lignes et des colonnes, et à droite, une base de données documentaire dont la structure est similaire à celle de JSON. Pour une base de données relationnelle, il est nécessaire de connaître les colonnes, etc. En revanche, pour une base de données documentaire, les données sont stockées sous forme d'objets JSON. Il n'est pas nécessaire de les définir, ce qui lui confère une grande flexibilité.
Ce type de document est principalement utilisé pour les systèmes de gestion de contenu (CMS), les plateformes de blogs, l'analyse en temps réel et les applications de commerce électronique. Il ne doit pas être utilisé pour les transactions complexes nécessitant de multiples opérations ou requêtes sur des structures agrégées variées.
Amazon SimpleDB, CouchDB, MongoDBRiak et Lotus Notes sont des logiciels populaires orientés documents. Systèmes SGBD.
Basé sur un graphique
Une base de données de type graphe stocke les entités ainsi que les relations entre elles. Chaque entité est représentée par un nœud, et les relations par des arêtes. Une arête établit une relation entre deux nœuds. Chaque nœud et chaque arête possède un identifiant unique.
Contrairement à une base de données relationnelle où les tables sont faiblement liées, une base de données graphique est multirelationnelle par nature. La navigation entre les relations est rapide, car elles sont déjà enregistrées dans la base de données ; il n’est donc pas nécessaire de les calculer. Les bases de données graphiques sont principalement utilisées pour les réseaux sociaux, la logistique et les données spatiales.
Neo4J, graphique infini, OrientDBFlockDB et d'autres bases de données graphiques populaires existent.
Outils de mécanisme de requête pour NoSQL
Le mécanisme de récupération de données le plus courant est la récupération d'une valeur basée sur sa clé/identifiant via une ressource GET, dans le cadre d'une requête REST.
Les bases de données documentaires permettent des requêtes plus complexes, car elles comprennent la valeur d'une paire clé-valeur. Par exemple, CouchDB permet de définir des vues avec MapReduce.
Qu'est-ce que le théorème CAP ?
Le théorème CAP, également appelé théorème de Brewer, stipule qu'il est impossible pour un système de stockage de données distribué d'offrir plus de deux garanties sur trois :
- Cohérence
- Disponibilité
- Tolérance de partition
Cohérence: Les données doivent rester cohérentes même après l'exécution d'une opération. Cela signifie qu'une fois les données écrites, toute demande de lecture future doit contenir ces données. Par exemple, après avoir mis à jour le statut de la commande, tous les clients devraient pouvoir voir les mêmes données.
Disponibilité: La base de données doit toujours être disponible et réactive. Il ne devrait y avoir aucun temps d’arrêt.
Tolérance de partition : La tolérance de partition signifie que le système doit continuer à fonctionner même si la communication entre les serveurs n'est pas stable. Par exemple, les serveurs peuvent être divisés en plusieurs groupes qui ne peuvent pas communiquer entre eux. Ici, si une partie de la base de données est indisponible, les autres parties ne sont toujours pas affectées.
Cohérence éventuelle
Le terme « cohérence éventuelle » signifie disposer de copies des données sur plusieurs machines afin d'assurer une haute disponibilité et une bonne évolutivité. Ainsi, toute modification apportée à une donnée sur une machine doit être répercutée sur les autres répliques.
La réplication des données peut ne pas être instantanée : certaines copies sont mises à jour immédiatement, tandis que d’autres le seront ultérieurement. Ces copies peuvent être incohérentes entre elles, mais elles finissent par devenir cohérentes. D’où le terme de cohérence éventuelle.
BASE: Basiquement Adisponible, Sétat souvent, Econsistance éventuelle
- En clair, « disponible » signifie que la base de données est disponible en permanence, conformément au théorème CAP.
- Un état souple signifie que même sans entrée, l'état du système peut changer.
- La cohérence éventuelle signifie que le système deviendra cohérent au fil du temps.
Avantages du NoSQL
- Peut être utilisé comme source de données primaires ou analytiques.
- Capacité de traitement des données massives.
- Aucun point de défaillance unique.
- Reproduction facile.
- Pas besoin de couche de cache séparée.
- Il offre des performances rapides et une évolutivité horizontale.
- Peut traiter les données structurées, semi-structurées et non structurées avec la même efficacité.
- Programmation orientée objet, facile à utiliser et flexible.
- Les bases de données NoSQL ne nécessitent pas de serveur dédié haute performance.
- Prise en charge des principaux langages et plateformes de développement.
- Plus simple à mettre en œuvre que l'utilisation d'un SGBDR.
- Il peut servir de source de données principale pour les candidatures en ligne.
- Gère les données massives, notamment la vitesse, la variété, le volume et la complexité des données.
- Excellente maîtrise des opérations de bases de données distribuées et de centres de données multiples.
- Élimine le besoin d'une couche de cache spécifique pour stocker les données.
- Offre une conception de schéma flexible qui peut être facilement modifiée sans interruption de service.
Inconvénients de NoSQL
- Aucune règle de normalisation.
- Capacités de requête limitées.
- RDBMS Les bases de données et les outils sont relativement matures.
- Il n'offre aucune fonctionnalité de base de données traditionnelle, comme la cohérence lorsque plusieurs transactions sont effectuées simultanément.
- Lorsque le volume de données augmente, il devient difficile de maintenir des valeurs uniques car les clés deviennent difficiles à gérer.
- Fonctionne moins bien avec les données relationnelles.
- La courbe d'apprentissage est abrupte pour les nouveaux développeurs.
- Les solutions open source ne sont pas très populaires auprès des entreprises.






