Databases

СУБД

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

Что такое СУБД

СУБД — расшифровка: система управления базами данных (англ. DBMS, Database Management System). Это программа, которая стоит между приложением и данными на диске: принимает запросы, исполняет их, следит за целостностью, разграничивает доступ и обеспечивает восстановление после сбоя.

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

Что входит в состав СУБД

  • Процессор запросов — разбирает SQL, строит план выполнения, выбирает индексы.
  • Менеджер транзакций — обеспечивает ACID, изоляцию параллельных операций и блокировки.
  • Менеджер хранения — страницы на диске, буферный кеш в памяти.
  • Журнал (WAL/binlog) — записывает изменения до их применения; из него восстанавливаются после сбоя и работает репликация.
  • Подсистема доступа — пользователи, роли, права.

Как выглядит разделение на практике

# СУБД — сервис в системе
systemctl status postgresql

# Базы данных внутри одной СУБД
psql -U postgres -c "\l"
#   shop      | UTF8
#   analytics | UTF8
#   metrics   | UTF8

Один сервер СУБД обслуживает много баз; одна база живёт внутри одной СУБД.

Виды СУБД

Тип Модель данных Представители
Реляционные Таблицы, строгая схема, SQLPostgreSQL, MySQL, MS SQL Server
Документные JSON-документы MongoDB
Key-value Ключ → значение Redis
Колоночные Аналитика, OLAPClickHouse, Greenplum
Time-series Метрики со временем InfluxDB
Встраиваемые Библиотека, а не сервер SQLite

Подробнее о делении на реляционные и остальные — в статье реляционные и NoSQL БД.

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

Клиент-серверная архитектура

Классическая СУБД — сетевой сервис, слушающий свой порт:

СУБД Порт по умолчанию
PostgreSQL 5432
MySQL / MariaDB3306
MS SQL Server1433
MongoDB27017
Redis6379
ClickHouse8123 (HTTP), 9000 (native)

Отсюда первое правило эксплуатации: порт СУБД не выставляют в интернет. Доступ ограничивают приватной сетью или SSH-туннелем, потому что открытый 5432 или 3306 с простым паролем находят сканеры за часы.

DBaaS

DBaaS (Database as a Service) — СУБД как облачный сервис: провайдер поднимает инстанс, обновляет версии, снимает бэкапы и настраивает репликацию, а вы получаете endpoint и пароль. Частный случай модели PaaS.

Self-hosted на VPSDBaaS
Обновления, бэкапы Ваша задача Провайдера
Тюнинг и расширения Полный контроль Ограничен списком
Failover Настраиваете сами Обычно из коробки
Стоимость Ниже Выше при том же железе

Self-hosted выбирают ради контроля, экзотических расширений и цены; DBaaS — когда нет выделенного DBA и важнее время команды.

Связанные термины

  • Базы данных — то, чем управляет СУБД
  • SQL — язык запросов к реляционным СУБД
  • Реляционные и NoSQL БД — классификация моделей данных
  • PostgreSQL — самая распространённая открытая СУБД
  • Репликация — отказоустойчивость на уровне СУБД
  • PaaS — модель, к которой относится DBaaS

Готовы запустить GPU-задачу?

Запустить GPU-сервер