Теоретико-множественные операторы

 

Объединениемдвух совместимых по типу отношений M и N называется отношение с тем же заголовком, что и у M и N, и телом, состоящим из кортежей, принадлежащих или M или N, или обоим отношениям.

Синтаксис: M UNION N

Примечание: объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение M, и отношение N, то в объединение он входит один раз.

Пример 2: Пусть даны два отношения M и N с информацией о сотрудниках (таблицы 3.2 и 3.3).

 

Таблица 3.2 - Отношение M Таблица 3.3 - Отношение N

 

ИД_Сотр Фамилия Зарплата   ИД_Сотр Фамилия Зарплата
1 Андреев 1 Андреев
2 Поляков 2 Танеев
3 Сидоров 3 Сидоров

 

Результатом объединения отношений M и N будет отношение, представленное в таблице 3.4.

 

Таблица 3.4 - Объединение отношений M и N

 

ИД_Сотр Фамилия Зарплата
Андреев
Поляков
Сидоров
Андреев
Танеев

 

Примечание: как видно из данного примера, первичные ключи, которые были в отношениях M и N не наследуются объединением этих отношений. Поэтому, в объединении отношений M и N атрибут "ИД_Сотр" может содержать дубликаты значений. Если бы это было не так, и ключи наследовались бы, то это противоречило бы понятию операции объединения как "объединение множеств". Конечно, объединение отношений M и N имеет, как и любое отношение, первичный ключ, например, состоящий из всех атрибутов.

 

Пересечениемдвух совместимых по типу отношений M и N называется отношение с тем же заголовком, что и у отношений M и N, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям M и N.

Синтаксис операции пересечения: M INTERSECT N

Пример 3. Для тех же отношений M и N (таблицы 3.2 и 3.3) результатом пересечения будет отношение, представленное в таблице 3.5.

 

 

Таблица 3.5. Пересечение отношений M и N

 

ИД_Сотр Фамилия Зарплата
Андреев
Сидоров

Примечание: как видно и в этом случае потенциальные ключи в результирующем отношении не наследуются. В целом, надо отметить, что ни одни реляционный оператор не передает в результат данных о ключах. Смысл этого заключается в том, что первичный ключ это понятие, которое позволяет различать один объект от другого. В тоже время, любой реляционный оператор есть операция над отношениями, переданными ему в качестве параметров. А понятие отношения есть множество, в котором отсутствуют механизмы, позволяющие отличать один элемент от другого.

 

Вычитаниемдвух совместимых по типу отношений M и N называется отношение с тем же заголовком, что и у отношений M и N, и телом, состоящим из кортежей, принадлежащих отношению M и не принадлежащих отношению N.

Синтаксис операции вычитания: M MINUS N

Пример 4. Для отношений M и N, что и в предыдущем примере (таблицы 3.2 и 3.3) вычитание имеет вид, представленный в таблице 3.6.

 

Таблица 3.6 - Вычитание отношений M и N

 

ИД_Сотр Фамилия Зарплата
2 Поляков

 

Декартовым произведением двух отношений M(M1, M2,…Mn) и N(N1, N2,…Nm) называется отношение, заголовок которого является сцеплением заголовков отношений M и N: (M1, M2,…Mn, N1, N2,…Nm), а тело состоит из кортежей, являющихся сцеплением кортежей отношений M и N: (m1, m2, …mn, n1, n2,…nm), таких, что (m1, m2, …mnM, (n1, n2,…nmN.

Синтаксис операции декартового произведения: M TIMES N

Примечания:

мощность произведения M TIMES N равна произведению мощностей отношений M и N, т.к. каждый кортеж отношения M соединяется с каждым кортежем отношения N;

если в отношения M и N имеются атрибуты с одинаковыми наименованиями, то перед выполнением операции декартового произведения такие атрибуты необходимо переименовать;

перемножать можно любые два отношения, совместимость по типу при этом не требуется.

Пример 5. Пусть даны два отношения A и B с информацией о сотрудниках и о существующих должностях (таблицы 3.7 и 3.8).

 

Таблица 3.7 - Отношение A (Сотрудники) Таблица 3.8 - Отношение B (Должности)

ИД_Сотр Фамилия Стаж   ИД_Д Должность Зарплата
1 Иванов 1 Профессор
2 Поляков 2 Доцент
3 Сидоров 3 Ассистент

 

Декартово произведение отношений A и B будет иметь вид, представленный в таблице 3.9

 

Таблица 3.9 - Результат декартового произведения отношений A и B

 

ИД_Сотр Фамилия Стаж Ид_Д Должность Зарплата
Иванов Профессор
Иванов Доцент
Иванов Ассистент
Поляков Профессор
Поляков Доцент
Поляков Ассистент
Сидоров Профессор
Сидоров Доцент
Сидоров Ассистент

 

Примечание: в чистом виде декартово произведение не используется, так как оно не дает никакой новой информации, по сравнению с исходными отношениями. Для реальных запросов эта операция почти никогда не используется. Однако декартово произведение используется при выполнении различных специальных реляционных операций, в которых оно используется.