Помощь в написании студенческих работ
Антистрессовый сервис

Третья нормальная форма (ЗНФ)

РефератПомощь в написанииУзнать стоимостьмоей работы

Однако, рассматривая связку товара с ценовым сегментом, можно увидеть некоторое допущение, которое в реальной жизни встречается нечасто. Это допущение заключается в том, что цеповой сегмент отражает характеристику товара или поставщика. Если рассматривать предметную область с точки зрения реалистичности представления в базе данных, то атрибут «Ценовой сегмент» должен быть функционально зависим… Читать ещё >

Третья нормальная форма (ЗНФ) (реферат, курсовая, диплом, контрольная)

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

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

Первое отношение «Товары заказа» находится в третьей нормальной форме, поскольку единственный не ключевой атрибут «Количество товара» прямо зависим от полного сцепленного первичного ключа, а выявленная во второй нормальной форме транзитивная зависимость данных по атрибуту «Товар» с данными атрибута «Ценовой сегмент» через атрибут «Поставщик», создающая функциональную зависимость по не ключевым атрибутам, нормализуется в третью нормальную форму разделением на два отношения, что, в итоге, приведет к трем отношениям, находящимся в третьей нормальной форме. В отношении «Товары» остаются только прямо зависимые атрибуты, один из которых является первичным ключом, а в отношении «Поставщики» из двух сформированных атрибутов, прямо функционально зависимых, один атрибут «Поставщик» по сути данных, представляемых уникальными значениями, определяется в качестве первичного ключа, что тоже позволяет говорить о нахождении отношения в третьей нормальной форме (рис. 2.75).

Рис. 2.75. Разделение отношения по правилу перехода к ЗНФ.

Рис. 2.75. Разделение отношения по правилу перехода к ЗНФ.

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

Рис. 2.76. Функциональные зависимости после перехода к ЗНФ.

Рис. 2.76. Функциональные зависимости после перехода к ЗНФ.

Суть перехода к третьей нормальной форме заключается в выявлении транзитивных зависимостей и их разделении по правилу транзитивности Если А -" В и В -" С, то А -" С. (2.4).

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

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

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

Важно заметить, что в отношении «Товары» есть две функциональные зависимости: транзитивная зависимость от атрибута «Товар» к атрибуту «Ценовой сегмент» и прямая функциональная зависимость между этими же атрибутами. Наличие такой ситуации приводит к двусмысленности функциональной зависимости, о чем говорилось ранее. Если рассмотреть, что атрибут «Ценовой сегмент» имеет непосредственное отношение к товару, а поставщик определяет, товары каких ценовых сегментов им поставляются, то переход к ЗНФ возможен по другому алгоритму (рис. 2.77).

Рис. 2.77. Функциональные зависимости отношения

Рис. 2.77. Функциональные зависимости отношения «Товары» .

В этом случае нет необходимости генерировать новый первичный ключ, сохраняя исходное представление отношения, а связь отношений «Товары» и «Сегмент товара» через атрибут «Товар» позволяет соединить поставщика с ценовым сегментом, не теряя при этом информационного наполнения исходного отношения (рис. 2.78).

Рис. 2.78. Вариант отношений в ЗНФ.

Рис. 2.78. Вариант отношений в ЗНФ.

Однако, рассматривая связку товара с ценовым сегментом, можно увидеть некоторое допущение, которое в реальной жизни встречается нечасто. Это допущение заключается в том, что цеповой сегмент отражает характеристику товара или поставщика. Если рассматривать предметную область с точки зрения реалистичности представления в базе данных, то атрибут «Ценовой сегмент» должен быть функционально зависим от сцепленного первичного ключа «Товар» — «Поставщик». Но тогда приведение к третьей нормальной форме исходного отношения становится проблематичным, поскольку формируется пересекающийся первичный ключ.

Показать весь текст
Заполнить форму текущей работой