94 votes

Différence entre les bases de données documentaires et les bases de données clé / valeur?

Je sais qu'il existe trois types de bases de données non SQL populaires.

  • Clé / Valeur: Redis, Tokyo Cabinet, Memcached
  • ColumnFamily: Cassandra, HBase
  • Document: MongoDB, CouchDB

J'ai lu de longs blogs à ce sujet sans trop comprendre.

Je connais des bases de données relationnelles et suis au courant des bases de données basées sur des documents telles que MongoDB / CouchDB.

Quelqu'un pourrait-il me dire quelles sont les principales différences entre ces deux éléments et les 2 précédents de la liste?

70voto

Niels van der Rest Points 11802

Les principales différences sont le modèle de données et les capacités d'interrogation.

Clé-valeur des magasins

Le premier type est très simple et n'a probablement pas besoin de plus d'explication.

Modèle de données: plus de clé-valeur des magasins

Bien qu'il existe certains debat sur le nom correct pour les bases de données telles que Cassandra, je tiens à appeler de la colonne de la famille magasins. Bien que les paires clé-valeur sont une partie essentielle de Cassandra, il n'est pas limité à cela. Il vous permet d'imbriquer des paires clé-valeur, donc une clé peut se référer à plusieurs sous-paires clé-valeur.

Vous ne pouvez pas imbriquer les paires clé-valeur indéfiniment. Vos limité à trois niveaux (des familles de la colonne) ou quatre niveaux d'imbrication (super-familles de la colonne). Dans le cas où le terme famille de colonne ne sonne pas une cloche, voir le WTF est un SuperColumn l'article, c'est une bonne explication de Cassandra modèle de données.

Document de bases de données, tels que CouchDB et MongoDB stocker l'ensemble des documents sous la forme d' objets JSON. Vous pouvez penser à ces objets imbriqués les paires clé-valeur. Contrairement à Cassandra, vous pouvez imbriquer des paires clé-valeur autant que vous le souhaitez. JSON prend également en charge les tableaux et comprend différents types de données, tels que des chaînes, des nombres et des valeurs booléennes.

L'interrogation

Je crois que la colonne de la famille magasins ne peut être interrogé par la clé, ou par écrit map-reduce fonctions. Vous ne pouvez pas interroger les valeurs comme vous le feriez dans une base de données SQL. Si votre application a besoin de plus de requêtes complexes, votre demande devra créer et maintenir des index pour l'accès aux données souhaitées.

Document de bases de données les requêtes d'aide par clé et la carte-réduire fonctions en tant que bien, mais vous permettent également d'effectuer des requêtes de base par valeur, comme "Donnez-moi tous les utilisateurs avec plus de 10 postes". Document de bases de données sont de plus de souplesse dans cette voie.

14voto

Ashraf Points 515

Ayende a donné une bonne explication concernant la différence entre la Valeur-Clé et le Document de base de données:

Un document de la base de données est, à la base, un magasin de clé/valeur avec une importante exception à la règle. Au lieu de simplement le stockage d'objets blob, un document db exige que les données vont être stockées dans un format que la base de données comprendre (c'est à dire JSON, XML, etc). Dans la plupart des doc dbs, cela signifie que nous pouvez maintenant autoriser les requêtes sur les données du document.

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