metBD (1084482), страница 8
Текст из файла (страница 8)
______________________________________
Пример.
Создать ведомость зарплаты всех сотрудников компании с указанием следующих атрибутов: Фамилия, Имя, Зарплата.
П (Персонал)
фам, имя, з/п
Имя, отч. | Фамилия | Зарплата |
Юрий Иванович | Иванов | 15000 |
Ольга Сергеевна | Дашкова | 2400 |
Ирина Алекссевна | Берг | 1470 |
Сергей Андреевич | Лосев | 2100 |
Николай Николаевич | Петров | 3500 |
Иван Петрович | Смирнов | 2300 |
размещенные в указанном порядке.
Таблица 13
Декартово произведение
RxS – операция декартового произведения определяет новое отношение, которое является результатом конкатенации (сцепления) каждого кортежа из отношения R с каждым кортежем из отношения S.
О ператоры выборки и проекции извлекают информацию только из одного отношения. Очевидно, возможно возникновение таких ситуаций, когда нужна некоторая комбинация данных из нескольких отношений. Оператор декартового произведения умножает два отношения, что в результате приводит к созданию другого отношения, состоящего из всех возможных пар кортежей обоих отношений.
Пример.
Создать список всех арендаторов, которые осматривали объекты недвижимости. С указанием сделанных ими комментариев.
(П «Арендатор») ) Х (П («Осмотр») )
личн.№, ФИО №аренд.,№ объекта, коммент.
Здесь перемножаются все кортежи двух отношений: первый – список арендаторов, второй – осмотр.
Результатом будет отношение
Таблица 14
Личн. № | ФИО | Личн.№ аренд | № объекта | Комментарии |
01 | Сидоров Ю.К, | 01 | 01 | Нет балкона |
01 | Сидоров Ю.К, | 01 | 09 | Грязный подъезд |
01 | Сидоров Ю.К, | 04 | 11 | Требуется ремон |
04 | Рачков П.Л. | 01 | 01 | Нет балкона |
04 | Рачков П.Л. | 01 | 09 | Грязный подъезд |
04 | Рачков П.Л. | 04 | 11 | Требуется ремон |
07 | Плетнева Р.С. | 01 | 01 | Нет балкона |
0 | Плетнева Р.С. | 01 | 09 | Грязный подъезд |
07 | Плетнева Р.С. | 04 | 11 | Требуется ремон |
12 | Воронецева Н.Н. | 01 | 01 | Нет балкона |
12 | Воронецева Н.Н. | 01 | 09 | Грязный подъезд |
12 | Воронецева Н.Н. | 04 | 11 | Требуется ремон |
В результате произведения получается отношение, которое содержит больше информации, чем необходимо. Для получения искомого списка необходимо для этого отношения произвести операцию выборки с извлечением тех кортежей, для которых выполняется условие: данный арендатор осматривал данную недвижимость.
Результатом этой операции будет являться следующее отношение
Таблица 15
Личн. № | ФИО | Личн.№ аренд | № объекта | Комментарии |
01 | Сидоров Ю.К, | 01 | 01 | Нет балкона |
01 | Сидоров Ю.К, | 01 | 09 | Грязный подъезд |
04 | Рачков П.Л. | 04 | 11 | Требуется ремон |
К ак мы увидим позднее, комбинация декартового произведения и выборки может быть сведена к одной операции соединения.
Объединение.
R U S – объединение отношений R и S с кортежами I и J соответственно можно получить в результате их конкатенации с образованием одного отношения с максимальным количеством кортежей (I + J), если кортежи-дубликаты исключены. При этом отношения R и S должны быть совместимы по объединению.
Объединение отношений возможно только в том случае, если совпадают их схемы, т.е. если они имеют одинаковое количество атрибутов с совпадающими доменами. Иначе говоря, отношения должны быть совместимы по объединению. Отметим, что в некоторых случаях для получения двух совместимых по объединению отношений может быть использована операция проекции.
Пример.
Создать список всех городов, в которых имеется отделение компании или объект недвижимости
(П «Отделение») ) U (П («Объекты») )
город город
Результатом объединения будет отношение
Таблица 16
Город |
Воронеж |
Липецк |
Тамбов |
Курск |
Ст.Оскол |
Разность
R – S - разность двух отношений R и S состоит из кортежей, которые имеются в отношении R, но отсутствуют в отношении S. Причем отношения R и S должны быть совместимы по объединению.
Пример.
Создать список всех городов, в которых есть отделения компании, но нет объектов недвижимости, сдаваемых в аренду
(П «Отделение») ) - (П («Объекты») )
город город
Результатом разности будет отношение
Таблица 17
Город |
Липецк |
Тамбов |
Ст.Оскол |

Операции соединения.
Как правило, пользователя интересует лишь некоторая часть всех комбинаций кортежей декартового произведения, которая удовлетворяет заданному условию. Поэтому вместо декартового произведения обычно используется одна из самых важных операций реляционной алгебры – операция соединения. В результате этой операции создается новое отношение. Операция соединения является производной от операции декартового произведения двух операндов – отношений тех кортежей, которые удовлетворяют условию, указанному в предикате соединения в качестве формулы выборки. С точки зрения эффективной реализации в реляционных СУБД, эта операция является одной из самых трудных и часто оказывается одной из основных причин, вызывающих проблемы с производительностью, свойственной всем реляционным системам.
Существует несколько типов операций соединения:
-
Тета-соединения ( -join)
-
Соединение по эквивалентности (equi-join), которое является частным видом тета-соединения.
-
Естественное соединение (natural-join)
-
Внешнее соединение (outer-join)
-
П
олусоединение (semi - join)
Тета-соединение
R S –
F
Операция тета-соединения определяет отношение, которое содержит кортежи из декартового произведения отношений R и S, удовлетворяющие предикату F. Предикат F имеет вид R.a1 S.b1, где вместо может быть указан один из операндов сравнения (<, >, <=, >=, = или –=).
Так же как и в случае с декартовым произведением, степенью тета-соединения называется сумма степеней операндов-отношений R и S. Если предикат F содержит только оператор равенства, то соединение называется соединением по эквивалентности.
Пример (операция соединения по эквивалентности).
Создать список всех арендаторов, которые осматривали объект недвижимости, с указанием их имен и сделанных ими комментариев.
( П «Арендатор») ) (П («Осмотр») )
л ичн.№, ФИО Персонал.личн. №= Осмотр.личн.№ №аренд.,№ объекта, коммент. аренд. аренд.
Ранее для получения этого списка использовались операции декартового произведения и выборки. однако тот же самый результат можно получить с помощью операции соединения по эквивалентности.
Результатом этой операции будет являться следующее отношение
Таблица 18
Личн. № аренд. | ФИО | Личн.№ аренд | № объекта | Комментарии |
01 | Сидоров Ю.К, | 01 | 01 | Нет балкона |
01 | Сидоров Ю.К, | 01 | 09 | Грязный подъезд |
04 | Рачков П.Л. | 04 | 11 | Требуется ремон |
Естественное соединение
R S Естественным соединением называется соединение по эквивалентности двух отношений R и S, выполненное по всем общим атрибутам X , из результатов которого исключается по одному экземпляру каждого общего атрибута.
Степенью естественного соединения называется сумма операндов-отношений R и S минус количество атрибутов x.