Вторая и третья нормальные формы касаются отношений между ключевыми и неключевыми атрибутами. Реляционная таблица находится во второй нормальной форме (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НФ.