Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
348.doc
Скачиваний:
12
Добавлен:
30.04.2022
Размер:
2.67 Mб
Скачать
    1. Реляционные операторы

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

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

Теоретико-множественные операции

Это объединение, пересечение, вычитание и произведение (расширенное декартово произведение). Первые три операции требуют от операндов совместимости по типу.

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

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

R1

а

б

в

R=R1 U R2

а

б

в

д

е

а

R = R1 UNION R2

д

е

а

и

к

л

и

к

л

г

д

е

R2

и

к

л

г

д

е

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

R=R1R2

и

к

л

  1. Разность отношений - отношение, являющееся разностью двух отношений (R = R1 MINUS R2), включает все кортежи, входящие в отношение – первый операнд; такие, что ни один из них не входит в отношение, являющееся вторым операндом.

R=R1–R2

а

б

в

д

е

а

  1. Декартово произведение отношений - при выполнении прямого произведения двух отношений производится отношение, кортежи которого являются конкатенацией (сцеплением) кортежей первого и второго операндов.

R=R1R2

а

б

в

и

к

л

R = R1 TIMES R2

д

е

а

и

к

л

и

к

л

и

к

л

а

б

в

г

д

е

д

е

а

г

д

е

и

к

л

г

д

е

Операции объединения, пересечения и декартова произведения ассоциативны и коммутативны. На рис. 7.3 приведены примеры теоретико-множественных операций применительно к базе данных «поставщики-детали».

A

B

S#

SNAME

STATUS

CITY

S#

SNAME

STATUS

CITY

S1

Smith

20

London

S1

Smith

20

London

S4

Clark

20

London

S2

Jones

10

Paris

a)

Объединение

(A UNION B)

S#

SNAME

STATUS

CITY

S1

Smith

20

London

S4

Clark

20

London

S2

Jones

10

Paris

б)

Пересечение

S#

SNAME

STATUS

CITY

(A INTERSECT B)

S1

Smith

20

London

в)

Вычитание

г)

Вычитание

(A MINUS B)

(B MINUS A)

S#

SNAME

STATUS

CITY

S#

SNAME

STATUS

CITY

S4

Clark

20

London

S2

Jones

10

Paris

Рис. 7.3 Примеры теоретико-множественных операций

Специальные реляционные операции

1 Ограничение отношения (выборка) – результатом ограничения отношения по некоторому условию является отношение, включающее кортежи отношения-операнда, удовлетворяющее этому условию:

A WHERE comp,

где A - ограничиваемое отношение,

comp - простое условие сравнения.

Можно использовать операции ограничения, в которых условием ограничения является произвольное булевское выражение, составленное из простых условий с использованием логических связок AND, OR и AND и скобок (рис. 7.4).

2 Проекция отношения - при выполнении проекции отношения на заданный набор его атрибутов производится отношение, кортежи которого производятся путем взятия соответствующих значений из заданных столбцов кортежей отношения-операнда, с исключением дублирующих кортежей (рис. 7.5).

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

S where city =’London’

S#

SNAME

STATUS

CITY

S1

Smith

20

London

S4

Clark

20

London

P where weight < 14

P#

PNAME

COLOR

WEIGHT

CITY

P1

Nut

Red

12

London

P5

Cam

Blue

12

Paris

SP where S# = ‘S1’ and P# = ‘P1’

S#

P#

QTY

S1

P1

300

Рис. 7.4. Примеры операций выборки

Имеются важные частные случаи соединения – естественное соединение и -соединение. Операция естественного соединения применяется к паре отношения A и B, обладающих (возможно, составным) общим атрибутом c (т.е. атрибутом с одним и тем же именем и определенным на одном и том же домене). Пусть ab обозначает объединение заголовков отношений A и B. Тогда естественное соединение A и B – это спроецированный на ab результат эквисоединения A и B по A.c и B.c (рис. 7.6).

S [CITY]

CITY

London

Paris

Athens

P [COLOR, CITY]

COLOR

CITY

Red

London

Green

Paris

Blue

Rome

Blue

Paris

(S where city = ‘Paris’) [S#]

S#

S2

S3

Рис. 7.5. Примеры операций проекции

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

R=R1  R2

д

е

а

г

д

е

a1(R1)=a2(R2)

S#

SNAME

STATUS

CITY

P#

PNAME

COLOR

WEIGHT

S1

Smith

20

London

P1

Nut

Red

12

S1

Smith

20

London

P4

Screw

Red

14

S1

Smith

20

London

P6

Cog

Red

19

S2

Jones

10

Paris

P2

Bolt

Green

17

S2

Jones

10

Paris

P5

Cam

Blue

12

S3

Blake

30

Paris

P2

Bolt

Green

17

S3

Blake

30

Paris

P5

Cam

Blue

12

S4

Clark

20

London

P1

Nut

Red

12

S4

Clark

20

London

P4

Screw

Red

14

S4

Clark

20

London

P6

Cog

Red

19

Рис. 7.6. Естественное соединение S JOIN P

-соединение предназначается для тех случаев, когда требуется соединить вместе два отношения на основе некоторых условий, отличных от эквивалентности. -соединением отношения А по атрибуту Х с отношением В по атрибуту Y называется результат вычисления выражения (A TIMES B) WHERE X  Y, т.е. -соединение – это отношение с тем же заголовком, что и при декартовом произведении отношений А и В, и с телом, содержащим множество кортежей t, таких, что t принадлежит этому декартову произведению и вычисление условия “X  Y” дает значение «истина» для этого кортежа. Атрибуты X и Y должны быть определены на одном и том же домене, а операция должна иметь смысл для этого домена. Пример -соединения приведен на рис.7.7.

S#

SNAME

STATUS

CITY

P#

PNAME

COLOR

WEIGHT

PCITY

S2

Jones

10

Paris

P1

Nut

Red

12

London

S2

Jones

10

Paris

P4

Screw

Red

14

London

S2

Jones

10

Paris

P6

Cog

Red

19

London

S3

Blake

30

Paris

P1

Bolt

Red

12

London

S3

Blake

30

Paris

P4

Cam

Red

14

London

S3

Blake

30

Paris

P6

Bolt

Red

19

London

Рис. 7.7. Больше-соединение отношений поставщиков и деталей

по атрибуту города

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

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

R RENAME NAME1 AS NAME2

Поскольку результатом любой реляционной операции (кроме операции присваивания) является некоторое отношение, можно образовывать реляционные выражения, в которых вместо отношения-операнда некоторой реляционной операции находится вложенное реляционное выражение.

DEND

S#

P#

..

..

S1

P1

S2

P1

S1

P2

S2

P2

S1

P3

S3

P2

S1

P4

S4

P2

S1

P5

S4

P4

S1

P6

S4

P5

..

..

DOR

P#

DOR

P#

DOR

P3

P1

P2

P1

P4

P2

P3

P4

P5

P6

DEND DIVIDEBY DOR

S#

S#

S#

S1

S1

S1

S2

S4

Рис. 7.8. Примеры деления

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]