Теоретико-множественные операции
Как было сказано ранее, теоретико-множественные операции – это традиционные операции над множествами, определяемые теорией множеств; к ним относятся:
- объединение
- вычитание
- пересечение
- прямое (декартово) произведение
Но следует отметить, что реляционные операции имеют существенное отличие от классических, определенных в теории множеств.
Рассмотрим это отличие на примере операции объединения.
Операция объединения в теории множеств определяется следующим образом:
Определение
Даны два множества – S1 и S2. Объединением этих множеств является множество S, элементы которого принадлежат первому множеству S1 и/или второму множеству S2:
S = S1 È S2 = {s | s Î S1 и/или s Î S2}
Графически это можно представить так:
В РМД рассматривается объединение множеств – доменов и/или отношений.
1. Объединение доменов.
В РМД домен представляет собой множество элементов одного типа. Объединение доменов в РМД должно создать новый домен.
Пусть даны следующие домены:
D1 = {1, 3, 5, 7, 9}, D2 = {‘a’, ‘b’, ‘c’}, D3 = {2, 4, 6, 8}.
Тогда в теории множеств определено новое множество:
S = D1 È D2 = {1, 3, 5, 7, 9, ‘a’, ‘b’, ‘c’}
Но в РМД полученное множество не является доменом, так как содержит элементы разных типов. Следовательно, данная операция в РМД для указанных операндов не определена.
С другой стороны, новое множество:
D = D1 È D3 = {1, 3, 5, 7, 9, 2, 4, 6, 8}
содержит элементы одного типа, т.е. является доменом. Следовательно, в данном случае, для данных операндов операция объединения определена.
2. Объединение отношений.
В РМД отношение представляет собой множество кортежей, удовлетворяющих одной схеме. Объединение отношений должно дать в результате также отношение.
Пусть определены следующие схемы отношений, определенные на приведенных выше доменах:
R1(A1:D1, A2:D1), R2(A1:D1, A2:D2), R3(A1:D1, A2:D3).
Реализации данных отношений могут иметь следующий вид:
r1 = {<1, 3>, <1, 1>}, r2 = {<1, ‘a’>, <2, ‘b’>}, r3 = {<1, 2>, <7, 2>}.
Тогда вы теории множеств определено новое множество:
r = r1 È r2 = {<1, 3>, <1, 1>, <1, ‘a’>, <2, ‘b’>}
Но в РМБ полученное множество не является отношением, так как кортежи этого множества соответствуют разным схемам отношений. С другой стороны, множество
r = r1 È r3 = {<1, 3>, <1, 1>, <1, 2>, <7, 2>}
является отношением, хотя схемы отношений R1 и R3 и разные.
В связи с этим в реляционной алгебре рассматривается свойство совместимости по объединению.
Определение
Простые домены считаются совместимыми по объединению, если они состоят из элементов одного типа.
Для приведенных выше примеров домены D1 и D2 не совместимы по объединению, а D1 и D3 – совместимы по объединению.
Определение
Два отношения считаются совместимыми по объединению, если
- оба отношения имеют одно и то же множество атрибутов,
- одноименные атрибуты двух отношений определены на совместимых по объединению доменах.
Так, в приведенных выше примерах отношения R1 и R3 совместимы по объединению, так как их одноименные атрибуты определены на совместимых по объединению доменах.
Если нужно проверить совместимость по объединению отношений, имеющих разные множества атрибутов, тогда в соответствии с семантикой атрибутов можно переименовать их, используя операцию переименования. После этого полученные отношения проверяются на совместимость по объединению. Например, если дано еще одно отношение R4(B1:D1, B2:D3) и надо проверить, совместимо ли по объединению данное отношение с отношением R1, то, используя операцию переименования:
R4 : переименовать B1 в A1, B2 в A2
можно получить отношение R4(A1:D1, A2:D3), после чего проверить отношения R1 и R4 на совместимость по объединению. С таким же успехом можно использовать операцию переименования
R1: переименовать A1 в B1, A2 в B2.
Рассмотрим теперь все операции реляционной алгебры. В определении операций и примерах строчными буквами обозначены реализации отношений, прописными – схемы отношений; запись вида r(R) означает: реализация отношения r, удовлетворяющая схеме R.