Тема 4: Реализация операций реляционной алгебры в языке sql.
Операция объединения в реляционной алгебре и ее реализация в языке SQL.
Объединением (A UNION B) двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих или , или , или обоим отношениям.
№ |
фамилия |
1 2 3 |
Иванов Петров Сидоров |
№ |
фамилия |
1 2 |
Иванов Сидоров |
№ |
фамилия |
A
UION B
B
2 |
Иванов Петров |
A
Операция пересечения в реляционной алгебре и ее реализация в языке SQL.
Пересечением (A INERSECT B) двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям и .
ПР.: вывести номера деталей, которые поставляются поставщиком 1 и 2.
Select dnum
FROM PD
WHERE pnum=1
INTERSECT
SELECT dnum
FROM PD
WHERE pnum=2
_____________________________________________________________________________
Операция вычитания в реляционной алгебре и ее реализация в языке SQL.
Вычит. запросы дб совместимы между собой, что в терминологии sql означает «они должны иметь одинаковое количество столбцов»
ПР.: вывести номера поставщиков, которые не поставляют детали в настоящее время.
Select pnum
FROM P
EXCEPT
SELECT pnum
SELECT dnum, dname, ‘цены нет’
FROM D
_____________________________________________________________________________
Операция внутреннего соединения в реляционной алгебре и ее реализация в языке SQL.
Внутренним соединением (A JOIN B) называют отношение A и B, выполненоe по всем общим атрибутам, причем из результирующего отношения исключают по одному экземпляру каждого общего атрибута.
Естественное соединение эквивалентно следующей последовательности реляционных операций:
Переименовать одинаковые атрибуты в отношениях
1.Выполнить декартово произведение отношений
2.Выполнить выборку по совпадающим значениям атрибутов, имевших одинаковые имена
3.Выполнить проекцию, удалив повторяющиеся атрибуты
4.Переименовать атрибуты, вернув им первоначальные имена
ПР.: вывести информацию о поставках в виде отношения R.
Select pname, dname, volume
FROM (P INNER JOIN PD ON P.pnum=PD.pnum) INNER JOIN D ON PD.dnum=D.dnum
Операция левого внешнего соединения в реляционной алгебре и ее реализация в языке SQL.
Тип соединения "левое (внешнее)". Левое соединение таблиц А и В включает в себя все строки из левой таблицы А и те строки из правой таблицы В, для которых обнаружено совпадение. Для строк из таблицы А, для которых не найдено соответствия в таблице В, в столбцы, извлекаемые из таблицы В, заносятся значения NULL. A LEFT JOIN B
_____________________________________________________________________________
Операция правого внешнего соединения в реляционной алгебре и ее реализация в языке SQL.
Тип соединения "правое (внешнее)". Правое соединение таблиц А и В включает в себя все строки из правой таблицы В и те строки из левой таблицы А, для которых обнаружено совпадение. Для строк из таблицы В, для которых не найдено соответствия в таблице А, в столбцы, извлекаемые из таблицы А заносятся значения NULL. A RIGHT JOIN B
Реализация операции вычитания с помощью подзапросов.
Реализация операции пересечения с помощью подзапросов.
Реализация операции деления с помощью подзапросов.
_____________________________________________________________________________
