Результатом нормализации всех предыдущих схем отношений были два новых отношения. Иногда это сделать не удается, либо получаемые отношения заведомо имеют нежелательные свойства. В этом случае выполняют декомпозицию исходного отношения на более, чем два отношения.
Рассмотрим отношение СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ ВИДА:
Код_сотрудника
Код_отдела
Номер проекта
РД
АД
УП
АД
ЛС
ЛС
УП
ВЦ
ВЦ
СЖ
Первичный ключ состоит из всех атрибутов, один сотрудник может работать в нескольких отделах, причем в каждом отделе он может принимать участие в нескольких проектах. В одном отделе могут работать несколько сотрудников, но каждый проект выполняет только один сотрудник. Функциональных и многозначных зависимостей между атрибутами не существует. Это отношение находится в 4НФ. Тем не менее, аномалии возможны в связи с повторением значений атрибутов в нескольких кортежах. Например, т.к. сотрудник может работать в нескольких отделах, то при его увольнении требуется отыскать и удалить несколько записей в исходной таблице.
Определение. Отношение R(X,Y,…,Z) удовлетворяет зависимости соединения, которую обозначим как *(X,Y,…,Z), в том и только в том случае, если R восстанавливается без потерь путем соединения своих проекций на X, Y, …, Z. Зависимость соединения является обобщением функциональной и многозначной зависимостей.
Определение пятой нормальной формы. Отношение R находится в 5НФ (или нормальной форме проекции-соединения – PJ/NF) в том и только том случае, когда любая зависимость соединения в R следует из существования некоторого возможного ключа в R.
Образуем составные атрибуты отношения СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ:
СО = {Код_сотрудника, Код_отдела }
СП = {Код_сотрудника, Номер_проекта}
ОП = {Код_отдела, Номер_проекта}
Если отношение СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ спроецировать на составные атрибуты СО, СП и ОП, то соединение таких проекций дает исходное отношение. Это означает, что отношении СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ существовала зависимость соединения *( СО, СП, ОП). Проекции на составные атрибуты назовем СОТРУДНИКИ-ОТДЕЛЫ, СОТРУДНИКИ-ПРОЕКТЫ и ОТДЕЛЫ-ПРОЕКТЫ.
Для восстановления отношения из трех или нескольких проекций надо получить все попарные соединения, так как информация о том, какое из них «лучше» отсутствует. Затем над полученными соединениями необходимо выполнить операцию пересечения множеств.
Пусть имеем составные атрибуты СОТРУДНИКИ-ОТДЕЛЫ, СОТРУДНИКИ-ПРОЕКТЫ и ОТДЕЛЫ-ПРОЕКТЫ, полученные проецированием исходного отношения СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ.
Попарные соединения полученных трех отношений будут иметь вид:
*(СО, СП)
Код_сотрудника
Код_отдела
Код_проекта
РД
АД
УП
АД
ЛС
ЛС
УП
ВЦ
ВЦ
СЖ
*(СО, ОП) *(СП, ОП)
Код_
сотрудника
Код_
Отдела
Номер_
проекта
Код_
Сотрудника
Код_
отдела
Номер_
проекта
РД
РД
АД
АД
АД
ЛС
УП
УП
УП
АД
АД
ЛС
АД
УП
ЛС
АД
ЛС
ЛС
УП
АД
УП
ЛС
ВЦ
УП
ВЦ
УП
ВЦ
УП
ВЦ
ВЦ
СЖ
ВЦ
ВЦ
ВЦ
СЖ
Пересечение отношений *(СО, СП), *(СО, ОП) и *(СП, ОП) приводит к исходному отношению СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ. Существуют и другие способы восстановления исходного отношения из его проекций. Например, для восстановления отношения СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ можно соединить отношения СОТРУДНИКИ-ОТДЕЛЫ и СОТРУДНИКИ-ПРОЕКТЫ по атрибуту Код_сотрудника. Далее результирующее отношение соединить с отношением ОТДЕЛЫ-ПРОЕКТЫ по составному атрибуту (Код_отдела, Номер_проекта).
Отношения СОТРУДНИКИ-ОТДЕЛЫ, СОТРУДНИКИ-ПРОЕКТЫ и ОТДЕЛЫ-ПРОЕКТЫ находятся в 5НФ.
Пятая нормальная форма является последней из известных форм, условия ее получения не тривиальны, более того, она обладает некоторыми недостатками.
На практике обычно ограничиваются структурой базы данных, соответствующей 3НФ или БКНФ. Поэтому процесс нормализации отношений методом нормальных форм состоит из последовательного удаления из исходного отношения следующих межатрибутных зависимостей:
° Частичных зависимостей неключевых атрибутов от ключа (удовлетворение требований 2НФ);
° Транзитивных зависимостей неключевых атрибутов от ключа (удовлетворение требований 3НФ);
Кроме метода нормальных форм Кодда, для проектирования базы данных применяют и другие методы, например, метод ER-диаграмм (метод «сущность-связь»). Этот метод используется при проектировании больших баз данных. На последнем этапе метода ER-диаграмм отношения, полученные в результате проектирования, проверяются на принадлежность их к БКНФ. После завершения проектирования создается база данных с помощью СУБД.
Основное правило при создании таблиц сущностей – это «каждой сущности отдельную таблицу». Обычно достаточно определения простого ключа или введения счетчика. Неключевые поля в таблицах должны быть взаимно независимыми и полностью зависимы от ключа.