Все материалы
Продуктовая аналитикагайдстарт

Что такое СУБД: функции, устройство и примеры систем

Что такое СУБД простыми словами: чем система управления базами данных отличается от базы, что она делает, из чего состоит и какие СУБД встречает аналитик.

КейсПрактика30 октября 2026 г.12 мин

В вакансии аналитика написано «опыт работы с реляционными СУБД», на собеседовании спрашивают, чем PostgreSQL отличается от ClickHouse, а коллега говорит «положи выгрузку в базу». За всеми тремя фразами стоит одно понятие. СУБД — это программа, которая хранит данные и отвечает на запросы к ним так, чтобы ничего не терялось, когда с ними одновременно работают сотни людей и приложений. Ниже разберём, что такое СУБД, что она делает за вас, из каких частей состоит, какие бывают и почему один и тот же SQL-запрос в разных СУБД иногда даёт разный ответ.

Коротко

  • СУБД (система управления базами данных) — программа, которая хранит данные, принимает запросы и возвращает результат. База данных — сами данные внутри неё.
  • Главная работа СУБД незаметна: транзакции, одновременный доступ, восстановление после сбоя, права доступа и выбор быстрого способа выполнить запрос.
  • Реляционная СУБД хранит таблицы и понимает SQL: PostgreSQL, MySQL, Microsoft SQL Server, Oracle, SQLite.
  • Аналитику чаще всего достаются PostgreSQL в продукте и колоночная СУБД вроде ClickHouse в хранилище.
  • SQL у всех похож, но диалекты расходятся в датах, делении чисел и ограничении числа строк.

Что такое СУБД простыми словами

Представьте склад. Товары на полках — это данные. Кладовщик, который знает, где что лежит, выдаёт товар по накладной, не пускает посторонних и ведёт журнал, чтобы после пожара восстановить учёт, — это СУБД. Сам по себе склад без кладовщика превращается в кучу коробок, где двое одновременно берут последнюю упаковку и оба уверены, что она их.

Формально СУБД — это программное обеспечение для создания баз данных, записи и чтения данных, контроля их целостности и доступа к ним. Вы не открываете файл с данными напрямую. Вы отправляете СУБД запрос, обычно на SQL, а она решает, какие файлы прочитать, в каком порядке и как сделать это быстро.

База данных и СУБД: в чём разница

В разговоре слова смешивают: «наша база — PostgreSQL». Точнее сказать так: PostgreSQL — это СУБД, а база данных — конкретный набор таблиц, который она обслуживает. Одна СУБД держит десятки баз: рабочую базу продукта, тестовую копию, базу для отчётов. У каждой свои таблицы и свои права доступа.

Учебная база симулятора SQL-аналитика «Маяк» — тоже база данных. В ней пять таблиц: пользователи, события, оплаты, подписки и участие в экспериментах. Работает она внутри двух разных СУБД: в песочнице курса её обслуживает DuckDB, а в проверках статей — PostgreSQL. Данные одни и те же, программы разные, и запрос ниже возвращает в обеих одинаковый ответ.

Запрос читает не данные, а каталог — служебные таблицы, где СУБД сама описывает, какие таблицы и столбцы у неё есть. Каталог information_schema описан в стандарте SQL и есть в PostgreSQL, MySQL, SQL Server и DuckDB.

Результат на учебной базе «Маяк»
table_namecolumns
events4
experiment_exposures6
payments6
subscriptions6
users5
Сколько столбцов в каждой таблице учебной базы: СУБД отвечает из своего каталога
select
  table_name,
  count(*) as columns
from information_schema.columns
where table_name in ('users', 'events', 'payments', 'subscriptions', 'experiment_exposures')
group by table_name
order by table_name;

Функции СУБД: что она делает за вас

Если бы СУБД только хранила данные, хватило бы папки с CSV-файлами. Её ценность в том, что происходит вокруг хранения. Каждую из этих функций легко не замечать, пока она работает, и очень дорого восстанавливать вручную, когда её нет.

