Нормальные формы
Каждая НФ:
ü ограничивает определенный тип функциональной зависимости;
ü устраняет соответствующие аномалии при выполнении операции над отношениями БД.
При рассмотрении НФ будем отмечать все свойственные им аномалии и нежелательные эффекты. Для иллюстрации используем отношение с составным ключом преподаватель предмет. Оно находится в 1НФ, поскольку не содержит сложных атрибутов. В этом отношении можно отметить частичную функциональную зависимость атрибутов «фамилия», «должность», «оклад», «кафедра», «телефон» от части «личный номер» составного ключа. Такая зависимость приводит к следующим аномалиям:
1. имеет место дублирование данных о преподавателе, поскольку он может читать несколько предметов;
2. существует проблема контроля избыточности данных, т.к. изменение, например, оклада влечет за собой необходимость поиска и изменения окладов во всех кортежах с данным преподавателем;
3. возникает проблема с преподавателями, которые в данное время не ведут предметы, и с лаборантами, которые вообще не ведут предметов. А именно, преподавателя без предметов невозможно включить в отношение. И наоборот, если преподаватель увольняется, то будет удален и предмет, хотя он и должен продолжать читаться. Такимобразом,в отношение 1НФ требует дальнейших преобразований.
|
|
Отношение находится во 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от составного ключа. Чтобы устранить частичную зависимость и привести рассматриваемое отношение к 2НФ, необходимо разложить его на два отношения следующим образом:
ü построить проекцию без атрибутов, которые находятся в частичной зависимости от составного ключа;
ü построить проекцию на часть составного ключа и атрибуты, зависящие от этой части.
В итоге получим два отношения: предмет и преподаватель, находящихся во 2НФ:
Предмет
Личный номер | Название предмета | Количество часов |
ЭВМ | ||
Сети | ||
БД | ||
БД | ||
Физика | ||
Оптика |
Преподаватель
Личный номер | Фамилия | Должность | Оклад | Кафедра | Телефон |
Фролов | Доцент | ЭВМ | 4-89 | ||
Костин | Доцент | ЭВМ | 4-89 | ||
Бойко | Профессор | АСУ | 4-89 | ||
Глазов | Ассистент | ТЭФ | 4-12 |
В полученном отношении преподаватель имеются функциональные транзитивные зависимости:
Личный номер → кафедра → телефон
Личный номер → должность → оклад
Наличие транзитивных зависимостей порождает неудобства и аномалии следующего характера (на примере атрибута «телефон»):
1. имеет место дублирование информации о телефоне для преподавателей одной кафедры;
|
|
2. существует проблема контроля избыточности, поскольку изменение номера телефона кафедры влечет за собой необходимость поиска и изменения номеров всех преподавателей этой кафедры.
3. Нельзя включить данные о новой кафедре (название и номер телефона), если на данный момент еще отсутствуют преподаватели. И наоборот, при увольнении преподавателей с кафедры, данные о ней нельзя сохранить. Таким образом, 2НФ также может требовать дальнейших преобразований.