Часть избыточности устраняется при переводе отношения в 2НФ.
Вторая нормальная форма. Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа (составного).
Для устранения частичной зависимости и перевода отношения в 2НФ необходимо, используя операцию проекции, разложить его на несколько отношений следующим образом:
построить проекцию без атрибутов, находящихся в частичной функциональной зависимости от первичного ключа;
построить проекции на части составного первичного ключа и атрибуты, зависящие от этих частей.
В результате получим два отношения R1 и R2 в 2НФ (рис. 7.6).
а) б)
R
ФИО
Предм
Группа
1
ФИО
|
Предм
|
Группа
|
ВидЗан
|
Мухин И.М.
|
ИКТ
|
Инф01
|
Лаб.
|
Мухин И.М.
|
С++
|
Инф03
|
Лаб.
|
Лапин М.И.
|
ИКТ
|
Инф01
|
Лек.
|
Лапин М.И.
|
С#
|
Инф01
|
Лаб.
|
Котова Н.Г.
|
C++
|
Инф03
|
Лек.
|
Котова Н.Г.
|
C#
|
Инф01
|
Лек.
|
Пак В.В
|
CУБД
|
Инф04
|
Лек.
|
R2
ФИО
|
Долж
|
Оклад
|
Стаж
|
Д_Стаж
|
Каф
|
Мухин И.М.
|
преп
|
100000
|
5
|
2000
|
25
|
Лапин М.И.
|
ст.преп
|
120000
|
7
|
3000
|
25
|
Котова Н.Г
|
доцент
|
150000
|
10
|
4000
|
25
|
Пак В.В
|
проф.
|
170000
|
5
|
2000
|
24
|
Рис. 7.6. Отношения БД в 2НФ
В отношении R1 первичный ключ является составным и состоит из атрибутов ФИО, Предм, Группа. Напомним, что данный ключ в отношении R1 получен в предположении, что каждый преподаватель в одной группе по одному предмету может либо читать лекции, либо проводить практические занятия. В отношении R2 ключ ФИО.
Исследование отношений R1 и R2 показывает, что переход к 2НФ позволил исключить явную избыточность данных в таблице R2 - повторение строк со сведениями о преподавателях. В R2 по-прежнему имеет место неявное дублирование данных.
Для дальнейшего совершенствования отношения необходимо преобразовать его в ЗНФ.
Третья нормальная форма.
Определение 1. Отношение находится в ЗНФ, если оно находится в 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Существует и альтернативное определение.
Определение 2. Отношение находится в ЗНФ в том и только в том случае, если все неключевые атрибуты отношения взаимно независимы и полностью зависят от первичного ключа.
Доказать справедливость этого утверждения несложно. Действительно, то, что не ключевые атрибуты полностью зависят от первичного ключа, означает, что данное отношение находится в форме 2НФ. Взаимная независимость атрибутов (определение приведено выше) означает отсутствие всякой зависимости между атрибутами отношения, в том числе и транзитивной зависимости между ними. Таким образом, второе определение ЗНФ сводится к первому определению.
Если в отношении R1 транзитивные зависимости отсутствуют, то в отношении R2 они есть:
ФИО→Должн→Оклад,
ФИО→Оклад→Должн,
ФИО→Стаж →Д_Стаж
Транзитивные зависимости также порождают избыточное дублирование информации в отношении. Устраним их. Для этого используя операцию проекции на атрибуты, являющиеся причиной транзитивных зависимостей, преобразуем, отношение R2, получив при этом отношения R3, R4 и R5, каждое из которых находится в ЗНФ (рис. 7.7 а). Графически эти отношения представлены на рис. 7.7 б. Заметим, что отношение R2 можно преобразовать по-другому, а именно: в отношении R3 вместо атрибута Должн взять атрибут Оклад.
На практике построение ЗНФ схем отношений в большинстве случаев является достаточным и приведением к ним процесс проектирования реляционной БД заканчивается. Действительно, приведение отношений к ЗНФ в нашем примере, привело к устранению избыточного дублирования.
а) б)
R3
ФИО
|
Должн
|
Стаж
|
Каф
|
Мухин И.М.
|
Преп
|
5
|
25
|
Лапин М.И.
|
Ст.преп
|
7
|
25
|
Котова Н.Г.
|
Доц.
|
10
|
25
|
Пак В.В.
|
Проф.
|
5
|
24
|
R4
Должн
|
Оклад
|
преп
|
100000
|
Ст. преп
|
120000
|
Доц.
|
150000
|
Проф.
|
170000
|
R5
Стаж
|
Д_Стаж
|
5
|
2000
|
7
|
3000
|
10
|
4000
|
Рис. 7.7 Отношения БД в ЗНФ
Если в отношении имеется зависимость атрибутов составного ключа от неключевых атрибутов, то необходимо перейти к усиленной ЗНФ.
Усиленная ЗНФ или нормальная форма Бойса-Кодда (БКНФ).
Отношение находится в БКНФ, если оно находится в ЗНФ и в нем отсутствуют зависимости ключей (атрибутов составного ключа) от неключевых атрибутов.
У нас подобной зависимости нет, поэтому процесс проектирования на этом заканчивается. Результатом проектирования является БД, состоящая из следующих таблиц: R1, R3, R4, R5. В полученной БД имеет место необходимое дублирование данных, но отсутствует избыточное.
Достарыңызбен бөлісу: |