Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Реляционная алгебра замкнута таким образом, что результаты одних реляционных выражений можно использовать в других выражениях. Для выполнения некоторых реляционных операторов требуется, чтобы отношения были совместимы по типу.
Операторы:
1. Объединением двух совместимых по типу отношений А и В называется отношение с тем же заголовком, что и у отношений А и В, и телом, состоящим из кортежей, принадлежащих или , А или В , или обоим отношениям. Синтаксис операции объединения: A UNION B.
2. Пересечением двух совместимых по типу отношений А и В называется отношение с тем же заголовком, что и у отношений А и В , и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям А и В. Синтаксис операции пересечения: A INERSECT B.
3. Вычитанием двух совместимых по типу отношений А и В называется отношение с тем же заголовком, что и у отношений А и В , и телом, состоящим из кортежей, принадлежащих отношению А и не принадлежащих отношению В. Синтаксис операции вычитания: A MINUS B.
4. Декартовым произведением двух отношений и называется отношение, заголовок которого является сцеплением заголовков отношений А и В: , а тело состоит из кортежей, являющихся сцеплением кортежей отношений А и В: , таких, что , .
Синтаксис операции декартового произведения: A TIMED B.
Замечание. Если в отношения A и B имеются атрибуты с одинаковыми наименованиями, то перед выполнением операции декартового произведения такие атрибуты необходимо переименовать.
5. Выборкой на отношении А с условием с называется отношение с тем же заголовком, что и у отношения А, и телом, состоящем из кортежей, значения атрибутов которых при подстановке в условие с дают значение ИСТИНА. с — представляет собой логическое выражение, в которое могут входить атрибуты отношения А и (или) скалярные выражения.
В простейшем случае условие с имеет вид , где — один из операторов =, <, > и т.д., а X и Y — атрибуты отношения A или скалярные значения. Такие выборки называются -выборки (тэта-выборки).
Синтаксис операции выборки: A WHERE c или A WHERE .
6. Проекцией отношения A по атрибутам X, Y,…,Z, где каждый из атрибутов принадлежит отношению A, называется отношение с заголовком (X, Y,…,Z) и телом, содержащим множество кортежей вида (x,y,…,z), таких, для которых в отношении A найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным y, …, значением атрибута Z равным z.
Синтаксис операции проекции: A[X,Y,…,Z].
7. Соединением отношений А и В по условию с называется отношение (A TIMES B) WHERE c , где с представляет собой логическое выражение, в которое могут входить атрибуты отношений А и В и (или) скалярные выражения.
8. Деление. Пусть даны отношения А(X1,X2,…, Xn, Y1,Y2,…, Ym) и B(Y1,Y2,…, Ym), причем атрибуты Y1,Y2,…, Ym- общие для двух отношений. Делением отношений A на B называется отношение с заголовком (X1,X2,…, Xn) и телом, содержащим множество кортежей (x1,x2,…, xn), таких, что для всех кортежей (y1,y2,…, ym) принадлежит B, в отношении A найдется кортеж (x1,x2,…,xn,y1,y2,…,ym).
Синтаксис операции деления: A DEVIDBY B.
Примеры использования реляционной алгебры .
1. Получить имена поставщиков, которые поставляют деталь P2
((SP JOIN S ) WHERE P#=’P2’ ) [SNAME]
2.Получить номера поставщиков ,которые поставляют по крайней мере все те детали , которые поставляет поставщик S2
SP[S#,P#] DEVIDEBY (SP WHERE S#=’S2’)[P#]
4. Получить имена поставщиков которые не поставляют деталь P2
((S[S#] MINUS (SP WHERE P#=’P2’)[S#]
