Maison  >  Article  >  base de données  >  Quelles sont les caractéristiques de la base de données nosql

Quelles sont les caractéristiques de la base de données nosql

青灯夜游
青灯夜游original
2022-11-28 19:43:4121030parcourir

Caractéristiques de nosql : 1. Évolutivité flexible ; nosql supprime les caractéristiques relationnelles des bases de données relationnelles, il n'y a aucune relation entre les données et peut être facilement étendue. 2. Modèle de données flexible ; NoSQL utilise des modèles non relationnels tels que la clé/valeur et la famille de colonnes, permettant de stocker différents types de données dans un seul élément de données. 3. NoSQL peut s'appuyer sur ses bonnes capacités d'expansion horizontale pour tirer pleinement parti de l'infrastructure de cloud computing et bien s'intégrer dans l'environnement de cloud computing. 4. Nosql a des performances de lecture et d'écriture très élevées, en particulier lorsqu'il s'agit de grandes quantités de données. 5. Haute disponibilité.

Quelles sont les caractéristiques de la base de données nosql

L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.

Introduction à NoSQL

NoSQL est une méthode de conception de système de gestion de bases de données qui est différente des bases de données relationnelles. Il s'agit d'un terme général désignant les bases de données non relationnelles. Le modèle de données qu'il utilise n'est pas le modèle relationnel de. bases de données relationnelles traditionnelles, il s'agit plutôt d'un modèle non relationnel comme clé/valeur, famille de colonnes, document, etc. Les bases de données NoSQL n'ont pas de structure de table fixe, il n'y a généralement pas d'opérations de jointure et elles ne respectent pas strictement les contraintes ACID. Par conséquent, par rapport aux bases de données relationnelles, NoSQL présente une évolutivité horizontale flexible et peut prendre en charge un stockage massif de données.

Qu'est-ce que l'ACID ?

  • Atomicité des transactions(Atomicité) : signifie qu'une transaction est entièrement exécutée ou non exécutée, c'est à dire Une transaction ne peut pas être exécutée seulement à mi-chemin puis s'arrêter. Par exemple, si vous retirez de l'argent à un guichet automatique, cette transaction peut être divisée en deux étapes : 1glissez la carte, 2payez l'argent. Il est impossible de glisser la carte mais l'argent ne sort pas. Ces deux étapes doivent être réalisées en même temps ou ne pas être réalisées du tout.
  • Cohérence de la transaction(Cohérence) : fait référence à la cohérence des données dans la base de données qui n'est pas modifiée par le fonctionnement de la transaction. Par exemple, la contrainte d'intégrité a+b=10, et une transaction change a, alors b devrait également changer en conséquence.
  • Indépendance(Isolation) : L'indépendance des transactions est également appelée isolement, ce qui signifie que deux ou plusieurs transactions ne seront pas exécutées de manière entrelacée. Parce que cela peut entraîner une incohérence des données.
  • Durability(Durability): La durabilité d'une transaction signifie qu'une fois la transaction exécutée avec succès, les modifications apportées par la transaction à la base de données sont stockées en permanence dans la base de données . Pas de restauration sans raison
Caractéristiques de la base de données NoSQL

(1) Évolutivité flexible

Base de données relationnelle traditionnelle grâce à sa propre conception Grâce au mécanisme , il est généralement difficile de réaliser une « expansion horizontale ». Face à une augmentation à grande échelle de la charge de la base de données, il est souvent nécessaire de mettre à niveau le matériel pour réaliser une « expansion verticale ».

NoSQLLa base de données a été conçue à l'origine pour répondre aux besoins d'"expansion horizontale", elle est donc intrinsèquement dotée de bonnes capacités d'expansion horizontale.

(2)Modèle de données flexible

Les bases de données relationnelles ont des définitions standardisées et respectent diverses contraintes strictes. Bien que cette approche garantisse les exigences de cohérence des données du système d'entreprise, le modèle de données trop rigide signifie également qu'il ne peut pas répondre aux divers besoins commerciaux émergents. En revanche, les bases de données NoSQLutilisent des modèles non relationnels tels que des clés/valeurs, des familles de colonnes, etc., permettant de stocker différents types de données dans un seul élément de données.

(3) est étroitement intégré au cloud computing

