Базы данных | страница 35
Fromимя отношения 2;
2. Операция пересечения.
Операция пересечения и операция разности двух отношений на языке структурированных запросов реализуются похожим образом (мы рассматриваем наиболее простой способ представления, так как, чем проще метод, тем он экономичнее, актуальнее и, следовательно, наиболее востребован). Итак, мы подвергнем разбору способ реализации операции пересечения с использованием ключей.
Этот способ предполагает участие двух конструкций Select, но они не равноправны (как в представлении операции объединения), одна из них является как бы «подконструкцией», «подциклом». Такой оператор обычно называют подзапросом.
Итак, пусть у нас имеются две схемы отношений (R>1 и R>2), приблизительно определенные следующим образом:
R>1 (ключ, …) и
R>2 (ключ, …);
Воспользуемся также при записи этой операции специальной опцией in, что буквально означает «в» или (как в данном конкретном случае) «содержится в».
Итак, с учетом всего вышесказанного, операция пересечения двух отношений с помощью языка структурированных запросов запишется следующим образом:
Select *
From R>1
Whereключ in
(SelectключFrom R>2);
Таким образом, мы видим, что подзапросом в данном случае будет являться оператор в круглых скобках. Этот подзапрос в нашем случае возвращает список значений ключа отношения R>2. И, как следует из нашей записи операторов, из анализа условия выборки, в результирующее отношение попадут только те кортежи отношения R>1, ключ которых содержится в списке ключей отношения R>2. То есть, в итоговом отношении, если вспомнить определение пересечения двух отношений, останутся лишь те кортежи, которые принадлежат обоим отношениям.
3. Операция разности.
Как уже было сказано ранее, унарная операция разности двух отношений реализуется аналогично операции пересечения. Здесь также, кроме главного запроса с оператором Select, используется второй, вспомогательный запрос – так называемый подзапрос.
Но в отличие от воплощения в жизнь предыдущей операции, при реализации операции разности необходимо использовать другое ключевое слово, а именно not in, что в дословном переводе означает «не в» или (как уместно перевести в нашем рассматриваемом случае) – «не содержится в».
Итак, пусть, как и в предыдущем примере, у нас имеются две схемы отношений (R>1 и R>2), приблизительно заданные:
R>1 (ключ, …) и
R>2 (ключ, …);
Как видим, среди атрибутов этих отношений снова заданы ключевые атрибуты.
Таким образом, получаем следующий вид для представления в языке структурированных запросов операции разности: