Специальные реляционные операторы
Операция выборки 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) Т3=Т1-Т2
Пример 7: Пусть отношение R содержит сведения о выпуске продукции в цехах завода:
R
Наименование цеха | Наименование деталей | Шифр деталей |
Болт | ||
Шуруп | ||
Гвоздь | ||
Болт | ||
шуруп | ||
гвоздь |
S
Наименование деталей | Шифр деталей |
Болт | |
Шуруп | |
гвоздь |
Пусть отношение S содержит номенклатуру изделий, выпускаемых на заводе.
Запрос: Получить список цехов, в которых выпускается полная номенклатура изделий. Реализуется операцией деления.
R÷S
Номер цеха |
Рассмотрим последовательность операций:
1) Т1=ПС(R)= П номер цеха(R)
Номер цеха |
2) Т2= Т1×S
Моделируем ситуацию, когда все цеха выпускают полную номенклатуру продукции
Номер цеха | Наименование деталей | Шифр деталей |
Болт | ||
Шуруп | ||
Гвоздь | ||
Болт | ||
Шуруп | ||
Гвоздь | ||
Болт | ||
Шуруп | ||
Гвоздь |
3) Т3=Т2-R= П номер цеха (Т2-R)
Получим список цехов, в которых в действительности вся номенклатура не выпускается
Номер цеха |
4) Т=Т1-Т3
Номер цеха |
Различают следующие виды соединений:
- Ө-соединение (тетто)
- внешнее соединение (открытое)
- соединение по эквивалентности
- полусоединение
Ө-соединение отношений 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. Основы проектирования