Рассмотрим нисходящий подход проектирования БД
Процесс проектирования по шагам
🔹концептуальное проектирование — анализ и описание бизнес-сущностей без привязки к технологиям
🔹логическое — преобразование бизнес-модели в структуру таблиц, ключей и связей
🔹физическое — реализация модели в конкретной СУБД с учетом особенностей хранения, типов данных, индексов и оптимизации
Между этими этапами используется ER-диаграмма — инструмент визуализации
1️⃣ Концептуальная модель
Задача: понять и описать какие данные нужны системе и как они связаны между собой
❌ не решается, в какой СУБД будет хранить информацию и как будут называться таблицы
Основные шаги
🔘определить сущности: ключевые объекты, информацию о которых будет храниться (например, «Пользователь», «Заказ», «Товар»)
🔘описать связи между сущностями, т.е как сущности взаимодействуют друг с другом (например, «Пользователь оформляет Заказ»).
🔘выделить атрибуты сущностей: характеристики, которые описывают каждую сущность (например, «ФИО» у пользователя, «цена» у товара)
🔘зафиксировать правила предметной области (например, заказ всегда связан хотя бы с одним товаром).
2️⃣ Логическая
Создание реляционной схемы. ER-модель преобразуется в формальную схему, готовую для реализации в реляционной СУБД (распространенный тип БД).
Основные шаги
◾️cоздать таблицы по сущностям
Например, сущность «Пользователь» превращается в таблицу
users.◾️определить атрибуты как столбцы таблиц
У «Пользователя» будут поля:
id, name, email.◾️ задать ключи:
- первичный ключ (
id) для уникальной идентификации строки- внешние ключи для связи между таблицами
◾️нормализовать таблицы
- убрать повторы и избыточные данные
- проверить соответствие нормальным формам (1НФ, 2НФ, 3НФ)
Например, если в таблицу «Заказ» включить название товара, это приведет к дублированию
Решение: выделить отдельную таблицу «Товар» и связать через «Заказ–Товар»
◾️определить индексы
3️⃣ Физическая
Модель адаптируется под конкретную СУБД:
🔹выбираются типы данных (
VARCHAR, INTEGER, DATE)🔹настраиваются индексы, триггеры, процедуры
🔹проектируется стратегия хранения больших данных (шардинг, партиционирование)
🔹учитываются ограничения конкретной СУБД (PostgreSQL, MySQL, Oracle и т. д.)
📎 Материалы
1. Как работают базы данных в IT: разбор на примерах
2. Базы данных для системного аналитика. Краткий обзор на практике
3. Основы правил проектирования базы данных
4. Основы проектирования баз данных
5. Проектирование реляционных баз данных: основные принципы
📚 Книги
1. Основы баз данных (учебное пособие) - Кузнецов С. Д.
2. Путеводитель по базам данных - Владимир Комаров
3. Базы данных. Инжиниринг надежности - Кэмпбелл Лейн, Мейджорс Черити
4. Проектирование и реализация систем управления базами данных - Эдвард Сьоре
5. Основы технологий баз данных: учебное пособие - Новиков Б. А. и др
#проектирование #бд
➿➿➿➿➿➿➿➿
🧑🎓 Больше полезного в базе знаний по системному анализу