Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы Bd_Ekzamen.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.44 Mб
Скачать
  1. Опишите набор специальных операций реляционной алгебры.

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

Выборка (сокращенное название операции -  Θ (тета) - выборка):

SLine 111 WHERE XΘY, где Θ ={<, ≤, =, ≠, ≥,>}.

Θ - выборкой из отношения S по атрибутам X и Y называется отношение, имеющее тот же заголовок, что и отношение S, и тело, содержащее множество всех кортежей отношения S таких, для которых проверка условия «XΘY» дает значение «истина». Ясно,что атрибуты X и Y должны быть определены на одном и том же домене, а операция на этом домене должна иметь смысл.

На практике эта операция используется, как правило, в модификации, когда вместо X или Y указано скалярное значение, чаще всего в форме

S WHERE XΘC, где C - литеральная константа.

В результате выполнения этого оператора получается «горизонтальное» подмножество исходного отношения.

Пример 3. Пусть задано отношение S (поставщики)

S

Номер

Фио

Город

S01

Иванов

Томск

S02

Петров

Томск

S03

Сидоров

Кемерово

S04

Кузнецов

Барнаул

S05

Быков

Омск

Результатом выполнения операции S WHERE Город = «Томск», будет отношение

Номер

Фио

Город

S01

Иванов

Томск

S02

Петров

Томск

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

  1. S WHERE Q1 AND Q2 ≡ (S WHERE Q1) INTERSECT (S WHERE Q2)

  2. S WHERE Q1 OR Q2 ≡ (S WHERE Q1) UNION (S WHERE Q2)

  3. S WHERE NOT Q ≡ S MINUS (S WHERE Q)

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

2. Проекция. Проекцией отношения S по атрибутам X1, X2, …, Xn и обозначаемой как

S[X1, X2, …, Xn],

называется отношение с заголовком {X1, X2, …, Xn}и телом, содержащим множество всех кортежей {X1:x1, X2:x2, …, Xn:xn} таких, для которых в отношении S значение атрибута X1 равно x1, атрибута X2 равно x2, …, атрибута Xn равно xn.

Пример 4. Результатом выполнения операции S[Фио] для отношения S предыдущего примера будет отношение

Фио

Иванов

Петров

Сидоров

Кузнецов

Быков

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

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

