Tutoriel NoSQL : Qu'est-ce que c'est, types de bases de données NoSQL et exemple

Qu'est-ce que NoSQL?

NoSQL La base de données 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 facile à mettre à l’échelle. L’objectif principal de l’utilisation d’une base de données NoSQL concerne les magasins de données distribués ayant d’énormes besoins de stockage de données. NoSQL est utilisé pour le Big Data et les applications Web en temps réel. Par exemple, des entreprises comme Twitter, Facebook et Google collectent chaque jour des téraoctets de données utilisateur.

Base de données NoSQL signifie « Pas seulement SQL » ou « Pas SQL ». Même si un meilleur terme serait « NoREL », NoSQL a fait son chemin. Carl Strozz a introduit le concept NoSQL en 1998.

Les SGBDR traditionnels utilisent la syntaxe SQL pour stocker et récupérer des données afin d'obtenir des informations supplémentaires. Au lieu de cela, un système de base de données NoSQL englobe un large éventail de technologies de bases de données capables de stocker des données structurées, semi-structurées, non structurées et polymorphes. Comprenons NoSQL avec un diagramme dans ce didacticiel de base de données NoSQL :

Base de données NoSQL

Pourquoi NoSQL ?

Le concept de bases de données NoSQL est devenu populaire auprès des géants de l'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.

L'alternative à ce problème consiste à répartir la charge de la base de données sur plusieurs hôtes chaque fois que la charge augmente. Cette méthode est connue sous le nom de « mise à l’échelle ».

NoSQL

La base de données NoSQL n'est pas relationnelle, elle s'adapte donc mieux que les bases de données relationnelles car elles sont conçues pour les applications Web.

Bref historique des bases de données NoSQL

  • 1998- Carlo Strozzi utilise le terme NoSQL pour sa base de données relationnelle légère et open source
  • 2000- Base de données graphiques Neo4j est lancé
  • 2004- Lancement de Google BigTable
  • Séries 2005- CouchDB est lancé
  • 2007- Le document de recherche sur Amazon Dynamo est sorti
  • 2008- Facebook open source le Cassandra Projet
  • 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 fournissez jamais de tableaux avec des enregistrements plats à colonnes fixes
  • Travailler avec des agrégats autonomes ou des BLOB
  • Ne nécessite pas de mappage objet-relationnel ni de 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, ACID

Sans schéma

  • Les bases de données NoSQL sont soit sans schéma, soit dotées de schémas assouplis
  • Ne nécessite aucune sorte de définition du schéma des données
  • Offre des structures de données hétérogènes dans le même domaine
Caractéristiques de NoSQL
NoSQL est sans schéma

API simple

  • Offre des interfaces faciles à utiliser pour le stockage et l'interrogation des données fournies
  • Les API permettent des méthodes de manipulation et de sélection de données de bas niveau
  • Protocoles basés sur du texte principalement utilisés avec HTTP REST avec JSON
  • Surtout utilisé, aucun langage de requête NoSQL basé sur un standard
  • Bases de données Web fonctionnant en tant que services accessibles sur Internet

Distribué

  • Plusieurs bases de données NoSQL peuvent être exécutées de manière distribuée
  • Offre des capacité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 pas de réplication synchrone entre les nœuds distribués Réplication multi-maître asynchrone, peer-to-peer, réplication HDFS
  • Fournir uniquement une cohérence éventuelle
  • Rien partagé Architecture. Cela permet moins de coordination et une meilleure distribution.
Caractéristiques de NoSQL
NoSQL n'est rien partagé.

Types de bases de données NoSQL

Bases de données NoSQL sont principalement classés en quatre types : paire clé-valeur, orienté colonne, basé sur graphique et orienté document. Chaque catégorie a ses attributs et limites uniques. Aucune des bases de données spécifiées ci-dessus n'est meilleure pour résoudre tous les problèmes. Les utilisateurs doivent sélectionner la base de données en fonction de leurs besoins en matière de produits.

Types de bases de données NoSQL :

  • Basé sur une paire clé-valeur
  • Graphique orienté colonnes
  • Basé sur des graphiques
  • Orienté document

Types de bases de données NoSQL

Basé sur une paire de valeurs clés

Les données sont stockées dans des paires clé/valeur. Il est conçu de manière à gérer de nombreuses données et des charges lourdes.

Les bases de données de stockage de paires clé-valeur stockent les données sous forme de table de hachage où chaque clé est unique et la valeur peut être un JSON, un BLOB (Binary Large Objects), une chaîne, etc.

Par exemple, une paire clé-valeur peut contenir une clé telle que « Site Web » associée à une valeur telle que « Guru99 ».

Basé sur une paire de valeurs clés

Il s'agit de l'un des exemples de base de données NoSQL les plus basiques. Ce type de base de données NoSQL est utilisé comme collection, dictionnaires, tableaux associatifs, etc. Les magasins de valeurs clés aident le développeur à stocker des données sans schéma. Ils fonctionnent mieux pour le contenu du panier.

Redis, Dynamo, Riak sont quelques exemples NoSQL de bases de données de magasin clé-valeur. Ils sont tous basés sur AmazonLe papier Dynamo.

Basé sur des colonnes

Les bases de données orientées colonnes fonctionnent sur des colonnes et sont basées sur le papier BigTable de Google. Chaque colonne est traitée séparément. Les valeurs des bases de données à colonne unique sont stockées de manière contiguë.

Base de données NoSQL basée sur des colonnes

Base de données NoSQL basée sur des colonnes

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 basées sur des colonnes sont largement utilisées pour gérer les entrepôts de données, l'intelligence d'entreprise, CRM, catalogues de fiches de bibliothèque,

