Реляционная алгебра
Поскольку отношение в реляционной алгебре определяется как множество кортежей, то на отношения распространяются основные операции над множествами – объединение, пересечение, разность и декартово произведение. Операции объединения, пересечения и разности определены для отношений, схемы которых могут отличаться только именами атрибутов (т.е. отношения имеют одинаковую степень и атрибуты определены на одних и тех же доменов). 1. Объединение R3= R1ÈR2 В результат R3 помещаются все кортежи, которые есть в R1 или в R2, причем кортежи, которые одновременно присутствуют в R1 и R2, помещаются в результат один раз.
R1 R2
Результат R3
2. Пересечение R3=R1Ç R2 В R3 помещаются кортежи, которые есть в R1 и в R2. Для R1 и R2 из предыдущего примера результатом будет единственный кортеж (3,С). 3. Разность R3=R1-R2 В R3 попадут кортежи, которые есть в R1, но нет в R2 R1 R2
Результат R3
Заметим, что операция пересечения может быть вычислена через операции разности 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
Результат R3
Кроме перечисленных операций над множествами, Кодд ввел ряд дополнительных операций над отношениями. Операции проекции и выборки определены над одним отношением 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
Результат R3
Операция соединения эквивалентна операции выборки из декартова произведения отношений 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
В результате получаем отношение R3
Операция деления явно не поддерживается в языке SQL, хотя имеется несколько способов выразить ее через другие операции.
Читайте также: Автокорреляционная функция сигналов Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|