- •Тема 1.4. Реляционная алгебра
- •Понятие реляционной алгебры
- •2. Операции реляционной алгебры
- •3. Теоретико – множественные операторы
- •Специальные реляционные операторы
- •Раздел 2. Основы проектирования
- •Тема 2.1. Основы моделирования. Модели данных
- •2. Аномалии при проектировании
- •3. Информационное моделирование
Специальные реляционные операторы
Операция выборки F(R) возвращает подмножество кортежей отношения R, удовлетворяющее предикату F (условию).
Пример 5: Вывести нумерацию наименований деталей и их количество таких, что количество превышает 150 единиц.
Выпуск продукции
Номер цеха |
Наименование деталей |
Кол-во |
1 |
Болт |
200 |
1 |
Винт |
150 |
2 |
Болт |
220 |
2 |
Гвоздь |
80 |
3 |
Шуруп |
120 |
кол-во>150(выпуск продукции)
Номер цеха |
Наименование деталей |
Кол-во |
1 |
Болт |
200 |
2 |
Болт |
220 |
Таким образом, операция выборки возвращает горизонтальное подмножество исходного отношения.
Проекция Патр1, атр.2,.., атр.n (R) возвращает отношение, полученное из исходного отношения путем вычеркивания из него некоторых атрибутов. Кортежи-дубликаты при этом исключаются.
Пример 6: Получить список наименований деталей, которые выпускаются на заводе.
Выпуск продукции
Номер цеха |
Наименование деталей |
Кол-во |
1 |
Болт |
200 |
1 |
Винт |
150 |
2 |
Болт |
20 |
3 |
Шуруп |
75 |
Пдеталь(выпуск продукции)
Деталь |
Болт |
Винт |
шуруп |
Операция деления
Пусть отношение R определено на множестве атрибутов А, а отношение S на множестве атрибутов B, причем В является подмножеством А, тогда множество С=А-В это те атрибуты, которые входят в отношение R и не входят в отношение S.
Результатом выполнения операции деления R÷S называется отношение, состоящее из множества кортежей отношения R, определенных на множестве атрибутов С, которые соответствуют (кортежи) комбинации всех кортежей отношения S.
Эта операция является избыточной и может быть реализована следующей последовательностью:
Т1=ПС(R)
Т2=ПС((Т1×S)-R)
Т3=Т1-Т2
Пример 7: Пусть отношение R содержит сведения о выпуске продукции в цехах завода:
R
Наименование цеха |
Наименование деталей |
Шифр деталей |
1 |
Болт |
001 |
1 |
Шуруп |
002 |
2 |
Гвоздь |
003 |
3 |
Болт |
001 |
3 |
шуруп |
002 |
3 |
гвоздь |
003 |
S
Наименование деталей |
Шифр деталей |
Болт |
001 |
Шуруп |
002 |
гвоздь |
003 |
Пусть отношение S содержит номенклатуру изделий, выпускаемых на заводе.
Запрос: Получить список цехов, в которых выпускается полная номенклатура изделий. Реализуется операцией деления.
R÷S
Номер цеха |
3 |
Рассмотрим последовательность операций:
1) Т1=ПС(R)= П номер цеха(R)
Номер цеха |
1 |
2 |
3 |
2) Т2= Т1×S
Моделируем ситуацию, когда все цеха выпускают полную номенклатуру продукции
Номер цеха |
Наименование деталей |
Шифр деталей |
1 |
Болт |
001 |
1 |
Шуруп |
002 |
1 |
Гвоздь |
003 |
2 |
Болт |
001 |
2 |
Шуруп |
002 |
2 |
Гвоздь |
003 |
3 |
Болт |
001 |
3 |
Шуруп |
002 |
3 |
Гвоздь |
003 |
3) Т3=Т2-R= П номер цеха (Т2-R)
Получим список цехов, в которых в действительности вся номенклатура не выпускается
Номер цеха |
1 |
2 |
4) Т=Т1-Т3
Номер цеха |
3 |
Различают следующие виды соединений:
- Ө-соединение (тетто)
- внешнее соединение (открытое)
- соединение по эквивалентности
- полусоединение
Ө-соединение отношений R Ө S называется отношение, содержащее подмножество декартового произведения отношений R и S, кортежи которого удовлетворяют заданному предикату F (условию).
Предикат F имеет следующий вид R.ai Ө S.bi, где ai – один из атрибутов отношения R, bi – один из атрибутов отношения S, Ө - одна из операций отношения (>, <, >=, <=, <>, ! и т.д.), причем несколько таких условий могут объединяться с помощью логических операций ^ «и», ν «или».
Операция соединения является также избыточной, т.к. ее можно заменить F(R×S)
Пример8: Получить адрес поставщика детали «гвоздь»
R
поставщик |
адрес |
ЗАО «стрела» |
Оренбург |
З-д «сверл» |
Гай |
ЮУМЗ |
Орск |
S
Шифр деталей |
наименование |
поставщик |
001 |
Болт |
ЗАО «стрела» |
002 |
Шуруп |
З-д «сверл» |
003 |
гвоздь |
ЮУМЗ |
R |><| R.поставщик=S.поставщик ^ R.наименование=гвоздь S
Соединение по эквивалентности
Пример 9: Получить список деталей и их поставщиков, включая адреса.
R |><| R.поставщик=S.поставщик S
Внешние (открытые) соединения
Левым внешним соединением отношения R и S ( R )∆ F S ) называется отношение, которое содержит те кортежи отношения R, для которых не нашлось совпадений в общих столбцах отношения S. Отсутствие совпадающих значений в результирующем отношении обозначается определителем null.
Пример10: Пусть отношение R содержит список абитуриентов, отношение S отражает реальную ситуацию, когда не все абитуриенты прошли тестирование.
R
номер |
ФИО |
Спец-сть |
531 |
Иванов |
ПИ |
712 |
Петров |
ПоВТ |
68 |
Семенов |
ВМК |
S
Номер |
Дата тестирования |
Кол-во баллов |
712 |
8.07.05 |
98 |
68 |
9.07.05 |
120 |
Запрос: Получить список абитуриентов с результатами их тестирования, включая тех абитуриентов, которые не успели пройти тестирование.
R )∆ R.номер абитуриента=S.номер абитуриента S
Номер_аб |
ФИО |
Спец. |
Дата |
Кол-во баллов |
531 |
Иванов |
ПИ |
Null |
Null |
712 |
Петров |
ПоВТ |
8.07.05 |
98 |
68 |
Семенов |
ВМК |
9.07.05 |
120 |
Правым внешним соединением отношений 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: Получить список абитуриентов, прошедших тестирование.
номер |
ФИО |
Спец. |
712 |
Петров |
ПоВТ |
68 |
Семенов |
ВМК |
Перечень источников:
Дейт К. Дж. Введение в систему баз данных.: перевод с английского – 6 издание – К.: Диалектика, 1998. – 784 с.
Хомоненко А.Д. Базы данных: Учебник/Под ред.проф А.Д.Хомоненко.-СПб.:Корона, 2004.- 736 с.