![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Исходными отношениями являются отношения R1 и R2 (рис. 10.3), которые содержат перечни преподавателей и дисциплин, которые они ведут соответственно на очной и вечерней формах обучения. Отношение R3 =R1 È R2 содержит общий перечень преподавателей и ведущихся ими дисциплин
(рис. 10.4).
R1 | R2 | |||
Преподаватель | Дисциплина | Преподаватель | Дисциплина | |
Иванов | Базы данных | Петрова | История | |
Иванов | Информатика | Сидоров | Информатика | |
Петрова | История | Петрова | Культурология |
Рис. 10.3. Исходные отношения
R3 | |
Преподаватель | Дисциплина |
Иванов | Базы данных |
Иванов | Информатика |
Петрова | История |
Сидоров | Информатика |
Петрова | Культурология |
Рис. 10.4. Отношение R3 =R1 È R2
Пример 2.
Пусть отношением R1 будет множество поставщиков из Москвы, а отношение R2 — множество поставщиков, которые поставляют деталь Р1. Тогда отношение R обозначает поставщиков, находящихся в Москве, или поставщиков, выпускающих деталь Р1, либо тех и других (рис. 10.5).
R1
П# | Имя | Статус | Город_П |
S1 | Сергей | Москва | |
S4 | Николай | Москва |
R2
П# | Имя | Статус | Город_П |
S1 | Сергей | Москва | |
Иван | Киев |
R3 = (R1 È R2)
П# | Имя | Статус | Город_П |
S1 | Сергей | Москва | |
S2 | Иван | Киев | |
S4 | Николай | Москва |
Рис. 10.5. Отношение R3 =R1 È R2
Операция пересечения
Пересечение двух совместимых отношений R1 и R2 одинаковой размерности (R1 Ç R2) порождает отношение R с телом, включающим в себя кортежи, одновременно принадлежащие обоим исходным отношениям R1 и R2.
R = R1 R2 = { r | r
R1
r
R2 } здесь
— операция логического умножения (логическое «И»).
Для примера 1 результат операции пересечения будет следующим:
R = Rl ÇR2 | |
Преподаватель | Дисциплина |
Петрова | История |
Для примера 2 результирующее отношение R = R1 Ç R2 будет означать всех производителей из Москвы, выпускающих деталь Р1. Тело отношения R состоит из единственного элемента (S1, Сергей, 20, Москва).
Операция вычитания
Разность ( Вычитание ) совместимых отношений R1 и R2 одинаковой размерности (R1 \ R2) есть отношение R, тело которого состоит из множества кортежей, принадлежащих R1, но не принадлежащих отношению R2.
R = R1 \ R2 = { r | r R1
r
R2 }
Для примера 1 результат операции вычитания будет следующим:
R = R1 \ R2 | |
Преподаватель | Дисциплина |
Иванов | Базы данных |
Иванов | Информатика |
Заметим, что результат операции вычитания зависит от порядка следования операндов, т.е. R1 \ R2 и R2 \ R1 - не одно и то же:
R = R2 \ R1 | |
Преподаватель | Дисциплина |
Сидоров | Информатика |
Петрова | Культурология |
Для отношений R1 и R2 из примера 2 отношение R будет представлять собой множество поставщиков, находящихся в Москве, но не выпускающих деталь Р1, т. е. R={(S4, Николай, 20, Москва)}.
Для демонстрации возможностей трех первых операций реляционной алгебры рассмотрим еще один пример — уже из другой предметной области. Исходными являются три отношения R1, R2 и R3. Все они имеют эквивалентные схемы.
· R1= (ФИО, Паспорт, Школа);
· R2= (ФИО, Паспорт, Школа);
· R3= (ФИО, Паспорт, Школа).
Рассмотрим ситуацию поступления в высшие учебные заведения, которая была характерна для периода, когда были разрешены так называемые репетиционные вступительные экзамены, которые сдавались раньше основных вступительных экзаменов в вуз. Отношение R1 содержит список абитуриентов, сдававших репетиционные экзамены. Отношение R2 содержит список абитуриентов, сдававших экзамены на общих условиях. И, наконец, отношение R3 содержит список абитуриентов, принятых в институт. Будем считать, что при неудачной сдаче репетиционных экзаменов абитуриент мог делать вторую попытку и сдавать экзамены в общем потоке, поэтому некоторые абитуриенты могут присутствовать как в первом, так и во втором отношении.
Ответим на следующие вопросы:
1. Список абитуриентов, которые поступали два раза и не поступили в вуз.
R = R1 R2 \ R3
2. Список абитуриентов, которые поступили в вуз с первого раза, то есть они сдавали экзамены только один раз и сдали их так хорошо, что сразу были зачислены в вуз.
R = (R1 \ R2 R3)
(R2 \ R1
R3)
3. Список абитуриентов, которые поступили в вуз только со второго раза.
Прежде всего, это те абитуриенты, которые присутствуют в отношениях R1 и R2, потому что они поступали два раза, и присутствуют в отношении R3, потому что они поступили.
R=R1 R2
R3
4. Список абитуриентов, которые поступали только один раз и не поступили.
Это, прежде всего те абитуриенты, которые присутствуют в R1 и не присутствуют в R2, и те, кто присутствуют в R2 и не присутствуют в R1. И, разумеется, никто из них не присутствует в R3.
R = (R1 \ R2) (R2 \ R1) \ R3
В отсутствие скобок порядок выполнения операций реляционной алгебры естественный, поэтому сначала будут выполнены операции в скобках, а затем будет выполнена последняя операция вычитания отношения R3.
Операции объединения, пересечения и разности применимы только к отношениям с эквивалентными схемами.
Операция произведения
Произведение отношения степени k1 и отношения степени k2
(R1 Ä R2), которые не имеют одинаковых имен атрибутов, есть такое отношение R степени (k1 + k2), заголовок которого представляет сцепление заголовков отношений R1 и R2, а тело — имеет кортежи, такие, что первые k1 элементов кортежей принадлежат множеству R1, а последние k2 элементов — множеству R2.
Отношения R1 и R2 должны быть несовместимыми.
При необходимости получить произведение двух отношений, имеющих одинаковые имена одного или нескольких атрибутов, применяется операция переименования RENAME, рассматриваемая далее.
Для определения операции, введем дополнительно понятие конкатенации, или сцепления, кортежей.
Сцеплением, или конкатенацией, кортежей с = <с1, с2,..., сn> и q = <q1, q2,..., qm> называется кортеж, полученный добавлением значений второго в конец первого. Сцепление кортежей с и q обозначается как (с, q).
(с, q) = <с1, c2,..., cn, q1, q2,..., qm>
Здесь n — число элементов в первом кортеже с, m — число элементов во втором кортеже q.
Все предыдущие операции не меняли степени или арности отношений — это следует из определения эквивалентности схем отношений. Операция декартова произведения меняет степень результирующего отношения.
Расширенным декартовым произведением отношения R, степени n со схемой
SR1 = (А1, А2,..., Аn)
и отношения R2 степени m со схемой
SR2 = (В1, В2,..., Вm)
называется отношение R3 степени n+m со схемой
SR3 = (А1, А2,..., Аn, В1, В2,..., Вm),
содержащее кортежи, полученные сцеплением каждого кортежа r отношения R1 с каждым кортежем q отношения R2.
То есть если R1 = { r }, R2 = { q }
R1 R2 = { (r, q) | r
R1
q
R2 }
Операцию декартова произведения с учетом возможности перестановки атрибутов в отношении можно считать симметричной.
Очень часто операция расширенного декартова произведения используется для получения некоторого универсума — т. е. отношения, которое характеризует все возможные комбинации между элементами отдельных множеств.
Однако самостоятельного значения результат выполнения операции обычно не имеет, он участвует в дальнейшей обработке.
Пример 3. Произведение отношений.
Пусть отношение R1 представляет собой множество номеров всех. текущих поставщиков {S1, S2, S3, S4, S5}, а отношение R2 — множество номеров всех текущих деталей {Р1, Р2, РЗ, Р4, Р5, Р6}. Результатом операции R1 Ä R2 является множество всех пар типа «поставщик-деталь», т. е.
{(S1,P1), (S1,P2), (S1,P3), (S1,P4), (S1.P5), (S1.P6), (S2,P1),..., (S5,P6)}.
Заметим, что в теории множеств результатом операции прямого произведения является множество, каждый элемент которого является парой элементов, первый из которых принадлежит R1, а второй — принадлежит R2.
Поэтому кортежами декартова произведения бинарных отношений будут кортежи вида: ((а, б), (в, г)), где кортеж (а, б) принадлежит отношению R1, а кортеж (в, г) — принадлежит отношению R2. В реляционной алгебре применяется расширенный вариант прямого произведения, при котором элементы кортежей двух исходных отношений сливаются, что при записи кортежей результирующего отношения означает удаление лишних скобок, т. е. (а, б, в, г).
Дата публикования: 2015-07-22; Прочитано: 2870 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!