![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Операция эквисоединения характеризуется тем, что формула f задает равенство операндов.
Пример 13. Эквисоединение.
Заданы отношения R1 и R2 содержащие коды и размеры (диаметры шпилек и шайб соответственно. Необходимо подобрать шайбы к шпилькам при условии, что диаметр шайбы должен быть равен диаметру шпильки. Для этого выполним операцию эквисоединения:
R1 R2
Код_шпильки | Диаметр_шпильки | Код_шайбы | Диаметр_шайбы | |
(R1 Ä R2) WHERE Диаметр_шпильки = Диаметр_шайбы
Код_шпильки | Диаметр_шпильки | Код_шайбы | Диаметр_шайбы |
Операция естественного соединения (операция JOIN) является частным случаем операции эквисоединения по одному столбцу.
Эта операция применяется к двум отношениям, имеющим общий атрибут (простой или составной).
Этот атрибут в отношениях имеет одно и то же имя (совокупность имен) и определен на одном и том же домене (доменах).
Результатом операции естественного соединения является отношение R, которое представляет собой проекцию эквисоединения отношений R1 и R2 по общему атрибуту на объединенную совокупность атрибутов обоих отношений.
Пример 15. Естественное соединение.
Пусть необходимо найти естественное соединение отношений R1 (список групп и кураторов) и R2 (список студентов) по общему атрибуту, характеризующему группу (в отношении R1 — это Ном_группы, а в отношении R2 — Группа). Поскольку условие операции требует одинаковости имен атрибутов, по которым выполняется соединение, то применяется операция RENAME переименования атрибута Ном_группы.
R1 R2
Ном_группы | Куратор | Ном_зач | ФИО | Год_рожд | Группа | |
Иванова | Николаев Н.К. | |||||
Павлова | Иванова И.С | |||||
Сергеева | Петров П.П. | |||||
Иванов | Киев | Костина Н.К. | ||||
Киев | Серегин С.С. | |||||
Киев | Иванова Н.С. | |||||
Киев | Михайлов А.И. | |||||
Москва | Прошин Н.А. | |||||
Москва | Леонова Е.А. | |||||
Москва | Воробьева Е.Н. |
(RENAME R1 Ном_группы AS Группа) JOIN R2
Группа | Куратор | Ном_зач | ФИО | Год_рожд |
Иванова | Николаев Н.К. | |||
Иванова | Иванова И.С | |||
Павлова | Петров П.П. | |||
Павлова | Киев | Костина Н.К. | ||
Сергеева | Киев | Серегин С.С. | ||
Сергеева | Киев | Иванова Н.С. | ||
Иванов | Киев | Михайлов А.И. | ||
Иванов | Москва | Прошин Н.А. | ||
Павлова | Москва | Леонова Е.А. | ||
Сергеева | Москва | Воробьева Е.Н. |
Обратной операцией для операции соединения является проекция. Отношения R1 и R2 из отношения R для рассматриваемого примера можно получить проекцией:
R1 = R[Группа, Куратор],
R2 = R[Ном_зач, ФИО, Год_ рожд, Группа].
Операция деления отношений
Результатом деления отношения R1 с атрибутами А и В на отношение R2 с атрибутом В (R1 / R2), где А и В простые или составные атрибуты, причем атрибут В — общий атрибут, определенныйна одном и том же домене (множестве доменов составного атрибута), является отношение R с заголовком А и телом, состоящим из кортежей s таких, что в отношении R1 имеются кортежи (s, p), причем множество значений p включает множество значений атрибута В отношения R2.
Пример 20. Деление отношения.
Пусть R1 — отношение содержащее отделы и фамилии сотрудников в них работающих, a R2 — отношение фамилии сотрудников, которые нас интересуют, тогда результатом деления R1 на R2 будет отношение R = R1 / R2 содержащее список отделов, в которых одновременно работают сотрудники с интересующими нас фамилиями.
R1 | R2 | R | ||||
Ном_Отд | ФИО | ФИО | Ном_Отд | |||
Павлов | Иванов | |||||
Иванов | Сидорова | |||||
Петров | ||||||
Сидорова | ||||||
Алексеев | ||||||
Пронина | ||||||
Павлов | ||||||
Иванов | ||||||
Иванов | ||||||
Иванов | ||||||
Сидорова |
Определим множества Сi фамилий по полю ФИО для каждого значения (кортежа) в поле Ном_Отд отношения R1 и сравним с множеством фамилий в поле ФИО отношения R2:
Ном_отд = 1 – С1 = {Павлов, Иванов, Петров, Сидорова, Алексеев, Пронина} É {Иванов, Сидорова} – значение (кортеж) включается в отношение R.
Ном_отд = 2 – С2 = {Павлов, Иванов} É {Иванов, Сидорова} – значение (кортеж) не включается в отношение R.
Ном_отд = 3 – С3 = {Иванов} É {Иванов, Сидорова} – значение (кортеж) не включается в отношение R.
Ном_отд = 4 – С4 = {Иванов, Сидорова} = {Иванов, Сидорова} – значение (кортеж) включается в отношение R.
Дата публикования: 2015-07-22; Прочитано: 704 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!