В отношении существует многозначная зависимость (МЗ) , если для любого , являющегося значением атрибута :
, (9)
где – знак декартова произведения множеств.
Отношение с МЗ содержит избыточную информацию. Для МЗ справедливо отношение , где .
Симметричность вхождения членов в правую часть формулы (9) показывает, что многозначные зависимости встречаются парами.
Рассмотрим следующий пример.
Пусть дано отношение:
.
Вероятный ключ отношения является двухатрибутным:
.
Отношение может быть разбито на два отношения:
;
.
Отношение содержит многозначные зависимости:
;
,
т.к. любое изделие имеет один и тот же набор комплектующих на любом заводе.
Отношение может быть разбито на два отношения:
;
.
Поскольку вся информация из отношения уже содержится в отношении , то отношение можно исключить из дальнейшего рассмотрения.
Тогда исходное отношение может быть представлено как:
.
В ряде случаев декомпозиция реляционной базы данных на основе многозначных зависимостей дает различные результаты при перестановках в списке МЗ, что является серьезным недостатком.
Для ациклических реляционных баз данных (АРБД) характерна однозначная декомпозиция на основе МЗ.
Для определения АРБД введем графы соединений на множестве отношений . Вершинами графа соединений являются имена существующих отношений . Дуга графа существует, если в структуре отношений и имеются общие атрибуты (обозначим их для определенности через и назовем весом дуги).
Путь на графе соединений называется A-путем, если атрибут A содержится в структуре каждого отношения, лежащего на пути. В графе соединений для каждой пары отношений с общим атрибутом должен существовать – путь между и .
Если граф можно превратить в дерево с помощью исключения некоторых дуг при сохранении выше названного требования, то БД с отношениями является ациклической.
Для АРБД введем операцию
.
Величина вычисляется без потери информации и размер промежуточных результатов соединения не превышает по числу строк размер результирующего отношения.
В отличие от БД с циклическим графом соединений АРБД дает корректные (однозначные) ответы при реализации запросов, т.к. для любого запроса существует не более одного пути его реализации.
АРБД может быть получена одним из двух способов:
- добавлением в БД нового отношения с атрибутами, равными объединению весов дуг, образующих цикл;
- добавлением новых атрибутов, переименованием и разделением атрибутов.
Рассмотренная выше БД о научно-исследовательских работах является ациклической, а ее дерево соединений имеет вид, приведенный на рисунке.
Рисунок. Дерево соединений
При проектировании структуры реляционной БД можно рекомендовать следующие действия:
- каждый входной документ привести к 3НФ и установить первичный ключ в каждом случае;
- для полученного множества отношений построить граф соединений.
Если граф соединений можно преобразовать в дерево соединений, то БД является ациклической и соответствует 3НФ. Если дерево соединений не получается, то для достижения ацикличности необходимо вычислить преобразования, рекомендованные выше.