Antworten:
Ein Schlüsselwertspeicher bietet das einfachste Datenmodell und ist genau das, was der Name andeutet: Es ist ein Speichersystem, das durch einen Schlüssel indizierte Werte speichert. Sie können nur nach Schlüsseln abfragen, und die Werte sind undurchsichtig . Der Store weiß nichts über sie. Dies ermöglicht sehr schnelle Lese- und Schreibvorgänge (ein einfacher Festplattenzugriff), und ich sehe dieses Modell als eine Art nichtflüchtigen Cache (dh gut geeignet, wenn Sie schnelle Zugriffe per Schlüssel auf langlebige Daten benötigen).
Eine dokumentenorientierte Datenbank erweitert das vorherige Modell und Werte werden in einem strukturierten Format (ein Dokument, daher der Name) gespeichert, das die Datenbank verstehen kann. Ein Dokument kann beispielsweise ein Blog-Beitrag sein und die Kommentare und Tags werden denormalisiert gespeichert. Da die Daten transparent sind , kann der Speicher mehr Arbeit leisten (z. B. Indizierungsfelder des Dokuments), und Sie sind nicht auf die Abfrage nach Schlüsseln beschränkt. Wie ich bereits angedeutet habe, ermöglichen solche Datenbanken das Abrufen der Daten einer ganzen Seite mit einer einzigen Abfrage und eignen sich gut für inhaltsorientierte Anwendungen (weshalb große Websites wie Facebook oder Amazon sie mögen).
Andere Arten von NoSQL-Datenbanken umfassen spaltenorientierte Speicher , Diagrammdatenbanken und sogar Objektdatenbanken . Dies geht jedoch über die Frage hinaus.
Nun, ich habe NoSQL im letzten Monat selbst untersucht. Ich denke, es könnte allgemein so etwas wie gesagt werden
Eine dokumentenorientierte Datenbank oder ein Dokumentenspeicher dient zum Speichern, Abrufen und Verwalten dokumentenorientierter Informationen, bei denen es sich um halbstrukturierte Daten handelt. Der Schlüsselwertspeicher ist ein Erbe der dokumentenorientierten Datenbank. Der Unterschied liegt in der Art und Weise, wie die Daten verarbeitet werden. In einem Schlüsselwertspeicher werden die Daten als inhärent undurchlässig für die Datenbank angesehen, während ein dokumentorientiertes System auf der internen Struktur des Dokuments beruht, um Metadaten zu extrahieren, die das Datenbankmodul zur weiteren Optimierung verwendet.
Wenn wir uns mit dem Unterschied zwischen MOngoDb und Cassandra befassen. MongoDB verhält sich ähnlich wie eine relationale Datenbank. Das Datenmodell besteht aus einer Datenbank auf oberster Ebene, dann Sammlungen, die beispielsweise Tabellen in MySQL ähneln, und Dokumenten, die in der Sammlung enthalten sind, wie Zeilen in MySQL. Jedes Dokument hat ein Feld und einen Wert, wobei dies Spalten und Werten in MySQL ähnelt. Felder können einfache Schlüssel / Werte sein, z. B. {'name': 'David Mytton'}, aber sie können auch andere Dokumente enthalten, z. B. {'name': {'first': David, 'last': 'Mytton'}}. In Cassandra werden Dokumente als „Spalten“ bezeichnet, die eigentlich nur einen einzigen Schlüssel und Wert darstellen. zB {'Schlüssel': 'Name', 'Wert': 'David Mytton'}. Es gibt auch ein Zeitstempelfeld für die interne Replikation und Konsistenz. Der Wert kann ein einzelner Wert sein, kann aber auch eine andere „Spalte“ enthalten. Diese Spalten sind dann in Spaltenfamilien vorhanden, die Daten basierend auf einem bestimmten Wert in den Spalten sortieren, auf den durch einen Schlüssel verwiesen wird.
Auf der obersten Ebene gibt es jedoch einen Schlüsselbereich, der der MongoDB-Datenbank ähnelt.