3. Естественное (экви) соединение. Пусть отношения S и P имеют заголовки{X1, X2, …, Xm, Y1, Y2, … , Yn} и {Y1, Y2,… , Yn, Z1, Z2, … , Zp, соответственно, причем атрибуты {Y1, Y2, … , Yn}по именам и доменам в обоих отношениях совпадают.

Рассмотрим три совокупности {X1, X2, …, Xm}, {Y1, Y2, … , Yn} и { Z1, Z2, … , Zp} как три составных атрибута {X}, {Y} и {Z}. Тогда естественным соединением отношений S и P

S JOIN P

называется отношение с заголовком {X, Y, Z} и телом, содержащим множество всех кортежей {X:x, Y:y, Z:z} таких, для которых в отношении S значение атрибута X равно x, атрибута Y равно y, а в отношении P значение атрибута Y равно y, а атрибута Z равно z.

Замечание. При отсутствии общих атрибутов у исходных отношений S и P естественное соединение эквивалентно декартовому произведению.

Пример 5. Пусть заданы два отношения S (поставщики) и P (детали)

S

Ном_пост

Фио

Город

S01

Иванов

Томск

S02

Петров

Томск

S03

Сидоров

Кемерово

S04

Кузнецов

Барнаул

S05

Быков

Омск

P

Ном_дет

Назв_дет

Цвет

Вес

Город

P01

Вентиль

Белый

200

Томск

P02

Колено

Черный

500

Томск

P03

Втулка

Желтый

50

Кемерово

P04

Кран

Белый

600

Барнаул

P05

Смеситель

Белый

700

Барнаул

P06

Труба

Черный

1000

Омск

Результатом (S JOIN P) соединения этих двух отношений будет отношение

Ном_пост

Фио

Город

Ном_дет

Назв_дет

Цвет

Вес

S01

Иванов

Томск

P01

Вентиль

Белый

200

S01

Иванов

Томск

P02

Колено

Черный

500

S02

Петров

Томск

P01

Вентиль

Белый

200

S02

Петров

Томск

P02

Колено

Черный

500

S03

Сидоров

Кемерово

P03

Втулка

Желтый

50

S04

Кузнецов

Барнаул

P04

Кран

Белый

600

S04

Кузнецов

Барнаул

P05

Смеситель

Желтый

700

S05

Быков

Омск

P06

Труба

Черный

1000

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

Пример 6. Пусть заданы два отношения

R1 R2

A

B

C

a1

b1

c1

a1

b2

c2

a2

b1

c1

a3

b2

c2

B

C

D

b1

c1

d1

b1

c1

d2

b2

c2

d2

Результатом выполнения операции (R1 JOIN R2) будет являться отношение

A

B

C

D

a1

b1

c1

d1

a1

b1

c1

d2

a1

b2

c2

d2

a2

b1

c1

d1

a2

b1

c1

d2

a3

b2

c2

d2

Операция естественного соединения применяется к паре отношений R1 и R2, обладающих (возможно составным) общим атрибутом S (т.е. атрибутом с одним и тем же именем и определенным на одном и том же домене). Пусть AB обозначает объединение заголовков отношений R1 и R2. Тогда естественное соединение R1 и R2 - это спроецированный на AB результат эквисоедиения R1 и R2 по A.S и B.S. Если вспомнить определение внешнего ключа отношения, то должно стать понятно, что основной смысл операции естественного соединения - возможность восстановления сложной сущности, декомопозированной (расчлененной) по причине требования первой нормальной формы. Операция естественного соединения не включается прямо в состав набора операций реляционной алгебры, но имеет очень важное практическое значение.

4. Θ-соединение (условное соединение). Это операция соединения двух отношений на основе некоторых условий, отличных от эквивалентности.

Пусть отношения S и P не имеют общих имен атрибутов и условие Θ определяется аналогично операции выборки. Тогда Θ-соединением отношения S по атрибуту X с отношением P по атрибуту Y называется результат вычисления выражения

(S TIMES P) WHERE XΘY,

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

Очевидно, что атрибуты X и Y должны быть определены на одном и том же домене и операция Θ должна иметь на этом домене смысл.

Пример 7. Пусть имеются два отношения S (потоки студенческих групп) и P (аудитории).

Ном_ауд

Вмест_ауд

302

140

128

50

336

20

432

110

S

Ном_потока

Кол_студ

001

100

002

30

P

Результатом выполнения операции Θ-соединения отношений S и P по условию

ВМЕСТ_АУД > КОЛ_СТУД

(вместимость аудитории должна быть больше количества студентов в потоке) будет отношение

Ном_потока

Кол_студ

Ном_ауд

Вмест_ауд

001

100

302

140

001

100

432

110

002

30

302

140

002

30

128

50

002

30

432

110

5. Деление. Пусть заголовки отношений S (делимое) и P (делитель) имеют вид{X1, X2, …, Xm, Y1, Y2, … , Yn}и {Y1, Y2, … , Yn},соответственно, причем атрибуты {Y1, Y2, … , Yn}в обоих отношениях представлены одинаковыми именами и определены на одних и тех же доменах. Будем рассматривать выражения{X1, X2, …, Xm} и {Y1, Y2, … , Yn}как два составных атрибута {X} и {Y}. Тогда результатом деления отношения S на отношение P, обозначаемое как

S DEVIDEBY P,

называется отношение с заголовком {X} и телом, содержащим множество всех кортежей{X:x} таких, что для каждого xЄX существует множество кортежей {X:x, Y:y} отношения S таких, у которых множество составляющих {Y:y} включает все кортежи {Y:y} отношения P. Или нестрого: результат содержит такие X-значения из отношения S, для которых соответствующие Y-значения включают все Y-значения из отношения P.