Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белобжеский_Лекции_по_ББД.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5.5 Mб
Скачать

Выборка (или ограничение)

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

Пример 3.1. Составьте список всех сотрудников с зарплатой, превышающей 10000 фунтов стерлингов

σsalary >10000(Staff)

Здесь исходным отношением является отношение Staff, а предикатом выражение salary>10000.

Таблица 3.9. Результат выполнения операции выборки из отношения Staff кортежей с атрибутом salary > 10000 фунтов стерлингов

Sno FName LName

Address

Tel.No

Positron Sex DOB

Salary

NIN Bno

SL21 John White

19 Taylor St, Cranford, London

0171-884. 5112

Manager M 1-Oct-45

30000

WK442 B5 011В

SG37 Ann Beech

81 George St. Glasgow PA1 2JR

0141-848-3345

Snr Asst F 10-Nov-60

12000

WL432 ВЗ 514С

SG14 David Ford

63Ashby St. Partick, Glasgow G11

0141-339-2177

Deputy M 24-Mar-58

18000

WL220 ВЗ 658D

SG5 Susan Brand

5Gt Western Rd Glasgow G12

0141-334-2001

Manager F 3-Jun-40

24000

WK588 ВЗ 932Е

Проекция

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

Пример 3.2. Создайте ведомость зарплаты всех сотрудников компании с указанием атрибутов Sno, FName, LName и Salary.

Пsno, fname, lname, salary(Staff)

Таблица 3.10. Проекция отношения Staff no атрибутам Sno, FName, Lname и Salary

Sno

FName

LName

Salary

SL21

John

White

30000

SG37

Ann

Beech

12000

SG14

David

Ford

18000

SA9

Mary

Howe

9000

SG5

Susan

Brand

24000

SL41

Julie

Lee

9000

В этом примере операция проекции определяет новое отношение, которое будет со­держать только атрибуты Sno, FName, LName и Salary отношения Staff, размещенные в указанном порядке.

Декартово произведение

RxS - операция декартового произведения определяет новое отношение, ко­ торое является результатом конкатенации (т.е. сцепления) каждого кортежа из отношения R с каждым кортежем из отношения S.

Операторы выборки и проекции извлекают информацию только из одного отно­шения. Очевидно, возможно возникновение таких ситуаций, когда нужна некоторая комбинация данных из нескольких отношений. Оператор декартового произведения умножает два отношения, что в результате приводит к созданию другого отношения, состоящего из всех возможных пар кортежей обоих отношений. Следовательно, если одно отношение имеет I кортежей и N атрибутов, а другое — J кортежей и М атрибутов, то отношение с их декартовым произведением будет содержать (IхJ) кортежей и (N+M) атрибутов. Исходные отношения могут содержать атрибуты с одинаковыми именами. В таком случае имена атрибутов будут содержать названия отношений в виде префиксов для обеспечения уникальности имен атрибутов в отношении, полу­ченном как результат выполнения операции декартового произведения.

Пример 3.3. Создайте список всех арендаторов, которые осматривали объекты недвижимости, с указанием сделанных ими комментариев

(Пrno, fname, lname(Renter))x(Пrno, pno, comment(Viewing))

Таблица 3.11. Декартово произведение сокращенного варианта отношений Renter и Viewing (использованы только некоторые атрибуты)

Renter. Rno

FName

LName

Viewing. Rno

Pno

Comment

CR76

John

Kay

CR56

PA14

Too small (Слишком мала)

CR76

John

Kay

CR76

PG4

Too remote (Слишком далеко)

CR76

John

Kay

CR56

PG4

CR76

John

Kay

CR62

PA14

No Dining room (Нет отдельной столовой)

CR76

John

Kay

CR56

PG36

CR56

Aline

Stewart

CR56

PA14

Too small (Слишком мала)

CR56

Aline

Stewart

CR76

PG4

Too remote (Слишком далеко)

CR56

Aline

Stewart

CR56

PG4

CR56

Aline

Stewart

CR62

PA14

No Dining room (Нет отдельной столовой)

CR56

Aline

Stewart

CR56

PG36

CR74

Mike

Ritchie

CR56

PA14

Too small (Слишком мала)

CR74

Mike

Ritchie

CR76

PG4

Too remote (Слишком далеко)

CR74

Mike

Ritchie

CR56

PG4

CR74

Mike

Ritchie

CR62

PA14

No Dining room (Нет отдельной столовой)

CR74

Mike

Ritchie

CR56

PG36

CR62

Mary

Tregear

CR56

PA14

Too small (Слишком мала)

CR62

Mary

Tregear

CR76

PG4

Too remote (Слишком далеко)

CR62

Mary

Tregear

CR56

PG4

CR62

Mary

Tregear

CR62

PA14

No Dining room (Нет отдельной столовой)

CR62

Mary

Tregear

CR56

PG36

В таком виде это отношение содержит больше информации, чем необходимо.

Для получения искомого списка необходимо для этого отношения произвести операцию выборки с извлечением тех кортежей, для которых выполняется равенство атрибутов Rno из отношений Renter и Viewing, т.е. Renter.Rno=Viewing.Rno. Полностью эта операция выглядит так:

σ Renter.Rno=Viewing.Rno (rno, fname, lname(Renter))xrno, pno, comment(Viewing)))

Результат в таблице 3.12.

Таблица 3.12. Ограниченное декартово произведение сокращенного варианта отношений Renter и Viewinq (использованы только некоторые атрибуты)

Renter. Rno

FName

LName

Viewing. Rno

Pno

Comment

CR76

John

Kay

CR76

PG4

Too remote (Слишком далеко)

CR56

Aline

Stewart

CR56

PA14

Too small (Слишком мала)

CR56

Aline

Stewart

CR56

PG4

CR56

Aline

Stewart

CR56

PG36

CR62

Mary

Tregear

CR62

PA14

No dining room (Нет отдельной сто-

ловой)