Проектирование базы данных — это не изолированный акт написания SQL-инструкций, а строгий последовательный инженерный процесс создания информационной основы автоматизированной системы.
В теории программной инженерии совокупность взаимосвязанных стадий от первоначального зарождения идеи до вывода системы из эксплуатации называется жизненным циклом базы данных (Database Life Cycle, DBLC).
Классический каскадный процесс проектирования баз данных опирается на трехуровневую архитектуру ANSI/SPARC (внешний, концептуальный и внутренний уровни), которая гарантирует логическую и физическую независимость данных.
Жизненный цикл базы данных включает 5 основных последовательных этапов с обратными связями (итерациями верификации):
На этом этапе проектировщик взаимодействует с заказчиками, экспертами предметной области и будущими пользователями. Главная задача — понять, какую реальность должна отражать база данных.
Создается инфологическая модель предметной области. Наиболее распространенным инструментом является модель «Сущность-Связь» (Entity-Relationship Model, ER-модель), предложенная Питером Ченом в 1976 году.
Концептуальная модель транслируется в конкретную модель данных. В подавляющем большинстве промышленных систем это реляционная модель.
Логическая схема привязывается к архитектурным особенностям выбранной СУБД (PostgreSQL, MariaDB, Oracle Database) и оборудованию.
База данных вводится в промышленный контур. Основные инженерные задачи:
pg_stat_statements и оптимизация планов выполнения (EXPLAIN ANALYZE).Инженерный процесс проектирования регламентируется четким набором входящей и исходящей документации:
| Этап DBLC | Входные данные и документы | Выходные документы и артефакты | Критерий перехода (Gate) |
|---|---|---|---|
| 1. Системный анализ | Первичная документация предприятия (накладные, акты, рецепты), интервью, регламенты, 152-ФЗ. | Техническое задание (ТЗ) на БД, словарь данных, спецификация SLA и объемов. | Утверждение ТЗ заказчиком |
| 2. Концептуальное проектирование | Утвержденное ТЗ, перечень бизнес-правил предметной области. | Инфологическая ER-диаграмма (нотации Chen / Crow's Foot), реестр сущностей и кардинальностей. | Согласование ERD экспертами домена |
| 3. Логическое проектирование | Концептуальная ER-диаграмма, правила трансляции отношений. | Реляционная схема в 3НФ, спецификация PK и FK, ограничения CHECK, логическая схема «Звезда» (OLAP). | Подтверждение 3НФ (отсутствие аномалий) |
| 4. Физическое проектирование | Логическая реляционная схема, профиль нагрузочного тестирования. | DDL-скрипты целевой СУБД, структуры индексов (B-Tree/GiST), конфигурация партиций, профиль RAID/дисков. | Успешный нагрузочный бенчмарк |
| 5. Эксплуатация и сопровождение | Развернутая в проде БД, эксплуатационный трафик транзакций. | Регламент резервного копирования (RPO/RTO), конфигурация репликации, отчеты slow-запросов. | Непрерывный эксплуатационный цикл |