5. Производные операции
5. Производные операции
Итак, мы рассмотрели различные варианты операций соединения, а именно операции внутреннего соединения, левого, правого и полного внешнего соединения, которые являются производными восьми исходных операций реляционной алгебры: унарных операций выборки, проекции, переименования и бинарных операций объединения, пересечения, разности, декартова произведения и естественного соединения. Но и среди этих исходных операций есть свои примеры производных операций.
1. Например, операция пересечения двух отношений является производной от операции разности этих же двух отношений. Покажем это.
Операцию пересечения можно выразить следующей формулой:
r1(S) ? r2(S) = r1 r1 r2
или, что дает тот же результат:
r1(S) ? r2(S) = r2 r2 r1;
2. Еще одним примером, производной базовой операции от восьми исходных операций является операция естественного соединения. В самом общем виде эта операция является производной от бинарной операции декартового произведения и унарных операций выборки, проекции и переименования атрибутов. Однако, в свою очередь, операция внутреннего соединения является производной операцией от той же операции декартового произведения отношений. Поэтому, чтобы показать, что операция естественного соединения – производная операция, рассмотрим следующий пример.
Сравним приведенные ранее примеры для операций естественного и внутреннего соединений.
Пусть нам даны два отношения r1(S1) и r2(S2) которые будут выступать в качестве операндов. Они равны:
r1(S1):
r2(S2):
Как мы уже получали ранее, результатом операции естественного соединения этих отношений будет являться таблица следующего вида:
r3(S3) ? r1(S1) ? r2(S2):
А результатом внутреннего соединения этих же отношений r1(S1) и r2(S2) по условию P = (b1 = b2) будет следующая таблица:
r4(S4) ? r1(S1) ? P r2(S2):
Сравним эти два результата, получившиеся новые отношения r3(S3) и r4(S4).
Ясно, что операция естественного соединения выражается через операцию внутреннего соединения, но, что главное, с условием соединения специального вида.
Запишем математическую формулу, описывающую действие операции естественного соединения как производную операции внутреннего соединения.
r1(S1) ? r2(S2) = { ? <?1> r1 ? E ?< ?2>r2}[S1 ? S2],
где E — условие соединимости кортежей;
E= ?a ?S1 ? S2 [IsNull (b1) & IsNull (2) ?b1 = b2];
b1 = ?1 (name(a)), b2 = ?2 (name(a));
Здесь одна из функций переименования ?1 является тождественной, а другая функция переименования (а именно – ?2) переименовывает атрибуты, на которых наши схемы пересекаются.
Условие соединимости E для кортежей записывается в общем виде с учетом возможных появлений Null-значений, ведь операция внутреннего соединения (как уже было сказано выше) является производной операцией от операции декартового произведения двух отношений и унарной операции выборки.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
16.1. Операции tty
16.1. Операции tty Устройства tty предоставляют огромное количество опций обработки данных; они относятся к наиболее сложным устройствам ядра. Настраивать можно опции обработки входных и выходных данных, а также потока данных. Также можно контролировать ограниченное
Производные данные
Производные данные Я уже упомянул выше, что, зная IP-адреса, можно определить географическое расположение пользователя, а зная referrer – запрос, по которому пользователь нашел ссылку на наш сайт в поисковой системе. Это так называемые производные данные – они получены за
Операции
Операции Операция представляет собой любой шаг или функцию, чье мысленное или физическое выполнение имеет поставленную цель. Операции включают в себя всю работу руководителей и технического персонала по выполнению задач проекта и
37. Производные классы
37. Производные классы Производные классы предоставляют простой и эффективный аппарат задания для класса альтернативного интерфейса и установления класса путем добавления возможностей к уже существующему классу без перепрограммирования или перекомпиляции. С помощью
R.3.6.2 Производные типы
R.3.6.2 Производные типы Существует потенциально бесконечное число производных типов, которые строятся из основных типов следующими способами:массив объектов данного типа, §R.8.4;функции, имеющие параметры данного типа и возвращающие объекты данного типа, §R.8.2.5;указатели на
R.10 Производные классы
R.10 Производные классы В описании класса можно указать список базовых классов с помощью следующих конструкций:спец-базовых: : список-базовыхсписок-базовых: спецификация-базовых список-базовых , спецификация-базовыхспецификация-базовых: полное-имя-класса virtual
3. Производные правила вывода
3. Производные правила вывода Другим примером правил, с помощью которых можно, при необходимости вывести новые правила функциональной зависимости, являются так называемые производные правила вывода.Что это за правила, как они получаются?Известно, что если из одних
4.3. Операции сравнения и логические операции
4.3. Операции сравнения и логические операции Символ операции Значение Использование ! Логическое НЕ !expr меньше exprexpr = Меньше либо равно expr=expr больше exprexpr = больше либо равно expr=expr == равно expr==expr != не равно expr!=expr логическое
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-имя должно означать ранее описанный класс, назваемый базовым классом для описываемого класса. Говорится, что последний выводится из предшествующего (является проиводным от него). По поводу смысла