Unterschied zwischen dokumentenbasierten und Schlüssel / Wert-basierten Datenbanken?
Ich weiß, es gibt drei verschiedene, beliebte Arten von nicht-sql-Datenbanken.
- Schlüssel - /Wert: Redis, Tokio Cabinet, Memcached
- ColumnFamily: Cassandra, HBase
- Dokument: MongoDB, CouchDB
Habe ich gelesen, lange bloggt, ohne Verständnis, so viel.
Ich weiß, relationalen Datenbanken und erhalten Sie das hängen, um Dokument-basierten Datenbanken wie MongoDB/CouchDB.
Könnte mir jemand sagen was die großen Unterschiede sind zwischen diesen und den 2 ehemaligen auf der Liste?
InformationsquelleAutor der Frage never_had_a_name | 2010-08-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die wichtigsten Unterschiede sind das Datenmodell und die Abfragefunktionen.
Key-value-stores
Die erste Art ist sehr einfach und wahrscheinlich braucht keine weitere Erklärung.
Daten Modell: mehr als nur key-value-stores
Obwohl es einige Debatte auf den richtigen Namen für Datenbanken wie Cassandra, würde ich Sie gerne nenne column family stores. Obwohl die Schlüssel-Wert-Paare sind ein wesentlicher Teil von Cassandra, es beschränkt sich nicht nur auf dass. Es ermöglicht Ihnen, nest Schlüssel-Wert-Paare, so ein Schlüssel könnte beziehen sich auf mehrere sub-Schlüssel-Wert-Paare.
Können nicht verschachtelt werden Schlüssel-Wert-Paare auf unbestimmte Zeit, obwohl. Sie sind beschränkt auf drei Ebenen (Spalte Familien) oder vier Niveaus der Verschachtelung (super-column-Familien). Im Fall der Begriff Spalte Familie nicht eine Glocke läuten, sehen die WTF ist ein SuperColumn Artikel, es ist eine gute Erklärung von Cassandra ' s Datenmodell.
Dokument-Datenbankenwie CouchDB und MongoDB speichern Sie komplette Dokumente in form von JSON-Objekte. Man kann sich diese Objekte als verschachtelte Schlüssel-Wert-Paaren. Im Gegensatz zu Cassandra, Sie können nest Schlüssel-Wert-Paare so viel wie Sie wollen. JSON unterstützt auch arrays und versteht, verschiedene Datentypen, wie strings, zahlen und Boolesche Werte.
Abfragen
Ich glaube column family stores können nur abgefragt werden, indem-Taste, oder durch das schreiben von map-und reduce-Funktionen. Sie können die Abfrage der Werte, wie Sie in einer SQL-Datenbank. Wenn Ihre Anwendung komplexer Abfragen, Ihre Anwendung wird zum erstellen und verwalten von Indizes, um den Zugriff auf die gewünschten Daten.
Dokument-Datenbanken support-Anfragen von key und map-und reduce-Funktionen als gut, aber auch ermöglichen es Ihnen, um einfache Abfragen an Wert, wie "Gib mir alle Benutzer mit mehr als 10 posts". Dokument-Datenbanken sind mehr flexibel auf diese Weise.
InformationsquelleAutor der Antwort Niels van der Rest
Ayende gegeben hat, eine schöne Erklärung über den Unterschied zwischen Schlüssel-Wert-und Dokumenten-Datenbank:
InformationsquelleAutor der Antwort Ashraf Alam