Проиллюстрируем процесс нормализации на примере, использующем данные из базы NorthWind.
Положим, что регистрируются все заказанные продукты в следующей таблице (рис. 5.15).
Ordered Products
Рис. 5.15. Структура ненормализованной таблицы Ordered Products.
Любая реляционная таблица, в том числе и таблица Ordered Products, по определению, находится в первой нормальной форме.
Тем не менее, эта таблица содержит избыточные данные. Например, одни и те же сведения о клиенте, повторяющиеся в записи о каждом заказанном продукте.
При редактировании данных в этой таблице могут возникнуть следующие проблемы:
• адрес конкретного клиента может содержаться в базе данных тогда, когда клиент заказал хотя бы один продукт;
• при удалении записи о заказанном продукте одновременно удаляются сведения о самом заказе и о клиенте, его разместившем;
• при смене адреса заказчика придется обновить все записи о заказанных им продуктах.
Некоторые из этих проблем могут быть разрешены приведением базы данных ко второй нормальной форме.