Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Magistratura_OTVETY_1.docx
Скачиваний:
14
Добавлен:
29.03.2016
Размер:
6.53 Mб
Скачать

Хранилище ключ-значение

Начнем наше рассмотрение с типа хранилища ключ-значение, так как это самое основное решение из семейства NoSQL. Этот тип БД работает с данными типа ключ-значение, например как словарь. Здесь нет места ни структуре, ни связям. После подключения к серверу (например Redis) приложение может задать ключ и его значение, а в последствии получать эти данныe по запросу.

Такие СУБД обычно используются для быстрого сохранения базовых данных, а иногда не таких уж и базовых, если подсчитать затраты процессора и памяти. Они, обычно, очень быстры, работоспособны или легко масштабируемы (хорошо использовать такие БД для хранения сессий, кеша, счётчиков посещений или просмотров и т.д.).

Заметка: когда дело касается компьютеров, словарь это особый тип данных. Он представляет собой массив коллекций с различными ключами и соответствующими им значениями.

Распределённое хранилище

По сути это следующий шаг после СУБД типа ключ-значение. Несмотря на довольно сложную для понимания сущность, эти базы данных отлично работают просто создавая коллекции из одного или нескольких пар ключ-значение, которые в сумме соответствуют одной записи.

В отличии от привычных таблиц в реляционных моделях, эти СУБД не требует предварительного описания структуры данных. Каждая запись состоит из одного или нескольких столбцов содержащих данные, а каждый столбец разных записей может хранить разные типы данных.

В целом, распределённое хранилище ни что иное как двумерный массив, где каждый ключ (запись) содержит одну или несколько пар ключ-значение привязанных к нему. Такая система позволяет хранить и использовать большие объемы неструктурированных данных. (одна запись с большим количество дополнительной информации) . Такие базы данных обычно используются, когда недостаточно простых пар ключ-значение, а хранить необходимо большой объем записей с различной информацией. Такие СУБД при соответствующем использовании могут быть очень производительными.

Документо-ориентированные хранилища

Такие NoSQL СУБД очень быстро захватили свой рынок. Они работают так же как и предыдущие системы, но они допускают гораздо большую вложенность и сложность структуры данных. (например, документ вложенный в документ, вложенный в документ). Документы снимают ограничения вложенности первого и второго уровней типа ключ-значение в распределённых хранилищах. В целом, можно описать сколь угодно сложную структуру данных как документ и сохранить в такой БД.

Несмотря на довольно большой функционал и способность доступа к данным по одному ключу, такие СУБД имеют ряд своих проблем. Например, при доступе к одному документу вы полностью получаете его в ответ на запрос, даже если вам необходимо какое-то одно поле, что не может не сказаться на производительности.

Базы данных на основе графов

На последок мы оставили самое интересное. БД на основе графов хранят данные в совсем другом виде. Они используют древовидные структуры с узлами и связями соединяющими их. Так же как и в математике, некоторые операции гораздо удобнее выполнять с такими данными благодаря связям между ними и их группировке (например, связи между людьми).

Такие базы данных часто используются в приложениях, где нужно иметь четко установленные связи. Например, когда вы регистрируетесь в какой либо социальной сети, хранить связи между вами и вашими друзьями хранить гораздо проще при использовании баз данных на основе графов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]