Из приведенных выше определений бинарных операций
объединения, пересечения, разности, декартового произведения и
естественного соединения следуют свойства.
1. Первое свойство, как и в случае унарных операций, иллюстрирует соотношение мощностей отношений:
1) для операции объединения: 2) для операции пересечения:
|r1 ∩ r2 | ≤ min(|r1|, |r2|);
3) для операции разности: 4) для операции декартового произведения: 5) для операции естественного соединения: Соотношение мощностей, как мы помним,
характеризует, как меняется количество кортежей в отношениях после
применения той или иной операции. Итак, что мы видим? Мощность объединения двух отношений r1 и r2
меньше суммы мощностей исходных отношений-операндов. Почему это
происходит? Все дело в том, что при объединении совпадающие кортежи
исчезают, накладываясь друг на друга. Так, обратившись к примеру,
который мы рассматривали по прохождении этой операции, можно заметить,
что в первом отношении было два кортежа, во втором – три, а в
результирующем – четыре, т. е. меньше, чем пять (сумма мощностей
отношений-операндов). По совпадающему кортежу {b, 2} эти отношения
«склеились».
Мощность результата пересечения двух отношений
меньше или равна минимальной мощности исходных отношений-операндов.
Обратимся к определению этой операции: в результирующее отношение
попадают только те кортежи, которые присутствуют в обоих отношениях
исходных. А значит, мощность нового отношения никак не может превышать
мощности того отношения-операнда, число кортежей которого наименьшее из
двух. А равной этой минимальной мощности мощность результата быть может,
так как всегда допускается случай, когда все кортежи отношения с
меньшей мощностью совпадают с какими-то кортежами второго
отношения-операнда.
В случае операции разности все достаточно
тривиально. Действительно, если из первого отношения-операнда «вычесть»
все кортежи, присутствующие также во втором отношении, то их количество
(а следовательно, мощность) уменьшится. В том случае, если ни один
кортеж первого отношения не совпадет ни с одним кортежем отношения
второго, т. е. «вычитать» будет нечего, мощность его не уменьшится.
Интересно, что в случае применения операции декартового произведения
мощность результирующего отношения в точности равна произведению
мощностей двух отношений-операндов. Понятно, что это происходит потому,
что в результат записываются все возможные пары кортежей исходных
отношений, а ничего не исключается.
И, наконец, операцией естественного соединения
получается отношение, мощность которого больше или равна произведения
мощностей двух исходных отношений. Опять-таки это происходит потому, что
отношения-операнды «склеиваются» по совпадающим кортежам, а
несовпадающие – из результата исключаются вовсе.
2. Свойство идемпотентности:
1) для операции объединения: r ∪ r = r;
2) для операции пересечения: r ∩ r = r;
3) для операции разности: r \ r ≠ r;
4) для операции декартового произведения (в общем случае, свойство не применимо);
5) для операции естественного соединения: r × r = r.
Интересно, что свойство идемпотентности верно не для
всех операций из приведенных, а для операции декартового произведения
оно и вовсе не применимо. Действительно, если объединить, пересечь или
естественно соединить какое-либо отношение само с собой, оно не
изменится. А вот если отнять от отношения точно равное ему отношение, в
результате получится пустое отношение.
3. Свойство коммутативности:
1) для операции объединения: 2) для операции пересечения: 3) для операции разности: 4) для операции декартового произведения: 5) для операции естественного соединения: Свойство коммутативности выполняется для
всех операций, кроме операции разности. Это легко понять, ведь от
перестановки отношений местами их состав (кортежи) не меняется. А при
применении операции разности важно, какое из отношений-операндов стоит
на первом месте, потому что от этого зависит, кортежи какого отношения
примутся за эталонные, т. е. с какими кортежами будут сравниваться
другие кортежи на предмет исключения.
4. Свойство ассоциативности:
1) для операции объединения:
(r1 ∪ r2) ∪ r3 = r1 ∪(r2 ∪ r3);
2) для операции пересечения:
(r1 ∩ r2) ∩ r3 = r1 ∩ (r2 ∩ r3);
3) для операции разности:
(r1 \ r2) \ r3 ≠ r1 \ (r2 \ r3);
4) для операции декартового произведения:
(r1 × r2) × r3 = r1 × (r2 × r3);
5) для операции естественного соединения:
(r1 × r2) × r3 = r1 × (r2 × r3).
И снова мы видим, что свойство выполняется
для всех операций, кроме операции разности. Объясняется это таким же
образом, как и в случае применения свойства коммутативности. По большому
счету, операциям объединения, пересечения, разности и естественного
соединения все равно в каком порядке стоят отношения-операнды. Но при
«отнимании» отношений друг от друга порядок играет главенствующую роль.
На основании вышеприведенных свойств и рассуждений можно
сделать следующий вывод: три последних свойства, а именно свойство
идемпотентности, коммутативности и ассоциативности, верны для всех
рассмотренных нами операций, кроме операции разности двух отношений, для
которой не выполнилось вообще ни одно из трех означенных свойств, и
только в одном случае свойство оказалось неприменимым.
|