136 votes

Que signifie "orienté document" par rapport à "clé-valeur" lorsqu'on parle de MongoDB par rapport à Cassandra ?

Qu'est-ce qu'une option NoSQL basée sur des documents vous apporte de plus qu'un magasin KV, et vice-versa ?

0 votes

179voto

Pascal Thivent Points 295221

A magasin de valeurs clés constitue le modèle de données le plus simple possible et correspond exactement à ce que son nom suggère : il s'agit d'un système de stockage de valeurs indexées par une clé. L'interrogation est limitée à la clé et les valeurs sont opaque le magasin ne sait pas n'importe quoi à leur sujet. Cela permet des opérations de lecture et d'écriture très rapides (un simple accès au disque) et je considère ce modèle comme une sorte de cache non volatile (c'est-à-dire qu'il est bien adapté si vous avez besoin d'accès rapides par clé à des données de longue durée).

A base de données orientée documents prolonge le modèle précédent et les valeurs sont stockées dans un structuré (un document, d'où son nom) que la base de données peut comprendre. Par exemple, un document peut être un article de blog y les commentaires y les étiquettes stockées de manière dénormalisée. Puisque les données sont transparent Le magasin peut faire plus de travail (comme l'indexation des champs du document) et vous n'êtes pas limité à l'interrogation par clé. Comme je l'ai laissé entendre, ces bases de données permettent de récupérer les données d'une page entière en une seule requête et sont bien adaptées aux applications orientées vers le contenu (c'est pourquoi les grands sites comme Facebook ou Amazon les apprécient).

Les autres types de bases de données NoSQL sont les suivants magasins à colonnes , bases de données graphiques et même bases de données d'objets . Mais cela va au-delà de la question.

Voir aussi

2 votes

Les mémoires clés-valeurs n'ont pas besoin d'un accès au disque et les qualifier de non volatiles est incorrect dans certaines implémentations. Vous pouvez créer un magasin de valeurs clés en mémoire, sans écriture ni retour sur un support de stockage non volatile. Le fait d'appeler les données "à longue durée de vie" est également trompeur, car la durée de vie des données n'a rien à voir avec la manière dont vous les récupérez.

1 votes

Cette définition peut s'avérer quelque peu erronée. Fondamentalement, il s'agit dans les deux cas de magasins clé-valeur uniquement. Dans un cas, la "valeur" est opaque - la base de données ne sait pas ce que l'on met dans la valeur - on ne peut interroger que par la clé. Dans l'autre cas ("document"), la base de données comprend un peu mieux ce qui est mis dans la valeur et des index, etc. peuvent être générés sur la base de certains attributs de la valeur et interrogés ultérieurement

22voto

Niels Wind Points 175

Depuis un mois environ, je me suis penché sur la question de NoSQL. Je pense que l'on pourrait dire quelque chose comme

  • Les magasins KV ne connaissent pas la valeur contenu réellement stocké pour une clé
  • L'utilisation de documents vous permet de définir le secondaire secondaires dans le contenu de la valeur, car la base de données connaît la structure du document (par exemple, les balises d'un article de blog).
  • Les solutions NoSQL présentent chacune des caractéristiques spécifiques qu'il convient de prendre en considération, telles que
    • Types de données spéciaux dans un magasin KV (par exemple, ensembles avec pop/push gauche/droite comme dans redis)
    • le cluster de montée/descente d'échelle facile comme le dit riak (je ne l'ai pas encore essayé ...)
    • magasin de données enfichable comme dans Voldemort
    • configuration web intégrée et support des applications web comme dans CouchDB / couchapp

3voto

Big Data Guy Points 323

Une base de données orientée documents, ou magasin de documents, permet de stocker, d'extraire et de gérer des informations orientées documents, qui sont des données semi-structurées Le magasin de clés et de valeurs est un héritage de la base de données orientée documents. La différence réside dans la manière dont les données sont traitées ; dans un magasin de valeurs clés, les données sont considérées comme intrinsèquement opaques pour la base de données, alors qu'un système orienté document s'appuie sur la structure interne du document afin d'extraire des métadonnées que le moteur de la base de données utilise pour une optimisation ultérieure.

Si nous parlons de la différence entre MOngoDb et Cassandra. MongoDB se comporte comme une base de données relationnelle. Son modèle de données consiste en une base de données au niveau supérieur, puis des collections qui sont comme des tables dans MySQL (par exemple) et enfin des documents qui sont contenus dans la collection, comme des lignes dans MySQL. Chaque document possède un champ et une valeur qui sont similaires aux colonnes et aux valeurs de MySQL. Les champs peuvent être de simples clés/valeurs, par exemple { 'name' : 'David Mytton' }, mais ils peuvent également contenir d'autres documents, par exemple { 'name' : { 'first' : David, 'last' : 'Mytton' }. }. Dans Cassandra, les documents sont connus sous le nom de "colonnes", qui ne sont en fait qu'une seule clé et une seule valeur, par exemple { 'key' : 'name', 'value' : 'David Mytton' }. Il y a également un champ d'horodatage qui sert à la réplication et à la cohérence internes. La valeur peut être une valeur unique mais peut également contenir une autre "colonne". Ces colonnes existent alors dans des familles de colonnes qui ordonnent les données sur la base d'une valeur spécifique dans les colonnes, référencée par une clé.

Mais , Au niveau supérieur, il y a un espace-clé, qui est similaire à la base de données MongoDB.

1voto

nIshan Q Points 1
  1. Dans le modèle de base de données clé-valeur, les utilisateurs peuvent choisir la nature des clés, alors que les identificateurs de documents dans le modèle de base de données documentaires sont les mêmes. dans le modèle documentaire sont généralement générés par le système.

  2. Les paires clé-valeur dans le modèle de base de données clé-valeur ne peuvent pas être regroupées, alors que dans un modèle de base de données dans une base de données documentaire, nous pouvons regrouper les paires clé-valeur dans des documents distincts. documents ; en outre, certaines formes de bases de données documentaires nous permettent même de regrouper ces documents, à savoir dans ce que l'on appelle des "collections" ou des "groupes" de documents. en ce que l'on appelle des "collections" ou des "domaines".

  3. Alors que les documents d'une base de données documentaire ont une structure interne qui est clairement clairement définie (et qui peut donc être exploitée par le SGBD, par exemple pour créer des index), il n'en va pas de même pour les documents de la base de données documentaire. n'est pas le cas pour les valeurs d'une base de données clé-valeur, où toute structure interne structure interne possible de ces valeurs est opaque du point de vue du SGBD.

  4. Dans le modèle clé-valeur, l'accès à plusieurs entrées de la base de données (paires clé-valeur, dans ce cas) nécessite des requêtes distinctes. Dans le modèle de document, en revanche, plusieurs entrées de base de données (documents, dans ce cas) doivent être demandées séparément. (documents, dans ce cas) peuvent être récupérées en une seule demande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X