Базы данных

Работа над зависимостями


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

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

Предшествующий процессу нормализации анализ начинается с построения замыкания множества функциональных зависимостей. Ниже приводятся некоторые из выведенных зависимостей.

Зависимость d7 — это зависимость суперключа, так как в нее включены все атрибуты. Поскольку в левой части этой зависимости находится единственный атрибут, он является ключом. Ни один из атрибутов не определяет А следовательно, А является единственным ключом отношения R. Нарушения требований 2NF отсутствуют, так как ключ состоит из одного атрибута.

Другие функциональные зависимости (за исключением d4, подмножества d7) представляют собой нарушения 3NF. Первая декомпозиция производится для устранения зависимости d8, представляющей собой самое серьезное нарушение. Декомпозиция с использованием d8 приводит к следующим двум отношениям.

Комментарии закрыты