Определение. Пусть в отношении R заданы наборы атрибутов А и В. Зависимость R.A ® R.B называется полной (full functional dependence), если В не зависит функционально ни от какого поднабора С Ì А, не содержащего В. На рис. справа атрибут "Аудитория" зависит неполно от набора атрибутов "Преподаватель, "Группа", "Предмет".
Отношение "Лекции" содержит аномалии по отношению к операциям манипулирования. Эти аномалии основываются на следующем тезисе.
Тезис. Если в предметной области имеется функциональная зависимость А ® В, то это свидетельствует, что в ПО имеется класс сущностей, состоящих из атрибутов (А,В), причем группа атрибутов А выступает в качестве уникального идентификатора сущностей из этого класса (ключ), а В – свойства сущностей.
Так как атрибут "Аудитория" функционально зависит от "Предмет", то в нашей предметной области, согласно выдвинутому тезису, существует самостоятельный класс сущносей, определенных на этой паре атрибутов. Однако мы не сможем самостоятельно манипулировать сущностями этого класса, так как при этом возникают следующие аномалии.
|
|
Аномалия вставки. Мы не сможем отразить тот факт, что в конкретной аудитории читаются лекции по конкретному предмету до тех пор, пока не будут определены преподаватель и группа.
Аномалия удаления. Удаляя строку в отношении "Лекции" мы можем удалить единственную в своем роде информацию о том, что какой-то предмет читается в конкретной аудитории.
Аномалия обновления. В общем случае одно и то же значение "Аудитория" для данного предмета повторяется много раз. Эта избыточность вызывает проблему обновления. Если предмет стал читаться в другой аудитории, то необходимо просмотреть все строки отношения Лекции на предмет замены аудитории.
С понятием полной функциональной зависимости связана вторая нормальная форма.
Определение. Отношение находится во второй нормальной форме (second normal form – 2NF), если оно находится в первой нормальной форме и все его непервичные атрибуты функционально полно зависят от возможного ключа.
Очевидно, что вторая нормальная форма снимает аномалии, связанные с неполными функциональными зависимостями. Как приводить отношение ко второй нормальной форме? Очевидно, что это можно достигнуть только с помощью разбиения отношения на (по крайней мере) два других. Причем, при таком разбиении необходимо, чтобы были выполнены следующие условия:
· результирующие отношения являются проекциями исходного;
· исходное отношение можно было бы восстановить из результирующих с помощью операции естественного соединения (соединение без потерь);
|
|
· при таком разбиении не теряются функциональные зависимости (то есть зависимости исходного и результирующих отношений должны быть эквивалентными).
Путь решения этой проблемы дает следующая теорема Хита.
Теорема (Хита). Отношение R с наборами атрибутов А, В, С, где R.A ® R.B, является естественным соединением проекций R[A, B] и R[A, C].
Таким образом, алгоритм приведения к 2NF следующий. Пусть задано отношение R со множеством атрибутов M. Если в R имеется неполная функциональная зависимость R.A ® R.B неключевого атрибута B от возможного ключа А, то отношение R разбивается на следующие два отношения: R[A, B] и R[M - B]. Если результирующие отношения все еще не находятся во второй нормальной форме, то к ним опять применяется этот алгоритм.
Так, например, для приведенного выше отношения "Лекции" алгоритм нормализации приведет к следующим двум отношениям: Лекции(Преподаватель, Группа, Предмет, Пара, День) и Что-Где(Предмет, Аудитория)
Процесс приведения отношений ко второй нормальной форме в ряде случаев не является однозначным. В связи с этим вводится следующее понятие.
Определение. Приведение отношения во вторую нормальную форму называется оптимальным (оптимальная вторая нормальная форма), если создается минимальный набор результирующих отношений среди всех возможных.