Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ИБДиС 2013-03-26.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.11 Mб
Скачать

Элементы реляционной алгебры

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

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

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

Определяют восемь реляционных операторов, разделяемых на две группы:

  • теоретико-множественные операторы: объединение, пересечение, вычитание и декартово произведение;

  • специальные реляционные операторы: выборка, проекция, соединение и деление.

Некоторые реляционные операторы требуют, чтобы отношения были совместимыми по типу. Совместимыми по типу называются отношения, имеющие идентичные заголовки, а именно:

  • отношения имеют одно и то же множество имен атрибутов, то есть для любого атрибута в одном отношении обязательно найдется атрибут с таким же именем в другом отношении;

  • атрибуты с одинаковыми именами определены на одних и тех же доменах.

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

Операция объединения записывается:

А UNION В

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

Пересечением двух совместимых по типу отношений А и В называется отношение с тем же заголовком и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям.

Операция пересечения записывается:

А INTERSECT В

Вычитанием двух совместимых по типу отношений А и В называется отношение с тем же заголовком и телом, состоящим из кортежей, принадлежащих отношению А и не принадлежащих отношению В.

Операция вычитания записывается:

А MINUS В

Декартовым произведением отношений A(A1,A2,…,An) и B(B1,B2,…,Bm) называется отношение, заголовок которого является сцеплением заголовков отношений:

(A1,A2,…,An,B1,B2,…,Bm),

а тело является сцеплением кортежей отношений:

(a1,a2,…,an,b1,b2,…,bm),

таких, что (a1,a2,…,an) A и (b1,b2,…,bm) B.

Операция записывается:

A TIMES B

Выборкой (ограничением, селекцией) на отношении А с условием с называется отношение с тем же заголовком, что и у отношения А, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие с дают значение ИСТИНА. Условие с представляет собой логическое выражение, в которое могут входить атрибуты отношения А и скалярные выражения.

Операция выборки записывается:

A WHERE c

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

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

Эта операция записывается:

A[X,Y,…,Z]

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

Соединением отношений А и В по условию с называется отношение

(A TIMES B) WHERE c,

где с является логическим выражением, в которое могут входить атрибуты отношений А и В и скалярные выражения.

Делением отношений A(X1,X2,…,Xn,Y1,Y2,…,Ym) и B(Y1,Y2,…,Ym), имеющих общие атрибуты, называется отношение с заголовком (X1,X2,…,Xn) и телом, содержащим множество кортежей (x1,x2,…,xn), таких, что для всех кортежей (y1,y2,…,ym) B в отношении А найдется кортеж (x1,x2,…,xn,y1,y2,…,ym).

Операция записывается:

A DEVIDEBY B

Несмотря на большие возможности, предоставляемые операторами реляционной алгебры, существует несколько типов запросов, которые нельзя выразить этими средствами, например, построение кросс-таблиц. Для таких случаев необходимо использовать процедурные расширения реляционных языков.