Основные функции СУБД
ФункцияЧто делаетГде аналитик это видит
Определение данныхсоздаёт таблицы, столбцы, типы и ограничения (DDL: CREATE, ALTER, DROP)типы столбцов и ошибка при попытке записать текст в число
Работа с даннымивыполняет SELECT, INSERT, UPDATE, DELETEлюбой запрос в отчёте
Транзакциивыполняет группу изменений целиком или не выполняет совсемоплата не может списаться без записи о заказе
Одновременный доступдаёт сотням клиентов читать и писать без взаимных помехваш отчёт не видит наполовину записанную оплату
Журнал и восстановлениепишет изменения в журнал до записи в таблицы и после сбоя восстанавливает состояниеданные не пропадают после аварийной перезагрузки сервера
Права доступарешает, кто может читать и менять каждую таблицудоступ «только на чтение» к реплике
Оптимизация запросоввыбирает план: какой индекс взять, в каком порядке соединять таблицыодин и тот же запрос то летает, то идёт десять минут
Резервные копии и репликацияделает копии и поддерживает реплики для чтениявы пишете отчёты в реплику, а не в рабочую базу

Транзакция: функция, которую стоит увидеть руками

Транзакция — группа команд, которую СУБД выполняет как одно целое. Пока транзакция не подтверждена командой commit, её изменения видит только тот, кто её открыл. Команда rollback отменяет всё, как будто ничего не было.

Блок ниже меняет статус подписки пользователя 8 на «ушёл», показывает изменение внутри транзакции и откатывает его. В песочнице курса команды записи не выполняются, поэтому повторить блок можно в своём PostgreSQL. После rollback подписка снова активна: тариф pro, 29 в месяц, с 10 июня 2026 года.

Свойства, которые СУБД гарантирует транзакциям, называют ACID: атомарность, согласованность, изолированность и долговечность. Подробно о каждом и об уровнях изоляции — в статье про ACID и в разборе транзакций в SQL.

PostgreSQL only: изменение видно внутри транзакции и исчезает после отката
begin;

update subscriptions
set status = 'churned'
where user_id = 8;

select user_id, plan, status
from subscriptions
where user_id = 8;   -- внутри транзакции: churned

rollback;

select user_id, plan, status
from subscriptions
where user_id = 8;   -- после отката: active

Из чего состоит СУБД

Запрос проходит через несколько частей СУБД, прежде чем вы увидите результат. Знать их по именам не обязательно, но схема объясняет многое из того, что аналитик видит на практике: почему запрос с опечаткой падает мгновенно, а медленный запрос ускоряется от индекса.

Почему это важно аналитику

Медленный запрос почти всегда означает, что планировщик выбрал полный проход по большой таблице. Посмотрите план через EXPLAIN, прежде чем переписывать запрос наугад. Как читать план — в статье про EXPLAIN ANALYZE в PostgreSQL.

  • Парсер разбирает текст запроса и проверяет синтаксис. Ошибка «syntax error at or near» приходит отсюда, ещё до чтения данных.
  • Планировщик, или оптимизатор, перебирает способы выполнить запрос и выбирает самый дешёвый по своей оценке. Его решение показывает команда EXPLAIN.
  • Исполнитель проходит по выбранному плану: читает таблицы, соединяет, группирует, сортирует.
  • Менеджер хранения читает страницы с диска и держит часто нужные в памяти. Поэтому второй запуск того же запроса нередко быстрее первого.
  • Менеджер транзакций и журнал следят за изоляцией и пишут каждое изменение в журнал до того, как оно попадёт в таблицу. В PostgreSQL этот журнал называется WAL.
  • Каталог хранит описание всех объектов: таблиц, столбцов, индексов, прав. Мы читали его запросом выше.

Виды СУБД

