Пятая нормальная форма (5НФ)

Зачастую возникает зависимость атрибутов отношения, когда они попарно зависимы друг от друга. Например, отношение с атрибутами "Заказ", "Товар", "Поставщик" является таковым, поскольку имеются функциональная зависимость товара от поставщика, а также зависимость заказа от товара и поставщика. Такая функциональная зависимость называется зависимостью соединения. Содержательно ее можно определить следующим образом: заказ содержит много товаров, товар поставляется множеством поставщиков, поставщик содержится во множестве заказов.

Рассматривая пятую нормальную форму, необходимо помнить, что для се разрешения обязательно должен присутствовать хотя бы один потенциальный ключ, который позволит без потерь данных произвести разделение отношения на два отношения и более.

Отношение находится в пятой нормальной форме тогда и только тогда, когда оно находится в 4НФ и каждая нетривиальная зависимость определяется ее потенциальным ключом.

Таким образом, рассматриваемое отношение не находится в 51ІФ, поскольку экземпляр данных не определяется потенциальным ключом "Заказ" и (или) "Товар", а формируется только комбинацией всех атрибутов отношения. В результате исходное отношение может быть разделено на три отношения, которые будут находиться в пятой нормальной форме (рис. 2.84).

Рис. 2.84. Представление отношения в 5НФ


Данное разделение приводит к образованию в каждом отношении зависимостей от потенциальных ключей, а соединение отношений сформирует полностью точное исходное отношение.

Правило перехода 4НФ -" 5НФ

Если отношение находится в 4НФ и существуют зависимости соединения, не определяемые потенциальными ключами, то выделяются отношения, содержащие такие зависимости.

В результате проведения всех операций нормализации до 5НФ считается, что разработчик получает полностью нормализованное отношение, нс содержащее никаких аномалий обновления.

Шестая нормальная форма (6НФ)

Иногда в базах данных необходимо использовать хронологические сведения, подчиняющиеся временным данным, где одним из атрибутов является дата и (или) время, или интервальным значением, поскольку хронология может отражаться не только данными времени, но и другими элементами, которые можно представить в виде строгой последовательно и выразить интервалом значений. Использование временных данных обусловлено необходимостью отражения в базе данных хронологии жизни отдельных сведений или их комбинации. Например, во времени можно отслеживать статус заказа, занесение в заказ товара или что-то еще. При этом каждый элемент временного отслеживания подчиняется собственному временному показателю. В результате отношение должно иметь для каждого изменения атрибута отслеживания свой экземпляр (табл. 2.26).

Таблица 2.26

Пример отношения "Заказ"

Заказ

Статус

Товар

Дата

31

Создан

01.01.2014

31

Создан

Пылесос

01.01.2014

31

Создан

Пылесос, чайник

02.01.2014

31

Оформлен

Пылесос, чайник

02.01.2014

31

Оплачен

Пылесос, чайник

03.01.2014

31

Доставлен

Пылесос, чайник

06.01.2014



Конечно, такое отношение достаточно проблематично обрабатывать, поскольку нужно дублировать ранее сформированные сведения, а также возникают аномалии обновления, требующие контроля имеющихся данных.

Отношение находится в шестой нормальной форме тогда и только тогда, когда оно представлено в 5НФ. удовлетворяет всем нетривиальным зависимостям соединения и одна из рассматриваемых проекций выполняется по всем атрибутам отношения.

По сути, отношение в шестой нормальной форме предполагает выделение отношения, но временному сцепленному потенциальному ключу и отношений по подверженным хронологии атрибутам с этим потенциальным ключом (рис. 2.85).

Рис. 2.85. Отношение в 6НФ


Правило перехода 5НФ 6НФ

Если отношение находится в 5НФ и в нем присутствуют независимые во времени хронологические атрибуты, то выделяется отношение хронологии, составляющее временное развитие, с атрибутами в виде ключа, который используется в выделяемых отношениях по хронологическим атрибутам, функционально зависимым от временного ключа.

Эта процедура перехода позволяет разрешить проблему фиксирования жизни каждого атрибута, который зависит от времени и обеспечивает необходимую целостность данных.