Научная электронная библиотека
Монографии, изданные в издательстве Российской Академии Естествознания

6.3. 2NF – вторая нормальная форма. Полная функциональная зависимость

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

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

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

Пример. Пусть имеется некоторое отношение ПОСТАВКА (№ поставщика, товар, цена). Любой поставщик может доставлять различные товары, а любой товар может доставляться различными поставщиками. В этом случае ключ отношения – «№ поставщика + товар». Предположим, что все поставщики доставляют товар по одинаковой цене. Тогда получаем в отношении следующие функциональные зависимости:

● № _поставщика, товар → цена;

● товар → цена.

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

● ПОСТАВКИ (№ _поставщика, товар);

● ЦЕНА_ТОВАРА (товар, цена).

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

Пример: рассмотрим отношение, которое используется для выполнения учета работ, проводимых в МУП ЖРЭУ (табл. 6.1).

Таблица 6.1

Журнал учета проводимых работ

№ п/п

Адрес

Дата

Описание работы

Отзыв

1.

К. Маркса, 13

05.03.04

ремонт
отопления

удовл.

2.

К. Маркса, 15

05.03.04

очистка водостока

хорошо

3.

Коммунистическая, 19

05.03.04

ремонт
отопления

хорошо

Ключ отношения = № п/п + Дата + Адрес + Описание работы,

где № п/п – порядковый номер на текущую дату.

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

Недостатки данной таблицы: в таблице имеет место дублирование информации при вводе адресов и описании работ, в результате появляется возможность ввода ошибочной информации. Многократный ввод повторяющейся информации приводит к уменьшению скорости при выполнении запросов из-за неоправданного увеличения размера БД.

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

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

– построить дополнительные проекции на часть составного ключа атрибутов функционально зависящих от этой части ключа.

Для этого исключим описание работы и заменим его идентификатором.

Составной ключ отношения = № п/п + Дата + Адреса +
+ Идентификатор описание работы.

Строим проекции на часть составного ключа и атрибуты, функционально зависящие от этой части ключа (рис. 6.5).

missing image file

Рис. 6.5. Отношения, приведенные ко второй нормальной форме

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

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


Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1.074