TGViewer
Системный Аналитик Системный Аналитик @sys_sa · 19.1K subscribers
Post #658 14.3K
📃 Основы проектирования БД

Рассмотрим нисходящий подход проектирования БД

Процесс проектирования по шагам


🔹концептуальное проектирование — анализ и описание бизнес-сущностей без привязки к технологиям
🔹логическое — преобразование бизнес-модели в структуру таблиц, ключей и связей
🔹физическое — реализация модели в конкретной СУБД с учетом особенностей хранения, типов данных, индексов и оптимизации

Между этими этапами используется 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. Основы технологий баз данных: учебное пособие - Новиков Б. А. и др

#проектирование #бд

➿➿➿➿➿➿➿➿
🧑‍🎓 Больше полезного в базе знаний по системному анализу
  • 👍 40
  • ❤ 19
  • 🔥 6
More from @sys_sa
  1. Sep 26, 2026Как облегчить работу ИТ-аналитика уже сейчас — без долгосрочных перестроек процессов? Обсу…
  2. Sep 24, 2026️️️️️️️️📚Курс: «Системный аналитик. Экспертный уровень». За 146 часов обучения получите а…
  3. Aug 28, 2026❓ ICAM (Incident Cause Analysis Method) ICAM (Incident Cause Analysis Method) — метод разб…
  4. Aug 19, 2026🖥 NewSQL NewSQL — класс реляционных СУБД, который совмещает привычный SQL и строгие ACID…
  5. Jul 14, 2026🔼 Server Driven UI (SDUI) Server Driven UI (SDUI) — архитектурный подход, при котором сер…
  6. Jul 7, 2026📊 Сравнение Баз данных и Хранилищ данных ▫️База данных – оперативное хранилище, где содер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →