double arrow

Нормальная форма Бойса-Кодда (НФБК)

Усиленная 3НФ

Третья нормальная форма (3НФ)

Отношение находится в 3НФ, если оно находится во 2НФ и нем отсутствуют транзитивные зависимости неключевых атрибутов от ключа. 3НФ освобождает от избыточности и аномалии выполнения операции включения, удаления, обновления (изменения), если отношение имеет один ключ и другие зависимости, в т.ч. многозначные, в нем отсутствуют. Но если при этом имеются другие зависимости, кроме зависимости от ключа, то 3НФ не обеспечивает отсутствия аномалий операций. В этом случае применяют усиленную 3НФ.

В нашем примере, разобранном выше, получим отношения:

Преподаватель

Личный номер Фамилия Должность Кафедра
Фролов Доцент ЭВМ
Костин Доцент ЭВМ
Бойко Профессор АСУ
Глазов Ассистент ТЭФ

Должность

Должность Оклад
Доцент
Доцент
Профессор
Ассистент

Кафедра

Кафедра Телефон
ЭВМ 4-89
ЭВМ 4-89
АСУ 4-89
ТЭФ 4-12

Пусть имеется отношение Курс _ Проект(преподаватель, предмет, студент), отражающее руководство преподавателями курсовых проектов, выполненных студентами:

Курс _ Предмет

Преподаватель Предмет Студент
ПР1 П1 СТ1
ПР2 П1 СТ2
ПР3 П1 СТ3
ПР1 П2 СТ4
ПР2 П2 СТ5
ПР2 П3 СТ6
ПР3 П3 СТ7

Курсовой проект ведут несколько преподавателей, и каждый студент закреплен за одним из них. Причем студент выполняет только один проект, и в то же время, один и тот же проект могут выполнять несколько студентов, но у разных преподавателей.

На роль ключа в этом отношении претендуют два атрибута «преподаватель»и «предмет».

Ообъединим их пока в составной ключ. Между атрибутами отношения существуют функциональные зависимости:

Преподаватель, Предмет → Студент (зависимость от ключа)

Студент → Предмет

Отношение Курс _ Предмет находится в 3НФ, поскольку в нем отсутствуют частичные и транзитивные функциональные зависимости неключевых атрибутов от ключа. Однако в отношении присутствуют два факта (о руководстве преподавателя проектом и о выполнении студентом проекта) и наблюдается зависимость части «Предмет» составного ключа от неключевого атрибута «Студент». Такая зависимость приводит к аномалиям:

1. существует проблема контроля непротиворечивости данных, т.к. замена студента требует просмотра всего отношения с целью поиска и изменения кортежей, содержащих данные о его преподавателе;

2. данные о студенте и его проекте не могут быть занесены в БД до тех пор, пока не назначен руководитель, и наоборот, если необходимо удалить преподавателя, то будут удалены данные и о руководимом им студенте.

Устранение этих аномалий достигается устранением функциональной зависимости части составного ключа от неключевого атрибута, т.е. зависимости: студент → предмет.

Для этого отношения Курс _ Проект разложим на два отношения, находящиеся в НФБК

Руководство

Преподаватель Предмет
ПР1 П1
ПР2 П1
ПР3 П1
ПР1 П2
ПР2 П2
ПР2 П3
ПР3 П3

Выполнение

Студент Предмет
СТ1 П1
СТ2 П1
СТ3 П1
СТ4 П2
СТ5 П2
СТ6 П3
СТ7 П3

Отношение находится в НФБК, если оно находится в 3НФ и нем отсутствуют зависимости ключей от неключевых атрибутов


Сейчас читают про: