Слайд 2Процесс проектирования БД с использованием метода нормальных форм заключается в
последовательном переводе отношений из первой нормальной формы в нормальные формы
более высокого порядка по определенным правилам. Каждая следующая нормальная форма ограничивает определенный тип функциональных зависимостей, устраняет соответствующие аномалии при выполнении операций над отношениями БД и сохраняет свойства предшествующих нормальных форм.
Слайд 3Выделяют следующую последовательность нормальных форм:
Первая нормальная форма (1НФ)
Вторая нормальная форма
(2НФ)
Третья нормальная форма (3НФ)
Усиленная нормальная форма, или нормальная форма Бойса-Кодда
(БКНФ)
Четвертая нормальная форма (4НФ)
Пятая нормальная форма (5НФ).
Слайд 4Первая нормальная форма.
Отношение находится в 1НФ, если все его
атрибуты являются простыми (имеют единственное значение). Исходное отношение строится таким
образом, что было в 1НФ.
Перевод отношения в следующую нормальную форму осуществляется методом «декомпозиции без потерь». Такая декомпозиция должна обеспечивать то, что запросы к исходному отношению и к отношениям, получаемым в результате декомпозиции, дадут одинаковый результат.
Слайд 5Основной операцией метода является операция проекции. Например, предположим, что в
отношении R(A,B,C,D,E,…) устранение функциональной зависимости C→D позволит перевести его в
следующую нормальную форму. Для решения этой задачи выполним декомпозицию отношения R на два новых отношения R1(A,B,C,E…) и R2(C,D). Отношение R2 является проекцией отношения R на атрибуты C и D.
Слайд 6Исходное отношение ПРЕПОДАВАТЕЛЬ, используемое для иллюстрации метода, имеет составной ключ
ФИО, Предм, Группа и находится в 1НФ, поскольку все его
атрибуты простые.
В этом отношении можно выделить частичную зависимость атрибутов Стаж, Д_Стаж, Каф, Должн, Оклад от ключа – указанные атрибуты находятся в функциональной зависимости от атрибута ФИО, являющегося частью составного ключа.
Слайд 7Эта частичная зависимость от ключа приводит к следующему:
1. В отношении
присутствует явное и неявное избыточное дублирование данных, например:
Повторение сведений о
стаже, должности и окладе преподавателей, проводящих занятия в нескольких группах и/или по разным предметам;
Повторение сведений об окладах для одной и той же должности или о надбавках за одинаковый стаж.
2. Следствием избыточного дублирования данных является проблема их редактирования. Например, изменение должности у преподавателя Иванова И.М. потребует просмотра всех кортежей отношения и внесения изменений в те из них, которые сведения о данном преподавателе.
Часть избыточности устраняется при переводе отношения в 2НФ.
Слайд 8Вторая нормальная форма
Отношение находится в 2НФ, если оно находится 1НФ,
и каждый неключевой атрибут функционально полно зависит от первичного ключа
(составного).
Слайд 9Для устранения частичной зависимости и перевода отношения в 2НФ необходимо,
используя операцию проекции, разложить его на несколько отношений следующим образом:
Построить
проекцию без атрибутов, находящихся в частичной функциональной зависимости от первичного ключа;
Построить проекции на части составного первичного ключа и атрибуты, зависящие от этих частей.
В результате получим два отношения R1 и R2 в 2НФ
Слайд 11В отношении R1 первичный ключ является составным и состоит из
атрибутов ФИО, Предм, Группа. Напомним, что данный ключ в отношении
R1 получен в предположении, что каждый преподаватель в одной группе по одному предмету может либо читать лекции, либо проводить практические занятия. В отношении R2 ключ ФИО.
Исследование отношений R1 и R2 показывает, что переход к 2НФ позволит исключить явную избыточность данных в таблице R2 – повторение строк со сведениями о преподавателях. В R2 по-прежнему имеет место неявное дублирование.
Для дальнейшего совершенствования отношения необходимо преобразовать его в 3НФ.
Слайд 12Третья нормальная форма
Определение 1. Отношение находится в 3НФ, если оно
находится в 2НФ, и каждый неключевой атрибут нетранзитивно зависит от
первичного ключа.
Альтернативное определение.
Определение 2. Отношение находится в 3НФ в том и только в том случае, если все неключевые атрибуты отношения взаимно независимы и полностью зависят от ключа.
Слайд 13Доказать справедливость этого утверждения несложно. Действительно, то, что неключевые атрибуты
полностью зависят от первичного ключа, означает, что данное отношение находится
в форме 2НФ. Взаимная независимость атрибутов означает отсутствие всякой зависимости между атрибутами отношения, в том числе и транзитивной зависимости между ними. Таким образом, второе определение 3НФ сводится к первому определению.
Слайд 14Если в отношении R1 транзитивные зависимости отсутствуют, то в отношении
R2 они есть:
ФИО→Должн→Оклад
ФИО→Оклад→Должн
ФИО→Стаж→Д_Стаж,
Транзитивные зависимости также порождает избыточное дублирование информации в
отношении. Устраним их. Для этого используя операцию проекции на атрибуты, являющуюся причиной транзитивных зависимостей преобразуем отношение R2, получив при этом отношенияR3, R4 и R5, каждое из которых находится в 3НФ.
Слайд 16Заметим, что отношение R2 можно преобразовать по-другому, а именно: в
отношении R3 вместо атрибута Должн взять атрибут Оклад.
На практике построение
3НФ в большинстве случаев является достаточным и приведением к ним процесс проектирования реляционной БД заканчивается. Действительно, приведение отношений к 3НФ в нашем примере, привело к устранению избыточного дублирования.
Если в отношении имеется зависимость атрибутов составного ключа от неключевых атрибутов, то необходимо перейти к усиленной 3НФ.
Слайд 17Усиленная 3НФ или нормальная форма Бойса-Кодда (БКНФ)
Отношение находится в БКНФ,
если оно находится в 3НФ и в нем отсутствуют зависимости
ключей (атрибутов составного ключа) от неключевых атрибутов. У нас подобной зависимости нет, поэтому процесс проектирования на этом заканчивается. Результатом проектирования является БД, состоящая из следующих таблиц: R1, R3, R4, R5. В полученной БД имеет место необходимое дублирование данных, но отсутствует избыточное.