Каждый начинающий разработчик под базы данных Oracle и MySql (также и для любых других реляционных баз) просто необходимо иметь представление о нормальных формах данных и процессе нормализации. Прежде чем погружаться в процесс нормализации, не помешает разобраться в том, что собой представляет понятие функциональной зависимости, определение которого дано ниже.
При наличии связи (таблицы) R набор атрибутов B считается функционально зависимым от атрибута A, если в любой момент времени каждое значение атрибута A ассоциируется с заданным значением из B.
Попросту говоря, функциональная зависимость символически обозначается как A > B (это означает, что сущность A определяет значение сущности B) и играет решающую роль в понимании процесса нормализации.
Нормализация представляет собой процесс приведения таблиц к гораздо более простой форме во избежание появления у них нежелательных свойств вроде аномалий и избыточности без утери информации. Требования нормализации, изложенные Коддом, сводятся просто к исключению непростых доменов и затем удалению частичных и косвенных зависимостей. По мере приведения таблиц упрощенной нормальной форме, упомянутые ранее проблемы постепенно исчезают.
Каждая таблица может проходить через несколько этапов приведения к простой форме: первой нормальной форме (First Normal Form — 1NF), второй нормальной форме (2NF), третьей нормальной форме (3NF), нормальной форме Бойса-Кодда (Boyce-Codd Normal Form — BCNF), четвертой нормальной форме (4NF) и пятой нормальной форме (5NF).
Каждый очередной этап в процессе нормализации приводит к исключению определенного типа нежелательных зависимостей, которые перечислялись ранее.