Главный её недостаток - избыточность. Например, в каждом кортеже для поставщика S1 содержится информация, что этот поставщик находится в Лондоне. В каждом кортеже для поставщика S2 содержится информация, что этот поставщик находится в Париже. Иначе говоря, сведения о городе , в котором находится конкретный поставщик, повторяются столько раз, сколько поставок выполняет данный поставщик. Эта избыточность приводит к определенным проблемам. Например, после обновления данных в качестве города для поставщика S1 в одном из кортежей может быть указан Лондон, во втором – Амстердам ,в третьем вообще может содержаться неопределенное значение. Поэтому при создании БД следует избегать избыточности данных. Избавиться от избыточности позволяет нормализация.
Процесс нормализации основывается на концепции нормальных форм. Говорят, что переменная-отношение находится в определенной нормальной форме, если она удовлетворяет заданному набору условий.
На данный момент определены следующие нормальные формы :
Первая нормальная форма
Вторая нормальная форма
Третья нормальная форма
Нормальная форма Байеса-Кодда
Четвертая нормальная форма
Пятая нормальная форма
Первая, вторая и третья нормальная формы были сформулированы Коддом. Нормальная форма Бойсса-Кодда является переработкой и уточнением третьей нормальной формы. Четвертая и пятая нормальные формы определены Фейгином (Fagin).
Основные свойства нормальных форм:
* каждая следующая нормальная форма в некотором смысле лучше предыдущей;
* при переходе к следующей нормальной форме свойства предыдущих нормальных форм сохраняются.
* процесс нормализации является обратимым
Процедура нормализации основывается на последовательной декомпозиции (разбиении) переменной-отношения с целью приведения к определенной нормальной форме. Обратимость является важнейшей характеристикой и означает, что в процессе нормализации никакая часть информации не утрачивается.
Пример. Рассмотрим следующую переменную-отношение S :
S#
STATUS
CITY
S3
Paris
S5
London
Для нее возможны два варианта декомпозиции : а
В первом случае информация не утрачивается, поскольку переменные-отношения содержат данные о том, что поставщик S3 имеет статус 30 и находится в Париже, а поставщик S5 также имеет статус 30 и находится в Лондоне. В этом случае говорят, что это декомпозиция без потерь. Сохранение информации означает, что при обратном соединении отношений будет получена исходная переменная-отношение.
Во втором случае информация утрачивается, поскольку оба поставщика имеют статус 30, но при этом нельзя сказать, какой из них в каком городе находится. Поэтому такая декомпозиция не является декомпозицией без потерь. В этом случае при обратном соединении исходной переменной-отношения мы не получим, что фактически и означает потерю информации.
По своей сути нормализация представляет собой операцию проекции, а операция соединения представляет собой операцию, обратную нормализации.