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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

 

 

Пример. Даны два отношения C и D, совместимые по типу:

С

S Название завода Рейтинг Город
S1 3BU   Москва
S4 Салют   Москва

 

 

D

S Название завода Рейтинг Город
S1 3BU   Москва
S2 Динамо   Тула

 

 

1. Объединение - если даны отношения С и D одного и того же типа, то объединение этих отношений (С UNION D) является отношение того же типа с телом, состоящим из всех кортежей t, присутствующих в С или D или в обоих отношениях.

(С UNION D)

S Название завода Рейтинг Город
S1 3BU   Москва
S2 Динамо   Тула
S4 Салют   Москва

 

Повторяющиеся кортежи удаляются по определению.

 

2. Разность – если даны два отношения С и D одного и того же типа, то разность этих отношений С MINUS D является отношение того же типа с телом состоящим из всех кортежей t таких, что t присутствует в С, но не в D.

 

С MINUS D

S Название завода Рейтинг Город
S4 Салют   Москва

 

D MINUS С

S Название завода Рейтинг Город
S2 Динамо   Тула

 

3. Пересечение – если даны отношения С и D одного и того же типа, то пересечением этих отношений С INTERSECT D является отношение того же типа с телом, состоящих из всех кортежей t таких, что t присутствует одновременно в С и D. Повторяющиеся кортежи удаляются по определению отношения.

 

 

С INTERSECT D

S Название завода Рейтинг Город
S1 3BU   Москва

 

4. Декартово произведение. Здесь отношения могут иметь разные схемы, необязательно совместимые по типу. Перед выполнением декартова произведения необходимо переименовать атрибуты отношений С и D так, чтобы отношения не имели одноименных атрибутов.

Декартовым произведением двух отношений С и D (С TIMES D), не имеющих общих атрибутов, называется отношение с заголовком, представляющим собой сцепление (объединение) заголовков отношений С и D и телом, представляющим множество кортежей, которые получаются путем сцепления каждого кортежа отношения С с каждым кортежем из D.

Даны отношения С и D:

S
S1
S2
S3

D C

Р
Р1
Р2
Р3


 

Декартово произведение отношений С и D:

С TIMES D

S Р
S1 Р1
S1 Р2
S1 Р3
S2 Р1
S2 Р2
S2 Р3
S3 Р1
S3 Р2
S3 Р3

 

Кардинальное число полученного отношения равно произведению кардинальных чисел отношений С и D –девяти, а степень равна сумме степеней отношений С и D – двум.

 

2. Специальные операции:

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

Пример1. Показать имена и статус всех поставщиков.

 

S {SNAME, STATUS}

SNAME STATUS
Smith  
Jones  
Black  

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

P {All BUT WGT}

 

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

D WHERE X  literal

В качестве операций могут быть указаны операции сравнения (>,<,= и др.). Выбор дает горизонтальное подмножество кортежей. Литерал – это значение, указанное непосредственно в тексте программы.

Пример2. Показать всю информацию о деталях красного цвета.

 

P WHERE COLOR= Red’

P PNAME COLOR WGT City
P1 Nut Red   London
P4 Screw Red   London

Соединение. Операция реляционной алгебры, связывающая отношения. Соединения бывают различных видов. Рассмотрим  - соединение и естественное соединение.

- соединение (соединение по условию).

- соединением отношения С по атрибуту Х с отношением D по атрибуту Y называется результат вычисления следующего выражения

(С TIMES D) WHERE X  Y

Если  «>», то выбирать строки, где X > Y. Такое  - соединение называется “ больше,чем”.

Даны два отношения C и D. Выполнить  - соединение отношений C и D по условию B < X.

С D

X Y
   
   
А В С
     
     
     

 

 

(C TIMES D) WHERE B < X

A B C X Y
         
         
         

 

Эквисоединение (равносоединение).

Эквисоединение – это тета соединение, основанное на равенстве значений определенных столбцов. Здесь оператор  равен «=»

 

(C TIMES D) WHERE X=Y

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

Естественным соединением (C JOIN D) отношений C и D, имеющих множество атрибутов X,Y и Y,Z соответственно, где Y общее подмножество атрибутов из C и D, определенных на одних и тех же доменах, называется отношение с заголовком { X,Y,Z } и телом, содержащим множество кортежей таких, для которых в отношении C значение атрибута X равно x, а Y равно y, и в отношении D значение атрибута Z равно z.

Пример естественного соединения отношений C и D:

C D

Y Z
B1 C1
B2 C1
B3 C2
X Y
A1 B1
A2 B1
A3 B2

 

 

