
Ответы к ГОСу / 38
.doc38. Реляционная алгебра, основные операторы реляционной алгебры. Связь языка SQL с операторами реляционной алгебры.
Основная идея реляционной алгебры состоит в том, что коль скоро отношения являются множествами, то средства манипулирования отношениями могут базироваться на традиционных теоретико-множественных операциях, дополненных некоторыми специальными операциями, специфичными для баз данных, совокупность которых образует полную алгебру отношений.
В состав теоретико-множественных операций входят операции:
-
Объединения отношений. При выполнении операции объединения двух отношений производится отношение, включающее все кортежи, входящие хотя бы в одно из отношений-операндов, за исключением повторяющихся. Отношения-операнды в этом случае должны быть определены по одной схеме.
Связь SQL с реляционной алгеброй(объединение):
SELECT A.x, A.b
FROM A
WHERE A.b > 1000
UNION
SELECT A.x, A.b
FROM A
WHERE A.b > 2000
-
Пересечения отношений. Операция пересечения двух отношений производит отношение, включающее все кортежи, входящие в оба отношения-операнда. На входе операции два отношения, определенные по одной схеме.
Связь SQL с реляционной алгеброй(пересечение):
SELECT A.x, A.b
FROM A
WHERE A.b IN (SELECT A.b FROM B)
-
Взятия разности отношений. Отношение, являющееся разностью двух отношений включает все кортежи, входящие в отношение - первый операнд, такие, что ни один из них не входит в отношение, являющееся вторым операндом.
Связь SQL с реляционной алгеброй(разность):
SELECT A.x, A.b
FROM A
WHERE A.b NOT IN (SELECT A.b FROM B)
-
Прямого произведения отношений. При выполнении прямого произведения двух отношений производится отношение, кортежи которого являются конкатенацией (сцеплением) кортежей первого и второго операндов. Результирующее отношение состоит из всевозможных сочетаний исходных отношений. Входные отношения могут быть определены по разным схемам. Кроме того:
-
степень результирующего(количество доменов) отношения равна сумме степеней исходных отношений
-
мощность(количество котежей) результирующего отношения равна произведению мощностей исходных отношений.
Связь SQL с реляционной алгеброй(декартово произведение):
SELECT A.x, A.z, B.c, B.d
FROM A,B
Специальные реляционные операции включают:
-
Ограничение отношения или выборка (горизонтальное подмножество). На входе используется одно отношение, результат - новое отношение, построенное по той же схеме, содержащее подмножество кортежей исходного отношения, удовлетворяющих условию выборки.
Связь SQL с реляционной алгеброй(выборка):
SELECT A.x, A.b
FROM A
WHERE A.b > 1000
-
Проекцию отношения - (вертикальное подмножество) получается выборка из каждого кортежа значений атрибутов входящих в некоторый список и удаление из полученного отношения повторяющихся кортежей(строк).
Связь SQL с реляционной алгеброй(проекция):
SELECT DISTINCT A.x, A.b
FROM A
-
Соединение отношений. Данная операция имеет сходство с декартовым произведением. Однако, здесь добавлено условие, согласно которому вместо полного произведения всех строк в результирующее отношение включаются только строки, удовлетворяющие определенному соотношению между атрибутами соединения (А1,A2) соответствующих отношений.
Связь SQL с реляционной алгеброй(соединение):
SELECT *
FROM A
INNER JOIN B ON A.x = B.x
-
Деление отношений. R1 и R2 – это два отношения. Результат новое отношение, структура которого получается исключением из множества атрибутов R1 множество атрибутов R2. Результирующие строки не должен содержать дубликаты.
Связь SQL с реляционной алгеброй(деление):
SELECT DISTINCT A.x
FROM A
WHERE NOT EXISTS (SELECT *
FROM B
WHERE NOT EXISTS (SELECT *
FROM A A1
WHERE A1.x=A.x and A1.y=B.y)
)
Кроме того, в состав алгебры включается операция присваивания, позволяющая сохранить в базе данных результаты вычисления алгебраических выражений, и операция переименования атрибутов, дающая возможность корректно сформировать заголовок (схему) результирующего отношения.