Понятие нормализации отношений

НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ

Одни и те же данные могут группироваться в таблицы (отношения) различными способами, т.е. возможна организация различных наборов отношений взаимосвязанных информацион­ных объектов. Группировка атрибутов в отношениях должна быть рациональной, т.е. мини­мизирующей дублирование данных и упрощающей процедуры их обработки и обновления. Определенный набор отношений обладает лучшими свойствами при включении, мо­дификации, удалении данных, чем все остальные возможные наборы отношений, если он отвечает требованиям нормализации отношений [1].

Нормализация отношений— формальный аппарат ограничений на фор­мирование отношений (таблиц), который позволяет устранить дублирова­ние, обеспечивает непротиворечивость хранимых в базе данных, уменьшает трудозатраты на ведение (ввод, корректировку) базы данных.

Е.Коддом выделены три нормальные формы отношений и предложен механизм, позволяющий любое отношение преобразовать к третьей (самой совершенной) нормальной форме.

Таблицы реляционной БД должны отвечать требованиям нормализации отношений.

Пусть создана таблица Студент, содержащая следующие поля: (Номер, ФИО, Дата, Группа, название специальности, название факультета). Такая организация хранения информации будет иметь ряд недостатков:

· дублирование информации (наименование специальности и факультета повторяются для каждого студента), следовательно, увеличится объем БД;

· процедура обновления информации в таблице затрудняется из-за необходимости редактирования каждой записи таблицы.

Первая нормальная форма

Отношение называется нормализованным или приведенным к первой нормальной форме, если все его атрибуты простые (далее неделимы). Преобразование отношения к первой нор­мальной форме может привести к увеличению количества реквизитов (полей) отношения и изменению ключа.

Например, отношение Студент = (Номер, Фамилия, Имя, Отчество, Дата, Группа) на­ходится в первой нормальной форме.

Вторая нормальная форма

Описательные реквизиты информационного объекта логически связаны с общим для них ключом, эта связь носит характер функциональной зависимости реквизитов.

Функциональная зависимостьреквизитов — зависимость, при которой в экземпляре информационного объекта определенному значению ключевого реквизита соответствует только одно значение описательного реквизита.

Такое определение функциональной зависимости позволяет при анализе всех взаи­мосвязей реквизитов предметной области выделить самостоятельные информационные объекты.

Пример графического изображения функциональных зависимостей реквизитов Студент показан на рис., на котором ключевой реквизит указан *.

 

Рис. Графическое изображение функциональной зависимости реквизитов.

В случае составного ключа вводится понятие функционально полной зависимости.

Функционально полная зависимостьнеключевых (описательных) атрибутов заключается в том, что каждый неключевой атрибут функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.

Отношение будет находиться во второй нормальной форме, если оно находится в пер­вой нормальной форме, и каждый неключевой атрибут функционально полно зависит от составного ключа.

Пример.Отношение Студент = (Номер, Фамилия, Имя, Отчество, Дата, Группа) находится в первой и во второй нормальной форме одновременно, так как описатель­ные реквизиты однозначно определены и функционально зависят от ключа Номер. Отношение Успеваемость = (Номер, Фамилия, Имя, Отчество, Дисциплина, оценка) находится в первой нормальной форме и имеет составной ключ Номер + Дисциплина. Это отношение не находится во второй нормальной форме, так как атрибуты Фами­лия, Имя, Отчество не находятся в полной функциональной зависимости с составным ключом отношения.

Третья нормальная форма

Понятие третьей нормальной формы основывается на понятии нетранзитивной зави­симости.

Транзитивная зависимостьнаблюдается в том случае, если один из двух описательных реквизитов зависит от ключа, а другой описательный рекви­зит зависит от первого описательного реквизита.

Отношение будет находиться в третьей нормальной форме, если оно находится во вто­рой нормальной форме, и каждый неключевой атрибут нетранзитивной зависит от первично­го ключа.

Пример.Если в состав описательных реквизитов информационного объекта Студент включить фамилию старосты

группы (Староста), которая определяется толь­ко номером группы, то одна и та же фамилия старосты будет многократно повторять­ся в разных экземплярах данного информационного объекта. В этом случае наблюдаются затруднения в корректировке фамилии старосты в случае назначения нового старосты, а также неоправданный расход памяти для хранения дублированной информации.

Для устранения транзитивной зависимости описательных реквизитов необходимо про­вести "расщепление" исходного информационного объекта. В результате расщепления часть реквизитов удаляется из исходного информационного объекта и включается в состав других (возможно, вновь созданных) информационных объектов.

Три поля — № зачетной книжки, № группы, Староста находятся в транзитивной зависимости, № группы зависит от № зачетной книжки, а Староста зависит от № группы. Для устранения транзитивной зависимости необходимо часть полей таблицы Студент перенести в другую таблицу Группа. Таблицы примут следующий вид:

Рис. Пример "расщепления" структуры информационного объекта.