Le cloud computing a de bonnes capacités d'expansion horizontale et peut être librement étendu en fonction de l'utilisation des ressources, et diverses ressources peuvent être dynamiquement Ajoutez ou quittez, les bases de données NoSQL peuvent s'appuyer sur leurs bonnes capacités d'expansion horizontale pour exploiter pleinement l'infrastructure de cloud computing, intégrer les personnes dans les environnements de cloud computing et créer des services de bases de données cloud basés sur NoSQL.

(4) Grand volume de données, hautes performances

La base de données nosql a des performances de lecture et d'écriture très élevées, en particulier sous un grand volume de données, elle fonctionne également très bien, principalement grâce à la non-relation, la structure de la base de données est simple.

Habituellement, nosql utilise Query Cache.

Le cache de NoSQL est un cache de niveau enregistrement, un cache à granularité fine, donc de cet aspect, les performances de NoSQL sont beaucoup plus élevées.

(5) Haute disponibilité

La haute disponibilité est également une fonctionnalité évidente de nosql. Nosql peut facilement implémenter une architecture à haute disponibilité sans affecter les performances. Les exemples typiques incluent : Cassandra, le modèle HBase, la haute disponibilité peut également être obtenue via le. modèle.

La raison de l'essor de NoSQL

1, les bases de données relationnelles ne peuvent plus répondre aux besoins du Web2.0. Se manifeste principalement sous les aspects suivants :

  • (1) ne peut pas répondre aux besoins de gestion des données massives

  • Pour les sites ci-dessus , bientôt ça pourra générer plus de 1 milliard enregistrements Pour les bases de données relationnelles, il est extrêmement inefficace d'effectuer des requêtes SQL dans une table avec 1 milliard enregistrements.

  • (2) ne peut pas répondre à la demande de haute concurrence de données

  • ( 3) Impossible de répondre à une évolutivité élevée et des exigences de haute disponibilité

2, Les fonctionnalités clés des bases de données relationnelles sont devenues "de mauvais goût" à l'ère du Web 2.0

Les fonctionnalités clés des bases de données relationnelles incluent des mécanismes de transaction complets et mécanisme de requête efficace. Cependant, les deux fonctionnalités clés dont les bases de données relationnelles sont fières sont devenues inutiles à l'ère du Web2.0, principalement dans les aspects suivants :

(1) Les systèmes de sites Web Web 2.0 ne fonctionnent généralement pas avec une base de données stricte. transactions

Pour de nombreux sites Web 2.0, les transactions de bases de données ne sont plus si importantes. Les transactions de base de données disposent généralement d'un mécanisme de mise en œuvre complexe pour garantir la cohérence de la base de données, ce qui nécessite une surcharge système importante. Pour les sites Web Web 2.0 contenant un grand nombre de requêtes fréquentes de lecture et d'écriture en temps réel, le coût de mise en œuvre des transactions est insupportable.

(2)Le Web 2.0 ne nécessite pas de lecture et d'écriture strictes en temps réel

Pour les bases de données relationnelles, une fois qu'un enregistrement de données est inséré avec succès dans la base de données, il peut être interrogé immédiatement.

Pour le Web 2.0, il n'existe pas de telles exigences de lecture et d'écriture en temps réel.

(3) Le Web 2.0 ne contient généralement pas un grand nombre de requêtes SQL complexes

Les requêtes SQL complexes contiennent généralement des opérations de jointure multi-tables. Cependant, les sites Web 2.0 ont été conçus pour minimiser, voire éviter, de telles opérations et n'utilisent généralement que la requête de clé primaire d'une seule table. Par conséquent, le mécanisme d'optimisation des requêtes de la base de données relationnelle ne peut pas faire de différence dans le Web 2.0.

Comparaison de NoSQL et bases de données relationnelles

SGBDR : Base de données relationnelle

Quelles sont les caractéristiques de la base de données nosql

Quelles sont les caractéristiques de la base de données nosql

Quelles sont les caractéristiques de la base de données nosql

Comparaison de NoSQL et bases de données relationnelles Résumé :

( 1) Base de données relationnelle

Avantages : Elle est basée sur la théorie complète de l'algèbre relationnelle, a des normes strictes, prend en charge les transactions ACIDquatre propriétés et peut être réalisée avec l'aide du mécanisme d'indexation requête efficace, technologie mature, support technique d'entreprises professionnelles

Inconvénients  : mauvaise évolutivité, incapable de mieux prendre en charge le stockage massif de données, le modèle de données est trop rigide et ne peut pas être pris en charge eh bien, l'application Web2.0, le mécanisme de transaction affecte les performances globales du système, etc. base de données