HBase, Cassandra, HBase, Hypertable sont des exemples de requêtes NoSQL de base de données basée sur des colonnes.

Orienté document

La base de données NoSQL orientée document stocke et récupère les données sous forme de paire clé-valeur, mais la partie valeur est stockée sous forme de document. Le document est stocké aux formats JSON ou XML. La valeur est comprise par la base de données et peut être interrogée.

Relationnel vs. Document

Relationnel vs. Document

Dans ce diagramme à gauche, vous pouvez voir que nous avons des lignes et des colonnes, et à droite, nous avons une base de données de documents qui a une structure similaire à JSON. Maintenant, pour la base de données relationnelle, vous devez savoir de quelles colonnes vous disposez, etc. Cependant, pour une base de données de documents, vous disposez d'un magasin de données comme un objet JSON. Vous n'avez pas besoin de définir ce qui le rend flexible.

Le type de document est principalement utilisé pour les systèmes CMS, les plateformes de blogs, les applications d'analyse en temps réel et de commerce électronique. Il ne doit pas être utilisé pour des transactions complexes qui nécessitent plusieurs opérations ou requêtes sur différentes structures agrégées.

Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, sont des documents populaires provenant de documents Systèmes SGBD.

Basé sur un graphique

Une base de données de type graphique stocke les entités ainsi que les relations entre ces entités. L'entité est stockée sous forme de nœud avec la relation sous forme d'arêtes. Une arête donne une relation entre les nœuds. Chaque nœud et bord a un identifiant unique.

Basé sur un graphique

Comparée à une base de données relationnelle où les tables sont faiblement connectées, une base de données Graph est de nature multi-relationnelle. Les relations de traversée sont rapides car elles sont déjà capturées dans la base de données et il n'est pas nécessaire de les calculer.

Base de données graphique principalement utilisée pour les réseaux sociaux, la logistique et les données spatiales.

Neo4J, graphique infini, OrientDB, FlockDB sont des bases de données graphiques populaires.

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 basée sur REST d'une valeur basée sur sa clé/ID avec la ressource GET.

La base de données du magasin de documents propose des requêtes plus difficiles 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 est également appelé théorème de Brewer. Il indique qu'il est impossible pour un magasin de données distribué d'offrir plus de deux garanties sur trois.

  1. Cohérence
  2. Disponibilité
  3. 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 avoir des copies des données sur plusieurs machines pour obtenir une haute disponibilité et une évolutivité. Ainsi, les modifications apportées à tout élément de données sur une machine doivent être propagées aux autres répliques.

La réplication des données peut ne pas être instantanée car certaines copies seront mises à jour immédiatement tandis que d'autres au fil du temps. Ces copies peuvent être mutuelles, mais avec le temps, elles deviennent cohérentes. D’où le nom de cohérence éventuelle.

BASE: Basiquement Adisponible, Sétat souvent, Econsistance éventuelle

  • Fondamentalement, disponible signifie que la base de données est disponible à tout moment selon le théorème CAP
  • L'état doux signifie même sans entrée ; l'état du système peut changer
  • La cohérence à terme signifie que le système deviendra cohérent au fil du temps

Cohérence éventuelle

Avantages du NoSQL

  • Peut être utilisé comme source de données primaire ou analytique
  • Capacité de mégadonnées
  • Pas de point de défaillance unique
  • Réplication facile
  • Pas besoin de couche de mise en cache séparée
  • Il offre des performances rapides et une évolutivité horizontale.
  • Peut gérer des données structurées, semi-structurées et non structurées avec le même effet
  • Programmation orientée objet simple à utiliser et flexible
  • Les bases de données NoSQL n'ont pas besoin d'un serveur dédié hautes performances
  • Prise en charge des langages et plates-formes clés des développeurs
  • 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 le Big Data qui gère la vitesse, la variété, le volume et la complexité des données
  • Excelle dans les opérations de bases de données distribuées et de centres de données multiples
  • Élimine le besoin d'une couche de mise en cache spécifique pour stocker les données
  • Offre une conception de schéma flexible qui peut facilement être modifiée sans temps d'arrêt ni interruption de service

Inconvénients de NoSQL

  • Pas de règles 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 est difficile de conserver des valeurs uniques car les clés deviennent difficiles
  • Ne fonctionne pas aussi bien avec les données relationnelles
  • La courbe d'apprentissage est difficile pour les nouveaux développeurs
  • Options open source donc pas si populaires pour les entreprises.

Résumé

  • NoSQL est un DMS non relationnel, qui ne nécessite pas de schéma fixe, évite les jointures et est facile à mettre à l'échelle.
  • Le concept de bases de données NoSQL est devenu populaire auprès des géants de l'Internet comme Google, Facebook, Amazon, etc. qui traitent d'énormes volumes de données
  • En 1998, Carlo Strozzi utilise le terme NoSQL pour sa base de données relationnelle légère et open source.
  • Les bases de données NoSQL ne suivent jamais le modèle relationnel : elles sont soit sans schéma, soit dotées de schémas assouplis.
  • Quatre types de bases de données NoSQL sont 1). Basé sur une paire clé-valeur 2). Graphique orienté colonnes 3). Graphiques basés sur 4). Orienté document
  • NOSQL peut gérer des données structurées, semi-structurées et non structurées avec le même effet
  • Le théorème CAP se compose de trois mots : cohérence, disponibilité et tolérance de partition.
  • BASE signifie Basiquement Adisponible, Sétat souvent, Econsistance éventuelle
  • Le terme « cohérence éventuelle » signifie avoir des copies des données sur plusieurs machines pour obtenir une haute disponibilité et une évolutivité.
  • NOSQL offrir des capacités de requête limitées