Реляционная алгебра. ( дополнительные операции)
Дополнительные операции:
1) | соединение; |
2) | пересечение; |
3) | деление. |
Ниже определенные операции называются дополнительными, так как каждую из этих операций можно выразить через основную.
1) | Операция соединения (R join S)- является основной операцией реляционной алгебры и производной от операции декартовое произведение. |
Различают следующие 5 типов операций соединения:
1) | тета-соединение Θ-join; |
2) | соединение по эквивалентности equal-join; |
3) | естественное соединение natural-join; |
4) | внешнее соединение outer-join; |
5) | полусоединение semi-join; |
Операция тета-соединение (Θ-join). Определяет новое отношение, содержащее кортежи из декартового произведения R × S, которые удовлетворяют предикату F. При написании предиката можно использовать операции отношения и логические операции. Степенью нового отношения, полученного в результат, будет сумма степеней операндов отношений R и S. Если предикат в своём определении содержит только оператор равенства, то такое соединение называют соединением по эквивалентности.
Естественное соединение (natural join). Это соединение по эквивалентности двух отношений R и S, выполненное по всем общим атрибутам, причём из результата исключается по одному экземпляру каждого общего атрибута. Степенью отношения является сумма степеней R и S за вычетом количества общих атрибутов.
Внешнее соединение (outer-join). Это соединение отношений R и S по общим атрибутам, при котором в результат включаются и кортежи отношения R, не имеющих совпадающих значений в общих столбцах отношения S.
Полусоединение (semi-join).Операция полусоединения определяет отношение, содержащее те кортежи отношения R, которые входят в соединение отношений R и S.
Объект_недв (№объекта, Адрес, Тип, Число_комнат);
Осмотр (№объекта, №арендатора, №сотруд, Дата);
(R Θ-join S)F;
(Объект_недв Θ-join Осмотр) Объект_недв.№объекта = Осмотр.№объекта ^ Дата = x
σдата=x (Объект_недв natural-join Осмотр)
σдата=null (Объект_недв outer-join Осмотр)
(Объект_недв semi-join Осмотр) Объект_недв.№объекта = Осмотр.№объекта
2) | Операция пересечения (R З S). Операция пересечения является операцией производной от операции разности R – (R - S). Результатом операции будут те кортежи, которые присутствуют как в отношении R, так и в S. |
3) | Операция деления (RёS). Результатом операции является набор кортежей отношения R, определенных на множестве атрибутов S, которые соответствуют комбинациям всех кортежей отношения S. |
(RёS);
T=T1- T2;
T1= Пс(R);
T2= Пс((S× T1)-R).
Например,имеются отношения Осмотр (№объекта, №арендатора, №сотрудника, Дата) и Объекты_недвижимости( №объекта, Тип, Число_комнат, Адрес, Аренда), необходимо создать список всех арендаторов, которые рассматривали объекты недвижимости с 3-мя комнатами.
П№объекта, №арендатора (Осмотр) ё П№объекта(σчисло_комнат=3(Объект_недв))
В начало
РЕЛЯЦИОННОЕ ИСЧИСЛЕНИЕ ДОМЕНОВ.
Использует переменные, значения которых берутся из доменов отношений. Если P(d1, d2, …., dn) – предикат, то множество переменных, для которых значение предиката является истинным, записывается – {d1, d2, d3| P(d1, d2, d3)}.
В реляционном исчислении доменов проверяется условие принадлежности заданного значения указанному отношению.
Например: необходимо отыскать типы объектов недвижимости, имеющих число комнат, равных трём.
{Тип | $ Тип (Объекты_недв (Тип, Чило_комнат) ^ Число_комнат =3)}
Определить типы объектов недвижимости, которые осматривались вчера:
{Тип | $ Тип (Объекты_недв (№объекта, Тип) ^ Осмотр (№объекта, Дата) ^ Объект_недв. №объекта = Осмотр. №объекта ^ Дата = ‘11/03/13’)}
Язык реляционного исчисления является непроцедурным языком и теоритической основой для разработки более современных языков БД.
Языки SEQUEL, SQUARE, SQL основаны на реляционном исчислении кортежей.
Язык QBE (Query-By-Example) основан на реляционном исчислении доменов.
В начало