Vous êtes sur la page 1sur 16

Qu'est-ce que NoSQL?

NoSQL est un DMS non relationnel, qui ne nécessite pas un schéma fixe, évite les jointures,
et est facile à mettre à l'échelle. La base de données NoSQL est utilisée pour les magasins de
données distribués ayant d'énormes besoins de stockage de données. NoSQL est utilisé pour
les Big Data et les applications Web en temps réel. Par exemple, des entreprises comme
Twitter, Facebook, Google qui recueillent des téraoctets de données utilisateur chaque jour.

La base de données NoSQL signifie « Pas seulement SQL » .

RDBMS ( Relational DataBase Management System ou système de gestion de bases de


données relationnel ) traditionnel utilise la syntaxe SQL pour stocker et récupérer des
données pour plus d'informations. Au lieu de cela, un système de base de données NoSQL
englobe un large éventail de technologies de base de données qui peuvent stocker des
données structurées, semi-structurées, non structurées et polymorphes.

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 RDBMS pour des volumes
massifs de données.

Pour résoudre ce problème, nous pourrions « mettre à l'échelle » nos systèmes en


améliorant notre matériel existant. Ce processus est coûteux.
L'alternative pour ce problème est de distribuer la charge de 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 (scaling out) ».

La base de données NoSQL n'est pas relationnelle, de sorte qu'elle s'évolue mieux que les
bases de données relationnelles car elles sont conçues avec des applications Web à l'esprit.

Caractéristiques de NoSQL
Non relationnel

 Les bases de données NoSQL ne suivent jamais le modèle relationnel


 Ne fournit jamais de tables avec des enregistrements plats à colonne fixe
 Travailler avec des agrégats autonomes ou des BLOB ( binary large object )
 Ne nécessite pas de cartographie objet-relationnelle et de normalisation des données
 Aucune fonctionnalité complexe comme les langages de requête, les planificateurs
de requêtes,
 l'intégrité référentielle se joint à l'ACID

Sans schéma

 Les bases de données NoSQL sont exemptes de schémas ou ont des schémas
détendus
 N'exigent aucune définition du schéma des données
 Offre des structures hétérogènes de données dans le même domaine
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 textuels principalement utilisés avec HTTP REST avec JSON
 Utilise la plupart du temps aucun langage de requête standard
 Bases de données Web fonctionnant sous forme de services Internet

réparti

 Plusieurs bases de données NoSQL peuvent être exécutées de manière distribuée


 Offre des capacités d'auto-mise à l'échelle et d'échec
 Souvent, le concept ACID peut être sacrifié pour l'évolutivité et le débit
 La plupart du temps pas de réplication synchrone entre les nœuds distribués
Asynchronous Multi-Master Replication, peer-to-peer, HDFS Replication
 Fournir seulement la cohérence éventuelle
 Shared Nothing Architecture. Cela permet moins de coordination et une distribution
plus élevée.
NoSQL est rien partagé (Shared Nothing).

Types de bases de données NoSQL

Il existe principalement quatre catégories de bases de données NoSQL. Chacune


de ces catégories a ses attributs et limitations uniques. Aucune base de données
spécifique n'est préférable pour résoudre tous les problèmes. Vous devez
sélectionner une base de données en fonction de vos besoins en produits.

Voyons tous :

 Paire de valeur clé basée


 Graphique orienté colonne
 Graphiques basés
 Orienté vers les documents

Paire de valeur clé basée


Les données sont stockées en paires clés/valeur. Il est conçu de telle manière pour
gérer beaucoup de données et de charge lourde.
Les bases de données de stockage de paires de valeur clé stockent les données
comme une table de hh où chaque clé est unique, et la valeur peut être un JSON,
BLOB (Binary Large Objects), chaîne, etc.

Par exemple, une paire de valeur clé peut contenir une clé comme " Site Web "
associée à une valeur comme "Guru99".

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

Redis, Dynamo, Riak sont quelques exemples de DataBases magasin de valeur clé.
Ils sont tous basés sur le papier Dynamo d'Amazon.

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
continue.
Base de données NoSQL basée sur la colonne

