Книга: Базы данных: конспект лекций
3. Свойства бинарных операций
3. Свойства бинарных операций
Из приведенных выше определений бинарных операций объединения, пересечения, разности, декартового произведения и естественного соединения следуют свойства.
1. Первое свойство, как и в случае унарных операций, иллюстрирует соотношение мощностей отношений:
1) для операции объединения:
|r1 ? r2| ? |r1| + |r2|;
2) для операции пересечения:
|r1 ? r2 | ? min(|r1|, |r2|);
3) для операции разности:
|r1 r2| ? |r1|;
4) для операции декартового произведения:
|r1 ? r2| = |r1| · |r2|;
5) для операции естественного соединения:
|r1 ? r2| ? |r1| · |r2|.
Соотношение мощностей, как мы помним, характеризует, как меняется количество кортежей в отношениях после применения той или иной операции. Итак, что мы видим? Мощность объединения двух отношений r1 и r2 меньше суммы мощностей исходных отношений-операндов. Почему это происходит? Все дело в том, что при объединении совпадающие кортежи исчезают, накладываясь друг на друга. Так, обратившись к примеру, который мы рассматривали по прохождении этой операции, можно заметить, что в первом отношении было два кортежа, во втором – три, а в результирующем – четыре, т. е. меньше, чем пять (сумма мощностей отношений-операндов). По совпадающему кортежу {b, 2} эти отношения «склеились».
Мощность результата пересечения двух отношений меньше или равна минимальной мощности исходных отношений-операндов. Обратимся к определению этой операции: в результирующее отношение попадают только те кортежи, которые присутствуют в обоих отношениях исходных. А значит, мощность нового отношения никак не может превышать мощности того отношения-операнда, число кортежей которого наименьшее из двух. А равной этой минимальной мощности мощность результата быть может, так как всегда допускается случай, когда все кортежи отношения с меньшей мощностью совпадают с какими-то кортежами второго отношения-операнда.
В случае операции разности все достаточно тривиально. Действительно, если из первого отношения-операнда «вычесть» все кортежи, присутствующие также во втором отношении, то их количество (а следовательно, мощность) уменьшится. В том случае, если ни один кортеж первого отношения не совпадет ни с одним кортежем отношения второго, т. е. «вычитать» будет нечего, мощность его не уменьшится.
Интересно, что в случае применения операции декартового произведения мощность результирующего отношения в точности равна произведению мощностей двух отношений-операндов. Понятно, что это происходит потому, что в результат записываются все возможные пары кортежей исходных отношений, а ничего не исключается.
И, наконец, операцией естественного соединения получается отношение, мощность которого больше или равна произведения мощностей двух исходных отношений. Опять-таки это происходит потому, что отношения-операнды «склеиваются» по совпадающим кортежам, а несовпадающие – из результата исключаются вовсе.
2. Свойство идемпотентности:
1) для операции объединения: r ? r = r;
2) для операции пересечения: r ? r = r;
3) для операции разности: r r ? r;
4) для операции декартового произведения (в общем случае, свойство не применимо);
5) для операции естественного соединения: r ? r = r.
Интересно, что свойство идемпотентности верно не для всех операций из приведенных, а для операции декартового произведения оно и вовсе не применимо. Действительно, если объединить, пересечь или естественно соединить какое-либо отношение само с собой, оно не изменится. А вот если отнять от отношения точно равное ему отношение, в результате получится пустое отношение.
3. Свойство коммутативности:
1) для операции объединения:
r1 ? r2 = r2 ? r1;
2) для операции пересечения:
r ? r = r ? r;
3) для операции разности:
r1 r2 ? r2 r1;
4) для операции декартового произведения:
r1 ? r2 = r2 ? r1;
5) для операции естественного соединения:
r1 ? r2 = r2 ? r1.
Свойство коммутативности выполняется для всех операций, кроме операции разности. Это легко понять, ведь от перестановки отношений местами их состав (кортежи) не меняется. А при применении операции разности важно, какое из отношений-операндов стоит на первом месте, потому что от этого зависит, кортежи какого отношения примутся за эталонные, т. е. с какими кортежами будут сравниваться другие кортежи на предмет исключения.
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).
И снова мы видим, что свойство выполняется для всех операций, кроме операции разности. Объясняется это таким же образом, как и в случае применения свойства коммутативности. По большому счету, операциям объединения, пересечения, разности и естественного соединения все равно в каком порядке стоят отношения-операнды. Но при «отнимании» отношений друг от друга порядок играет главенствующую роль.
На основании вышеприведенных свойств и рассуждений можно сделать следующий вывод: три последних свойства, а именно свойство идемпотентности, коммутативности и ассоциативности, верны для всех рассмотренных нами операций, кроме операции разности двух отношений, для которой не выполнилось вообще ни одно из трех означенных свойств, и только в одном случае свойство оказалось неприменимым.
- 8.7. Свойства и методы функций и конструктор Function
- 7.11. Синхронное выполнение задач с помощью операций
- 7.12. Асинхронное выполнение задач с помощью операций
- Рис. 41. Свойства экрана.
- Рис. 145. Свойства абзаца.
- Перегрузка бинарных операций
- Перегрузка унарных операций
- Старшинство операций
- Директивы, атрибуты и коды операций CIL
- Перегрузка операций сравнения
- 11.2. СВОЙСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- 4. Свойства унарных операций