I know there are three different, popular types of non-sql databases.
I have read long blogs about it without understanding so much.
I know relational databases and get the hang around document-based databases like MongoDB/CouchDB.
Could someone tell me what the major differences are between these and the 2 former on the list?
Основные различия заключаются в модели данных и возможностях запросов.
Первый тип очень прост и, вероятно, не требует дополнительных пояснений.
Хотя есть некоторые споры о правильном имени для баз данных, таких как Cassandra, я бы назвал их хранилищами семейств столбцов. . Хотя пары ключ-значение являются неотъемлемой частью Cassandra, она не ограничивается только этим. Он позволяет вкладывать пары ключ-значение, так что ключ может относиться к нескольким парам вложенный ключ-значение.
Вы не можете вкладывать пары ключ-значение бесконечно. Вы ограничены тремя уровнями (семейства столбцов) или четырьмя уровнями вложенности (семейства надстолбцов). В случае, если термин «семейство столбцов» не очень важен, см. Статью WTF is a SuperColumn , это хорошее объяснение модели данных Кассандры.
Базы данных документов , такие как CouchDB и MongoDB, хранят целые документы в форме объектов JSON . Вы можете думать об этих объектах как о вложенных парах "ключ-значение". В отличие от Cassandra, вы можете вкладывать пары ключ-значение столько, сколько захотите. JSON также поддерживает массивы и понимает различные типы данных, такие как строки, числа и логические значения.
Я считаю, что к хранилищам семейств столбцов можно обращаться только с помощью ключа или написания функций сокращения карты. Вы не можете запрашивать значения, как в базе данных SQL. Если вашему приложению требуются более сложные запросы, ваше приложение должно будет создать и поддерживать индексы, чтобы получить доступ к нужным данным.
Базы данных документов также поддерживают запросы по ключу и функции сокращения карты, но также позволяют выполнять базовые запросы по значению, например «Дайте мне всех пользователей с более чем 10 сообщениями». Таким образом, базы данных документов становятся более гибкими.