Question

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

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

J'ai lu des blogs longs à ce sujet sans comprendre tant.

Je sais que les bases de données relationnelles et obtenir le blocage autour des bases de données basées sur des documents comme MongoDB / CouchDB.

Quelqu'un pourrait-il me dire quelles sont les principales différences se situent entre ceux-ci et les 2 premières sur la liste?

Était-ce utile?

La solution

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

stocke valeur clé

Le premier type est très simple et n'a probablement pas besoin d'autres explications.

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

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

Vous ne pouvez pas imbriquer paires valeur clé indéfiniment cependant. Vous êtes limité à trois niveaux (familles de colonnes) ou quatre niveaux d'imbrication (familles super-colonne). Dans le cas où la famille de la colonne à long terme ne sonne pas une cloche, voir le JSON objets . Vous pouvez penser à ces objets sous forme de paires imbriquées valeur clé. Contrairement à Cassandra, vous pouvez imbriquer paires valeur clé comme autant que vous voulez. JSON prend également en charge des tableaux et comprend différents types de données, tels que des chaînes, des nombres et des valeurs booléennes.

Interrogation

Je crois que les magasins colonne famille ne peuvent être interrogés par clé, ou en écrivant carte-réduire les fonctions. Vous ne pouvez pas interroger les valeurs comme vous le feriez dans une base de données SQL. Si vos besoins d'application des requêtes plus complexes, votre application devra créer et gérer des index afin d'accéder aux données souhaitées.

bases de données de documents prennent en charge les requêtes par clé et carte-fonctions réduisent ainsi, mais aussi vous permettent de faire des requêtes de base en termes de valeur, tels que « Donnez-moi tous les utilisateurs avec plus de 10 messages ». bases de données de documents sont plus souples de cette façon.

Autres conseils

Ayende a donné une belle explication au sujet de la différence entre valeur-clé et la base de données du document:

  

Une base de données de document est, à sa base, d'un magasin clé / valeur avec une grande   exception. Au lieu de simplement stocker tout blob en elle, un document db   exige que les données seront stockées dans un format que la base de données peut   comprendre (à savoir JSON, XML, etc.). Dans la plupart des doc dbs, cela signifie que nous   peut maintenant allow requêtes sur les données du document.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top