Для устранения перечисленных аномалий необходима декомпозиция схемы базы данных, гарантирующая отсутствие потерь и сохраняющая зависимости. Сохранение зависимостей подразумевает выполнение исходного множества функциональных зависимостей на отношениях новой схемы.
Термин функциональная зависимость означает следующее: атрибут B отношения R функционально зависит от атрибута A того же отношения, если в каждый момент времени каждому значению атрибута A соответствует не более чем одно значение атрибута B, связанного с A в отношении R.
Утверждение, что B функционально зависит от A, означает то же самое, что A однозначно определяет B, т.е. если в какой-то момент времени известно значение A, то можно получить и значение B.
Атрибут может функционально зависеть не от какого-то одного атрибута, а от целой группы атрибутов. Атрибут (или набор атрибутов) B из отношения R называется полностью зависимым от другого набора атрибутов A отношения R, если B функционально зависит от всего множества A, но не зависит ни от какого подмножества A. Например, если и , то функциональная зависимость неполная.