Введение в системы управления базами данных
Системы управления базами данных (СУБД, Database Management System, DBMS) — комплекс программ, позволяющих создавать БД и работать с данными.
Почему данные стали ключевым ресурсом цифровых систем
Данные позволяют оптимизировать и автоматизировать бизнес-процессы, персонализировать клиентский опыт, создать продуктовую линейку.
Организации могут хранить [1] в БД информацию:
- о заказах, покупках, предпочтениях потребителя, чтобы предлагать акции или разрабатывать рекламные кампании;
- о бизнес-процессах, чтобы оптимизировать работу, снижать операционные издержки;
- о платежах, истории входов в приложение, чтобы минимизировать риск мошенничества.
Банки, финансовые организации, предприятия в сфере транспорта и энергетики могут хранить чувствительные сведения, а безопасность подобных объектов имеет критическое значение (187-ФЗ) [2]. К ИТ-инфраструктуре предъявляются повышенные требования ЗОКИИ и ФСТЭК [3].
Роль СУБД в современной архитектуре приложений
БД — фундамент архитектуры приложений, хранилище информации и центр управления данными. СУБД позволяют работать с неструктурированными и структурированными данными в условиях усложнения ИТ-инфраструктуры (микросервисы, облачные решения) и увеличения объёмов информации.
Что такое система управления базами данных (СУБД)
Это ПО, предназначенное для создания, управления, обновления и анализа БД.
Основные функции СУБД – сбор, хранение, извлечение и защита информации.
Чем СУБД отличается от обычного хранения данных
| Критерий сравнения | Система управления БД | Хранение на компьютере или в файле Excel |
| Способы извлечения и управления данными | Язык запросов (SQL, noSQL) | Полный перебор записей, иногда поиск по названию |
| Конкурентный доступ | Тысячи пользователей могут одновременно читать и редактировать БД | Несколько пользователей, проблема конкурентного доступа |
| Восстановление после сбоев | ✓ | +/- |
| Безопасность (шифрование, маскирование, ротация секретов) | ✓ | — |
Как работает СУБД
Система управления БД выступает прослойкой, связующим звеном между приложением, пользователем и БД. СУБД:
- принимает запрос;
- разбирает и оптимизирует его;
- запускает поиск данных в памяти или на диске;
- производит операцию (чтение, изменение);
- фиксирует информацию в журнале транзакций (логи);
- возвращает результат пользователю.

Хранение данных и структура таблиц
В реляционных БД (SQL — PostgreSQL, MySQL) традиционно используют таблицы с жёсткой схемой. Это значит, что структура, типы данных и связи определены до внесения информации, а изменение схемы затруднительно. Но в современных реляционных БД (например, PostgreSQL) схема может изменяться.
Нереляционные (NoSQL — Redis, Memcached, DynamoDB) используют пары «ключ — значение», и их схема более гибкая. При этом в некоторых NoSQL (например, Cassandra) схема может быть жёсткой. Единицей данных нередко выступают документы (как в CouchDB, MongoDB) или графы без строгой схемы (Neo4j, InfiniteGraph, InfoGrid).
Традиционно SQL-системы требуют предварительного определения схемы, тогда как NoSQL-системы чаще допускают динамическое изменение структуры данных.
Индексы и оптимизация запросов
Поиск по таблице, операции сортировки и фильтрации в БД занимают время из-за полного сканирования таблицы (Full Scan). Индексация — это способ оптимизировать SQL-запросы и ускорить поиск строк в таблице. БД обращается к отсортированной структуре индекса, быстрее находит адрес строки и считывает данные.
Управление транзакциями
Транзакция — это последовательность операций, которые выполняются как единое целое [4]. Например, при оформлении заказа в интернет-магазине транзакция может включать набор процессов: уменьшить количество товара на складе, обновить баланс пользователя, записать информацию о заказе в БД.
Механизм управления гарантирует: или все операции выполнятся, или при ошибке одной система вернётся в исходное состояние. Он позволяет избежать несогласованности состояния БД: к примеру, когда количество товаров уменьшено без фактического оформления заказа. Чтобы обеспечить безопасное и надёжное выполнение транзакций в БД, разработали набор стандартов ACID:
- атомарность (A, atomicity);
- согласованность (C, consistency);
- изоляция (I, isolation);
- устойчивость (D, durability).
Основные типы СУБД
Выделяют разные виды систем в зависимости от критерия сравнения:
- язык запросов: SQL или NoSQL;
- способ хранения информации: реляционные и нереляционные («ключ — значение», документные, графовые, специализированные колоночные);
- архитектура: локальные и распределённые;
- способ доступа: клиент-серверные, встраиваемые;
- лицензия: коммерческие и некоммерческие (открытое программное обеспечение).
Реляционные СУБД (SQL)
Как правило, используют табличный формат с набором полей (строки, столбцы). Примеры РСУБД:
- Platform V Pangolin;
- Oracle;
- PostgreSQL;
- MySQL.

Документоориентированные базы данных
Документные NoSQL‑системы (document-oriented database) обычно используют коллекции файлов с разными форматами: картинка, текст, видео. Среди ПО:
- CouchDB;
- Couchbase;
- MarkLogic;
- MongoDB;
- eXist-db.
Ключ — значение (Key — Value)
Объекты в подобных NoSQL-БД могут храниться в виде «ключ — значение». Подобную структуру используют:
- Redis;
- Amazon DynamoDB;
- Riak.
Графовые базы данных (graph database)
Графовые БД (GDB) обычно используют графы, их элементы и связи. Примеры:
- Neo4j;
- InfiniteGraph;
- JanusGraph;
- Blazegraph.
Для ИИ-приложений (больших языковых моделей, LLM) используют векторные БД. Они подходят для поиска изображений и похожих товаров, создания систем генерации, дополненной поиском (RAG, Retrieval-Augmented Generation). Примеры: Platform V Vector DB, Pinecone, Milvus, Qdrant.
Популярные системы управления базами данных
По сведениям рейтинга DB-Engines [5], на январь 2026 года в топ-5 ИТ-решений входили Oracle, MySQL, Microsoft SQL Server, PostgreSQL, MongoDB.
PostgreSQL
Свободно распространяемая объектно-реляционная СУБД (RDBMS) [6]:
- реализует ACID-принципы;
- поддерживает разные типы и структуры данных;
- обеспечивает производительность и параллелизм;
- содержит внутренние механизмы аварийного восстановления.
MySQL
MySQL — РСУБД, построенная по классической архитектуре «клиент — сервер» [8]. Поддерживает табличный формат, ACID-транзакции, репликацию и отказоустойчивость.
MongoDB
Документоориентированная СУБД традиционно относится к классу NoSQL-систем [9]. Данные хранятся в отдельных документах, которые объединяются в коллекцию.
Oracle Database
Объектно-реляционная СУБД [10] с коммерческой лицензией основана на клиент-серверной модели. Oracle DB содержит механизмы безопасности, доступности, резервного копирования и восстановления. Создаётся и поддерживается иностранной компанией, что связано с регуляторными рисками.
Архитектура и масштабирование баз данных
Архитектура может быть централизованной или распределённой. В первом случае БД находится на одном сервере, но ограничена производительностью оборудования. Во втором — информация распределена по узлам: такая архитектура обеспечивает производительность и доступность. Чтобы минимизировать риск отказа при увеличении нагрузок, используют следующие стратегии масштабирования БД:
- вертикальное (Scaling Up): наращивание вычислительной мощности сервера: диски, процессор, память;
- горизонтальное (Scaling Out): разделение сервера на кластеры: сегментирование (шардинг), репликация.
Репликация данных
Процесс копирования и синхронизации информации [11] обеспечивает отказоустойчивость и масштабируемость. Если основной сервер выходит из строя, его функции переходят одной из реплик.

Механизмы репликации доступны как на уровне БД, так и на уровне сторонних платформ вроде Oracle GoldenGate или Platform V GraDeLy.

Сегментирование (шардирование)
Шардинг (sharding) — это разделение данных на сегменты (шарды) и распределение по разным серверам. Каждый шард — независимый узел, хранящий часть общей базы. Подход позволяет обрабатывать запросы параллельно и повышать производительность при росте нагрузки.

