Documente Academic
Documente Profesional
Documente Cultură
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.
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.
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
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
Voyons tous :
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.
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,
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.
Neo4J, Infinite Graph, OrientDB, FlockDB sont des bases de données graphiques
populaires.
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
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 :
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.
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.
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 :
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.
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.
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
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.
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.
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é.