СУБД делят по нескольким признакам сразу, и одна система может попадать в разные группы. Самое важное деление — по модели данных: таблицы со связями или что-то другое. Подробная классификация с примерами — в статье о типах баз данных. Здесь — признаки, по которым о СУБД говорят чаще всего.

Как классифицируют СУБД
ПризнакВариантыПримеры
Модель данныхреляционные (таблицы и SQL) и нереляционные (документы, ключ — значение, графы)PostgreSQL, MySQL; MongoDB, Redis, Neo4j
Основная нагрузкаOLTP — много коротких операций продукта; OLAP — тяжёлые аналитические запросыPostgreSQL для заказов; ClickHouse для отчётов
Способ хранениястроковое и колоночноеMySQL хранит строки; ClickHouse и DuckDB — столбцы
Архитектураклиент-сервер, встраиваемая, распределённаяPostgreSQL — сервер; SQLite и DuckDB — внутри приложения; Greenplum — кластер
Где работаетна своём сервере или облачный сервис, который обслуживает провайдерPostgreSQL на своём сервере или в Yandex Cloud; BigQuery

Реляционная СУБД

Реляционная СУБД хранит данные в таблицах, где у каждой строки одинаковый набор столбцов, а таблицы связаны ключами. Связь «оплата принадлежит пользователю» — это столбец user_id в таблице payments, который ссылается на user_id в users. Запрос собирает связанные строки через JOIN.

Название идёт от слова relation, «отношение» — так в математике называют таблицу. Модель описал Эдгар Кодд в 1970 году, и почти все массовые СУБД с тех пор реляционные. Если в вакансии написано «опыт работы с реляционными СУБД», от вас ждут уверенного SQL и понимания ключей, связей и транзакций. Об устройстве связей — в статье о первичном и внешнем ключе, о том, как раскладывать данные по таблицам, — в материале о нормализации.

Примеры СУБД, которые встречает аналитик

Список популярных СУБД длинный, но в работе продуктового аналитика повторяется один и тот же десяток. Ниже — где каждая обычно стоит и что вы с ней делаете.

В российских компаниях часто встречаются СУБД на основе PostgreSQL: Postgres Pro, Tantor. Для аналитика они почти не отличаются от PostgreSQL: тот же SQL, те же функции, тот же psql. Arenadata DB построена на Greenplum — распределённой СУБД, тоже выросшей из PostgreSQL, — и работает как хранилище для больших объёмов.

Популярные СУБД глазами аналитика
СУБДМодель и хранениеГде обычно стоитЧто делает аналитик
PostgreSQLреляционная, строковая, серверрабочая база продукта, небольшие хранилищазапросы к реплике, первые отчёты
MySQLреляционная, строковая, серверрабочая база веб-сервисов и интернет-магазиновто же, что с PostgreSQL, с поправкой на диалект
Microsoft SQL Serverреляционная, серверкорпоративные системы, учёт, банкиотчёты на T-SQL
Oracle Databaseреляционная, серверкрупные банки и телекомотчёты на диалекте Oracle
ClickHouseколоночная аналитическая, сервер или кластерхранилище событий и витринбольшая часть аналитических запросов
Greenplum и Arenadata DBреляционная, распределённаякорпоративное хранилищезапросы к витринам на диалекте PostgreSQL
SQLiteреляционная, встраиваемая, один файлмобильные и настольные приложенияоткрыть файл из выгрузки
DuckDBколоночная, встраиваемаяноутбук аналитика, песочница курсаSQL к CSV и Parquet без сервера
MongoDBдокументнаясервисы с гибкой структурой данныхчаще через выгрузку в хранилище
Redisключ — значение, в памятикэш и сессиипочти не встречает

Один язык, разные диалекты

SQL — стандарт, но каждая СУБД реализует его со своими расширениями и привычками. Базовые SELECT, WHERE, JOIN и GROUP BY переносятся без правок. Запрос ниже возвращает одинаковые числа в PostgreSQL и в DuckDB песочницы: 167 оплат на 3983 в июне, 442 на 10 868 в июле и 642 на 15 788 в августе.