Ils offrent des performances élevées sur les requêtes d'agrégation comme 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'affaires, le CRM, les
catalogues de cartes de bibliothèque,

HBase, Cassandra, HBase, Hypertable sont des exemples de base de données


basées sur des colonnes.

Orienté vers les documents :


Document-Orienté NoSQL DB stocke et récupère des données comme une paire
de valeur clé, mais la partie valeur est stockée comme un document. Le document
est stocké dans les formats JSON ou XML. La valeur est comprise par le DB et peut
être interrogée.
Document relationnel Vs.

Dans ce diagramme à gauche, vous pouvez voir que nous avons des lignes et des
colonnes, et dans la 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 quelles colonnes vous avez et ainsi de suite. Toutefois, pour une
base de données de documents, vous avez un magasin de données comme l'objet
JSON. Vous n'avez pas besoin de définir qui le rendent flexible.

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

Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, sont des
systèmes DBMS d'origine documentaire.

Graphique-basé
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 comme un nœud avec la relation comme
bords. Un bord donne une relation entre les nœuds. Chaque nœud et bord a un
identifiant unique.
Par rapport à une base de données relationnelle où les tables sont vaguement
connectées, une base de données Graphique est de nature multi-relationnelle. La
relation de traversée est rapide car ils sont déjà capturés dans le DB, 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, les données spatiales.

Neo4J, Infinite Graph, 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
d'une valeur basée sur REST en fonction de sa clé/ID avec la ressource GET

La base de données des magasins de documents offre des requêtes plus difficiles
car ils comprennent la valeur d'une paire de valeur clé. Par exemple, CouchDB
permet de définir des vues avec MapReduce

Qu'est-ce que le théorème de la PAC?


Le théorème de CAP est également appelé théorème du brasseur. Il indique qu'il
est impossible pour un magasin de données distribués d'offrir plus de deux
garanties sur trois

1. cohérence
2. disponibilité
3. Tolérance à la 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 la mise à jour de l'état de la commande,
tous les clients doivent être en mesure de voir les mêmes données.

disponibilité:

La base de données doit toujours être disponible et réactive. Il ne devrait pas avoir
de temps d'arrêt.

Tolérance à la 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 peuvent ne pas
communiquer entre eux. Ici, si une partie de la base de données n'est pas
disponible, d'autres parties ne sont toujours pas affectées.

Cohérence éventuelle
Le terme « cohérence éventuelle » signifie avoir des copies de données sur
plusieurs machines pour obtenir une grande disponibilité et évolutivité. Ainsi, les
modifications apportées à n'importe quel élément de données sur une machine
doivent être propagées à d'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 en temps voulu. Ces
copies peuvent être mutuellement, mais en temps voulu, elles deviennent
cohérentes. D'où le nom de cohérence éventuelle.

BASE: Basically Available, Softstate, Eventual consistency

 Fondamentalement, les moyens disponibles DB est disponible tout le temps


selon le théorème de la PAC
 L'état mou signifie même sans entrée ; l'état du système peut changer
 Une cohérence éventuelle signifie que le système deviendra cohérent au fil
du temps
Avantages de NoSQL
 Peut être utilisé comme source de données primaires ou analytiques
 Capacité Big Data
 Pas de point d'échec unique
 Réplication facile
 Pas besoin de couche de caching 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 un effet égal
 Programmation orientée objet, facile à utiliser et flexible
 Les bases de données NoSQL n'ont pas besoin d'un serveur haute
performance dédié
 Prendre en charge les principales langues et plates-formes des
développeurs
 Simple à mettre en œuvre que l'utilisation de RDBMS
 Il peut servir de source de données principale pour les applications 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 bases de données distribuées et les opérations de centres
multidonnées
 Élimine le besoin d'une couche de cache spécifique pour stocker les
données
 Offre un schéma flexible qui peut facilement être modifié sans temps
d'arrêt ou interruption de service

Inconvénients de NoSQL
 Pas de règles de normalisation
 Capacités de requête limitées
 Les bases de données et les outils du SGDR sont relativement matures
 Il n'offre pas de capacités de base de données traditionnelles, comme la
