Операция пересечения и операция разности двух
отношений на языке структурированных запросов реализуются похожим
образом (мы рассматриваем наиболее простой способ представления, так
как, чем проще метод, тем он экономичнее, актуальнее и, следовательно,
наиболее востребован). Итак, мы подвергнем разбору способ реализации
операции пересечения с использованием ключей.
Этот способ предполагает участие двух конструкций
Select, но они не равноправны (как в представлении операции
объединения), одна из них является как бы «подконструкцией»,
«подциклом». Такой оператор обычно называют подзапросом.
Итак, пусть у нас имеются две схемы отношений (R1 и R2), приблизительно определенные следующим образом:
R1 (ключ, …) и
R2 (ключ, …);
Воспользуемся также при записи этой операции специальной опцией in, что буквально означает «в» или (как в данном конкретном случае) «содержится в».
Итак, с учетом всего вышесказанного, операция
пересечения двух отношений с помощью языка структурированных запросов
запишется следующим образом:
Select *
From R1
Where ключ in
(Select ключ From R2);
Таким образом, мы видим, что подзапросом в
данном случае будет являться оператор в круглых скобках. Этот подзапрос в
нашем случае возвращает список значений ключа отношения R2.
И, как следует из нашей записи операторов, из анализа условия выборки, в
результирующее отношение попадут только те кортежи отношения R1, ключ которых содержится в списке ключей отношения R2.
То есть, в итоговом отношении, если вспомнить определение пересечения
двух отношений, останутся лишь те кортежи, которые принадлежат обоим
отношениям.
|