Теоретический конспект студента

Концептуальное проектирование баз данных

Дисциплина: ОП.08 Основы проектирования баз данных | СИЭУиП

Тематический раздел: Тема 3. Этапы проектирования баз данных (§2.2 с.7 программы)

Ключевая тема: Концептуальное инфологическое моделирование, интеграция локальных представлений (User Views) и устранение конфликтов проектирования

1. Место концептуального проектирования в жизненном цикле БД

Проектирование базы данных — это многоэтапный инженерный процесс преобразования неформализованных требований заказчика в оптимизированные структуры хранения СУБД. В соответствии с классической трехуровневой архитектурой ANSI/SPARC проектирование делится на три базовые стадии:

┌─────────────────────────────────────────────────────────────────────────┐ │ ЭТАПЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ │ └─────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ 1. КОНЦЕПТУАЛЬНОЕ (ИНФОЛОГИЧЕСКОЕ) ПРОЕКТИРОВАНИЕ │ │ • Анализ предметной области и интервью пользователей │ │ • Сбор локальных представлений (User Views) │ │ • Интеграция представлений и разрешение конфликтов │ │ • Итог: Глобальная ER-диаграмма, не зависящая от типа СУБД │ └─────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ 2. ЛОГИЧЕСКОЕ (ДАТАЛОГИЧЕСКОЕ) ПРОЕКТИРОВАНИЕ │ │ • Отображение ER-схемы в реляционную модель таблиц │ │ • Нормализация отношений (1NF → 2NF → 3NF / BCNF) │ │ • Определение первичных и внешних ключей │ └─────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ 3. ФИЗИЧЕСКОЕ ПРОЕКТИРОВАНИЕ │ │ • Привязка к конкретной СУБД (PostgreSQL, Oracle, MySQL) │ │ • DDL-скрипты, типы данных, индексы (B-Tree, GIN), шардирование │ └─────────────────────────────────────────────────────────────────────────┘
Определение: Концептуальная модель данных — это высокоуровневое смысловое описание предметной области (сущности, их свойства и связи между ними), создаваемое без учета программного обеспечения СУБД, аппаратной платформы и физических структур файлов.

2. Стратегии проектирования: от идеи к глобальной схеме

Как подойти к созданию концептуальной схемы, когда перед проектировщиком крупное предприятие с десятками отделов и сотнями регламентов? В инженерной практике применяются 4 фундаментальные стратегии:

Стратегия Принцип работы Сфера применения и риски
Нисходящая (Top-Down) Движение «от общего к частному»: сначала определяются укрупненные концепции («Предприятие», «Клиент», «Договор»), затем они пошагово расщепляются на составные подсущности с детализацией атрибутов. Идеальна на этапе предпроектного обследования для согласования видения с высшим руководством. Риск: можно упустить тонкие прикладные нюансы реального документооборота.
Восходящая (Bottom-Up) Движение «от частного к общему»: сбор всех элементарных реквизитов первичных документов (счетов, накладных, ведомостей) и группировка их в сущности на основе семантической близости. Применяется при жестко регламентированном учете. Риск: при сотнях атрибутов аналитик тонет в частностях и теряет целостность картины.
«Внутри-наружу» (Inside-Out) Выбирается центральная, наиболее понятная сущность («Заказ» в интернет-магазине), после чего схема наращивается по радиусу смежными объектами («Товар», «Оплата», «Доставка»). Хорошо для быстрого создания MVP ключевого бизнес-процесса.
Смешанная (Mixed Strategy) Золотой стандарт индустрии: сочетание нисходящего каркаса на уровне топ-менеджмента и параллельного восходящего анализа локальных представлений (User Views) в функциональных подразделениях. Позволяет масштабировать проектирование: разные аналитики обследуют разные отделы, после чего их модели объединяются (View Integration).

3. Локальные представления (User Views) и процесс интеграции

Каждое функциональное подразделение видит деятельность предприятия по-своему. Рассмотрим классический пример торговой компании:

Локальное представление №1: Бухгалтерия

Бухгалтерию волнуют финансовые проводки, взаиморасчеты и документы:

  • Сущность Товар: Код_товара, Наименование, Цена_закупки, Ставка_НДС.
  • Сущность Накладная: Номер_документа, Дата_выписки, Контрагент.
  • Сущность Оплата: Номер_платежки, Сумма, Статус_банка.

Локальное представление №2: Склад

Склад интересует логистика, физическое размещение и партии:

  • Сущность Номенклатура: Артикул, Название, Вес_брутто, Объем_м3.
  • Сущность Ячейка_хранения: Ряд, Стеллаж, Полка, Макс_нагрузка.
  • Сущность Партия: Номер_партии, Дата_приемки, Срок_годности.

Пошаговая блок-схема процесса интеграции локальных представлений

