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