![](/user_photo/2706_HbeT2.jpg)
- •Реляционная алгебра
- •Модель:
- •3.1. Основные понятия реляционной модели
- •3.2. Свойства отношений
- •3.3. Реляционные ключи
- •3.4. Представление схем
- •3.5. Реляционная целостность
- •3.6. Внешние представления
- •Реляционная алгебра и реляционное исчисление
- •3.7. Реляционная алгебра
- •3.7.3. Объединение - r s
- •3.7.4. Разность - r - s
- •3.7.5. Пересечение - r s
- •3.7.6. Декартово произведение - r X s
- •3.7.7. Декомпозиция сложных операций
- •3.7.8. Операции соединения
- •3.7.9. Деление r s
- •3.8. Реляционное исчисление
- •3.8.1. Реляционное исчисление кортежей
- •3.8.2. Реляционное исчисление доменов
- •3.9. Другие языки
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). Операция переименования позволяет также задать произвольное имя для любого из атрибутов нового отношения.