Рабочий лист: Нормализация БД: функциональные зависимости

ОП.08 Основы проектирования баз данных — Занятие 15: Нормализация БД: функциональные зависимости
Выберите ваш практический вариант:

Практический вариант 1: Формальная схема R(A, B, C, D, E)

Условие задачи:

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

F = { A → BC, CD → E, B → D, E → A }

Все зависимости отражают бизнес-правила предметной области. Требуется вычислить замыкание, найти все потенциальные ключи и минимальное покрытие.

Задание 1.1. Вычисление замыкания множества атрибутов {B}+

Примените алгоритм вычисления замыкания для множества {B} относительно F. Приведите пошаговую трассировку и сделайте вывод о том, является ли {B} суперключом отношения:

Задание 1.2. Определение всех потенциальных (кандидатных) ключей

Используя классификацию атрибутов по методу L-R-B-N и расчет замыканий, найдите ВСЕ потенциальные ключи отношения R. Докажите их минимальность:

Задание 1.3. Построение минимального покрытия (Minimal Cover)

Выполните 3 шага построения минимального покрытия для F: расщепление правых частей, проверка левых частей на посторонние атрибуты и устранение избыточных зависимостей:

Задание 1.4. Вопросы самопроверки

Ответьте на теоретический вопрос: почему наличие зависимости E → A позволяет получить кандидатный ключ {E} сразу после нахождения ключа {A}?

Практический вариант 2: «Проекты и сотрудники»

Условие задачи:

В единой денормализованной таблице предприятия R(EmpID, ProjID, DeptID, Role, Salary) зафиксированы следующие функциональные зависимости:

F = {
  EmpID → DeptID, Salary;
  {EmpID, ProjID} → Role
}

Один сотрудник может работать в нескольких проектах. Зарплата и отдел сотрудника фиксированы и не зависят от выполняемого проекта.

Задание 2.1. Определение потенциального ключа отношения

Определите первичный/потенциальный ключ отношения R с помощью вычисления замыкания. Обоснуйте, почему ключ является составным:

Задание 2.2. Выявление частичной функциональной зависимости

Выявите частичные функциональные зависимости в схеме R. Объясните, почему зависимость EmpID → DeptID, Salary является частичной, и какую нормальную форму она нарушает:

Задание 2.3. Иллюстрация аномалий базы данных

Приведите конкретные примеры аномалии избыточности, аномалии обновления и аномалии удаления, возникающих в этой схеме при смене зарплаты или увольнении сотрудника:

Задание 2.4. Декомпозиция отношения во Вторую нормальную форму (2НФ)

Предложите проектную декомпозицию отношения R на набор нормализованных отношений (таблиц), устраняющую частичные зависимости:

Практический вариант 3: «Логистика и доставка»

Условие задачи:

В информационной системе транспортной компании создано отношение R(ShipmentID, ItemID, ClientID, WarehouseID, Quantity, Address) со следующими ФЗ:

F = {
  ShipmentID → ClientID, Address;
  {ShipmentID, ItemID} → Quantity, WarehouseID;
  ClientID → Address
}

Одна отгрузка ShipmentID оформляется на одного клиента и может содержать множество товаров ItemID с разных складов.

Задание 3.1. Определение потенциального ключа отношения

Вычислите замыкание атрибутов и докажите, какой составной набор атрибутов выступает единственным потенциальным ключом отношения:

Задание 3.2. Выявление и доказательство транзитивной зависимости

Найдите транзитивную функциональную зависимость неключевого атрибута от ключа. Докажите нарушение Третьей нормальной формы (3НФ):

Задание 3.3. Анализ аномалии при изменении адреса клиента

Опишите, к каким последствиям приведет изменение юридического адреса клиента в этой таблице, если клиент оформил 500 заказов за год:

Задание 3.4. Проект декомпозиции отношения в 3НФ

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

Практический вариант 4: Формальная схема R(X, Y, Z, W, V)

Условие задачи:

Задана схема отношения R(X, Y, Z, W, V) с исходным множеством функциональных зависимостей F:

F = { X → Y, Y → Z, XZ → W, W → V }

Требуется строго доказать выводимость зависимости по аксиомам Армстронга и построить каноническое минимальное покрытие.

Задание 4.1. Доказательство выводимости зависимости X → W по аксиомам Армстронга

Используя только базовые аксиомы Армстронга (рефлексивность, пополнение, транзитивность) и производные правила, строго докажите, что зависимость X → W логически следует из F:

Задание 4.2. Нахождение потенциального ключа отношения R

Найдите единственный потенциальный ключ отношения с помощью метода L-R-B-N и вычисления замыкания:

Задание 4.3. Построение минимального покрытия (Minimal Cover)

Проверьте составной детерминант XZ → W на наличие постороннего атрибута. Постройте минимальное покрытие F_min:

Задание 4.4. Вопрос самопроверки

Объясните, почему при наличии зависимостей X → Y и Y → Z атрибут Z в левой части XZ → W является избыточным:

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