Frage

Ich weiß, es gibt drei verschiedene, beliebte Arten von Nicht-SQL-Datenbanken.

  • Schlüssel / Wert: Redis, Tokyo Cabinet, Memcached
  • ColumnFamily: Cassandra, HBase
  • Dokument: MongoDB, CouchDB

Ich habe darüber lange Blogs lesen, ohne so viel zu verstehen.

Ich weiß, relationale Datenbanken und erhalten den Dreh um dokumentenbasierte Datenbanken wie MongoDB / CouchDB.

Kann mir jemand sagen, was die großen Unterschiede zwischen diesem und den 2 ehemaligen auf der Liste?

War es hilfreich?

Lösung

Die wichtigsten Unterschiede sind das Datenmodell und die Abfragefunktionen.

Key-Wert speichert

Der erste Typ ist sehr einfach und wahrscheinlich braucht keine weitere Erklärung.

Datenmodell: mehr als Schlüsselwert speichert

Auch wenn es einige Diskussionen auf der korrekte Name für Datenbanken wie Cassandra, würde Ich mag sie nennen Spalte Familienhäuser . Obwohl Schlüssel-Wert-Paare ein wesentlicher Bestandteil des Cassandra sind, ist es nicht nur darauf beschränkt. Es ermöglicht Ihnen, Nest Schlüssel-Wert-Paare, so dass eine Taste, um mehr Unter Schlüssel-Wert-Paaren beziehen könnte.

Sie können nicht verschachtelt Schlüssel-Wert-Paare auf unbestimmte Zeit though. Sie sind auf drei Ebenen (Spalte Familien) oder vier Ebenen der Verschachtelung (Super-Säule Familien) begrenzt. Falls der Begriff Spalte Familie nicht eine Glocke läuten, finden Sie in der JSON-Objekte . Sie können als verschachtelte Schlüssel-Wert-Paare dieser Objekte denken. Im Gegensatz zu Cassandra, können Sie nisten Schlüssel-Wert-Paare so viel wie Sie wollen. JSON unterstützt auch Arrays und versteht verschiedene Datentypen wie Strings, Zahlen und Boolesche Werte.

Querying

Ich glaube, Spalte Familienhäuser können nur von Schlüsseln abgefragt werden, oder durch das Schreiben Funktionen Karten reduzieren. Sie können nicht die Werte abfragen, wie würden Sie in einer SQL-Datenbank. Wenn Ihre Anwendung benötigt komplexere Abfragen, wird Ihre Anwendung zu erstellen und zu pflegen Indizes, um den Zugriff auf die gewünschten Daten.

Dokument Datenbanken unterstützen Abfragen von Schlüssel und karten reduzieren Funktionen als gut, aber auch ermöglichen es Ihnen grundlegende Abfragen von Wert, wie „Gib mir alle Benutzer mit mehr als 10 Beiträge“ zu tun. Dokumentendatenbanken sind flexibler auf diese Weise.

Andere Tipps

Ayende hat in Bezug auf eine schöne Erklärung angesichts der Differenz zwischen Schlüsselwert und Dokumentendatenbank:

  

Ein Dokument Datenbank ist in seinem Kern ein Schlüssel / Wert-Shop mit einem großen   Ausnahme. Statt nur darin Flecken speichern, ein Dokument db   erfordert, dass die Datenspeicher in einem Format sein wird, dass die Datenbank   verstehen (das heißt JSON, XML etc.). In den meisten doc dbs, das bedeutet, dass wir   kann jetzt erlauben Abfragen auf die Dokumentdaten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top