Высокая доступность
Доступность БД (database availability) — свойство системы, при котором авторизованные пользователи могут беспрепятственно получить доступ к данным для чтения и/или изменения. Достигается использованием механизмов:
- репликации;
- групп доступности Always On;
- шардирования;
- балансировки нагрузки;
- кластеризации.
Доступность БД отслеживают с использованием внутренних встроенных механизмов БД или сторонних сервисов. Например, для мониторинга и диагностики подходят специальные инструменты вроде Percona Monitoring and Management (PMM), Foglight, Platform V Kintsugi.

Безопасность данных в СУБД
Среди механизмов безопасности [12]:
- журналирование и аудит;
- СЗИ (защита от привилегированных пользователей), прозрачное защитное преобразование (TDE), защита конфигурации;
- разграничение и контроль доступов;
- шифрование данных;
- маскирование запросов.
Контроль доступа и аутентификация
На уровне БД
предусматриваются механизмы
идентификации, аутентификации и авторизации.
Это могут быть:
- ролевая модель;
- автоматическое завершение неактивных сессий;
- утилиты засекречивания и хранения паролей, а также другие [13] опции для повышения безопасности.
Шифрование данных
Это преобразование информации в зашифрованный вид, чтобы сделать её недоступной для чтения без ключа. Для защиты данных могут использовать технологию прозрачного защитного преобразования данных (Transparent Data Encryption, TDE) [14]. Она подразумевает, что данные засекречиваются перед записью на диск и декодируются при чтении в память.
Резервное копирование и восстановление
Процесс обеспечения сохранности данных может осуществляться на уровне системы управления БД [15] (например, с использованием утилиты pg_probackup) с использованием технологий:
- SQL-дампы — моментальные снимки/копии (pg_dump);
- резервное копирование на уровне файловой системы;
- непрерывное архивирование и восстановление до заданной точки во времени (PITR).
Если встроенных средств СУБД недостаточно, возможно подключение сторонних инструментов репликации вроде Platform V CopyWala, Qlik Replicate, Debezium, или Platform V GraDeLy.
Преимущества использования СУБД
Системы управления позволяют:
- выдерживать нагрузку более десятков тысяч транзакций в секунду (TPS);
- обеспечивать структурированное хранение петабайт информации;
- масштабировать нагрузки вертикально или горизонтально;
- гарантировать надёжность и сохранность сведений (резервное копирование, восстановление).
Распространённые ошибки при работе с базами данных
| Ошибка | Пример | Возможные последствия |
| Неоптимизированные SQL-запросы | Использование SELECT * вместо выборки нужных столбцов | Перегрузка сети и памяти |
| Ошибки типов | Сравнение числа и строки | БД нужно дополнительное время на приведение типов, поиск замедляется |
| Отсутствие или неправильное использование индекса | Отказ от INDEX в таблице | Полное сканирование таблицы (Full Table Scan) и медленное выполнение запросов |
| Нарушение целостности БД | Отсутствие внешних ключей (Foreign Keys) или уникальных ограничений (Unique Constraints) | Появление дублей |
| Некорректная обработка транзакций | Отказ от механизмов BEGIN TRANSACTION / COMMIT / ROLLBACK | При сбое нарушается согласованность информации |
Если нет резервных копий, есть риск потерять информацию при сбое диска или ошибке администратора. Взаимные блокировки в БД (deadlocks, дедлоки) могут замедлить работу системы.
Когда выбирать SQL и когда NoSQL
| Критерий сравнения | SQL-базы | NoSQL-базы |
| Основное предназначение | Хранить структурированную информацию | Хранить неструктурированные и быстроизменяющиеся данные |
| Схема | Структура чаще жёсткая: не изменяется, заранее известна | Как правило, гибкая (Schema-less): данные не структурированы, полуструктурированы |
| Возможные сферы использования | Cистемы управления ресурсами предприятия (ERP), управления клиентами (CRM), финансовые системы, банки | Соцсети, аналитика больших данных |
| Поддержка ACID | Да | Может быть ограничена |
Итоги и ключевые выводы
СУБД позволяют создавать базы данных и управлять данными. Системы могут быть реляционными или нереляционными, иностранными или отечественными, свободно распространяемыми или коммерческими. Механизмы репликации, шардирования, индексации и резервного копирования позволяют использовать СУБД на проектах различной сложности: от простых приложений и сайтов до высоконагруженных систем.
