Проблемы подобного рода имеют место и для баз данных, в моделях которых встречаются транзитивные зависимости, то есть в отношениях существуют атрибуты, которые зависят от ключа через третьи атрибуты. Например в отношении:
ПЕРСОНАЛ(Табельный номер, ФИО, Должность, Номер проекта, Дата окончания)
Дата окончания зависит от ключа через Номер проекта. Наличие транзитивной зависимости приводит к следующим проблемам:
1. при известных номере проекта и дате окончания их негде разместить пока не появятся сведения хотя бы об одном исполнителе;
2. Если изменилась дата окончания проекта, ее надо менять в стольких кортежах, сколько людей работает над данным проектом.
Устранение этих проблем можно сделать, преобразовав исходное отношение к третьей нормальной форме:
ПЕРСОНАЛ(Табельный номер, ФИО, Должность, Номер проекта)
ПРОЕКТЫ(Номер проекта, Дата окончания)
Такое преобразование решает все отмеченные проблемы. Действительно, в отношение ПРОЕКТЫ заносятся сведения о существующих проектах независимо от того, работает над ними кто либо. При изменении даты окончания корректировка вносится только в один кортеж отношения ПРОЕКТЫ.
Говорят, что отношение задано в третьей нормальной форме, если оно представлено во второй нормальной форме и каждый атрибут не являющийся ключом не транзитивно зависит от ключа.
В реляционных моделях возможны коллизии, устранение которых требует преобразование отношений к четвертой и пятой нормальным формам. Однако, практически считается, что реляционная модель является удовлетворительной для построения базы данных, если все ее отношения представлены в третьей нормальной форме.