Карта / NoSQL (Redis, Mongo) / Что такое NoSQL

Что такое NoSQL

NoSQL — общее название для баз данных, которые устроены не как таблицы со строго заданными столбцами. “Not Only SQL” — не отрицание SQL, а альтернативный подход к хранению данных, для других задач.

Сравнение подходов:

-- SQL: жёсткая схема, заранее заданные столбцы
CREATE TABLE users (id INT, name VARCHAR(100), age INT);
// NoSQL (документ): гибкая структура, у разных записей могут быть разные поля
{ "name": "Артур", "age": 25, "hobbies": ["программирование", "музыка"] }
{ "name": "Борис", "city": "Москва" }
Копнуть глубже

Главное отличие от реляционных баз (SQL):

  • Нет жёсткой схемы — разные записи в одной коллекции могут иметь разный набор полей, не нужно заранее описывать структуру через CREATE TABLE.
  • Часто проще горизонтально масштабируются — многие NoSQL-базы изначально проектировались с расчётом на распределение по множеству серверов.
  • Жертвуют строгими гарантиями (ACID, см. тему «Транзакции, ACID, уровни изоляции») ради скорости и гибкости — это не всегда плохо, просто другой набор компромиссов под другие задачи.

NoSQL — не “лучше” SQL, а другой инструмент. Реляционные базы остаются стандартом для данных со сложными связями и где критична строгая согласованность (банковские транзакции). NoSQL выигрывает там, где структура данных меняется часто, объёмы огромны, и строгая схема только мешает. Подробнее про выбор — в теме «Когда SQL vs NoSQL».

🎤 Закрыл тему, если можешь объяснить:
• что значит "нет жёсткой схемы" в NoSQL;
• чем NoSQL принципиально отличается от реляционных баз (если дошёл до 2-го слоя).