Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 3 Реляционная алгебра.doc
Скачиваний:
4
Добавлен:
16.09.2019
Размер:
438.27 Кб
Скачать

3.7.4. Разность - r - s

С остоит из кортежей, которые имеются в отношении R, но отсутствуют в отношении S. Отношения R и S должны быть совместимы по объединению.

Например,

Создать список городов, в которых имеется отделение компании , но нет объектов недвижимости

Пгород(Офис) - Пгород(Объект недвижимости)

Аналогично предыдущему примеру.

3.7.5. Пересечение - r  s

Содержит кортежи, присутствующие как в отношении R, так и в отношении S. Отношения R и S должны быть совместимы по объединению.

Например,

Создать список всех городов, в которых есть отделение компании, а также по крайней мере один объект недвижимости, сдаваемой в аренду.

Пгород(Офис)  Пгород(Объект недвижимости)

Аналогично предыдущему примеру.

Пересечение можно сформулировать и через операции разности множеств:

R  S = R – (R – S)

3.7.6. Декартово произведение - r X s

О тношение, которое является результатом конкатенации (сцепления) каждого кортежа из отношения R с каждым кортежем отношения S.

Если одно отношение имеет I кортежей и N атрибутов, а другое – J кортежей и M атрибутов, то их декартово произведение будет содержать (I x J) кортежей и (N x M) атрибутов. Исходные отношения могут содержать атрибуты с одинаковыми именами, тогда имена атрибутов в результирующем отношении будут включать названия отношений в виде префиксов для уникальности имен.

Например,

Создать список всех арендаторов, которые осматривали объекты недвижимости, с указанием сделанных ими комментариев.

Имена арендаторов хранятся в отношении «Клиент», а сведения о выполненных осмотрах – в отношении «Осмотры».

Пклиент№,ФИО(Клиент) х Пклиент№,Коммент(Осмотры)

В таком виде это отношение содержит больше информации, чем необходимо (номера клиентов). Для получения искомого списка необходимо дополнительно произвести операцию выборки:

Клиент.Клиент№=Осмотры.Клиент№

Клиент.Клиент№=Осмотры.Клиент№( Пклиент№,ФИО(Клиент) х Пклиент№,Коммент(Осмотры))

3.7.7. Декомпозиция сложных операций

Операции реляционной алгебры могут в конечном итоге стать чрезвычайно сложными. Для упрощения такие операции можно разбить на ряд меньших операций и присвоить имена результатам промежуточных вычислений. Для присваивания имен результатам операции РА используется символ «».

Например, в предыдущем примере,

ПромежОсмотр(Клиент№,Коммент)  Пклиент№,Коммент(Осмотры)

ПромежКлиент(Клиент№,ФИО)  Пклиент№,ФИО(Клиент)

Коммент(ПромежОсмотр.Клиент№,ФИО,ПромежКлиент.Клиент№, Коммент)  ПромежОсмотр х ПромежКлиент

Результат   ПромежОсмотр.Клиент№= ПромежКлиент.Клиент№(Коммент)

Еще один вариант состоит в использовании операции переименования .

S(E) или S(a1,…,an)(E)

Результирующее отношение имеет в точности те же кортежи, что и E, имя результирующего отношения – S. Атрибуты отношения S получают имена a1,…,an в порядке слева направо. Если нужно изменить только имя отношения, но не его атрибутов, можно писать просто S(E). Операция переименования позволяет также задать произвольное имя для любого из атрибутов нового отношения.