Тема 3. Подготовка материалов для выступления по NoSQL-решениям
NoSQL — обозначение широкого класса разнородных систем управления базами данных, существенно отличающихся от традиционных реляционных СУБД с доступом к данным средствами языка SQL.
Традиционные СУБД ориентируются на требования ACID к транзакционной системе: атомарность, согласованность, изолированность, долговечность, тогда как в NoSQL вместо ACID может рассматриваться набор свойств BASE:
- базовая доступность — каждый запрос гарантированно завершается (успешно или безуспешно).
- гибкое состояние — состояние системы может изменяться со временем, даже без ввода новых данных, для достижения согласования данных.
- согласованность в конечном счёте — данные могут быть некоторое время рассогласованы, но приходят к согласованию через некоторое время.
Типы NoSQL-систем:
-
ключ-значение
-
семейство столбцов
-
документноориентированная СУБД
-
графовая СУБД
Характеристики баз данных NoSQL:
-
не используется SQL
-
являются неструктурированными (не требуют определения схемы документа)
-
представление данных в виде агрегатов
-
слабые свойства ACID
-
распределённые системы без совместно используемых ресурсов
Примеры NoSQL-решений:
- MongoDB - документная БД с открытым исходным кодом
- CouchDB - БД, которая использует JSON для документов, JavaScript для MapReduce запросов, и обычный HTTP для API
- GemFire - распределенная платформа управления данными, обеспечивающая динамическую масштабируемость, высокую производительность и сохранность как у БД
- Redis - сервер структур данных, где ключами могут быть строки, хеши, списки, наборы и сортированные наборы
- Cassandra - БД, которая обеспечивает масштабируемость и высокую надежность без потери производительности
- memcached - высокопроизводительная, распределенная в памяти и объектная система кеширования с открытым исходным кодом
- Hazelcast - высоко масштабируемая распределенная платформа с открытым исходным кодом
- HBase - распределенное и масштабируемое хранилище больших объемов данных
- Mnesia - распределенная система управления базами данных
- Neo4j - высокопроизводительная, enterprise-класса графовая БД с открытым исходным кодом