Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздаточный материал - 2012 / 05 - Не реляционные модели (базы данных).doc
Скачиваний:
32
Добавлен:
23.05.2015
Размер:
144.9 Кб
Скачать

5.3. NoSql базы данных (Not Only! sql)

Беспрецедентные объемы данных заставляют разработчиков и бизнес приглядываться к альтернативам реляционных баз данных, используемым вот уже более тридцати лет. В совокупности все эти технологии известны как «NoSQL базы данных». Термин был введен для описания различных технологий баз данных, возникших для удовлетворения требований, известных как "Web-scale" или "Internet-scale".

Основной проблемой является то, что реляционные базы данных не могут справляться с нагрузками актуальными в наше время (речь о high-load проектах).

Есть три требования к Web-scale (Internet-scale) приложениям:

  • Много данных: самые большие из веб-приложений обрабатывают объемы данных на порядки больше тех, что предполагались для управления базами данных (Facebook - 50 терабайт для поиска по входящим сообщениям; eBay - всего 2 петабайта)

  • Огромное количество пользователей: исчисляются миллионами, доступ к системам одновременно и постоянно

  • Сложные данные: как правило, это приложения не простой обработки табличных данных, которые можно найти во многих коммерческих и бизнес-приложениях.

Хотя разнообразие моделей (NoSQL баз данных) растет, все они имеют общие черты:

  • Обрабатывают огромные объемы данных, разделяя их между серверами;

  • Поддерживают огромное количество пользователей;

  • Используют упрощенную, более гибкую, не ограниченную схемой структуру базы данных.

Существует четыре категории NoSQL баз данных.

(1) Первая категория — это Key-Value (ключ-значение) базы данных.

Это очень простые по своей идее хранилища. Фактически это очень большие хэш-таблицы, где каждому ключу поставлено в соответствие значение. Такие базы могут очень быстро оперировать колоссальными объемами информации, но они имеют серьезные ограничения в языке запросов. В качестве примеров Key-Value баз данных можно привести Dynomite, Voldemort, Tokyo, Redis.

(2) Вторая категория — клоны BigTable.

BigTable — это база данных, разработанная компанией Google для собственных нужд. Эта база представляет собой большую таблицу с тремя измерениями: колонки, строки и временные метки. Такая архитектура позволяет добиться очень высокой производительности, кроме того, она хорошо масштабируется на множество компьютеров. Но это не реляционная база, и она не поддерживает многие возможности реляционных баз. В частности в BigTable нет join-ов, нет сложных запросов и т.д. Компания Google не распространяет BigTable, поэтому на рынке появилось несколько независимо разработанных клонов этой базы. В частности это такие проекты как: Hadoop, Hypertable и Cassandra.

(3) Следующая категория баз — это документо-ориентированные базы данных.

Такие базы немного напоминают Key-Value базы, но в данном случае, база данных знает, что из себя представляют значения. Обычно, значением является некоторый документ или объект, к структуре которого можно делать запросы. Примерами таких баз являются CouchDB и MongoDB.

(4) Четвертая категория — это базы данных построенные на графах.

Такие базы ориентированы на поддержку сложных взаимосвязей между объектами, и основываются на теории графов. Структура данных в таких базах представляет собой набор узлов, связанных между собой ссылками. При этом и узлы и ссылки могут обладать некоторым количеством атрибутов. В качестве примера можно привести такие базы данных как: Neo4j, AllegroGraph, Sones graphDB.