При проектировании базы данных отображение объектов предметной области на структуры модели данных должно обеспечивать минимальное дублирование данных, удобство их обработки и обновления, исключать возможности появления противоречий в хранимых данных. Для того чтобы оптимальным образом спроектировать структуру базы данных, удовлетворяющую этим требованиям, используется процедура нормализации.
Нормализация реляционных таблиц – пошаговый процесс разложения (декомпозиции) исходной совокупности БД на более простые.
Каждый шаг этого процесса переводит таблицы БД в последовательные нормальные формы. Выделяют следующие нормальные формы: первая нормальная форма (сокращенно 1NF); вторая нормальная форма (2NF); третья нормальная форма (3NF); нормальная форма Бойса-Кодда (BCNF); четвертая нормальная форма (4NF); пятая нормальная форма (5NF). Каждой нормальной форме соответствует некоторый набор ограничений. Таблица находится в определенной нормальной форме, если оно удовлетворяет набору ограничений этой формы. Перевод таблиц БД в формы более высокого порядка позволяет добиться удаления из них избыточной неключевой информации. Процесс нормализации основан на понятии функциональной зависимости атрибутов.
Таблица находится в первой нормальной форме тогда и только тогда, когда ни одна из ее записей не содержит в любом своем поле более одного значения, т. е. значения полей атомарны и ни одно из ее ключевых полей не пусто. В такой таблице отсутствуют одинаковые записи. все неключевые поля функционально зависят от ключа. Недостатки 1NF:избыточность в логическом представлении данных, возможность разрушения или потери данных.
Таблица находится во второй нормальной форме, если выполняются ограничения первой нормальной формы, и каждое неключевое поле функционально полно зависит от первичного ключа (первичный ключ может быть составным).
Таблица находится в третьей нормальной форме, если выполняются ограничения второй нормальной формы, и если все неключевые поля таблицы взаимно независимы и полностью зависят от первичного ключа (другими словами, отсутствуют транзитивные зависимости неключевых полей от ключа).
В большинстве случаев третья нормальная форма служит компромиссом между полной нормализацией и функциональностью в совокупности с легкостью реализации. Использование на практике нормальных форм выше третьей затрудняет разработку структур данных и снижает их функциональность.
В СУБД Access существует мастер анализа таблиц, который преобразует таблицу, содержащую в одном или нескольких полях повторяющиеся данные, в набор связанных таблиц, в которых повторения отсутствуют. При использовании мастера пользователь имеет возможность определить создаваемые таблицы или позволить мастеру провести нормализацию таблиц. Мастер создает запрос, позволяющий в режиме таблицы вывести данные из разделенных таблиц.