О разделе
Play ITЗагрузка интерактивного демо…
Play ITЗагрузка интерактивного демо…
Раздел про NoSQL (Not Only SQL): альтернативы и дополнения к реляционным СУБД для масштаба, гибкой схемы и распределённых систем.
Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (redis-cli, mongosh, CQL, Cypher) по-прежнему прямо в markdown.
Практика реляционных СУБД из кода (до NoSQL) — SQLite, PostgreSQL, MySQL, Microsoft SQL Server.
Массовые операции (insertMany, _bulk, Redis --pipe) — Пакетная работа с данными.
Маршрут обучения
- История NoSQL — контекст и эволюция семейств СУБД.
- Основы NoSQL — модели данных, CAP, репликация, сравнение с SQL. Leader-based кластеры — выбор лидера.
- Операторы в коде (базис перед
$gt,$andи условиями) → функции в коде (вызов в программе; аналог в запросах — функции в SQL) → Синтаксис запросов — JSON, mongosh, Redis, CQL, Cypher. - Практика по системам (в главах есть примеры
redis-cli, CQL, Cypher) — MongoDB (связи коллекций, шаблоны схем, GridFS, типы BSON) → проектирование схемы, Redis → первые шаги → справочник, Cassandra, графы, Memcached. - NewSQL — SQL + ACID + горизонтальный OLTP (CockroachDB, Spanner).
- Итоги и чек-лист с подсказками.
Практикумы — MongoDB (CRUD, $lookup, GridFS), Cassandra, Redis — первые шаги, Cypher, Memcached, CockroachDB SQL.
Справочники (синтаксис и ограничения) — MongoDB (41), Redis (51), Cassandra (61), Cypher (71), Memcached (81).
Пошаговый протокол: Первые шаги с Memcached.
Мини-глоссарий
| Термин | Кратко |
|---|---|
| Consistency (CAP) | Согласованность реплик на узлах — отдельно от Consistency (ACID) (инварианты транзакции). См. Основы NoSQL. |
| Partition key | Определяет, на каком узле кластера лежит партиция (Cassandra, DynamoDB). |
| Replication factor (RF) | Сколько копий каждой партиции хранится в кластере. |
| Eventual consistency | Реплики сходятся со временем; чтение сразу после записи может вернуть старое значение. |
| Schema-on-read | Структура данных определяется при чтении (гибкие документы). |
| Schema-on-write | Структура проверяется при записи (классические таблицы SQL, валидаторы MongoDB). |
| Denormalization | Дублирование данных в одном документе/таблице ради одного быстрого запроса. |
| Tombstone | Маркер удаления в LSM-хранилищах (Cassandra); влияет на compaction. |
| Commit log | Журнал записи на диск до memtable; обеспечивает durability (аналог WAL в других СУБД). |
| Memtable / SSTable | RAM-буфер записи (часто skip list) и неизменяемые файлы на диске после flush; цепочка LSM — восемь структур. |
| Wide-column store | Модель Cassandra/Bigtable: partition key + clustering columns. |
История развития NoSQL-систем
Нереляционные базы данных. Причины появления нереляционных систем.
Основы NoSQL
Выбор между SQL и NoSQL - сущности и отношения против событий, состояний и потоков в доменной модели.
Синтаксис и знаки препинания в NoSQL-запросах
В NoSQL нет единого языка, как SQL для реляционных СУБД. Один и тот же продукт может принимать JSON (REST API), текстовый протокол (Redis), SQL-подобный диалект (CQL) или графовый язык (Cypher).
MongoDB - документоориентированная база данных
MongoDB - документоориентированная СУБД для высоконагруженных и гибко меняющихся схем данных в распределённых сценариях.
Справочник по MongoDB
Справочник по MongoDB - ограничения документов, поле _id и правила имён ключей для корректной модели данных.
Первые шаги с MongoDB
Процесс установки и первое знакомство с технологией документоориентированной БД.
MongoDB — проектирование документной схемы
Проектирование схемы MongoDB: шаблоны доступа, кардинальность, нормализация и денормализация, именованные patterns, миграции и валидация.
Redis - хранилище ключ-значение в памяти
Redis - in-memory хранилище структур данных в реальном времени с сетевым доступом и богатым набором типов.
Справочник по Redis
Тип "строка" в Redis - байтовая последовательность до 512 МБ для текста, счётчиков и сериализованных значений.
Первые шаги с Redis
Процесс установки и первое знакомство с технологией Redis.
Cassandra
Таблица в реляционной модели и в Cassandra - различия схемы, строк и первичного ключа в NoSQL.
Справочник по Cassandra
Синтаксис CQL, конфигурация cassandra.yaml, nodetool, consistency levels и ограничения Apache Cassandra.
Первые шаги с Cassandra
Процесс установки и первое знакомство с технологией Apache Cassandra.
Графовые базы данных
Графовая база данных — это совокупность данных в графовом формате.
Справочник по Cypher
Метки — это теги; не гарантируют схемы, но позволяют фильтровать (MATCH (n — User)).
Memcached - кэширование в оперативной памяти
Сетевой RAM-кэш "ключ → байты", cache-aside, slab и отличие от Redis — с примерами pymemcache и протокола на порту 11211.
Справочник по Memcached
Все операции идемпотентны (кроме incr/decr и CAS-операций при конфликтах), и не имеют транзакционных гарантий. Memcached — это система с eventual consistency, не поддерживающая ACID.
NewSQL - гибридные системы нового поколения
NewSQL - реляционные СУБД с горизонтальным масштабированием OLTP и привычной моделью данных.
Первые шаги с Memcached
Установка демона, проверка порта 11211 и первые команды set/get/delete в текстовом протоколе — за 15 минут.
Векторные базы данных
Эмбеддинги и векторизация - компактные числовые представления объектов для поиска по смыслу и ML.
NoSQL — итоги
Итоги раздела «NoSQL» — FAQ и краткие ответы по теме.
NoSQL — чек-лист
Чек-лист раздела «NoSQL» — вопросы для самопроверки.
NoSQL — о разделе
Раздел про NoSQL (Not Only SQL): альтернативы и дополнения к реляционным СУБД для масштаба, гибкой схемы и распределённых систем.
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Базы данных — SQL — о разделе, Управление реляционными СУБД — о разделе, Основы баз данных — о разделе, ORM и работа с данными — о разделе, Структуры данных — о разделе, PostgreSQL — о разделе.
Аналитика данных — SQL — о разделе, Продвинутые операции с данными — о разделе, Основы баз данных — о разделе, Анализ данных — о разделе, Структуры данных — о разделе, Python — о разделе.