Аксиомы вывода функциональных зависимостей
Известно, что функции могут образовывать пространства, и в пространствах выполняются различные операции. В нашем случае для каждой базы данных на множестве ее отношений можно рассмотреть все возможные, допустимые в семантическом смысле функциональные зависимости. Для каждого отношения существует вполне определенное множество ФЗ между его атрибутами. На практике число рассматриваемых атрибутов и ФЗ конечно (!).
Поскольку ФЗ являются высказываниями об атрибутах сущностей предметной области, то над ними могут быть определены операции, позволяющие логически получать одну зависимость из другой (или устанавливать между ними эквивалентность). Это позволяет определить для данной схемы базы данных базовый набор ФЗ, из которого может быть выведено все множество ФЗ, присущих этой схеме. Данное утверждение является третьей (3) конструктивной идеей в теории проектирования реляционных баз данных.
Математически эту задачу можно поставить следующим образом. Пусть U {A1, A2, ..., An} - универсальное множество атрибутов, т.е. полный набор атрибутов отношения базы данных. Совокупность пар (X, Y), таких, что

Например, транзитивную ФЗ в отношении r можно логически вывести из





Такие рассуждения позволяют ввести следующие определения.
Определение 7. Пусть F - множество ФЗ для схемы отношения r,



В примере выше мы видели, что если F содержит ФЗ из



Определение 8. Пусть F - множество ФЗ для схемы отношения r. Тогда замыканием F+ множества ФЗ F называется множество ФЗ, которое логически следует из F. F называется полным семейством ФЗ, если F+ = F.
Пример (без доказательства). Пусть


- X содержит A, т.е. или;
- X содержит B, но не A, и Y не содержит A, т.е. или B;
- естьили.
Теперь можно уточнить понятие ключа отношения. Предполагается, что для сущностей предметной области существует множество атрибутов, которое уникально определяет каждую из этих сущностей. Понятие замыкания позволяет дать формальное определение ключу отношения.
Определение 9. Пусть F - множество ФЗ для схемы отношения R(A1, A2, ..., An). Подмножество атрибутов X называется ключом отношения R, если ФЗ:



Таким образом, заданный аналитиком ключ некоторого набора сущностей предметной области только тогда является ключом отношения, представляющего эти сущности в реляционной базе данных, когда он является минимальным ключом, т.е. содержит минимальное подмножество ключевых атрибутов. При определении ключа сущности предметной обычно невозможно установить свойство минимальности ввиду отсутствия формальной разработки для этой процедуры. На практике существует несколько наборов атрибутов сущности предметной области в качестве кандидатов на ключ отношения. Проектировщик базы данных может выбрать любой из них для идентификации отношения. Для того чтобы выделять ситуацию множественности в выборе ключа, для обозначения ключа сущности пользуйтесь термином возможный ключ.
Пример. Многозначность при выборе ключа
Легко убедиться, что оба множества атрибутов {город, адрес} и {адрес, почтовый_индекс} являются ключами отношения. Какой из них выбрать, решает проектировщик базы данных.
Для того чтобы определить ключи отношений и логические следствия ФЗ для заданной схемы отношения, необходимо вычислить F+ или для заданного F уметь определять, принадлежит ли данная ФЗ его замыканию F+. Для этого необходимо иметь набор правил - операций над ФЗ, позволяющих ими манипулировать.
Набор правил вывода должен быть полным, т.е. давать возможность вывести все зависимости из F+, и надежным, т.е. не позволять вывести зависимость из F, не принадлежащую F+. Таким образом, правила вывода, называемые также аксиомами вывода функциональных зависимостей, должны позволять вывести множество функциональных зависимостей, присущих рассматриваемой схеме отношения R(A1, A2, ..., Am) на заданном универсальном множестве атрибутов U по заданному множеству ФЗ F = {F1, F2, ..., Fk}.
Далее представлены восемь аксиом вывода функциональных зависимостей.
- Рефлексивность. Если , то ФЗследует из F. Иначе.
- Пополнение. Если и задана ФЗиз F, то имеет место ФЗ.
- Транзитивность. Если и задана ФЗиз F , то имеет место ФЗ.
- Расширение. Если и задана ФЗ, тоимеет место ФЗ.
- Продолжение. Если , и задана ФЗ, тоимеет место ФЗ.
- Псевдотранзитивность. Если , и заданы ФЗи ФЗ, то имеет место ФЗ.
- Аддитивность. Если , и заданы ФЗи ФЗ, то имеет место ФЗ.
- Декомпозиция. Если , и задана ФЗ, то имеет мето ФЗ.
Используя три первых аксиомы вывода, покажем, что пара атрибутов {адрес, почтовый_индекс} из примера выше являются ключом отношения (город, адрес, почтовый_индекс), иначе имеет место ФЗ адрес, почтовый_индекс





Тогда по аксиоме транзитивности получаем адрес, почтовый_индекс

Можно доказать утверждение о том, что настоящие правила вывода позволяют по заданному множеству ФЗ F построить все зависимости, допускаемые на U. Таким образом, система правил вывода ФЗ 1-6 является надежной и полной.
Покажем, как можно доказать утверждение о полноте и надежности аксиом вывода. Аксиомы 1, 2 и 3 составляют независимое подмножество среди всех шести аксиом и называются аксиомами Армстронга. Из них можно вывести все остальные аксиомы. Поэтому надежность и полноту достаточно установить только для первых трех аксиом.
Надежность аксиом заключается в том, что если ФЗ



Для доказательства полноты аксиом вывода введем понятие замыкания множества атрибутов X относительно множества ФЗ F.
Определение 10. Пусть F - множество ФЗ на множестве атрибутов U и


Нетрудно показать, что ФЗ







Теперь, для того чтобы показать полноту аксиом 1-3, покажем, что если при заданном F ФЗ


Рассмотрим отношение R с двумя кортежами:
1 1 … 1 | 1 1 … 1 |
1 1 … 1 | 0 0 … 0 |




На основе аксиом вывода можно уточнить понятие замыкания множества ФЗ


Вычисление замыкания конечного множества ФЗ является трудоемкой задачей, так как необходимо перебрать множество всех подмножеств, а таких множеств, как известно, 2n, где n - число элементов исходного множества. Однако вычислить замыкание X+ для данного множества атрибутов несложно. Алгоритм вычисления приведен ниже. Можно показать, что этот алгоритм корректно вычисляет замыкание X+.
Алгоритм вычисления X+
Input: U - конечное множество атрибутов, множество ФЗ F на U, множество

Output: X+
- Х0 есть Х.
- Xi+1 есть Xi плюс множество атрибутов А, для которых в F существует ФЗ .
Условие завершения. Так как U - конечно и

Пример. Вычислим Х+
Пусть

- Находим ФЗ, которые в левой части имеют . Присоединим E и G к X0. X1 = BDEG. Находим ФЗ с левыми частями из. Находим ФЗ с левыми частями из.
- .