Avantages : Peut prendre en charge le stockage de données à très grande échelle, un modèle de données flexible peut bien prendre en charge les applications Web2.0, possède de fortes capacités d'expansion horizontale, etc. : Manque de théorie mathématique de base, les performances des requêtes complexes ne sont pas élevées, la plupart d'entre elles ne peuvent pas atteindre une forte cohérence des transactions, il est difficile d'atteindre l'intégrité des données, la technologie n'est pas encore mature, il y a un manque de support technique de la part d'un professionnel équipe, et la maintenance est difficile, etc. (3) Les bases de données relationnelles et NoSQLLes bases de données ont leurs propres avantages et inconvénients, et elles ne peuvent pas se remplacer

Scénarios d'application de bases de données relationnelles : Les systèmes commerciaux clés dans les domaines des télécommunications, de la banque et d'autres domaines doivent garantir une forte cohérence des transactionsNoSQLscénarios d'application de base de données

 : sociétés Internet et activités non critiques des entreprises traditionnelles (telles que l'analyse de données)

adopter une architecture hybride

  • Cas : Amazon utilise différents types de bases de données pour prendre en charge ses applications de commerce électronique
  • Pour les données temporaires telles que le "panier", il sera plus efficace d'utiliser le stockage clé-valeur
  • Produits actuels et Les informations de commande peuvent être stockées dans des bases de données relationnelles

Quatre principaux types de NoSQL

NoSQLBien qu'il existe de nombreuses bases de données, en résumé, une base de données NoSQL typique comprend généralement clés Valeur base de données , base de données de familles de colonnes , base de données de documents et base de données de graphiques

1. Base de données clé-valeur

-base de données de valeurs (base de données clé-valeur ) Il y a une Clé spécifique et un pointeur pointant vers une Valeur spécifique dans le tableau. La clé peut être utilisée pour localiser une valeur, c'est-à-dire pour stocker et récupérer une valeur spécifique. La valeur est transparente et invisible pour la base de données. La valeur ne peut pas être indexée ou interrogée et ne peut être interrogée que via la clé. La valeur peut être utilisée pour stocker tout type de données, notamment des entiers, des caractères, des tableaux, des objets, etc.

Scénario d'application : Une application orientée session (telle que Web application) démarre une session lorsque l'utilisateur se connecte et la maintient active jusqu'à ce que l'utilisateur se déconnecte ou que la session expire. Pendant ce temps, l'application stocke toutes les données liées à la session dans la mémoire principale ou dans une base de données. Les données de session peuvent inclure des informations de profil utilisateur, des messages, des données et thèmes de personnalisation, des suggestions, des promotions ciblées et des remises. Chaque session utilisateur possède un identifiant unique. Les données de session ne peuvent pas être interrogées sur une clé autre que la clé primaire, de sorte que les magasins clé-valeur rapides sont mieux adaptés aux données de session. En général, les bases de données clé-valeur peuvent offrir moins de surcharge par page que les bases de données relationnelles.

Quelles sont les caractéristiques de la base de données nosql

2. Base de données de familles de colonnes

Quelles sont les caractéristiques de la base de données nosql

3. 4. Base de données graphiques

Quelles sont les caractéristiques de la base de données nosql

5. Analyse comparative de différents types de bases de données

Quelles sont les caractéristiques de la base de données nosql

  • MySQL : a été produit plus tôt et a mûri avec la tendance LAMP. Bien qu'il n'y ait pas d'améliorations majeures, la base de données la plus utilisée sur l'Internet émergent
  • MongoDB : est une nouveauté, offrant un modèle de données plus flexible, une soumission asynchrone, une indexation de localisation géographique, etc. Fonction
  • HBase : est un soldat éléphant qui "intimide les autres". S'appuyant sur l'environnement écologique de Hadoop, il peut avoir une bonne évolutivité. Mais tout comme un éléphant soldat, l'utilisateur doit élever un éléphant (Hadoop), pour le conduire
  • Redis : est le représentant du stockage clé-valeur, avec la fonction la plus simple. Fournir un stockage de données aléatoire. Tout comme un bâton, il n’y a aucune structure supplémentaire. Mais c’est précisément pour cette raison que son évolutivité est particulièrement bonne. Tout comme le gourdin doré dans la main de Wukong, le grand peut briser le ciel, et le petit peut se rétrécir en une aiguille est :

C

(

Cohérence. ): La cohérence signifie que toute opération de lecture peut toujours lire le résultat de l'opération d'écriture précédemment effectuée, c'est-à-dire que dans un environnement distribué, les données de plusieurs points sont cohérentes

    , ou en d'autres termes, tous les nœuds ont le mêmes données en même temps
  • A:(Disponibilité ) : La disponibilité fait référence à l'acquisition rapide des données et à la capacité de renvoyer les résultats de l'opération dans un certain délai temps
  • , garantissant que chaque demande reçoit une réponse quel que soit le succès ou l'échec
  • P (Tolérance de partition réseau) : La tolérance de partition fait référence à la séparation du système lorsqu'une partition réseau se produit (c'est-à-dire que certains nœuds du système ne peuvent pas communiquer avec d'autres nœuds). Il peut également fonctionner normalement
  • , c'est-à-dire que la perte ou la défaillance de toute information dans le système entraînera n'affecte pas le fonctionnement continu du système
  • . CAP La théorie nous dit qu'un système distribué ne peut pas répondre aux trois exigences de cohérence, de disponibilité et de tolérance de partition en même temps. Il ne peut en satisfaire que deux à la fois. Vous ne pouvez pas avoir le gâteau et le manger en même temps. » Obtenez les deux. » Lorsqu'il s'agit de CAP, il y a quelques choix évidents :
    • CA : Autrement dit, en mettant l'accent sur la cohérence (C) et la disponibilité (A), en abandonnant la tolérance de partition (P), le moyen le plus simple est de Tous le contenu lié à la transaction est placé sur la même machine. Évidemment, cette approche affectera sérieusement l’évolutivité du système. Les bases de données relationnelles traditionnelles (MySQL, SQL Server et PostgreSQL) adoptent toutes ce principe de conception, leur évolutivité est donc relativement faible

    • CP  : Autrement dit, mettant l'accent sur la cohérence (C) et la tolérance de partition (P), abandonnant la disponibilité (A), lorsqu'une partition réseau se produit, le service concerné doit attendre Les données sont cohérentes, donc les services ne peut pas être fourni au monde extérieur pendant la période d'attente

    • AP : c'est-à-dire mettre l'accent sur la disponibilité (A) et la tolérance de partition (P), renoncer à la cohérence ( C), permettant au système de renvoyer des données incohérentes

    BASE

    J'ai mentionné ACID plus tôt, parlons maintenant de BASE( B basiquement Availble, Soft-state, Econsistance éventuelle)

    ACIDE

    BASE

    Atomicité(Atomicité)

    Basiquement disponible(B essentiellement Adisponible)

    Cohérence(Ccohérence)

    État doux/Affaires flexibles ( Sétat doux)

    Isolation(Isolation)

    Cohérence éventuelle(E consistance éventuelle)

    La base le sens de la persistance(Durable)


    BASE est fondamentalement disponible ( asiquement Availble ) , état mou (Soft-state) et consistance éventuelle (Econsistance éventuelle) :

    Basiquement disponible

    Fondamentalement disponible, cela signifie que lorsqu'une partie d'un système distribué a un problème et devient indisponible, les autres parties peuvent toujours être utilisées normalement, ce qui signifie que la situation de défaillance de partition peut se produire. état dur)". Lorsque les données enregistrées dans la base de données sont dans un « état dur », la cohérence des données peut être garantie, c'est-à-dire que les données sont toujours correctes. « État doux » signifie que l'état peut être désynchronisé pendant un certain temps, avec une certaine hystérésis

    Cohérence éventuelle

    Les types de cohérence incluent une cohérence forte et une cohérence faible. La principale différence entre. les deux sont que cela dépend si les opérations ultérieures peuvent obtenir les données les plus récentes dans le cadre d'opérations d'accès aux données hautement concurrentes. Pour une forte cohérence, après l'exécution d'une opération de mise à jour, d'autres opérations de lecture ultérieures peuvent garantir que les dernières données après la mise à jour sont lues. À l'inverse, s'il ne peut pas être garanti que les accès ultérieurs lisent les dernières données après la mise à jour, il s'agit alors d'une cohérence faible. La cohérence finale n'est qu'un cas particulier de faible cohérence, qui permet aux opérations d'accès ultérieures de ne pas pouvoir temporairement lire les données mises à jour, mais après un certain temps, les données mises à jour doivent finalement être lues. Pour plus de connaissances liées à la programmation, veuillez visiter : Enseignement de la programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn