NoSQL: что такое и где скачать

1280 × 853

Первая статья в этом году посвящена двум изрядно нашумевшим титанам: SQL- и NoSQL-базам данных. Если с реляцией все примерно понятно, то NoSQL — менее популярное решение. Что это такое? Какие задачи решает? А также о типах и бесплатных пробных версиях. Итак, начнем.

Как все начиналось

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

Первые и самые внушительные шаги делали компании Yahoo, Google, Facebook, Amazon.com и eBay. Признание этих интернет-гигантов укрепило позиции NoSQL и теперь он широко известен во всем информационном пространстве.

NoSQL  — это…

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

В большинстве своем NoSQL системы:

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

К самому интересному

Теперь, когда есть более-менее формальное определение NoSQL-баз данных, можно переходить к самому приятному: всё это не имело бы смысла, если бы не скачивалось. Интегрируем практику в теорию: поговорим о видах нереляционных баз данных и не упустим возможности воспользоваться бесплатными демо-версиями. Разбираем NoSQL базы данных по типам, описываем достоинства, недостатки, примеры использования. А также ловите ссылки на бесплатные демо-версии!

1) Key-value store

Модель данных: множество пар ключ-значение.

Ключ служит уникальным идентификатором — поиск, любая работа с запросами, выводом данных осуществляется через него. Под ключом и значением могут подразумеваться как простые, так и сложные составные объекты.

Зачастую такие базы данных используют хэш-таблицу.

Хэш-таблица (hash table) —  это специальная структура данных для хранения пар ключей и их значений. По сути, это ассоциативный массив, в котором ключ представлен в виде хэш-функции. От того, правильно ли подобрана эта функция, напрямую зависит качество работы базы данных.

1.112

Плюсы: простая модель данных (быстрая работа).

Минусы: сложные структуры данных трудно смоделировать в виде пар key-value, выполняет только самые простые операции

Используются: для хранения информации о пользователе, организации корзины для онлайн-шопинга, организации каталога товаров и т.д.

Ссылки:

Скачать DynamoDB от Amazon на 12 месяцев бесплатно. Советуем начать именно с неё — самая авторитетная из key-value база данных.

Интерактивный туториал по использованию Redis

2) Document-oriented store

Модель данных: множество множеств ключ-значение.

Хранят частично структурированные данные в виде документов. Удобны тем, что дают возможность хранить данные в том же виде, какой используется в коде приложения/веб-страницы и т.д. XML, JSON, BSON – примеры распространенных кодировок. По структуре Document-oriented store устроены аналогично модели key-value, с разницей в кодировке документов. Такая особенность ограничивает количество типов обрабатываемых данных, в то же время увеличивая возможности работы с ними.

Плюсы: быстрая работа с данными, возможность выполнения сложных запросов.

Минусы: ограниченное количество типов обрабатываемых данных.

Используются:  запись специфически-структурированных данных: добавления информации об геолокации пользователя, ip-адресе устройства, пароля и т.д., работы с блогами и веб-сайтами и т.д.

Ссылки:

Скачать MongoDB бесплатно

3) Column-oriented store

Модель данных: Ключ строки > Семейство колонок > Ключ > Значение

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

2.112

Плюсы: Более трудная модель данных, позволяющая производить сложные операции с данными, поддерживает Eventual consistency, хорошая производительность и масштабируемость.

Минусы: не поддерживает транзакции и Join.

Используются: ведение журнала событий, организация подсказок к действиям пользователя (например, всплывающие подсказки при создании логина и пароля на сайтах) и т.д.

Ссылки:

Пробная версия Cassandra на 14 дней

4) Graph database

Модель данных: узлы, ребра, атрибуты.

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

3.112

Плюсы: быстрый анализ соединений узлов в графе.

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

Используются: при описании связей в социальных сетях, сервисах рекомендаций, анализе действий пользователя и т.д.

Ссылки:

Регистрируйтесь и пользуйтесь Neo4j.

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