cohérence lorsque plusieurs transactions sont effectuées simultanément.
 Lorsque le volume de données augmente, il est difficile de maintenir des
valeurs uniques car les clés deviennent difficiles
 Ne fonctionne pas aussi bien avec les données relationnelles
 La courbe d'apprentissage est rigide pour les nouveaux développeurs
 Options open source donc pas si populaire pour les entreprises.

NoSQL vs SQL - Comment NoSQL est mieux pour les


applications Big Data?
Les données sont devenues un éventail sans cesse croissant d'informations. Il est recueilli sous
forme d'informations utilisateur, de données géographiques, de données générées par les
capteurs, de flux de médias sociaux et sous de nombreuses autres formes. Cet ensemble massif
de données non structurées, communément appelée Big Data, est devenu l'épine dorsale de
l'analyse pour de nombreuses applications essentielles à la mission.

Lorsqu'il s'agit de stocker des données aussi énormes, il y a deux façons de le faire, soit dans des
bases de données relationnelles, soit de manière cartographique. Pour la première fois, SQL est le
meilleur ajustement, alors que pour le second NoSQL est la réponse. En d'autres termes, NoSQL vs
SQL façon.

Bien que SQL soit bien accepté et utilisé comme technologie de base de données sur le marché,
les organisations considèrent de plus en plus les bases de données NoSQL comme une alternative
viable aux systèmes relationnels de gestion des bases de données pour les applications Big
Data. Dans ce blog, nous allons discuter des raisons possibles derrière elle et donnera une vue
d'ensemble sur NoSQL vs SQL.
Facteurs qui prennent en charge SQL pour les
applications Big Data
Pour commencer, nous devons examiner les points à l'appui de la base de données relationnelle
plutôt SQL.Tout d'abord, il comporte deux points forts qui sont essentiels pour toute opération de
base de données :

1. Conformité ACID (Atomicity, Consistency,Isolation, and Duability):Le maintien de


l'intégrité est un critère clé pour toute transaction de base de données. En d'autres termes, il
restreint toute anomalie possible. Toute base de données SQL fournit la conformité ACID qui est
essentielle pour toute application e-commerce et financière.

2. Données structurées. La manipulation des données structurées est plus confortable. En outre,
un système de base de données relationnelle maintient des données cohérentes qui sont
suffisantes à moins et jusqu'à ce que l'entreprise traite des données de plus en plus massives de
divers types.

Les bases de données NoSQL sacrifient les deux points ci-dessus.

Facteurs qui prennent en charge NoSQL pour les


applications Big Data

La
véritable essence de NoSQL est qu'il empêche le goulot d'étranglement des données lorsqu'une
application d'entreprise manipule des pétaoctets de données. C'est là que nous voyons la popularité
des bases de données NoSQL comme HBase, Cassandra, mongoDB, etc.

Les principales caractéristiques des bases de données NoSQL qui le rendent utile sont les :

1. Stockage de la capacité de grands volumes de données non structurées : Une base de données
NoSQL peut stocker des ensembles illimités de données avec n'importe quel type. En outre, il a la
flexibilité de l'utilisateur pour changer le type de données sur la route. Il s'agit d'une base de
données basée sur des documents. Par conséquent, pas besoin de définir le type de données à
l'avance.

2. Stockage basé sur le cloud : Aujourd'hui, la plupart des entreprises suivent une solution de
stockage basée sur le cloud pour économiser des coûts. NoSQL bases de données comme Cassandra
faire arriver à mettre en place plusieurs centres de données sans trop de tracas.

3. Développement rapide : La base de données relationnelle n'est pas une solution idéale lorsque
vous travaillez dans un environnement agile qui nécessite des retours fréquents et des itérations
rapides. Dans ce cas, la base de données NoSQL s'intègre bien dans le cadre.

Une vue d'ensemble de NoSQL vs SQL


Sql Nosql

RDBMS est une base de données axée sur la ligne NoSQL est une base de données orientée vers les
colonnes

RDBMS fonctionne avec des données structurées et NoSQL fonctionne sur des données non structurées
connexes et non liées