Расхождения начинаются на функциях. Таблица под запросом показывает три места, где запрос при переезде из одной СУБД в другую ломается или, хуже, молча меняет ответ. Последняя строка опаснее всех: доля, посчитанная делением целых чисел, в PostgreSQL превратится в ноль, а в ClickHouse или DuckDB останется дробью.

Одна задача в разных диалектах SQL
ЗадачаPostgreSQLMySQLSQL ServerClickHouse
Первое число месяцаdate_trunc('month', paid_at)::datedate_format(paid_at, '%Y-%m-01')datetrunc(month, paid_at) — с версии 2022toStartOfMonth(paid_at)
Первые 10 строкlimit 10limit 10select top 10 …limit 10
Результат 7 / 23 — деление целых3.50003 — деление целых3.5
Оплаты и выручка по месяцам: одинаковый ответ в PostgreSQL и DuckDB
select
  cast(date_trunc('month', paid_at) as date) as month,
  count(*) as payments,
  sum(amount) as revenue
from payments
group by 1
order by 1;
Правило для переносимых запросов

Делите на число с дробной частью или приводите тип явно: count(*) * 1.0 / total даёт одинаковую долю во всех СУБД. Даты сравнивайте с явными границами, а функции дат проверяйте по документации той СУБД, где запрос будет работать.

Какую СУБД изучать начинающему аналитику

Если выбирать одну, берите PostgreSQL. Его диалект ближе всего к стандарту, он бесплатный, его используют рабочие базы большинства продуктов, а знания переносятся на Greenplum, Postgres Pro и облачные сервисы. Курс «SQL с нуля» и симулятор SQL-аналитика учат именно PostgreSQL-совместимому SQL, а места, где песочница на DuckDB ведёт себя иначе, проверка отмечает отдельно.

Вторым шагом обычно становится ClickHouse: на нём во многих компаниях лежат события и витрины. Переход несложный, если понимать, что колоночная СУБД дорого читает лишние столбцы и плохо переносит частые изменения отдельных строк. MySQL, SQL Server и Oracle учат по необходимости, когда они стоят у работодателя: за неделю практики разница в диалекте перестаёт мешать.

Частые вопросы

Как расшифровывается СУБД?

Система управления базами данных. В английском — DBMS, database management system; реляционную называют RDBMS.

Excel — это СУБД?

Нет. В Excel можно хранить таблицы, но в нём нет транзакций, одновременной записи многими пользователями, контроля типов и прав на уровне строк и столбцов. Для отчёта на тысячу строк его хватает, для данных продукта — нет.

Чем СУБД отличается от SQL?

SQL — язык запросов, СУБД — программа, которая эти запросы выполняет. Один и тот же язык понимают PostgreSQL, MySQL, ClickHouse и десятки других СУБД, каждая со своим диалектом.

PostgreSQL и MySQL — это СУБД или базы данных?

СУБД. Базы данных — наборы таблиц, которые они обслуживают. В разговоре это различие обычно опускают.

Нужно ли аналитику администрировать СУБД?

Как правило, нет: установка, резервные копии и настройка производительности — работа администраторов и дата-инженеров. От аналитика ждут уверенного SQL, понимания транзакций и умения прочитать план медленного запроса.

Попробуйте запросы из статьи в песочнице на той же учебной базе: каталог и выручка по месяцам выполняются там без изменений.

Продолжить чтение
Вся библиотека
Продуктовая аналитика24 сентября 2026 г.10 мин
Несколько операций сцеплены в одно звено: либо проходят все вместе, либо ни одна

ACID в базах данных: принципы транзакций и уровни изоляции

Что такое ACID-транзакции простыми словами: атомарность, согласованность, изоляция и долговечность на примерах перевода денег и оплаты подписки. BEGIN, COMMIT, ROLLBACK, уровни изоляции и аномалии в PostgreSQL с реальными выводами и что всё это значит для аналитика.

Читать материал