Реляционная алгебра

Поскольку отношение в реляционной алгебре определяется как множество кортежей, то на отношения распространяются основные операции над множествами – объединение, пересечение, разность и декартово произведение. Операции объединения, пересечения и разности определены для отношений, схемы которых могут отличаться только именами атрибутов (т.е. отношения имеют одинаковую степень и атрибуты определены на одних и тех же доменов).

1. Объединение R3= R1ÈR2

В результат R3 помещаются все кортежи, которые есть в R1 или в R2, причем кортежи, которые одновременно присутствуют в R1 и R2, помещаются в результат один раз.

 

R1 R2

A   C
B   D
C   E

Результат R3

A
B
C
D
E

2. Пересечение R3=R1Ç R2

В R3 помещаются кортежи, которые есть в R1 и в R2.

Для R1 и R2 из предыдущего примера результатом будет единственный кортеж (3,С).

3. Разность R3=R1-R2

В R3 попадут кортежи, которые есть в R1, но нет в R2

R1 R2

A   C
B   D
C   E

Результат R3

A
B

 

Заметим, что операция пересечения может быть вычислена через операции разности R3=R1Ç R2=R1-(R1-R2)

4. Декартово произведение R3=R1´R2

Результат получается путем склейки каждого кортежа отношения R1 с каждым кортежем R2.

c=a*b

a- количество кортежей в R1

b- количество кортежей в R2

c- количество кортежей в R3

При этом степень R3 равна сумме степеней R1 и R2

 

R1 R2

A   C
B   D
C   E

 

Результат R3

A C
B C
C C
A D
B D
C D
A E
B E
C E

 

Кроме перечисленных операций над множествами, Кодд ввел ряд дополнительных операций над отношениями. Операции проекции и выборки определены над одним отношением R1 (унарные операции).

5. Проекция – отбор атрибутов отношения

R2=pI (R1)

I – подмножество атрибутов отношения R1

Степень результата R2 равна½I½ - количество элементов в подмножестве I и может принимать целые значения от 1 до степени R1.

 

пример: проекция R1 из предыдущих примеров по 2-му атрибуту

Результат R2 содержит всего один атрибут.

А
В
С

 

6. Операция выборки (селекции) – отбор кортежей

R2=sq (R1)

q - любое логическое выражение (условие отбора кортежей), в состав которого входят имена атрибутов, операции и константы.

В R2 включают все кортежи из R1, для которых q - истинно. При этом отношение R2 может не содержать ни одного кортежа или совпадать с отношением R1. Например, при условии отбора

первый атрибут > 0

в R2 попадут все кортежи R1, а при условии

перый атрибут > 2

только один кортеж (3,C)

На практике операции выборки и проекции часто сочетаются в одном запросе.

7. Операция соединения R3= R1Q R2

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

Пример. Пусть выполняется операция соединения по первому из атрибутов (содержащему числовые значения)

R1 R2

A   C
B   D
C   E
      F

 

Результат R3

B C
B D
C E

 

Операция соединения эквивалентна операции выборки из декартова произведения отношений R1 и R2.

R3= R1QR2=sq (R1´R2)

Однако, учитывая большую важность этой операции для реляционной базы данных, где связь между отношениями устанавливается при помощи общих атрибутов, она включена в состав базовых операций реляционной алгебры.

Следует отметить, что в результат операции соединения не входят кортежи отношений R1 и R2, для которых не находится одинаковых значений в общем атрибуте. Так, в предыдущем примере в результат не вошел кортеж (1,A) из отношения R1 и (4,F) из отношения R2. Ввиду этой особенности данную операцию называют операцией внутреннего соединения.

В языке SQL поддерживается три операции внешнего соединения – левое, правое и полное.

В левом внешнем соединении результат внутреннего соединения дополняется оставшимися кортежами отношения, стоящего слева (в примере это кортеж (1,A) из отношения R1). Поскольку в результате должно быть 3 атрибута, незаполненный атрибут принимает значение NULL, т.е. в результат R3 добавляется кортеж (1,A,NULL).

В правом внешнем соединении результат внутреннего соединения дополняется оставшимися кортежами отношения, стоящего справа (в примере кортеж (4,F) из отношения R2 дополняется значением NULL и получается кортеж (4,NULL,F) отношения R3).

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

8. Операция деления R3= R1¸ R2

Для выполнения операции деления отношения R1 и R2 должны иметь общее подмножество атрибутов (обычно один атрибут), причем в отношении R2 это подмножество является множеством его атрибутов (обычно R2 является унарным отношением). Смысл операции поясним на примере.

R1 R2

A   A
B   B
C    
A    
B    
A    

 

В результате получаем отношение

R3

 

Операция деления явно не поддерживается в языке SQL, хотя имеется несколько способов выразить ее через другие операции.








Дата добавления: 2015-08-26; просмотров: 1577;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.