Домашнее задание - Нормализация БД: проверка связей

Выполняйте только если преподаватель назначил это задание. Срок сдачи сообщит преподаватель.

Данное задание представляет собой резервный дистанционный практикум по дисциплине «ОП.08 Основы проектирования баз данных» (СИЭУиП) по теме «Нормализация БД: проверка связей». Задание направлено на математическую и практическую проверку декомпозиции схемы отношений на соединение без потерь данных по критерию Риссанена.

Задание 1. Формулировка и инженерный смысл критерия Риссанена

Теоретическая база проверки бинарной декомпозиции

Пусть задана схема отношения R и множество функциональных зависимостей F. Схема R декомпозирована на два отношения R₁ и R₂, при этом R₁ ∪ R₂ = R.

Объясните строгое математическое условие теоремы Риссанена и сформулируйте инженерное правило проверки общих атрибутов.

Задание 2. Проверка бинарной декомпозиции по критерию Риссанена

Исходная схема отношения

Дано отношение R(A, B, C, D) со следующим множеством функциональных зависимостей:

F = { A → B,   B → C,   C → D }

Анализируются два варианта бинарной декомпозиции схемы R:

  • Вариант декомпозиции I: R₁(A, B, C) и R₂(C, D).
  • Вариант декомпозиции II: R₁(A, B) и R₃(B, C, D).

Задание 3. Демонстрация генерации ложных кортежей (контрпример)

Построение числового контрпримера

Если для схемы R(A, B, C) с зависимостью A → B выбрать декомпозицию R₁(A, B) и R₂(B, C), критерий Риссанена нарушается.

Задайте конкретную таблицу исходных данных из 2 кортежей, постройте проекции на R₁ и R₂, выполните естественное соединение R₁ ⋈ R₂ и укажите, какие конкретно ложные кортежи (Spurious Tuples) возникли в результате.

Задание 4. Практический инженерный кейс (Служба доставки)

Предметная область: Логистика и доставка заказов

Таблица диспетчеризации службы доставки содержит атрибуты:

R(Номер_заказа, Курьер_ID, Тип_транспорта, Зона_доставки)

Бизнес-правила предметной области:

  • Каждый заказ имеет уникальный Номер_заказа, по которому однозначно определяются назначенный Курьер_ID и Зона_доставки: Номер_заказа → {Курьер_ID, Зона_доставки}.
  • Каждый курьер имеет закрепленный Тип_транспорта (пеший, велосипед, автомобиль): Курьер_ID → Тип_транспорта.

Задание 5. Самопроверка и профессиональные выводы

✓ Данные успешно сохранены