- •4. Элементы модели «сущность-связь» (er-модель) Диаграммы сущностей и связей.
- •14. Замыкание множества функциональных зависимостей.
- •34. Декартово произведение и соединение в sql
- •34. Группирование и агрегирование в sql. Операторы агрегирования. Группирование. Предложения ha ving.
- •54. Триггеры в sql.
14. Замыкание множества функциональных зависимостей.
Замкнутые множества функциональных зависимостей
Как мы показали, на основании заданного множества FD зачастую возможно вывести некоторые другие FD, включая тривиальные и нетривиальные. В следующих разделах нам понадобится различать заданные (given) FD, справедливость которых в контексте определенного отношения провозглашается изначально, и производные (derived) FD, получаемые путем логического вывода на основании заданных FD с помощью рассматриваемых здесь правил и изложенного выше алгоритма вычисления замыкания множества атрибутов.
Иногда существует возможность выбора одного из альтернативных наборов FD, пригодных для представления полного множества FD конкретного отношения. Любое множество функциональных зависимостей отношения, из которых допустимо вывести все другие FD, называют базисом (basis) отношения. Если ни одно из подмножеств базиса не может быть, в свою очередь, использовано для получения полного множества FD отношения, принято говорить, что базис является минимальным (minimal).
Замыкание множества атрибутов
Прежде чем перейти к изложению остальных правил обращения с функциональными зависимостями, рассмотрим основной принцип, лежащий в основе всех этих правил. Предположим, что {АЬА2,..., Ап) — это множество атрибутов, a S — множество функциональных зависимостей. Замыканием (closure) множества {Ль А2,.Ап] при условии выполнения FD множества S называют множество В атрибутов, такое что для каждого отношения, которому удовлетворяют все FD множества 5, справедлива и FD А1А2-Ап~^В. Другими словами, FD АуА2 — Ап^В следует из FD множества S. Замыкание множества {Аи А2, ...,Ап) атрибутов обозначают как t [АХ,А2 Ап}+. Чтобы упростить обсуждение аспектов вычисления замыканий множеств атрибутов, мы разрешим возможность использования тривиальных FD, полагая, что Ах,А2,...,Ап и всегда являются членами [А{,А2 Ап}+.
На рис. 3.19 схематически изображен процесс вычисления замыкания множества атрибутов. Некоторое заданное множество атрибутов последовательно расширяется по мере добавления в него атрибутов правых частей Рис. 3.18. Правило тривиальной зависимости функциональных зависимостей, атрибуты левых частей которых уже присутствуют в множестве. На определенном шаге процедуры дальнейшее расширение множества окажется невозможным, и ее результатом будет искомое замыкание множества. Ниже приведено
более подробное описание алгоритма вычисления замыкания множества {АЪА2 Ап)
атрибутов по отношению к некоторому множеству FD.
Пусть переменная X представляет множество атрибутов, подлежащее расширению до момента достижения замыкания. X инициализируется значением [AltA2,..., Ап].
Выполняется поиск некоторой FD Вг В2 ••■ Вт —> С, такой, что все атрибуты Ви В2,..., Вт принадлежат множеству X, а С — нет. Если указанная FD существует, С добавляется в множество X.
Шаг 2 повторяется до тех пор, пока существуют соответствующие FD, атрибуты которых подлежат включению в множество X. Поскольку X допускает только расширение и количество атрибутов, охватываемых любой реляционной схемой, конечно, на определенной итерации процесса множество атрибутов, которые могут быть добавлены в X, будет исчерпано.
После завершения процедуры расширения множество X содержит искомое значение замыкания, {АЬА2 Л„}+.
24. Независимые проекции отношений. Теорема Риссанена Теорема Риссанена
Проекции r1 и r2 отношения r являются независимыми тогда и только тогда, когда:
каждая FD в отношении r логически следует37) из FD в r1 и r2;
общие атрибуты r1 и r2 образуют возможный ключ хотя бы для одного из этих отношений.