C JOIN D

 

X Y Z
A1 B1 C1
A2 B1 C1
A3 B2 C1

 

 

Пример3. Получить всю информацию о поставщиках и поставках. Выполнить естественное соединение (S JOIN SP) отношений S и SP.

 

Найдем сначала декартово произведение отношений S и SP. Перед выполнением этой операции необходимо переименовать атрибуты отношений так, чтобы у них не было одинаковых атрибутов. Переименуем атрибуты S# в отношении SP в атрибут SPS #

S TIMES (SP RENAME S# As SPS#)

S# SNAME STATUS CITY SPS# P# QTY
S1 Smith   London S1 P1  
S1 Smith   London S1 P2  
S1 Smith   London S1 P3  
S1 Smith   London S2 P1  
S1 Smith   London S2 P2  
S1 Smith   London S3 P2  
S2 Jones   Paris S1 P1  
S2 Jones   Paris S1 P2  
S2 Jones   Paris S1 P3  
S2 Jones   Paris S2 P1  
S2 Jones   Paris S2 P2  
S2 Jones   Paris S3 P2  
S3 Black   Paris S1 P1  
S3 Black   Paris S1 P2  
S3 Black   Paris S1 P3  
S3 Black   Paris S2 P1  
S3 Black   Paris S2 P2  
S3 Black   Paris S3 P2  

Таблица1. Декартово произведение отношений S и SP.

 

Выполним эквисоединение отношений S и SP.

(S TIMES (SP RENAME S# As SPS#)) WHERE S# = SPS#

Из предыдущей таблицы выберем строки, в которых значения атрибутов S# и SPS# равны. Получим следующее отношение.

 

S# SNAME STATUS CITY SPS# P# QTY
S1 Smith   London S1 P1  
S1 Smith   London S1 P2  
S1 Smith   London S1 P3  
S2 Jones   Paris S2 P1  
S2 Jones   Paris S2 P2  
S3 Black   Paris S3 P2  

Таблица 2. Эквисоединение отношений S и SP.

 

Если в этом отношении (Таблица 2) опустить один атрибут, например SPS#

 

((S TIMES (SP RENAME S# As SPS#)) WHERE S# = SPS#){All BUT SPS#}, (А)

 

то получим естественное соединение отношений S и SP.

(S JOIN SP) (В)

 

S# SNAME STATUS CITY P# QTY
S1 Smith   London P1  
S1 Smith   London P2  
S1 Smith   London P3  
S2 Jones   Paris P1  
S2 Jones   Paris P2  
S3 Black   Paris P2  

Таблица 3. Естественное соединение отношений S и SP.

Выражения (А) и (В) эквивалентны.

Пример4. Определить имена поставщиков детали ‘P3’.

Сначала выполняется естественное соединение отношений S и SP по общему атрибуту S#. Затем в результате соединения выбираются кортежи, в которых P# = ‘P3’ Получаем всю информацию о поставщиках и поставках детали ‘P3’.

 

(S JOIN SP) WHERE P = ‘P3’ (С)

S# SNAME STATUS CITY P# QTY
S1 Smith   London P3  
S2 Jones   Paris P3  
S3 Black   Paris P3  

 

Далее выполняется проекция по атрибуту SNAME полученной выборки:

 

((S JOIN SP) WHERE P# = ‘P3’){SNAME} (D)

 

Результат запроса:

 

SNAME
Smith

 

Предыдущее выражение (D) можно преобразовать в логически эквивалентное и более рациональное выражение следующего вида:

((SP WHERE P# = ‘P3’) JOIN S){SNAME} (F)

 

Реляционная алгебра может служить хорошим основанием для оптимизации.

 

Деление. Пусть отношения С и D имеют заголовки {X1, X2, …, XM} {Y1, Y2, …, YN} соответственно. Заголовки не пересекаются. Пусть имеется отношение Z с заголовком {X1, X2, …, XM, Y1, Y2,…, YN}. Результат деления отношения С на отношение D по отношению Z (C DIVIDEBY D PER Z, где отношение С - делимое, отношение D - делитель, Z - отношение-посредник) называется отношение, содержащее такие значения Х из отношения С, для которых соответствующие значения Y из Z включают все значения Y из D.

Z

S# P#
S1 P1
S1 P2
S1 P3
S2 P1
S2 P2
S3 P2

С

S#
S1
S2
S3
 

 

D

P1
P2
P3

 

C DIVIDEBY D PER Z

 

S#
S1

 

Лекция 5. Реляционное исчисление.

 

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

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 255; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.53.209 (0.041 с.)