Блок 2 · Урок 3 из 5

База данных: SQL или NoSQL

Где данные живут надолго — на сервере, для всех пользователей; и что на самом деле стоит за выбором «реляционная или документная база».

≈ 9 минут 🗄️ постоянное хранилище 🎯 цель: понимать, что предлагает агент, выбирая базу

Зачем это вам

Когда агент спрашивает «какую базу взять?» или молча делает выбор сам — вы должны понимать ставку. Реляционная база (PostgreSQL) — безопасный дефолт для большинства приложений; если агент тянет что-то экзотическое без объяснений, стоит спросить «почему не Postgres?».

Понимание схемы (структуры данных) помогает и в другом: когда агент говорит «нужна миграция» — это значит «я меняю структуру таблиц на продакшне», а это операция, требующая аккуратности. Знать, о чём речь, — уже половина контроля.

Центральный склад приложения

Что такое база данных и зачем она нужна

База данных (database) — это программа, которая хранит данные надолго, на сервере, и умеет быстро находить нужное среди миллионов записей.

В прошлых уроках мы говорили про состояние (живёт в памяти, стирается при перезагрузке) и хранилище браузера (живёт на устройстве конкретного пользователя). База данных — это третий уровень, и самый важный: центральный склад на сервере, одна для всех пользователей, переживает перезапуски сервера и бэкапится.1

Управляет базой СУБД (система управления базами данных, или DBMS). Именно она принимает запросы, ищет данные и следит за целостностью. Примеры СУБД: PostgreSQL, MySQL, MongoDB.

Все современные базы делятся на две большие семьи:

Семья Как хранит Сильна когда Примеры
SQL / реляционная Связанные таблицы со строками и столбцами; строгая схема; язык запросов SQL Данные структурированы и важны связи между сущностями: пользователи, заказы, платежи PostgreSQL, MySQL, SQLite
NoSQL Гибкая структура: документы (похожи на JSON), пары «ключ–значение» и другие форматы2 Неоднородная или часто меняющаяся структура; очень большой масштаб простых операций; кэш MongoDB (документы), Redis (ключ–значение)

Важно развенчать ложную дилемму: «SQL или NoSQL» — не религиозный выбор. Для большинства приложений вайб-кодера реляционная база (PostgreSQL) — отличный дефолт. NoSQL берут под конкретные задачи. А в одном проекте часто есть и то, и другое: Postgres для данных и Redis для кэша.

📌 Не «что круче», а «что подходит данным». Структурированные, связанные данные — реляционная база по умолчанию. Если агент предлагает что-то другое, просто спросите: зачем?

Аналогия, которую можно пересказать

Excel со связями vs папка карточек

SQL — это строгие листы Excel со ссылками друг на друга: лист «Клиенты», лист «Заказы», и каждый заказ ссылается на клиента по ID. У каждой строки одинаковый набор столбцов — это и есть схема. NoSQL — папка с карточками-анкетами: каждая карточка самостоятельный объект целиком, и карточки могут отличаться набором полей.

«Центральный склад на сервере»— база данных: хранит надолго, одна для всех, с быстрым поиском
«Листы Excel со ссылками»— SQL / реляционная: связанные таблицы, строгая схема
«Папка карточек-анкет»— NoSQL / документная: гибкие самостоятельные документы
«Шапка таблицы»— схема: какие поля, какого типа, что обязательно

Таблицы со связями — про порядок и целостность; карточки — про гибкость. Ни один подход не лучше: они для разных задач.

Запомните одно

Главный вопрос: насколько мои данные структурированы и связаны?

Если у вас есть связанные сущности — пользователи, заказы, платежи — реляционная база справится с этим лучше всего, и PostgreSQL — хороший дефолт.

NoSQL — это осознанный выбор под конкретную потребность, а не мода и не признак современности. Когда агент предлагает Mongo или Redis — хорошо знать, зачем именно это нужно в вашем конкретном случае.

Что это даёт на практике

Фраза агента → что он имеет в виду

«Возьмём PostgreSQL»
Надёжная реляционная (табличная) база данных — хороший дефолт для большинства приложений с пользователями, заказами и другими связанными данными.
«Это будет в Mongo»
Документная NoSQL-база; данные лягут как гибкие JSON-подобные объекты. Разумно спросить: почему не реляционная база?
«Опишем схему»
Заранее зафиксируем структуру таблиц — какие поля есть, какого они типа, что обязательно. Это фундамент, менять потом сложнее.
«Добавим индекс»
Ускорим поиск по этому полю — как алфавитный указатель в книге. Без индекса база перебирает все строки подряд.

База данных (database) — программа-хранилище данных на сервере: надолго, для всех пользователей, с быстрым поиском.

СУБД (DBMS) — система, управляющая базой: принимает запросы, хранит, ищет. Примеры: PostgreSQL, MySQL, MongoDB.

SQL / реляционная база — данные в связанных таблицах со строгой схемой; запросы пишутся на языке SQL.

NoSQL — базы с гибкой структурой: документные, ключ–значение и другие. Примеры: MongoDB, Redis.

Схема (schema) — описание структуры данных: какие поля, какого типа, что обязательно заполнить.

Проверьте себя

Четыре вопроса с мгновенной проверкой

1. Чем база данных отличается от хранилища браузера?

2. Что лучше всего описывает SQL / реляционную базу?

3. Агент предлагает PostgreSQL для приложения с пользователями, заказами и платежами. Это разумно, потому что…

4. «SQL или NoSQL — что правильно?» — лучший ответ:

Куда мы идём

Программа курса — 7 блоков