Презентация "Нормальные формы"

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