Базы данных: конспект лекций.
2. Правила вывода Армстронга.
Если какое-либо базовое отношение удовлетворяет векторно определенным функциональным зависимостям, то с помощью различных специальных правил вывода можно получить другие функциональные зависимости, которым данное базовое отношение будет заведомо удовлетворять.
Хорошим примером таких специальных правил являются правила вывода Армстронга.
Но прежде чем приступать к анализу самих правил вывода Армстронга, введем в рассмотрение новый металингвистический символ «├», который называется символом метаутверждения о выводимости. Этот символ при формулировании правил записывается между двумя синтаксическими выражениями и свидетельствует о том, что из формулы, стоящей слева от него, выводится формула, стоящая справа от него.
Сформулируем теперь сами правила вывода Армстронга в виде следующей теоремы.
Теорема. Справедливы следующие правила, называемые правилами вывода Армстронга.
Правило вывода 1. ├ Х → Х;
Правило вывода 2. Х → Y├ Х ∪ Z → Y;
Правило вывода 3. Х → Y, Y ∪ W → Z ├ Х ∪ W → Z;
Здесь Х, Y, Z, W – произвольные подсхемы схемы отношения S. Символ метаутверждения о выводимости разделяет списки посылок и списки утверждений (заключений).
1. Первое правило вывода называется «рефлексивность» и читается следующим образом: «выводится правило: “Х функционально влечет за собой Х”». Это самое простое из правил вывода Армстронга. Оно выводится буквально из воздуха.
Интересно заметить, что функциональная зависимость, обладающая и левой, и правой частями, называется рефлексивной. Согласно правилу рефлексивности ограничение рефлексивной зависимости выполняется автоматически.
2. Второе правило вывода называется «пополнение» и читается таким образом: «если Х функционально определяет Y, то выводится правило: “объединение подсхем Х и Z функционально влечет за собой Y”». Правило пополнения позволяет расширять левую часть ограничения функциональных зависимостей.
3. Третье правило вывода называется «псевдотранзитивность» и читается следующим образом: “если подсхема Х функционально влечет за собой подсхему Y и объединение подсхем Y и W функционально влекут за собой Z, то выводится правило: «объединение подсхем Х и W функционально определяют подсхему Z»”.
Правило псевдотранзитивности обобщает правило транзитивности, соответствующее частному случаю W: = 0. Приведем формулярную запись этого правила:
Х →Y, Y → Z ├Х → Z.
Необходимо отметить, что посылки и заключения, приведенные ранее, были представлены в сокращенной форме обозначениями схем функциональной зависимости. В расширенной форме им соответствуют следующие ограничения функциональных зависимостей.
Правило вывода 1. inv <Х → Х> r(S);
Правило вывода 2. inv <Х → Y> r(S) ⇒ inv <Х ∪ Z → Y> r(S);
Правило вывода 3. inv <Х → Y> r(S) & inv <Y ∪ W → Z> r(S) ⇒ inv<Х ∪ W → Z> r(S);
Проведем доказательства этих правил вывода.
1. Доказательство правила рефлексивности следует непосредственно из определения ограничения функциональной зависимости при подстановке вместо подсхемы Y – подсхемы Х.
Действительно, возьмем ограничение функциональной зависимости:
Inv <Х → Y> r(S) и подставим в него Х вместо Y, получим:
Inv <Х → Х> r(S), а это и есть правило рефлексивности.
Правило рефлексивности доказано.
2. Доказательство правила пополнения проиллюстрируем на диаграммах функциональной зависимости.
Первая диаграмма – это диаграмма посылки:
Посылка: Х → Y.
Вторая диаграмма:
Заключение: Х ∪ Z → Y.
Пусть кортежи равны на Х ∪ Z. Тогда они равны на Х. Согласно посылке они будут равны и на Y.
Правило пополнения доказано.
3. Доказательство правила псевдотранзитивности также проиллюстрируем на диаграммах, которых в этом конкретном случае будет три.
Первая диаграмма – первая посылка:
Посылка 1: Х → Y.
Посылка 2: Y ∪ W → Z.
И, наконец, третья диаграмма – диаграмма заключения:
Заключение: Х ∪ W → Z.
Пусть кортежи равны на Х ∪ W. Тогда они равны и на Х, и на W. Согласно Посылке 1, они будут равны и на Y. Отсюда, согласно Посылке 2, они будут равны и на Z.
Правило псевдотранзитивности доказано.
Все правила доказаны.