Довольно часто первичный ключ отношения может включать несколько атрибутов (тогда он называется составным).
К примеру, отношение ДЕТИ, которое показано на рисунке 1.

Рассмотрим понятие полная функциональная зависимость.
Неключевой атрибут находится в полной функциональной зависимости от составного ключа, если он находится в функциональной зависимости от всего ключа в целом, но функционально не зависит от какого-нибудь атрибута, который входит в него.
Рассмотрим отношение ПОСТАВКИ (НОМЕР_ПОСТАВЩИКА, ТОВАР, СТОИМОСТЬ).
Поставщиком могут поставляться различные товары, а одинаковый товар может поставляться разными поставщиками. Тогда ключом отношения будет НОМЕР_ПОСТАВЩИКА + ТОВАР. Предположим, что всеми поставщиками поставляется товар по одинаковой цене. Тогда будут существовать следующие функциональные зависимости:
При неполной функциональной зависимости атрибута СТОИМОСТЬ от ключа возможно появление следующей аномалии: если изменится стоимость товара, необходимо полностью просмотреть отношения для изменения всех записей о его поставщиках. Такая аномалия появляется вследствие того, что два семантических факта объединены в одной структуре данных.
Рассмотрим разложение, которое дает отношения во второй нормальной форме:
Вторая нормальная форма касается отношений между неключевыми и ключевыми атрибутами.
Отношение находится во второй нормальной форме (2NF), если находится в первой нормальной форме и каждый неключевой атрибут находится в полной функциональной зависимости от ключа.
Следовательно, вторая нормальная форма может быть нарушена лишь в том случае, если ключ является составным, т.е. ключ состоит из нескольких атрибутов.
Рассмотрим таблицу «Назначение 1», представленную на рисунке 1. В таблице ключ состоит из набора атрибутов № здания и № работника. Атрибут Фамилия определяет атрибут № работника, а значит состоит в функциональной зависимости от части ключа. То есть для того, чтобы определить фамилию работника достаточно узнать № работника. Следовательно, таблица не удовлетворяет второй нормальной форме.

Если данную таблицу не приводить ко второй нормальной форме, могут появиться такие проблемы:
Для решения этих проблем необходимо выполнить разбиение таблицы на 2 реляционные таблицы, которые будут удовлетворять второй нормальной форме (рисунок 3).

Полученные реляционные таблицы «Работник» и «Назначение» находятся во второй нормальной форме и не содержат перечисленных выше проблем. Следовательно, 2NF уменьшает избыточность данных и исключает возможность аномалий.
Этапы разбиения на 2 таблицы в 2NF: