hostprofi.ru
Подобрать хостинг
Термин·буква N

NoSQL

краткое определение

NoSQL — обширная категория баз данных, не использующих реляционную модель и SQL как основной язык запросов. Включает документные (MongoDB), ключ-значение (Redis), колоночные (Cassandra) и графовые (Neo4j) БД. Проектировались для горизонтального масштабирования и гибких схем данных.

NoSQL (Not Only SQL) — собирательный термин для систем управления базами данных, отходящих от реляционной модели. Объединяет разнородные технологии: документные, ключ-значение, колоночные, графовые и временные БД. Общие черты: горизонтальное масштабирование, отсутствие жёсткой схемы, приоритет скорости/масштаба над строгой консистентностью.

Основные типы NoSQL

  • Key-Value — простейшая модель. Ключ → значение. Примеры: Redis, Memcached, DynamoDB. Применение: сессии, кеш, очереди.
  • Документные — хранят JSON/BSON-документы без фиксированной схемы. Примеры: MongoDB, CouchDB, Firestore. Применение: каталоги, контент-системы.
  • Колоночные (wide-column) — данные организованы по колонкам, а не строкам. Примеры: Cassandra, HBase. Применение: аналитика, IoT-телеметрия, миллиарды записей.
  • Графовые — хранят вершины и рёбра графа. Примеры: Neo4j, Amazon Neptune. Применение: социальные сети, рекомендательные системы.
  • Временные ряды (time-series) — оптимизированы для метрик. Примеры: InfluxDB, TimescaleDB.

CAP-теорема

Распределённые системы не могут одновременно гарантировать Consistency (согласованность), Availability (доступность) и Partition Tolerance (устойчивость к разделению). NoSQL-БД обычно жертвуют строгой согласованностью ради доступности и масштабируемости (AP в терминах CAP).

История

Термин NoSQL предложен Эриком Эвансом в 2009 году для Twitter-хэштега конференции о нереляционных БД. Сами NoSQL-системы появились раньше: Redis — 2009, MongoDB — 2009, Cassandra (Facebook, 2008). Горизонтальное масштабирование стало необходимым после публикации статьи Google Bigtable (2006) и Amazon Dynamo (2007).

Связь с хостингом

На хостинге NoSQL чаще всего представлен Redis (кеш, сессии) и MongoDB (основная БД). На VDS MongoDB устанавливается из официального репозитория. На облачных платформах доступны управляемые сервисы: MongoDB Atlas, AWS DynamoDB. Для приложений с реляционными данными (финансы, e-commerce) лучше подходят PostgreSQL или MySQL.

NoSQL vs SQL в хостинге

Реляционные СУБД (MySQL, PostgreSQL) хранят данные в таблицах со строгой схемой. NoSQL (Not Only SQL) -- общее название для нереляционных СУБД с гибкой схемой. Преимущества NoSQL для хостинга: горизонтальное масштабирование (шардирование), хранение документов с произвольной структурой, высокая запись без транзакционных блокировок. Недостаток -- слабые транзакции (eventual consistency вместо ACID). Для интернет-магазинов с точными балансами и заказами SQL обязателен. Для каталогов, аналитики, кэша -- NoSQL эффективнее.

Типы NoSQL

  • Document stores: MongoDB, CouchDB -- JSON-документы с индексами
  • Key-Value stores: Redis, Memcached -- быстрые операции по ключу
  • Column-family: Apache Cassandra, HBase -- для аналитики и временных рядов
  • Graph databases: Neo4j, Amazon Neptune -- для социальных графов
  • Time-series: InfluxDB, TimescaleDB -- для метрик и мониторинга

История NoSQL

Термин NoSQL использовался с 1998 года, стал популярным около 2009 года после публичных докладов Google (BigTable) и Amazon (Dynamo). MongoDB выпущен в 2009 году, Redis -- в 2009 году. В 2010--2015 годах NoSQL стал мейнстримом для стартапов. К 2020 году выяснилось, что многие сценарии лучше решаются гибридным подходом: PostgreSQL с JSONB хранит документы внутри реляционной БД. Шардирование (sharding) -- одна из ключевых особенностей NoSQL-систем.

Другие термины