Główne różnice to model danych i możliwości zapytań.
Sklepy klucz-wartość
Pierwszy typ jest bardzo prosty i prawdopodobnie nie wymaga dalszych wyjaśnień.
Model danych:więcej niż sklepy klucz-wartość
Chociaż trwa debata na temat prawidłowej nazwy baz danych, takich jak Cassandra, chciałbym nazwać je sklepami z kolumnami rodzinnymi . Chociaż pary klucz-wartość są istotną częścią Cassandry, nie ogranicza się to tylko do tego. Umożliwia zagnieżdżanie par klucz-wartość, dzięki czemu klucz może odwoływać się do wielu par podrzędnych klucz-wartość.
Nie możesz jednak zagnieżdżać par klucz-wartość w nieskończoność. Jesteś ograniczony do trzech poziomów (rodziny kolumn) lub czterech poziomów zagnieżdżenia (rodziny nadkolumn). W przypadku, gdy termin rodzina kolumn nie brzmi jak dzwonek, zobacz, że WTF jest artykułem w superkolumnie, jest to dobre wyjaśnienie modelu danych Cassandry.
Bazy danych dokumentów , takie jak CouchDB i MongoDB przechowują całe dokumenty w postaci obiektów JSON. Możesz myśleć o tych obiektach jako o zagnieżdżonych parach klucz-wartość. W przeciwieństwie do Cassandry pary klucz-wartość możesz zagnieżdżać tak bardzo, jak chcesz. JSON obsługuje również tablice i rozumie różne typy danych, takie jak ciągi, liczby i wartości logiczne.
Pytania
Uważam, że do sklepów z rodziny kolumn można przeszukiwać tylko klucze lub pisząc funkcje map-reduce. Nie można wyszukiwać wartości, tak jak w przypadku bazy danych SQL. Jeśli Twoja aplikacja wymaga bardziej złożonych zapytań, Twoja aplikacja będzie musiała tworzyć i utrzymywać indeksy w celu uzyskania dostępu do żądanych danych.
Bazy danych dokumentów obsługują również zapytania według funkcji klucza i funkcji map-reduce, ale także umożliwiają wykonywanie podstawowych zapytań według wartości, takich jak „Daj mi wszystkim użytkownikom z więcej niż 10 postami”. W ten sposób bazy danych dokumentów są bardziej elastyczne.