Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
раздел 1.8 (ПЗ в ИС), вопросы 4-8.doc
Скачиваний:
5
Добавлен:
19.04.2019
Размер:
388 Кб
Скачать
☆

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

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

Объединением (R1 UNION R2) двух совместимых отношений R1 R2 одинаковой размерности является отношение R, содержащее все элементы исходных отношений (с исключением повторений).

Вычитание (R1 MINUS R2) совместимых отношений R1, R2 одинаковой размерности есть отношение, тело которого состоит из множества кортежей, принадлежащих R1, но не принадлежащих R2.

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

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

Выборка (R WHERE f) отношения R по формуле выборки f представляет собой новое отношение с таким же заголовком и телом, состоящим из таких кортежей отношения R, которые удовлетворяют истинности логического выражения, заданного формулой f.

Проекция (A[X, Y,…, Z]) отношения А на атрибуты X, Y, …, Z, где множество {X, Y, …, Z} является подмножеством полного списка атрибутов заголовка отношения А, представляет собой отношение с заголовком X, Y, …, Z и телом, содержащим соответствующие атрибутам X, Y, …, Z части кортежей отношения А, за исключением повторяющихся вновь образованных кортежей. Повторение одинаковых атрибутов в списке X, Y, …, Z запрещается.

36

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

R1

А

В

S1

P1

S1

P2

S1

P3

S1

P4

S1

P5

S1

P6

S2

P1

S2

P2

S4

P2

S4

P2

S4

P4

S4

P5

R2

В

P2

P4

R

А

S1

S4

Рис.8.6. Деление отношений

Соединение Cf(R1, R2) отношений R1, R2 по условию, заданному формулой f, представляет собой отношение Rf , которое можно получить путем произведения отношений R1 и R2 с последующим применением к результату операции выборки по формуле f.

Переименование позволяет изменить имя атрибута отношения:

RENAME <исходное отношение> <старое имя атрибута> AS <новое имя атрибута>.

Расширение порождает новое отношение, похожее на исходное, но отличающееся наличием добавленного атрибута, значение которого получается путем некоторых скалярных вычислений (арифметические и логические операции, MAX, MIN и т.д.):

EXTEND <исходное отношение> ADD <выражение> AS <новый атрибут>.

Подведение итогов выполняет "вертикальные" или групповые вычисления:

SUMMARIZE <исходное отношение> BY (<список атрибутов>) ADD <выражение> AS <новый атрибут>.

Присвоение: <выражение-цель> := <выражение-источник>. Примером выражения-цели может быть имя отношения, а выражения-источника – некоторая формула реляционной алгебры.

Вставка: INSERT <выражение-источник> INTO <выражение-цель>. Примером выражения-источника может являться выражение, определяющее кортежи, а выражением-целью – выражение, задающее имя отношения, куда вставляются полученные кортежи.

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

37

Удаление: DELETE <выражение-цель>, где <выражение-цель> - реляционные выражения, описывающие удаляемые кортежи.

Реляционное сравнение : <выражение 1> <оператор сравнения> <выражение 2>.

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