В отличии от SQL, у NoSQL СУБД много разных видов. Их знание может пригодиться на собеседовании. Давай разберемся, какие они бывают.
Документоориенторованные
Содержит структурированные документы, которые разбиваются по объектам, у которых можно получить значение каждого параметра. Обычно эти документы в формате JSON или XML. Примерно такие, как мы разбирали вчера. В основном они используются как совершенно обычные базы данных, в отличии от следующей категории.
Пример: MongoDB
{
"id": 123,
"firstname": "Ivan"
"secondname": "Ivanov"
"contract_number": 123456
"address": {
"street": "Nevskyi pr."
"home": 11
}
}
Ключ-значение
У них нет схемы данных как таковой, очень простая идея: есть какой-то ключ и привязанное к нему значение, без какой-то конкретной хитрой структуры. Как правило, такие базы используют для создания хэш-таблиц, а еще - для кеширования данных на лету. И есть такие базы, которые хранятся только в оперативной памяти, а значит - не подойдут для долгосрочного хранения данных.
Пример: Redis
Колоночное значение
Данные лежат в ячейках, сгруппированных в колонки, а не как у других - в строки данных, далее колонки объединяются в семейства, а семейства. В этих семействах может быть сколь угодно много колонок. Зачем так делать? Да просто ради скорости поиска данных.
Пример: HBase
Графы
Очень интересный и не похожий на остальные тип базы. Если данные получится структурировать в виде какой-то иерархии, то это будет древовидной структурой, если же четкой подчиненности не наблюдается, то это можно назвать графом. Вот именно таким образом данные в графовых СУБД и хранятся. Помнишь как в основном в голивудских фильмах про детективов на одной пробковой доске висит куча фоток и разных вырезок из газет? связанных друг с другом красной ниткой? Так вот это по сути оффлайновая такая графовая база данных
Это все виды, о которых я хотел поведать тебе. За сим я пока прикрываю тему баз данных. Если у тебя остались вопросы - не стесняйся, пиши прямо в комментах