Базы данных. Учебное пособие

       

Вторая нормальная форма


Вторая  и  третья  нормальные  формы  касаются  отношений  между  ключевыми  и  неключевыми  атрибутами.  Реляционная  таблица  находится  во  второй  нормальной  форме  (2НФ),  если  все неключевые  атрибуты являются функционально  зависимыми от всего ключа. Таким  образом,  2НФ может оказаться  нарушена  только  в  том  случае,  когда  ключ  составной,  то  есть  ключом  является  набор  из  нескольких  атрибутов.

Рассмотрим  реляционную  таблицу 3.3.  В  ней  ключ  состоит  из  атрибутов №  работника и  № здания. Фамилия

определяется  атрибутом №  работника

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

1.  Фамилия  работника  повторяется  в  каждой  строке,  относящейся  к  назначению этого  работника.

2.  Если  фамилия  работника  изменяется,  то  требуется  обновить  все  строки,  содержащие  записи  о   назначениях  этого  работника. Это аномалия изменения данных.

3.  Из-за  такой  избыточности  может  возникнуть  несоответствие  данных,  когда  в  разных  строках  содержатся  разные  имена  для  одного  и  того  же  работника.

4.  Если  в  какой-то  момент  времени  работник  не  имеет  назначений,  то  может  не   оказаться  строки,  в  которой  можно  хранить  имя  работника.  Это  аномалия  ввода данных.

                                 Таблица   3.3.   «Назначение 1»

№  работника

здания



Дата начала

Фамилия

1235

312

10.10

Петров

1412

312

01.10

Смирнов

1235

515

17.10

Петров

1412

460

08.12

Смирнов

1412

435

15.10

Смирнов

Для  того  чтобы  решить  эти  проблемы,  таблицу  необходимо  разбить  на  две  реляционные  таблицы,  каждая  из  которых  удовлетворяет  2НФ.


Таблица   3.4.   «Работник»

№ работника

Фамилия

1235

Петров

1412

Смирнов

           Таблица   3.5.   «Назначение»

№ работника

№ здания

Дата начала

1235

312

10.10

1412

312

01.10

1235

515

17.10

1412

460

08.12

1412

435

15.10

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

Процесс  разбиения  на  две  2НФ-таблицы  состоит  из  нескольких  простых  шагов: 

1.  Создается  новая  таблица,  атрибутами  которой  будут  атрибуты   исходной   таблицы, входящие  в  противоречащую  правилу  ФЗ.  Детерминант  ФЗ  становится  ключом  новой  таблицы.

2.  Атрибут,  стоящий  в  правой  части  ФЗ,  исключается  из  исходной  таблицы.

3.  Если  более  одной  ФЗ  нарушают  2НФ,  то  шаги  1  и  2  повторяются  для  каждой  такой  ФЗ.

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


Содержание раздела