Хороший путеводитель по базам данных ценен не широтой охвата самой по себе, а тем, что собирает реляционную модель, SQL и распределённые компромиссы в один инженерный язык.
В реальной работе эта книга полезна как спокойный фундамент: по ней удобно выравнивать обсуждение модели данных, транзакций, репликации, шардирования и того, где именно заканчивается простая теория и начинается архитектурная цена решения.
На интервью и в архитектурных обсуждениях она помогает говорить о базах данных без скачков между жаргоном и абстракцией: от модели данных к запросам, гарантиям и последствиям выбора.
Практическая польза главы
Реляционная и NoSQL-практика
Переводите теорию в критерии выбора модели данных под конкретный продукт: транзакции, гибкость схемы и профиль доступа.
Язык компромиссов
Используйте единый словарь для обсуждения репликации, шардирования и консистентности между командами.
Чеклист внедрения
Сопровождайте архитектурный выбор планом наблюдаемости, резервного копирования, восстановления и деградационных сценариев.
Рассказ на интервью
Стройте ответ как инженерный разбор: контекст, варианты, компромиссы, финальное решение и последствия.
Официальный источник
Postgres Pro
Бесплатная электронная версия книги на сайте Postgres Professional: учебный материал можно читать без регистрации и покупки.
Путеводитель по базам данных
Авторы: В. И. Комаров
Издательство: ДМК Пресс, 2024
Объём: 520 страниц
Учебное пособие от Postgres Pro: реляционная модель, SQL-запросы, архитектура СУБД, индексы, транзакции, репликация, шардирование и NoSQL-подходы.
«Путеводитель по базам данных» удобен как первая системная карта: он связывает ,,,, и в один инженерный маршрут. Благодаря этому читатель быстрее понимает, где заканчивается учебная теория и начинаются реальные ограничения выбранного хранилища.
Зачем читать эту книгу
Книга помогает выстроить цельную картину баз данных: от модели данных и SQL до распределённых решений, которые всплывают в системном дизайне.
- Разобраться в фундаменте: понять реляционную алгебру, нормальные формы, транзакции и роль СУБД
- Уверенно читать и писать SQL: пройти путь от базовых выборок до оконных функций, CTE и рекурсивных запросов
- Понять внутреннее устройство: увидеть, как индексы, транзакции, журнал предзаписи и блокировки влияют на поведение базы
- Готовиться к системному дизайну: говорить о базах данных через свойства, ограничения и последствия выбора
Связанная глава
PostgreSQL изнутри
Глубокое погружение в MVCC, WAL, блокировки и индексы PostgreSQL от Егора Рогова.
Что делает книгу полезной
Учебный формат
Материал подан как учебный курс: с заданиями, контрольными вопросами и лабораторными работами. Это снижает порог входа и помогает закреплять темы руками.
Актуальность
Помимо реляционной модели и SQL, книга доходит до NoSQL-баз данных, распределённых систем, обработки больших данных, теоремы CAP и итоговой консистентности.
Практический фокус
Теория подкрепляется примерами на PostgreSQL, поэтому понятия про схемы, индексы, транзакции и запросы сразу можно проверить в реальной СУБД.
Бесплатный доступ
Электронная версия доступна бесплатно на сайте Postgres Professional, поэтому книгу легко использовать как общий учебный источник для команды.
Связанная глава
Database Internals
Глубокое погружение в B-Tree, LSM-деревья и распределённые хранилища от Alex Petrov.
Структура книги
Часть I: Введение в базы данных
Основы теории баз данных: путь от файловых систем к СУБД, реляционная модель, нормализация, ER-диаграммы и проектирование схемы.
Кодд, отношения, ключи
Нормальные формы, денормализация
Сущности, связи, атрибуты
Логическая и физическая модель
Часть II: Язык SQL
Полный курс SQL: от SELECT до аналитических запросов, DDL/DML, оконных функций, CTE и базовой оптимизации.
SELECT, INSERT, UPDATE, DELETE
INNER, LEFT, RIGHT, FULL, CROSS
ROW_NUMBER, RANK, LAG, LEAD
WITH, рекурсивные запросы
Часть III: Архитектура СУБД
Внутреннее устройство СУБД: хранение данных, индексы, буферный кеш, транзакции, блокировки и восстановление после сбоев.
Страницы, heap, TOAST
B-Tree, Hash, GiST, GIN
ACID, уровни изоляции
Журналирование, контрольная точка
Часть IV: Распределённые системы
Репликация, шардирование, распределённые транзакции, теорема CAP, консенсус и современные подходы к масштабированию.
Лидер-реплика, несколько лидеров
Горизонтальное партиционирование
Консистентность, доступность, разделение сети
Paxos, Raft, 2PC
Часть V: NoSQL и Big Data
Альтернативы реляционным СУБД: документные, ключ-значение, ширококолоночные и графовые базы данных, а также экосистема больших данных.
MongoDB, CouchDB
Redis, Memcached, DynamoDB
Cassandra, HBase
Neo4j, JanusGraph
Сравнение типов NoSQL-баз данных
Документная БД
Документы (JSON/BSON) с вложенной структурой. Гибкая схема, богатые запросы по полям.
Примеры
Сценарии
Модель данных
JSON/BSON-документы
Шаблон запроса
Запросы по полям, индексы
Консистентность
Настраиваемая
Транзакции
| Характеристика | Ключ-значение | Документная БД | Ширококолонная БД | Графовая БД |
|---|---|---|---|---|
| Масштабирование | Горизонтальное | Горизонтальное | Горизонтальное | Горизонтальное и вертикальное |
| Консистентность | Итоговая | Настраиваемая | Настраиваемая | Строгая |
| Схема | Без жёсткой схемы | Гибкая | Гибкая | Гибкая |
| Транзакции | ||||
| JOIN |
💡 Когда выбирать NoSQL вместо SQL?
- Ключ-значение: нужны максимальная скорость и простые операции по ключу
- Документная БД: важны гибкая схема, вложенные структуры и эволюция модели
- Ширококолонная БД: много записей, временные ряды и очень большие объёмы
- Графовая БД: главная сложность в связях между сущностями и многоуровневых обходах
Ключевые концепции для системного дизайна
🔑Выбор типа СУБД
- OLTP и OLAP обслуживают разные профили нагрузки
- SQL и NoSQL дают разные компромиссы для разных задач
- Архитектура с несколькими типами хранилищ помогает разделять контуры данных
- NewSQL совмещает SQL-интерфейс с горизонтальным масштабированием
📊Индексирование
- B-Tree для диапазонных запросов и поиска по равенству
- Hash для точечного поиска
- Составные индексы чувствительны к порядку колонок
- Покрывающие индексы уменьшают обращения к основной таблице
⚡Масштабирование
- Реплики для чтения помогают масштабировать нагрузку с преобладанием чтения
- Шардирование даёт горизонтальное масштабирование записи и объёма
- Партиционирование помогает управлять большими таблицами
- Пул соединений снижает стоимость подключения: PgBouncer, ProxySQL
🔒Консистентность
- ACID задаёт базовые гарантии транзакций
- Уровни изоляции балансируют корректность и производительность
- Итоговая консистентность появляется в распределённых системах
- Паттерн Saga помогает разносить распределённые транзакции по шагам
Для кого эта книга
Начинающим
Студентам и разработчикам, которым нужна системная база по СУБД
Бэкенд-разработчикам
Для систематизации опыта и закрытия пробелов в SQL, индексах и транзакциях
Готовящимся к интервью
Для спокойного разговора о выборе хранилища, консистентности и масштабировании
Об авторах
Книга написана коллективом авторов из компании Postgres Professional, ведущего российского разработчика решений на базе PostgreSQL. Компания известна вкладом в развитие PostgreSQL, образовательными материалами и практическим опытом внедрения СУБД в производственных системах.
Что важно запомнить
«Путеводитель по базам данных» стоит читать как фундамент перед более узкими материалами. Он не заменяет DDIA или Database Internals, но даёт язык для разговора о моделях данных, SQL, индексах, транзакциях и распределённых компромиссах. После него проще выбирать СУБД осознанно, а не по привычке или популярности технологии.
Связанные главы
- Фреймворк выбора СУБД - Переход от фундаментальных знаний к практическому выбору СУБД под профиль нагрузки и ограничения системы.
- Зачем разбираться в системах хранения - Обзорная карта типов хранилищ и места реляционных/NoSQL систем в архитектуре.
- Введение в хранение данных - Связь storage-решений с API-контрактами, консистентностью и интеграцией между сервисами.
- Designing Data-Intensive Applications, 2nd Edition (short summary) - Теоретический фундамент по репликации, шардированию и консистентности для проектирования систем данных.
- PostgreSQL: история, архитектура и отличия - Практический ориентир по транзакционной обработке OLTP с сильной моделью транзакций и зрелой экосистемой.
- MySQL: история, движки хранения и масштабирование - Альтернативный путь для OLTP-нагрузок и сравнительные компромиссы эксплуатации и масштабирования.
- Репликация и шардинг - Операционные решения для роста нагрузки: стратегии репликации, ключ шардирования и перебалансировка.
- CAP теорема - Базовая модель компромиссов между доступностью и консистентностью в распределённых БД.
- PostgreSQL изнутри (short summary) - Глубокий разбор MVCC, WAL, блокировок и индексов в PostgreSQL.
- Database Internals (short summary) - Детали движков хранения и структур данных, которые определяют задержку и пропускную способность СУБД.
