MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Różnica między bazami danych opartymi na dokumentach a bazami danych opartymi na kluczu/wartości?

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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sterownik Mongo DB Java 3.x — grupowanie według zapytania

  2. MongoDB $sin

  3. Błąd podczas aktualizacji Mongodb z 3.2 do 3.6

  4. Transakcje Spring Data MongoDB

  5. Nowy sposób zarządzania bazami danych Open Source