СУБД
СУБД расшифровывается как система управления базами данных — программа, которая хранит данные, исполняет запросы к ним и отвечает за транзакции и доступ.
Что такое СУБД
СУБД — расшифровка: система управления базами данных (англ. DBMS, Database Management System). Это программа, которая стоит между приложением и данными на диске: принимает запросы, исполняет их, следит за целостностью, разграничивает доступ и обеспечивает восстановление после сбоя.
Разница с базой данных простая: база данных — это сами данные, СУБД — программа, которая ими управляет. PostgreSQL — это СУБД; orders внутри неё — база данных. В разговоре оба слова используют как синонимы, но в формулировке «система управления базами данных (СУБД) — это...» речь всегда про программу.
Что входит в состав СУБД
- Процессор запросов — разбирает SQL, строит план выполнения, выбирает индексы.
- Менеджер транзакций — обеспечивает ACID, изоляцию параллельных операций и блокировки.
- Менеджер хранения — страницы на диске, буферный кеш в памяти.
- Журнал (WAL/binlog) — записывает изменения до их применения; из него восстанавливаются после сбоя и работает репликация.
- Подсистема доступа — пользователи, роли, права.
Как выглядит разделение на практике
# СУБД — сервис в системе
systemctl status postgresql
# Базы данных внутри одной СУБД
psql -U postgres -c "\l"
# shop | UTF8
# analytics | UTF8
# metrics | UTF8
Один сервер СУБД обслуживает много баз; одна база живёт внутри одной СУБД.
Виды СУБД
| Тип | Модель данных | Представители |
|---|---|---|
| Реляционные | Таблицы, строгая схема, SQL | PostgreSQL, MySQL, MS SQL Server |
| Документные | JSON-документы | MongoDB |
| Key-value | Ключ → значение | Redis |
| Колоночные | Аналитика, OLAP | ClickHouse, Greenplum |
| Time-series | Метрики со временем | InfluxDB |
| Встраиваемые | Библиотека, а не сервер | SQLite |
Подробнее о делении на реляционные и остальные — в статье реляционные и NoSQL БД.
Отдельно выделяют встраиваемые СУБД: SQLite — это не сервис, а библиотека внутри процесса приложения, и «клиент-серверной» архитектуры у неё нет вовсе.
Клиент-серверная архитектура
Классическая СУБД — сетевой сервис, слушающий свой порт:
| СУБД | Порт по умолчанию |
|---|---|
| PostgreSQL | 5432 |
| MySQL / MariaDB | 3306 |
| MS SQL Server | 1433 |
| MongoDB | 27017 |
| Redis | 6379 |
| ClickHouse | 8123 (HTTP), 9000 (native) |
Отсюда первое правило эксплуатации: порт СУБД не выставляют в интернет. Доступ ограничивают приватной сетью или SSH-туннелем, потому что открытый 5432 или 3306 с простым паролем находят сканеры за часы.
DBaaS
DBaaS (Database as a Service) — СУБД как облачный сервис: провайдер поднимает инстанс, обновляет версии, снимает бэкапы и настраивает репликацию, а вы получаете endpoint и пароль. Частный случай модели PaaS.
| Self-hosted на VPS | DBaaS | |
|---|---|---|
| Обновления, бэкапы | Ваша задача | Провайдера |
| Тюнинг и расширения | Полный контроль | Ограничен списком |
| Failover | Настраиваете сами | Обычно из коробки |
| Стоимость | Ниже | Выше при том же железе |
Self-hosted выбирают ради контроля, экзотических расширений и цены; DBaaS — когда нет выделенного DBA и важнее время команды.
Связанные термины
- Базы данных — то, чем управляет СУБД
- SQL — язык запросов к реляционным СУБД
- Реляционные и NoSQL БД — классификация моделей данных
- PostgreSQL — самая распространённая открытая СУБД
- Репликация — отказоустойчивость на уровне СУБД
- PaaS — модель, к которой относится DBaaS
Готовы запустить GPU-задачу?
Запустить GPU-сервер