Повторение названий отделов и телефонов в сотнях строк приводит к растрате диска и риску рассогласования при частичном обновлении.
Невозможно добавить новый отдел в систему, пока в него не нанят первый сотрудник с первичным ключом EmpID.
При увольнении последнего сотрудника удаляется вся информация о самом отделе, его бюджете и телефоне.
Математически доказанная декомпозиция отношения на основе аппарата функциональных зависимостей (ФЗ).
R(U) — схема отношения. Зависимость X → Y означает, что атрибуты X однозначно определяют атрибуты Y во всех допустимых состояниях БД.
Паспорт, Табельный_номер).ФИО, Дата_рождения).ФЗ задается бизнес-логикой предметной области, а не случайным совпадением значений в конкретных 5 строках таблицы!
| Тип зависимости | Формальное условие | Характеристика и влияние на нормализацию |
|---|---|---|
| Тривиальная | Y ⊆ X |
Истинна всегда ({ТабНомер, ФИО} → {ФИО}). Не несет новой информации. |
| Полная | X → Y и ∀ X' ⊂ X: X' ↛ Y |
Зависимость от составного ключа в целом, а не от его фрагмента. База 2-й нормальной формы. |
| Частичная | X' → Y, где X' ⊂ X |
Зависимость от части составного ключа. Нарушает 2НФ! Вызывает дублирование. |
| Транзитивная | X → Y, Y → Z, Y ↛ X |
Зависимость через промежуточный неключевой атрибут. Нарушает 3НФ! |
Любой набор атрибутов однозначно определяет любое свое подмножество: AB → A.
Добавление одинакового набора Z к обеим частям сохраняет однозначность вывода.
Цепочка однозначных переходов передает зависимость от первого звена к последнему.
Позволяет сгруппировать независимые следствия одного детерминанта в одну ФЗ.
Позволяет расщеплять правую часть на атомарные зависимости (Singleton RHS).
Позволяет заменять промежуточные атрибуты внутри составного детерминанта.
XY → Z ⟹ X → Z ЛОЖНО! Из того, что пара полей определяет результат, не следует, что одно поле способно сделать то же самое.
X в силу системы правил вывода: X⁺ = { A ∈ U | F ⊢ X → A }.
X⁺ := X.LHS → RHS из F. Если LHS ⊆ X⁺, то добавить X⁺ := X⁺ ∪ RHS.X⁺ не перестанет изменяться.Практическая роль X⁺: Позволяет мгновенно проверить любую зависимость X → Y (достаточно проверить Y ⊆ X⁺) и найти ключи отношения.
Отношение R(A, B, C, D, E) с ФЗ: F = { A → BC, CD → E, B → D, E → A }. Вычислим {B}⁺:
| Шаг | Проверяемая зависимость | Условие LHS ⊆ Текущее X⁺ | Результат добавления в X⁺ |
|---|---|---|---|
| 0 | Инициализация | Базовый набор | { B } |
| 1 | B → D |
{B} ⊆ {B} (Да) |
{ B, D } |
| 2 | A → BC, CD → E, E → A |
Ни один LHS не содержится в {B, D} |
Изменений нет. Стоп! |
Любое подмножество атрибутов K, чье замыкание покрывает ВСЮ схему отношения:
Суперключ однозначно идентифицирует кортеж, но может содержать «лишние» поля.
Минимальный суперключ. Никакое его строгое подмножество не является суперключом:
Один из кандидатных ключей выбирается как первичный ключ (PK).
| Класс | Участие атрибута в ФЗ | Правило включения в кандидатный ключ |
|---|---|---|
| L (Left) | Только в детерминантах (слева) | ОБЯЗАН входить во ВСЕ кандидатные ключи. |
| R (Right) | Только в зависимых частях (справа) | НИКОГДА НЕ ВХОДИТ в кандидатные ключи. |
| N (Neither) | Не участвует ни в одной ФЗ | ОБЯЗАН входить во ВСЕ кандидатные ключи. |
| B (Both) | Встречается и слева, и справа | Кандидат на дополнение ключа. Перебираются комбинации с (L ∪ N). |
(L ∪ N)⁺ = U, то L ∪ N — единственный потенциальный ключ отношения!
F_c называется минимальным покрытием для F, если F_c ≡ F (эквивалентны) и в F_c отсутствует избыточность.
Все правые части состоят строго из одного атрибута: X → A.
В составных детерминантах XA → B нет посторонних атрибутов (X → B ∉ F⁺).
Ни одну ФЗ нельзя удалить без изменения замыкания: (F \ {f}) ⊬ f.
X → {A₁, A₂, ...} заменяем на набор X → A₁, X → A₂...XA → B вычисляем {X}⁺. Если B ∈ {X}⁺, атрибут A удаляется: X → B.f: X → A временно исключаем ее из множества и вычисляем {X}⁺ без f. Если A ∈ {X}⁺, зависимость f удаляется навсегда.Дано: F = { X → Y, Y → Z, XZ → W, W → V }.
Y, Z, W, V).XZ → W. Вычисляем {X}⁺ в F:
{X}⁺ = {X, Y, Z, W, V}. Так как Z ∈ {X}⁺, атрибут Z в левой части избыточен! Заменяем XZ → W на X → W.{ X → Y, Y → Z, X → W, W → V }. Проверяем каждую ФЗ — ни одна не выводится из остальных.Обучающиеся выполняют индивидуальный вариант в интерактивном листе zanyatie.html:
| Критерий | Баллы | Что проверяется экспертом |
|---|---|---|
| Вычисление замыкания X⁺ | 2 балла | Точность пошаговой трассировки, верность включения всех зависимых атрибутов. |
| Определение первичных ключей | 1 балл | Обоснование через метод L-R-B-N, нахождение минимальных суперключей. |
| Минимальное покрытие и самопроверка | 1 балл | Устранение избыточных полей и ФЗ, аргументированные ответы на вопросы. |