Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ УПРАВЛЕНИЕ ДАННЫМИ 2012.doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
2.54 Mб
Скачать

3. Реляционные алгебра и исчисления

Прежде чем изучать языки запросов, рассмотрим математические основания, лежащие в их основе – реляционные алгебру и исчисления. Идея о том, что в основе языка программирования может лежать строгая математика, может быть необычной для программиста на объектно-ориентированных языках. Родословная языков и их математических основ приведена на Рис. 14. Реляционная «веточка» изучается в данном курсе, «веточка» Пролога – в курсе «Представление знаний в информационных системах», «веточка» Lispa – в интеллектуальных информационных системах.

Рис. 14. Схема языков и их математических основ

Реляционное исчисление на кортежах предложено Коддом, на доменах - Лакруа и Пиро. В выражениях реляционной алгебры всегда явно задается некий порядок, а также подразумевается стратегия вычисления. В исчислениях отсутствует описание процедуры вычисления, так как указывается, что, а не как следует извлечь. В совокупности с реляционной алгеброй эти формы реляционного исчисления составляют три эквивалентных абстрактных языка запросов к реляционным БД. Они не реализованы в чистом виде в какой-либо действующей СУБД, но служат эталоном для оценки существующих систем.

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

Реляционная алгебра, предложенная Коддом, содержит несколько основных и дополнительных операций над отношениями, которые позволяют получать различные результаты на основе исходных отношений. Эти операции описаны в Табл. 7.

Табл. 7. Операции реляционной алгебры

Операция

Результат

Графическая интерпретация

Селекция

Кортежи из R, которые удовлетворяют условию (предикату).

Проекция

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

Объединение

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

Разность

Те кортежи из R, которых нет в S

Пересечение

Общие для R и S кортежи

Декартово произведение

Каждый кортеж из R соединяется со всеми кортежами из S

R

S

A

1

A

1

B

2

A

2

3

A

3

B

1

B

2

B

3

Тета-соединение

Из декартова произведения выбираются кортежи, удовлетворяющие предикату F

Соединение по эквивалентности

Из декартова произведения R на S выбираются кортежи, удовлетворяющие предикату F, который содержит условие на равенство двух атрибутов.

R

S

A

B

B

C

a

1

1

x

b

2

1

y

3

z

Естественное соединение

Соединение по эквивалентности, выполненное по общим атрибутам. В результате общий атрибут присутствует один раз.

A

B

C

a

1

x

a

1

y

Композиция

Соединение отличается от естественного тем, что из результирующего отношения удаляются оба атрибута соединения.

Левое внешнее соединение

Помимо кортежей как в естественном соединении, в результат входят также не включенные в естественное соединение кортежи R с пустыми атрибутами из S, которых нет в R

A

B

C

a

1

x

a

1

y

b

2

Полусоединение

Те кортежи из R, которые входят в соединение R и S.

A

B

a

1

Деление

Множество кортежей из R (берутся только атрибуты, имеющиеся в R, но отсутствующие в S).

Операции не являются независимыми, их связывают формулы. Например:

R S = R — (R — S)

R[A B]S = R[A] – (S X R[A]-R)[A]

Желаемый результат описывается в виде формул с операциями реляционной алгебры над отношениями.