Специальные реляционные операторы

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

Пример 5: Вывести нумерацию наименований деталей и их количество таких, что количество превышает 150 единиц.

Выпуск продукции

Номер цеха Наименование деталей Кол-во
Болт
Винт
Болт
Гвоздь
Шуруп

sкол-во>150(выпуск продукции)

Номер цеха Наименование деталей Кол-во
Болт
Болт

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

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

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

 

Выпуск продукции

Номер цеха Наименование деталей Кол-во
Болт
Винт
Болт
Шуруп

 

Пдеталь(выпуск продукции)

Деталь
Болт
Винт
шуруп

 

Операция деления

Пусть отношение R определено на множестве атрибутов А, а отношение S на множестве атрибутов B, причем В является подмножеством А, тогда множество С=А-В это те атрибуты, которые входят в отношение R и не входят в отношение S.

Результатом выполнения операции деления R÷S называется отношение, состоящее из множества кортежей отношения R, определенных на множестве атрибутов С, которые соответствуют (кортежи) комбинации всех кортежей отношения S.

Эта операция является избыточной и может быть реализована следующей последовательностью:

1) Т1С(R)

2) Т2С((Т1×S)-R)

3) Т312

Пример 7: Пусть отношение R содержит сведения о выпуске продукции в цехах завода:

R

Наименование цеха Наименование деталей Шифр деталей
Болт
Шуруп
Гвоздь
Болт
шуруп
гвоздь

 

 

S

Наименование деталей Шифр деталей
Болт
Шуруп
гвоздь

 

Пусть отношение S содержит номенклатуру изделий, выпускаемых на заводе.

Запрос: Получить список цехов, в которых выпускается полная номенклатура изделий. Реализуется операцией деления.

R÷S

Номер цеха

Рассмотрим последовательность операций:

1) Т1С(R)= П номер цеха(R)

Номер цеха

 

2) Т2= Т1×S

Моделируем ситуацию, когда все цеха выпускают полную номенклатуру продукции

Номер цеха Наименование деталей Шифр деталей
Болт
Шуруп
Гвоздь
Болт
Шуруп
Гвоздь
Болт
Шуруп
Гвоздь

 

3) Т32-R= П номер цеха 2-R)

Получим список цехов, в которых в действительности вся номенклатура не выпускается

Номер цеха

 

4) Т=Т13

Номер цеха

Различают следующие виды соединений:

- Ө-соединение (тетто)

- внешнее соединение (открытое)

- соединение по эквивалентности

- полусоединение

Ө-соединение отношений R Ө S называется отношение, содержащее подмножество декартового произведения отношений R и S, кортежи которого удовлетворяют заданному предикату F (условию).

Предикат F имеет следующий вид R.ai Ө S.bi, где ai – один из атрибутов отношения R, bi – один из атрибутов отношения S, Ө - одна из операций отношения (>, <, >=, <=, <>, ! и т.д.), причем несколько таких условий могут объединяться с помощью логических операций ^ «и», ν «или».

Операция соединения является также избыточной, т.к. ее можно заменить sF(R×S)

Пример8: Получить адрес поставщика детали «гвоздь»

R

поставщик адрес
ЗАО «стрела» Оренбург
З-д «сверл» Гай
ЮУМЗ Орск

 

 

S

Шифр деталей наименование поставщик
Болт ЗАО «стрела»
Шуруп З-д «сверл»
гвоздь ЮУМЗ

 

R |><| R.поставщик=S.поставщик ^ R.наименование=гвоздь S

Соединение по эквивалентности

Пример 9: Получить список деталей и их поставщиков, включая адреса.

R |><| R.поставщик=S.поставщик S

Внешние (открытые) соединения

Левым внешним соединением отношения R и S ( R )∆ F S ) называется отношение, которое содержит те кортежи отношения R, для которых не нашлось совпадений в общих столбцах отношения S. Отсутствие совпадающих значений в результирующем отношении обозначается определителем null.

Пример10: Пусть отношение R содержит список абитуриентов, отношение S отражает реальную ситуацию, когда не все абитуриенты прошли тестирование.

 

R

номер ФИО Спец-сть
Иванов ПИ
Петров ПоВТ
Семенов ВМК

S

Номер Дата тестирования Кол-во баллов
8.07.05
9.07.05

 

 

Запрос: Получить список абитуриентов с результатами их тестирования, включая тех абитуриентов, которые не успели пройти тестирование.

 

R )∆ R.номер абитуриента=S.номер абитуриента S

 

Номер_аб ФИО Спец. Дата Кол-во баллов
Иванов ПИ Null Null
Петров ПоВТ 8.07.05
Семенов ВМК 9.07.05

 

Правым внешним соединением отношений R и S ( R ∆( F S ) называется отношение, которое содержит те кортежи отношения S, для которых не нашлось совпадений в общих столбцах отношения R. Отсутствие совпадающих значений в результирующем отношении обозначается определителем null.

Предыдущий запрос можно реализовать и с помощью правого открытого соединения.

S ∆( S.номер абитуриента=R.номер абитуриента R

Существует также полное внешнее соединение отношения Rи S ( R )( F S ), при этом в результирующее отношение входит кортеж не нашедший общих значений как в R, так и в отношении S.

Полусоединения:

R ∆F S = ПA (R |><| F S), где А-множество атрибутов R.

Операция полусоединения отношения R ∆F S возвращает отношение, которое содержит только кортежи отношения R, входящее в соединение по предикату F этих отношений.

Пример 11: Получить список абитуриентов, прошедших тестирование.

 

номер ФИО Спец.
Петров ПоВТ
Семенов ВМК

 

Перечень источников:

 

1. Дейт К. Дж. Введение в систему баз данных.: перевод с английского – 6 издание – К.: Диалектика, 1998. – 784 с.

2. Хомоненко А.Д. Базы данных: Учебник/Под ред.проф А.Д.Хомоненко.-СПб.:Корона, 2004.- 736 с.

Раздел 2. Основы проектирования