Что такое 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-го слоя).
• чем NoSQL принципиально отличается от реляционных баз (если дошёл до 2-го слоя).