Прежде чем изучать языки запросов, рассмотрим математические основания, лежащие в их основе – реляционные алгебру и исчисления. Идея о том, что в основе языка программирования может лежать строгая математика, может быть необычной для программиста на объектно-ориентированных языках. Родословная языков и их математических основ приведена на Рис. 14. Реляционная «веточка» изучается в данном курсе, «веточка» Пролога – в курсе «Представление знаний в информационных системах», «веточка» Lispa – в интеллектуальных информационных системах.
Рис. 14. Схема языков и их математических основ
Реляционное исчисление на кортежах предложено Коддом, на доменах - Лакруа и Пиро. В выражениях реляционной алгебры всегда явно задается некий порядок, а также подразумевается стратегия вычисления. В исчислениях отсутствует описание процедуры вычисления, так как указывается, что, а не как следует извлечь. В совокупности с реляционной алгеброй эти формы реляционного исчисления составляют три эквивалентных абстрактных языка запросов к реляционным БД. Они не реализованы в чистом виде в какой-либо действующей СУБД, но служат эталоном для оценки существующих систем.
Реляционная алгебра, предложенная Коддом, содержит несколько основных и дополнительных операций над отношениями, которые позволяют получать различные результаты на основе исходных отношений. Эти операции описаны в Табл. 7.
Табл. 7. Операции реляционной алгебры
Операция
Результат
Графическая интерпретация
Селекция
Кортежи из R, которые удовлетворяют условию (предикату).
Проекция
Оставляются значения указанных в проекции атрибутов, удаляются кортежи-дубликаты.
Объединение
В результат входят кортежи из обоих отношений, дубликаты удаляются. Отношения должны быть совместимыми по атрибутам
Разность
Те кортежи из R, которых нет в S
Пересечение
Общие для R и S кортежи
Декартово произведение
Каждый кортеж из R соединяется со всеми кортежами из S
R
S
A
A
B
A
A
B
B
B
Тета-соединение
Из декартова произведения выбираются кортежи, удовлетворяющие предикату F
Соединение по эквивалентности
Из декартова произведения R на S выбираются кортежи, удовлетворяющие предикату F, который содержит условие на равенство двух атрибутов.
R
S
A
B
B
C
a
x
b
y
z
Естественное соединение
Соединение по эквивалентности, выполненное по общим атрибутам. В результате общий атрибут присутствует один раз.
A
B
C
a
x
a
y
Композиция
Соединение отличается от естественного тем, что из результирующего отношения удаляются оба атрибута соединения.
Левое внешнее соединение
Помимо кортежей как в естественном соединении, в результат входят также не включенные в естественное соединение кортежи R с пустыми атрибутами из S, которых нет в R
A
B
C
a
x
a
y
b
Полусоединение
Те кортежи из R, которые входят в соединение R и S.
A
B
a
Деление
Множество кортежей из R (берутся только атрибуты, имеющиеся в R, но отсутствующие в S).
Операции не являются независимыми, их связывают формулы. Например:
R Ç S = R — (R — S)
R[A ¸ B]S = R[A] – (S X R[A]-R)[A]
Желаемый результат описывается в виде формул с операциями реляционной алгебры над отношениями.