Les RDBMS utilisent un schéma qui signifie que la Pas besoin de schéma pour stocker des données
structure des données doit être prédéfinie.

Les bases de données SQL ne peuvent être mise à Les bases de données NoSQL peuvent stocker des
l'échelle qu'à l'aide d'un matériel amélioré données illimitées

Les bases de données SQL sont une affaire coûteuse Les bases de données NoSQL sont moins chères
La base de données SQL maintient l'intégrité des La base de données NoSQL compromet parfois
données l'intégrité des données pour gérer le grand nombre de
données.

Les bases de données RDBMS sont basées sur la Les bases de données NoSQL sont opensource.
licence

NoSQL vs SQL Du point de vue d'un développeur


Lorsqu'il s'agit de traiter des applications Big Data, les développeurs utilisent pour gérer de
nouveaux types de données sans modifier les structures de données d'origine tout en les stockant
dans les bases de données. La plupart de ces données sont semi-structurées ou non structurées. Par
conséquent, les développeurs recherchent toujours la flexibilité pour mieux adapter les données
dans les bases de données.

Les bases de données relationnelles basées sur les schémas ont la lacune car elles conviennent mal
aux données semi-structurées ou non structurées et ne peuvent pas facilement intégrer de
nouveaux types de données. NoSQL comble ces lacunes à mesure que son modèle de données
cartographie mieux les besoins. Considérons NoSQL vs SQL du point de vue d'un développeur.

NoSQL est un meilleur ajustement pour les applications Big Data


Nous pouvons considérer le Big Data sous deux angles.

Données opérationnelles - Il s'agit principalement de données en direct en ligne qui sont


stockées dans des bases de données opérationnelles. Par exemple, les données de réservation de
vols. Cela contient de grands ensembles de données.

Données analytiques - Il s'agit d'une grande quantité de données pour recueillir des informations à
partir de celui-ci. Par exemple, les données sur les médias sociaux pour l'analyse du marché.

Par conséquent, l'essence principale du stockage de données volumineuses est accompagnée d'une
base de données opérationnelle que la base de données NoSQL peut gérer de manière plus
performante.
NoSQL est critique pour l'évolutivité

L'évolutivité avec les bases de données relationnelles est livré avec des améliorations matérielles
qui sont l'affaire coûteuse. Les bases de données relationnelles sont centralisées et suivent les
technologies de partage-tout.

D'autre part, les bases de données NoSQL sont distribuées dans la nature et suivent la technologie
d'échelle. L'évolutivité est assurée par une architecture de cluster basée sur les nœuds qui peut gérer
la charge à la volée, ce qui est une exigence clé dans l'application Big Data.

NoSQL est essentiel pour les applications Big Data flexibles


La flexibilité est une préoccupation sérieuse lorsque vous avez affaire à un grand ensemble de
données en temps réel. Surtout dans un modèle de processus où les applications ont besoin d'un flux
de données constant et plus rapide dans un volume élevé. NoSQL vs. SQL devient ici un point de
se rapporter car ils suivent des modèles de données entièrement différents.

Dans le cas d'une base de données relationnelle, les tables interdépendantes sont maintenues avec
des lignes et des colonnes. Ces tableaux se référent les uns les autres à l'aide de clés étrangères. Par
conséquent, pour joindre ou exécuter des informations de requête est utilisé pour recueillir à partir
de différentes tables. Ces informations sont ensuite combinées et produites en conséquence. Dans
les structures d'entreprise actuelles, ces tables interdépendantes peuvent être des centaines!
Maintenant, pour le faible volume de données traitant ces requêtes complexes, peut être gérable.
Cependant, il aurait une faible vitesse. Mais pour les volumes massifs de données et la base de
données relationnelle de vitesse proche en temps réel n'est pas la réponse.

NoSQL offre à l'utilisateur la flexibilité requise car il est vraiment non relationnel et documentaire,
et stocke des données en utilisant le format JSON. Il s'agit d'un modèle d'objet document. Dans ce
modèle, la duplication peut être un problème, mais la flexibilité n'est pas compromise avec le
stockage illimité.