Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
srs_IPOVS_BD.doc
Скачиваний:
41
Добавлен:
05.06.2015
Размер:
1.19 Mб
Скачать

8.2.2. Выборка

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

Выборкой из отношения R по условию  для подмножества атрибутов Х называют новое отношение

R[ (X) ] = { r R  (r[X]) }.

Так, выборка по условию (r[X]) = (ЗавК=‘Шаньгин’), т.е. информация о преподавателях, работающих на кафедре Шаньгина, показана на рис.8.3.

R3 = R [ЗавК=‘Шаньгин’]

НП

ЗавК

Нтел

102

Шаньгин

2854

125

Шаньгин

2854

Рис.8.3. Выборка.

8.2.3. Соединение

Операция соединения обратна операции проекции и предназначена для создания одного нового отношения из двух уже существующих отношений. Новое отношение получается путем конкатенации (сцепления) кортежей первого отношения R с кортежами второго отношения S. Только те кортежи подвергаются конкатенации, в которых значение заданного атрибута Х в отношении R совпадает со значением заданного атрибута Y в отношении S:

R [X=Y] S = {<r,s> | r  R  s  S  (r[X] = s[Y])}.

Если R имеет N атрибутов (столбцов), а S - M атрибутов, то отношение R[X=Y]S будет иметь N+M атрибутов (столбцов). В получаемом отношении в двух столбцах всегда будут содержаться одинаковые значения. Если один из этих столбцов удалить, то результат принято называть естественным соединением.

Например, естественное соединение R1 [ЗавК=ЗавК] R2 отношений R1 и R2, показанных на рис.8.2, совпадает с отношением, приведенным на рис 8.1.

8.2.4. Объединение

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

R  S = { x | x  R  x  S }.

8.2.5. Пересечение

Результатом данной операции является отношение, состоящее из общих кортежей отношений R и S:

R  S = { x | x  R  x  S }.

8.2.6. Вычитание

Это операция получения отношения, состоящего из кортежей, которые являются кортежами отношения R и не являются кортежами отношения S:

R - S = { x | x  R  x  S }.

8.2.7. Умножение

Результатом данной операции является декартово, или прямое, произведение: R  S = { <r,s> | r  R  s  S }

Если умножаются отношение R степени m и отношение S степени n, то получается отношение R  S степени (m+n).

Мощность отношения R  S равна i*j, где i, j - мощности отношений R, S соответственно.

Например, если

G2

G1

F1

R=

A

, S=

d

3

B

h

7

то

G2

G1

F1

A

d

3

R  S=

A

h

7

B

d

3

B

h

7

8.2.8. Деление

Операция определена для отношений R(X, Y) и S(Z), где X, Y , Z - множества атрибутов отношений R и S, причем Y=Z. Результат деления R[YZ]S является отношением, в котором множество кортежей r[X] таково, что r[X],sR(X,Y), где s  S(Z):

R[YZ]S={ r[X] | r[X],sR(X,Y)  s  S(Z) }.

Справедливо следующее выражение: (R[YZ]S  S)  R.

X Y Z

Например, если

G2

G1

F1

G1

F1

A

d

3

d

3

R =

A

h

7

, S =

h

7

,

B

r

3

B

h

7

C

h

7

то

G2

R[YZ]S =

A

.

B

Значение С поля G2 не вошло в результат, поскольку в R отсутствует кортеж < C, d, 3>. Дополнительно проверить правильность отсутствия значения С в результате можно умножением:

G2

G1

F1

G2

G1

F1

a)

A

d

3

=

A

d

3

B

h

7

A

h

7

 R;

C

B

d

3

B

h

7

C

d

3

C

h

7

б) (R[YZ]S  S)  R.

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

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