Site icon 8HOST.COM

Модели и системы управления базами данных NoSQL

Базы данных NoSQL предлагают некоторые функции, которые отсутствуют в традиционных реляционных системах управления базами данных; например, они позволяют хранить простые пары ключ-значение для кэширования в течение короткого периода времени, сохранять неструктурированные коллекции данных, с которыми нельзя работать с помощью языка структурированных запросов SQL, и т.п.

В данной статье речь пойдёт о популярных СУБД NoSQL, их функциях и целях.

Системы управления базами данных

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

Примечание: Чтобы узнать больше о системах управления базами данных, читайте эту статью.

Системы управления базами данных NoSQL

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

Термин NoSQL появился более десяти лет назад как название для ещё одной реляционной БД. Однако эта БД основана на другой идее: она отказывается от использования стандартизированного SQL. В последующие годы появляются и другие подобные базы данных, и в результате они объединились под названием «нереляционные базы данных», или NoSQL.

По своей конструкции базы данных NoSQL не основаны ни на одной модели (в отличие от РСУБД, которые основаны на реляционной модели). Каждая база данных, в зависимости от целей и функциональности, использует свою модель.

Существует несколько различных операционных моделей и систем для баз данных NoSQL:

Рассмотрим эти модели подробнее

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

Такие СУБД можно считать самой базовой реализацией NoSQL.

Они работают путём сопоставления ключей со значениями (как в словаре), между которыми нет ни структуры, ни отношений. Подключившись к серверу базы данных, (например, Redis), приложение может определить ключ (например, the_answer_to_life) и установить его значение (например, 42)ю позже эту пару можно извлечь посредством ключа.

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

Хранилища колонок

Эти хранилища основаны на подходе «ключ-значение», но расширяют и усложняют его.

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

В целом, хранилища семейств колонок NoSQL являются двумерными массивами, причем к каждому ключу (т.е. строке, записи) прикреплена одна или несколько пар «ключ-значение». Эти системы управления позволяют хранить и использовать очень большие объёмы неструктурированных данных.

Как правило, такие БД используются в случаях, когда обычного хранилища «ключ-значение» недостаточно и необходимо хранить очень большие объёмы данных. Кроме того, хранилища колонок легко масштабировать.

Документо-ориентированные базы данных

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

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

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

Графовые СУБД

Графовые базы данных представляют данные совсем иначе, чем предыдущие три модели. Они используют древовидные структуры – графы, которые состоят из узлов и рёбер.

Графовые СУБД соединяют и группируют полученные данные, благодаря чему они намного быстрее справляются с некоторыми операциями.

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

Базы данных NoSQL на основе модели «ключ-значение»

Самыми популярными приложениями данной категории являются:

Случаи использования:

Базы данных NoSQL на основе хранилищ колонок

Популярные приложения:

Случаи применения:

Документо-ориентированные СУБД

Популярные приложения:

Случаи использования:

Графовые СУБД

Популярные приложения:

Случаи применения:

Реляционные СУБД vs. NoSQL

Чтобы подвести итоги данной статьи, сравним реляционные и NoSQL СУБД.