Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационные системы базы данных.DOC
Скачиваний:
38
Добавлен:
02.05.2014
Размер:
839.68 Кб
Скачать

5.4. Оператор "пересечение" (intersection)

Функция: для двух РТ R1 и R2 одинаковой арности и с совпадающими типами полей формируется РТ R с записями, входящими в обе РТ.

Синтаксис: R = R1 intersection R2.

Пример.

Выполнить пересечение таблиц R1 и R2, результат записать в таблицу R.

R1:

A

B

R2:

A

B

Ответ: R:

A

B

a

4

a

5

b

6

b

6

b

6

5.5. Оператор "проектирование" (proj)

Функция: из РТ R1 оператор выбирает заданные типы полей и размещает в указанном порядке в таблице R.

Синтаксис: R = proj a1,...,ar(R1)

Пример.

Из РТ "Разработчики" (R1 на рис.5.1) выбрать поле ФИО и поле ГодРождения.

R = proj ФИО, ГодРожд-я(Разработчики)

Ответ: R:

ФИО

ГодРожд-я

Белов А.

1940

Крылов Г.

1962

Фатов Р.

1964

Белов А.

1953

Крылов Г.

1964

5.6. Оператор "выбор" (sel)

Функция: из РТ R1 по заданному критерию выбирается требуемая совокупность записей. В частном случае результатом выборки может быть и пустое множество.

Синтаксис: R= sel <F> (R1),

где F - критерий выбора.

Критерии выбора могут формулироваться на основе операторов двух типов:

  • операторы сравнения: =, <>, <, <=, >, >=;

  • логические операторы: И (AND), ИЛИ (OR), НЕ (NOT).

Пример 1.

В БД на Рис. 0 .24 выбрать данные разработчика Белова А.

Для решения надо использовать РТ "Разработчики" и выбрать данные Белова А.:

R= sel <ФИО = 'Белов А.'> (Разработчики)

Ответ: R:

№Разр-ка

ФИО

ГодРожд-я

Стаж

R1

Белов А.

1940

21

R4

Белов А.

1953

21

Пример 2.

В БД на Рис. 0 .24 выбрать программистов выше третьей категории, работающих на Pascal'e.

Для решения воспользуемся РТ "Программисты" и критерием выбора:

<F> = <(ЯзыкПрогр-я = 'Pas') and (Катег-яПрогр-та < 3)>.

Тогда оператор примет вид:

R=sel<(ЯзыкПр-я='Pas')and(Катег-яПр-та<3)> (Программисты).

Ответ: R:

№Пр-та

№Разр-каПр-та

ЯзыкПр-я

Катег-яПр-та

A1

R4

Pas

1

A2

R2

Pas

2

      1. Комбинированный запрос с операторами proj и sel

Рассмотрим комбинированный запрос с операторами PROJ и SEL для БД "Разработчики ПП", приведенной на рис.5.1.

Запрос.

Выбрать ФИО разработчиков со стажем от 12 лет, ГодРождения которых 1960 и позже.

Для ответа на запрос в БД "Разработчики ПП" необходимо использовать РТ "Разработчики". Тогда уравнение ответа можно записать в виде:

R=ProjФИО(sel<(Стаж >=12)and(ГодРожд-я>=1960)> (Разр-ки))

Ответ : R:

ФИО

Крылов Г.