┌─────────────────────────────────────────────────────────────────────────┐ │ ЭТАП 1. ИДЕНТИФИКАЦИЯ СООТВЕТСТВИЙ │ │ Поиск общих семантических концепций между представлением А и Б │ │ Сравнение описаний, списков атрибутов и бизнес-контекста │ └─────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ ЭТАП 2. ВЫЯВЛЕНИЕ КОНФЛИКТОВ И РАСХОЖДЕНИЙ │ │ • Именные конфликты (Синонимы? Омонимы?) │ │ • Структурные коллизии (Сущность vs Атрибут? Кардинальность связей?) │ │ • Конфликты ограничений (Диапазоны значений, обязательность полей) │ └─────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ ЭТАП 3. ПРИНЯТИЕ РЕЗОЛЮЦИИ И ТРАНСФОРМАЦИЯ МОДЕЛЕЙ │ │ • Выбор единого канонического имени по корпоративному словарю │ │ • Повышение статуса атрибута до сущности (при несовпадении детализации) │ │ • Выбор наиболее общего правила мощности связей (1:N → M:N) │ └─────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ ЭТАП 4. ФОРМИРОВАНИЕ ГЛОБАЛЬНОЙ КОНЦЕПТУАЛЬНОЙ СХЕМЫ │ │ Объединение непересекающихся сущностей, слияние согласованных сущностей │ │ Устранение транзитивной семантической избыточности │ └─────────────────────────────────────────────────────────────────────────┘

4. Разрешение конфликтов интеграции: наглядные примеры

4.1. Разрешение именных конфликтов

Пример 1: Конфликт синонимов (Synonym Conflict)

В Бухгалтерии объект назван Товар, а на Складе тот же физический объект называется Номенклатура.

Бухгалтерия: [Товар] (Код_товара, Название, Цена_закупки, Ставка_НДС) Склад: [Номенклатура] (Артикул, Наименование, Вес_брутто, Объем_м3) РАЗРЕШЕНИЕ: 1. Фиксируем синонимию: Товар == Номенклатура (один физический объект). 2. Выбираем каноническое наименование: Товар. 3. Объединяем наборы атрибутов: [Товар] (Товар_ID PK, Артикул UNIQUE, Наименование, Цена_закупки, Ставка_НДС, Вес_брутто, Объем_м3)

Пример 2: Конфликт омонимов (Homonym Conflict)

В Гостиничном комплексе в Службе бронирования есть термин Номер (жилая комната), а в Анкете гостя есть атрибут Номер (номер мобильного телефона).

Бронирование: [Номер] (Номер_ID, Категория, Этаж, Стоимость_суток) --> Сущность Клиенты: [Гость] (Гость_ID, ФИО, Номер) --> Атрибут РАЗРЕШЕНИЕ: Смысл разный! Механическое слияние недопустимо! Вводим контекстные квалификаторы: • Сущность комнаты переименовывается в [Номер_комнаты] (или [Гостиничный_номер]). • Атрибут гостя явно квалифицируется как Телефон_гостя.

4.2. Разрешение структурных конфликтов

Пример 3: Конфликт «Сущность vs Атрибут»

В представлении Бухгалтерии поставка описывается атрибутом Партия_товара (строка с номером партии). В представлении Склада Партия — это критически важная сущность со сроком годности, сертификатом качества и условиями хранения.

Бухгалтерия: [Накладная] ---> (Номер_партии как текстовый атрибут) Склад: [Партия] (Партия_ID, Дата_выпуска, Срок_годности, Сертификат_соответствия) РАЗРЕШЕНИЕ: Правило: «При конфликте сущность vs атрибут побеждает Сущность!». В глобальной схеме Партия сохраняется как полноценная Сущность [Партия]. В [Накладной] атрибут преобразуется в связь с сущностью [Партия].

Пример 4: Конфликт типов связей (кардинальностей)

В Диспетчерской автопарка считают, что Водитель закреплен строго за одним Автомобилем (1:1). В Ремонтной зоне механики знают, что один Водитель при поломке пересаживается на дежурные машины, а одну машину в разные смены водят разные шоферы (M:N).

Диспетчерская: [Водитель] ──(1:1)── [Автомобиль] Ремонтная зона: [Водитель] ──(M:N)── [Автомобиль] РАЗРЕШЕНИЕ: Правило: «В глобальной схеме принимается более общее (менее ограничительное) правило». Связь принимается как M:N. Для учета истории смен вводится ассоциативная сущность [Смена_водителя] или [Путевой_лист] с атрибутами (Дата_выезда, Время_смены, Показания_одометра).

5. Вопросы для самопроверки студентов

1. Почему концептуальное проектирование называют «инфологическим»?
Потому что оно описывает информацию и логику взаимосвязи реальных объектов предметной области, абстрагируясь от вычислительной техники, типов файлов и команд конкретной СУБД.
2. Чем отличается конфликт синонимов от конфликта омонимов?
Синонимы — это разные названия одного и того же объекта (Товар и Номенклатура), их необходимо объединить под одним каноническим именем. Омонимы — это одинаковые названия совершенно разных объектов (Номер комнаты и Номер телефона), их необходимо строго разделить и переименовать с уточняющими префиксами.
3. Какое решение принимается, если один отдел считает объект атрибутом, а второй — сущностью?
Объект всегда повышается до статуса полноценной сущности, чтобы сохранить все детализированные свойства, необходимые второму отделу. В первой структуре создается связь со вновь выделенной сущностью.
4. В чем преимущество смешанной стратегии (Mixed Strategy) перед нисходящей?
Смешанная стратегия позволяет распараллелить работу аналитиков по отделам компании, собирать реальные требования из документов (User Views) и одновременно удерживать общую системную архитектуру предприятия.