3. Производные правила вывода
3. Производные правила вывода
Другим примером правил, с помощью которых можно, при необходимости вывести новые правила функциональной зависимости, являются так называемые производные правила вывода.
Что это за правила, как они получаются?
Известно, что если из одних правил, уже существующих, законными логическими методами вывести другие, то эти новые правила, называемые производными, можно использовать наряду с исходными правилами.
Необходимо специально отметить, что эти самые произвольные правила являются «производными» именно от пройденных нами ранее правил вывода Армстронга.
Сформулируем производные правила вывода функциональных зависимостей в виде следующей теоремы.
Теорема.
Следующие правила являются производными от правил вывода Армстронга.
Правило вывода 1. ? X ? Z ? X;
Правило вывода 2. X ? Y, X ? Z ? X ? Y ? Z;
Правило вывода 3. X ? Y ? Z ? X ? Y, X ? Z;
Здесь X, Y, Z, W, так же как и в предыдущем случае, – произвольные подсхемы схемы отношения S.
1. Первое производное правило называется правилом тривиальности и читается следующим образом:
«Выводится правило: “объединение подсхем X и Z функционально влечет за собой X”».
Функциональная зависимость с левой частью, являющейся подмножеством правой части, называется тривиальной. Согласно правилу тривиальности ограничения тривиальной зависимости выполняются автоматически.
Интересно, что правило тривиальности является обобщением правила рефлексивности и, как и последнее, могло бы быть получено непосредственно из определения ограничения функциональной зависимости. Тот факт, что это правило является производным, не случаен и связан с полнотой системы правил Армстронга. Подробнее о полноте системы правил Армстронга мы поговорим чуть позднее.
2. Второе производное правило называется правилом аддитивности и читается следующим образом: «Если подсхема X функционально определяет подсхему Y, и X одновременно функционально определяет Z, то из этих правил выводится следующее правило: “X функционально определяет объединение подсхем Y и Z”».
3. Третье производное правило называется правилом проективности или правилом «обращение аддитивности». Оно читается следующим образом: «Если подсхема X функционально определяет объединение подсхем Y и Z, то из этого правила выводится правило: “X функционально определяет подсхему Y и одновременно X функционально определяет подсхему Z”», т. е., действительно, это производное правило является обращенным правилом аддитивности.
Любопытно, что правила аддитивности и проективности применительно к функциональным зависимостям с одинаковыми левыми частями позволяют объединять или, наоборот, расщеплять правые части зависимости.
При построении цепочек вывода после формулировки всех посылок применяется правило транзитивности с той целью, чтобы включить функциональную зависимость с правой частью, находящейся в заключении.
Проведем доказательства перечисленных произвольных правил вывода.
1. Доказательство правила тривиальности.
Проведем его, как и все последующие доказательства, по шагам:
1) имеем: X ? X (из правила рефлексивности вывода Армстронга);
2) имеем далее: X ? Z ? X (получаем, применяя сначала правило пополнения вывода Армстронга, а потом как следствие первого шага доказательства).
Правило тривиальности доказано.
2. Проведем пошаговое доказательство правила аддитивности:
1) имеем: X ? Y (это посылка 1);
2) имеем: X ? Z (это посылка 2);
3) имеем: Y ? Z ? Y ? Z (из правила рефлексивности вывода Армстронга);
4) имеем: X ? Z ? Y ? Z (получаем при помощи применения правила псевдотранзитивности вывода Армстронга, а потом как следствие первого и третьего шагов доказательства);
5) имеем: X ? X ? Y ? Z (получаем, применяя правило псевдотранзитивности вывода Армстронга, а после следует из второго и четвертого шагов);
6) имеем X ? Y ? Z (следует из пятого шага).
Правило аддитивности доказано.
3. И, наконец, проведем построение доказательства правила проективности:
1) имеем: X ? Y ? Z, X ? Y ? Z (это посылка);
2) имеем: Y ? Y, Z ? Z (выводится при помощи правила рефлексивности вывода Армстронга);
3) имеем: Y ? z ? y, Y ? z ? Z (получается из правила пополнения вывода Армстронга и следствием из второго шага доказательства);
4) имеем: X ? Y, X ? Z (получается, применением правила псевдотранзитивности вывода Армстронга, а затем как следствие из первого и третьего шагов доказательства).
Правило проективности доказано.
Все производные правила вывода доказаны.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Правила@
Правила@ Правила @ начинаются с ключевого слова @, непосредственно за которым следует идентификатор (например, @import, @page). Каждый из этих идентификаторов далее рассмотрим подробнее.Все же надо отметить, что браузер с поддержкой CSS будет игнорировать все правила @import, которые
Производные данные
Производные данные Я уже упомянул выше, что, зная IP-адреса, можно определить географическое расположение пользователя, а зная referrer – запрос, по которому пользователь нашел ссылку на наш сайт в поисковой системе. Это так называемые производные данные – они получены за
§ 165. Три правила про вы
§ 165. Три правила про вы 7 сентября 2010В русском языке существует местоимение вы, к которому прилагаются довольно простые правила употребления и неупотребления.Вы всегда пишется с маленькойСовершенно невыносима рекламно-подобострастная манера писать Вы с заглавной
1.5. Правила
1.5. Правила Предположим, мы хотим сформулировать утверждение, что Джону нравятся все люди. Один из способов сделать это заключается в записи для каждого человека, упоминаемого в базе данных, отдельного факта:нравится(джон,альфред). нравится(джон,бертран).
37. Производные классы
37. Производные классы Производные классы предоставляют простой и эффективный аппарат задания для класса альтернативного интерфейса и установления класса путем добавления возможностей к уже существующему классу без перепрограммирования или перекомпиляции. С помощью
R.3.6.2 Производные типы
R.3.6.2 Производные типы Существует потенциально бесконечное число производных типов, которые строятся из основных типов следующими способами:массив объектов данного типа, §R.8.4;функции, имеющие параметры данного типа и возвращающие объекты данного типа, §R.8.2.5;указатели на
R.10 Производные классы
R.10 Производные классы В описании класса можно указать список базовых классов с помощью следующих конструкций:спец-базовых: : список-базовыхсписок-базовых: спецификация-базовых список-базовых , спецификация-базовыхспецификация-базовых: полное-имя-класса virtual
5. Производные операции
5. Производные операции Итак, мы рассмотрели различные варианты операций соединения, а именно операции внутреннего соединения, левого, правого и полного внешнего соединения, которые являются производными восьми исходных операций реляционной алгебры: унарных операций
2. Правила вывода Армстронга
2. Правила вывода Армстронга Если какое-либо базовое отношение удовлетворяет векторно определенным функциональным зависимостям, то с помощью различных специальных правил вывода можно получить другие функциональные зависимости, которым данное базовое отношение будет
1.3.2 Производные Типы
1.3.2 Производные Типы Вот операции, создающие из основных типов новые типы:* указатель на *const константный указатель на amp; ссылка на [] вектор* () функция, возвращающая– * одномерный массив. Это принятый термин (например, вектора прерываний), и мы сочли, что стандартный перевод
1.13 Производные классы
1.13 Производные классы Теперь давайте определим вектор, для которого пользователь может задавать границы изменения индекса.class vec: public vector (* int low, high; public: vec(int,int);int amp; elem(int); int amp; operator[](int); *);Определение vec как :public vectorозначает, в первую очередь, что vec – это vector. То есть, тип vec
2.3.3 Производные Типы
2.3.3 Производные Типы Другие типы можно выводить из основных типов (и типов, определенных пользователем) посредством операций описания:* указатель amp; ссылка [] вектор () функцияи механизма определения структур. Например:int* a; float v[10]; char* p[20]; // вектор из 20 указателей на символ
Глава 7 Производные Классы
Глава 7 Производные Классы Не надо размножать объекты без необходимости У. Оккам В этой главе описывается понятие производного класса в С ++. Производные классы дают простой, гибкий и эффективный апарат задания для класса альтернативного интерфейса и опредления класса
7.2 Производные Классы
7.2 Производные Классы Чтобы разделить задачи понимания аппарата языка и метдов его применения, знакомство с понятием производных классов делается в три этапа. Вначале с помощью небольших примеров, которые не надо воспринимать как реалистичные, будут описанысами
4.4 Производные Типы
4.4 Производные Типы Кроме основных арифметических типов концептуально сществует бесконечно много производных типов, сконструированых из основных типов следующим образом:массивы объектов данного типа;функции, получающие аргументы данного типа и возвращащие объекты
8.5.3 Производные Классы
8.5.3 Производные Классы В конструкциисост идентификатор : public opt typedef-имяtypedef-имя должно означать ранее описанный класс, назваемый базовым классом для описываемого класса. Говорится, что последний выводится из предшествующего (является проиводным от него). По поводу смысла